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

12
B
На сайте с 04.12.2008
Offline
69
13402

Всем привет.

Планирую сделать второй язык для сайта (сейчас только русский)

Хочется немного автоматизма добавить – чтоб при заходе на сайт

человеку сразу выдавалась нужная языковая страница.

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

Пригодится любая помощь, совет, мануал.

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

1. Сайт не динамический – простой html и местами shtml

2. Смена языка есть ридерект на несколько вариантов:

  • site.ru/en/
  • site.ru/en.html
  • en.site.ru

3. Предполагаю что определить язык посетителя можно

  • с домена с которого он пришел
  • с браузера – вроде там есть такие «отметины»
  • с куки – если посетитель уже выбрал нужный язык
  • с geo-ip

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

Пользование PHP возможно в зачатках – только для мультиязычности.

Предполагается что все должно быть на статике.

Возможно в будущем появится блог но вряд ли будут английские посты.

Хостинг виртуальный; доступа к настройкам апача нет.

Вот вроде и все… ничего не забыл…

Всем откликнувшимся заранее большое спасибо!

ewg777
На сайте с 04.06.2007
Offline
225
#1

Средствами html.

[Удален]
#2

blacks, mod_negotiate вам в помощь. как раз в таких гов**ситуациях как у вас помогает )))

BR
На сайте с 28.06.2008
Offline
75
#3

В Apache директивы AddLanguage и LanguagePriority, которые можно указать в .htaccess

размещение сайтов (http://www.brim.ru)
Gmp
На сайте с 12.10.2008
Offline
83
Gmp
#4

Если сайт не динамический, а на чистом хтмл и хочется без пхп, то частично можно сделать и на яваскрипте, создать несколько языковых версий и в зависимости от условий делать редирект при помощи JS (но это по-моему поисковые системы очень не любят, хотя могу и ошибаться).

С кукисами JS умеет работать, язык пользователя определять тоже умеет, а это уже что-то, вот только ИП адрес по-моему определить нельзя (по крайней мере стандартными способами и без явы).

Несколько полезных ссылок:

Редирект на JavaScript

Языкозависимый редирект

Ссылка на пост, в котором предлагается обходной способ получения IP с помощью JS

Nunan
На сайте с 15.08.2008
Offline
78
#5

Как вариант:

в каждой папке лежат все страницы с одним языком

/en/

/ru/

/de/

Все ссылки должны быть относительные - href="page1.html", тогда все будет работать.

А в главной / - скрипт определения языка и направление пользователя туда куда надо - header("Location: \en\");

B
На сайте с 04.12.2008
Offline
69
#6

Сегодня нашел небольшой пример приенения мод реврайта для переключения языка.

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

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

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]
СКОРПИОН
На сайте с 05.01.2006
Offline
120
#7

blacks, делайте лучше на другом домене. Толку больше будет... ;)

• Контекстные ссылки с внутренних страниц навсегда (/ru/forum/370882) • Качественные сайты для заработка на контекстной рекламе и ссылках
B
На сайте с 04.12.2008
Offline
69
#8
СКОРПИОН:
blacks, делайте лучше на другом домене. Толку больше будет... ;)

site.de

site.ru

- так предлагаете :) ?

- а в чем плюс кроме как "уменьшение головной боли" по поводу переключения языка ?

ALL_SR
На сайте с 30.07.2007
Offline
44
#9

простенький PHP для смены языка, если вдруг пригодится


if(!empty($_GET['lang'])){
unset($_GET['lang']);
$queryString='';
foreach($_GET as $key=>$val){
$queryString.=$key.'='.$val.'&';
}}
print '<a href="'.$_SERVER[PHP_SELF].'?'.$queryString.'lang=eng">en</a><a href="'.$_SERVER[PHP_SELF].'?'.$queryString.'lang=rus">ru</a>
Мы построим коммунизм! С блэкджеком и шлюхами! Хотя к черту коммунизм... Услуги программиста (/ru/forum/316473) Бесплатный скрипт проверки ссылок (/ru/forum/298319)
SS
На сайте с 28.05.2008
Offline
154
#10

А зачем так сложно что б без PHP???

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий