Здрасте Скажите как создать сайт на нескольких языках только ненадо посылать на яндекс гугл (уже всё обшарил) или говорить сделай два сайта. Мне надо чтоб пользователь нажимая на "русская версия"загружалась русская версия из например файла ru.php, а нажимая на "английская версия" соответственно из файла en.php А вот как это всё сделать нескажите????
Ну, это элементарно. Делаешь в индекс файле: Код (Text): include('languages/'.$_REQUEST['lang'].'.php'); где "languages" - папка, в которой хранятся файлы "ru.php" и "en.php" и в ссылке передаешь index.php?lang=ru или index.php?lang=en
При разборке форума под названием: Invision Power Board, выяснилось, что многоязыковость заключается в исключительном написании "словаря"... А слова берутся переводимые из кода программы! И всё
ХРЕНЬ. Есть такие люди, звутся они переводчиками, так вот, узнай каков процент из них может читать код программы и вписывать туда перевод. И так же узнай каков процент из них могут по-ошибке чего-то в коде исправить. Когда думеашь о цели, важно так же не забывать про средства. Тоесть по этому варианту переводчик должен работать в паре с программистом, а это нехорошо. А если сайт активно обновляется? Как тогда работать?
Danilevsky, если CMS сайта поддерживает многоязыковой интерфейс, то она должна иметь инструмент, упрощающий перевод, добавление поддержки новых языков, поиск фраз с использованием различных режимов и т.д. и т.п. Именно после этого можно сказать, что CMS поддерживает многоязычность. А включение файлов типа mod_name_ru_lang.php это всего лишь поделка, точнее ручная организация многоязычности.
это все конечно хорошо, но тут у меня вопрос назрел: Код (Text): <a href="<? echo $_SERVER['PHP_SELF']; ?>">Русский</a> | <a href="<? echo $_SERVER['PHP_SELF'].'?lang=en'; ?>">English</a> это конечно же работает, НО! когда надо в ссылке дежать не только переменную ЛАНГ но и АйДи? ссылка выглядит примерно /index.php?lang=ru&id=2 . если в таком случае нажать на ссылку "English", то ссылка будет иметь вид /index.php?lang=ru&id=2?lang=en , что естественно вводит сервер в заблуждение. подскажите пожалуйста как легче сделать, или может не трогать вообще этот ПХПСЕЛФ? (хотелось бы чтобы отображалась на другом языке именно та страница, Где пользователь нажал на другой язык) понимаю, что пост старый, но все же добавлю, мало - ли пригодится кому: Не хрень это, переводчик в данном случае лазиет не по целой странице с кодом, а по обычному документу, например: Код (Text): define("DBLAN_1", "Основные параметры настройки, скопированные в базе данных."); define("DBLAN_2", "Щелкните кнопку, чтобы сохранить копию вашей e107 базы данных"); define("DBLAN_3", "Резервирование базы данных SQL"); и т.д. таким образом перевод становится простым и почти безопасным для работоспособности кода. Для пущей безопасности вообще можно это в форму вывести чтоб перевёл и сохранил.
el из простейших вариантов: в конфиге: PHP: <?php $siteneme = 'http://example.com/'; $system_languages = array('eng','rus'); $default_language = 'eng'; ?> ссылку в виде: HTML: <a href="changelang.php?lang=rus">Русский</a> changelang.php PHP: <?php include 'файл конфига'; $ref = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:$site_name; if(isset($_GET['lang'])) if(in_array($_GET['lang'],$system_languages)) setcookie('language',$_GET['lang'],time()+60*60*24*365,'/'); header('Location: '.$ref); die; } else die('Такого языка нет'); ?> ну и при выводе, как-нибудь так: PHP: <?php if(isset($_COOKIE['language'])){ if(in_array($_COOKIE['language'],$system_languages)) $lang = trim($_COOKIE['language']); else $lang = $default_language; } else $lang = $default_language; setcookie('language',$lang,time()+60*60*24*365,'/'); include('languages/'.$lang.'.php'); ?>
я юзаю SmartyML - надстройка над Smarty. принцип тот же - подгрузка нужного файла, но в этом классе все реализовано очень удобно.
IGORDDEMLin Читайте правила форума. Вам первое серьёзное предупреждение. По правилам вашу тему следовало бы удалить.
некрофилы, хотя человек нашёл поднимавшуюся уже тему (!), причём у темы абсолютно невменяемое название (!!!) Респект ему вобщем
Пожалуй стоит извинится перед el: пока до вашего поста дошел, автор уже порядком успел вывести меня из себя. Так что, извините. да уж... в этой теме что-то подобное обсуждалось, где-то со второй страницы
не, ребят, археолог не археолог, но это единственная тема, которая вылезла по запросу на "многоязыковость" так что я особо не выбирал.
После этого tmanager создал топик, где решил подойти к проблеме многоязычности более серьезно, тоже большая дискуссия получилась
еще есть вот тут После Вашего ознакомления с удовольствием отвечу на любые вопросы ( если будет в моей компетенции)