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

Тема в разделе "Коммерческие", создана пользователем blacks, 29 июл 2009.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. blacks

    blacks

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

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


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

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

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

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

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

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.137
    Симпатии:
    670
    проще сделать на сайте ссылку на онлайн-переводчик наподобие такой
    http://babelfish.yahoo.com/translate_url?doit=done&tt=url&intl=1&fr=bf-home&trurl=http%3A%2F%2Fnulled.ws&lp=ru_en&btnTrUrl=Translate

    или гугла
     
    капрал нравится это.
  3. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    нет.. авто переводчик это плохо...
     
  4. cat13

    cat13 Постоялец

    Регистр.:
    22 мар 2009
    Сообщения:
    84
    Симпатии:
    27
    без PHP не получится тока с ява можно попробывать но я аналогов не встречал.Можно на главной странице зделать выбор языка.Но лучше с пхп
     
  5. puika

    puika

    Регистр.:
    25 ноя 2006
    Сообщения:
    262
    Симпатии:
    277
    Попробовать с помощью через Google Translate в Yahoo Pipes по теме Перейти по ссылке
    затем вставка на сайт*полученной*RSS с помощь ява скрипта Перейти по ссылке
    принцип работы при заходе на страничку на ява выводиться текст
    Можно использовать Перейти по ссылке он как раз сделан на базе feed2js

    Тоже интересует данный вопрос, может у кого есть более хорошее решение
     
  6. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Какая реализация на PHP / динамики самая простая и надежная?
    - не хочется ставить CMS ради 2000 знаков.
    - и защиты надежной хочется - поэтому и не хочу браться за скрипты.
     
  7. taras.e

    taras.e Создатель

    Регистр.:
    28 апр 2008
    Сообщения:
    15
    Симпатии:
    1
    apache + mod_negotiation
     
  8. Ortrix

    Ortrix Постоялец

    Регистр.:
    22 сен 2007
    Сообщения:
    78
    Симпатии:
    1
    Имхо. Для таких нужд проще всего использовать 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 - язык - в язык
     
  9. Albros

    Albros Постоялец

    Регистр.:
    26 июл 2009
    Сообщения:
    57
    Симпатии:
    36
    Возможно через 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 должен быть выше, чем автоматический редирект !
     
    blacks нравится это.
  10. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Сегодня нашел небольшой пример приенения мод реврайта для переключения языка.

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


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

    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]
     
Статус темы:
Закрыта.