Как сделать мультиязычный сайт без 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.126
    Симпатии:
    668
    проще сделать на сайте ссылку на онлайн-переводчик наподобие такой
    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 по теме http://splogmaster.ru/splogi/perevo...erevodnoj-kontent-dlya-sploga-s-lyubogo-bloga
    затем вставка на сайт*полученной*RSS с помощь ява скрипта http://feed2js.org/
    принцип работы при заходе на страничку на ява выводиться текст
    Можно использовать http://feedlocka.com/build.php он как раз сделан на базе 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
    Симпатии:
    33
    Возможно через 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, опять же через JavaScript, на случай, если человек все таки выбрал другую версию сайта. Причем приоритет 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]
     
Статус темы:
Закрыта.