Как сделать мультиязычный сайт без PHP

Статус
В этой теме нельзя размещать новые ответы.

blacks

Местный житель
Регистрация
26 Сен 2008
Сообщения
391
Реакции
24
Всем привет.
Планирую сделать второй язык для сайта (сейчас только русский)
Хочется немного автоматизма добавить – чтоб при заходе на сайт
человеку сразу выдавалась нужная языковая страница.

Как делается данный метод не знаю. - в программирование слаб.
Пригодится любая помощь, совет, мануал.


Основные предположения и условия:

1. Сайт не динамический – простой html и местами shtml
2. Смена языка есть ридерект на несколько вариантов:
  • site.ru/en/
  • site.ru/en.html
  • en.site.ru
3. Предполагаю что определить язык посетителя можно
  • с домена с которого он пришел
  • с браузера – вроде там есть такие «отметины»
  • с куки – если посетитель уже выбрал нужный язык
  • с geo-ip

Дополнительные условия:

Пользование PHP возможно в зачатках – только для мультиязычности.
Предполагается что все должно быть на статике.
Возможно в будущем появится блог но вряд ли будут английские посты.
Хостинг виртуальный; доступа к настройкам апача нет.

Вот вроде и все… ничего не забыл…
Всем откликнувшимся заранее большое спасибо!
 
проще сделать на сайте ссылку на онлайн-переводчик наподобие такой

или гугла
 
без PHP не получится тока с ява можно попробывать но я аналогов не встречал.Можно на главной странице зделать выбор языка.Но лучше с пхп
 
без PHP не получится тока с ява можно попробывать но я аналогов не встречал.Можно на главной странице зделать выбор языка.Но лучше с пхп

Какая реализация на PHP / динамики самая простая и надежная?
- не хочется ставить CMS ради 2000 знаков.
- и защиты надежной хочется - поэтому и не хочу браться за скрипты.
 
apache + mod_negotiation
 
Имхо. Для таких нужд проще всего использовать Google:
PHP:
http://74.125.87.132/translate_c?hl=ru&ie=UTF-8&sl=en&tl=ru&u=http://Ваш домен/&prev=_t&rurl=translate.google.com.by&usg=ALkJrhgYKtXa2wuf2-eJj5ipb-CDeQqJcQ
где:
=en&tl=ru - язык - в язык
 
Возможно через JavaScript

Предпочтительный язык агента (броузера клиента) передается в строке запроса на сервер. В переменной, называемой
"Accept-Language". Она может принимать примерно такие значения:
"uk,ru;q=0.8,en-us;q=0.5,en;q=0.3"
Что значит предпочтительный язык Украинский, Русский а затем Английский (США), Английский
Брать информацию логичнее именно из этого запроса. Можно попробовать вытянуть это с помощью JavaScript, но имеющийся объект Navigator.userAgent не дает инфы про язык агента, а Navigator.language работает не на всех реализациях JavaScript (насколько я знаю, в IE он не работает)
Поэтому можно сделать так, как описано например Для просмотра ссылки Войди или Зарегистрируйся
!Сам не тестировал!

Затем по условию, редирект можно делать с помощью того же JavaScript:

HTML:
<script>
window.location="http://www.domain/en";
</script>


В общем стопроцентного успеха нельзя достичь, но немного поэкспериментировав, например как Для просмотра ссылки Войди или Зарегистрируйся, можно добиться выполнения поставленной задачи с минимальными затратами.
Как дополнение, необходимо устанавливать Cookie, опять же Для просмотра ссылки Войди или Зарегистрируйся, на случай, если человек все таки выбрал другую версию сайта. Причем приоритет Cookie должен быть выше, чем автоматический редирект !
 
Сегодня нашел небольшой пример приенения мод реврайта для переключения языка.

Еще не проверял так как пока пытаюсь понять перевод и правильность работы.


Следом за примером пришла идейка для мультиязычного сайта:

1. человек заходит на сплеш страничку и выбирает на ней язык
2. как только он перешел в подкаталог /en/ или /ru/ открывается index.html
3. в index.html через
Код:
<META HTTP-EQUIV="Set-Cookie" CONTENT="NAME=lang; EXPIRES=0;
... устнавливается lang=ru или lang=en
4. Затем в корень сайта вешается .htaccess из найденного примера который читает куки
и уже не открывает сайт с корня / а открывает из /en/ или /ru/
Идея вроде мне нра... но вот смогу ли я ее воплотить...
Честно говоря даже не знаю точно - может ли htaccess читать куки - сижу изучаю.

Подскажите что не так, как решить задачку?


Привожу код htaccess:
Код:
RewriteEngine On
RewriteBase /
#
# Externally redirect to add missing trailing slash to non-file URLs
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) http://example.com/$1/ [R=301,L]
#
# Externally redirect to language subsite if cookie set
RewriteCond %{HTTP_COOKIE} ^lang=(en¦ru)$
RewriteRule ^$ http://example.com/%1/ [R=302,L]
#
# Externally redirect to remove leading www from all requests (if not already done by rules above)
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
#
# Internally rewrite to relevant index page in the root
RewriteRule ^(en¦ru)/ index.$1.html [NC,L]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху