многоязычность

nmDimas2

Постоялец
Регистрация
20 Апр 2010
Сообщения
78
Реакции
13
Почти в каждом Движке сайта используется Файл языка что очень удобно для редакции грамматических ошибок + организации многоязычности .
Вопрос как ее реализовать просто в начале скрипта подключаем lenguege.php а в нем переменные и текст? или там особой какой та подход чтоб скрипт не перегружался???
 
В каком смысле не перегружался? При загрузке скрипта проверяй куку Lan или сессийную переменную и подгружай только нужный lang-файл. Т.е. для каждого языка используй свой lang-файл. Вроде так.
 
Как правило организовывается папка с названием типа languages в неё добавляются локализованные папки ru, en, и т.д. Дальше технология следующая: Если у тебя ресурс требующий обязательной регистрации (например игра) то целесообразно метку языка ставить в базе пользователя и ему в опциях предоставить возможность выбора языка. Если у тебя нечто общего характера (например сайт предприятия) то целесообразно где нибудь в удобном месте расположить ссылки языковые и при клике на них загонять в куки пользователя метку языка, а затем её собственно и проверять... Можно также использовать комбинированный способ...
Сами языковые файлы можно организовать следующим образом:
Либо один файл на весь ресурс (в случае если на ресурсе немного текста), или несколько разных файлов которые будут вызываться каждый в своём конкретном случае.
Лучше всего заполнять языковые файлы в виде массива:
PHP:
$lang['идентификатор1'] = бла бла бла;
$lang['идентификатор2'] = ох ох ох;
Это удобно тем, что в коде скрипта сразу видно, что подгружается языковая переменная, к тому же иногда необходимо языковые переменные объявить глобально, в таком случае достаточно будет объявить только одну переменную
PHP:
global $lang;
а не перечислять все переменные из файла...
Еще один + этого метода - можно организовать многомерный массив(например названия изделий одного вида)
PHP:
$lang['avto']['mazda']     = 'Мазда';
$lang['avto']['vaz']       = 'Жигули';
$lang['avto']['mersedes']  = 'Мерседес';
или
PHP:
$lang['mazda']['name']            = 'Мазда';
$lang['mazda']['description']     = 'Отличная машина от японского производителя...';
собственно изголяться можно по всякому...
Подгружается языковой файл как правило один раз в начале скрипта, который будет использовать переменные их этого файла, через функцию
PHP:
include('./path_to_file/main.ln');
Собственно в общих чертах всё... :)
 
Поднимал в свое время подобную тему, вот ознакомьтесь может найдете что нибудь для себя полезное:
Для просмотра ссылки Войди или Зарегистрируйся

p.s.: Если захотите поблагодарить не флудите, для благодарности есть кнопка Спасибо. А в особых случаях кошелек вебмани;)
 
Можете использовать расширение php gettext если приложение ресурсоемкое, то поможет
 
  • Заблокирован
  • #6
Почти в каждом Движке сайта используется Файл языка что очень удобно для редакции грамматических ошибок + организации многоязычности .
Вопрос как ее реализовать просто в начале скрипта подключаем lenguege.php а в нем переменные и текст? или там особой какой та подход чтоб скрипт не перегружался???
да, если скрипт несложный, самыйнормальный вариант это различные файлы языков.

lang_en.php
lang_ru.php
и т.д.

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

include ('lang_'.$lang1.'.php');
 
Кстати раз пошла такая пьянка, будет тогда полезно для общего развития почитать это:


Выше по линку приведены примеры хранения данных в файлах в определенном типе и анализ скорости работы с каждым отдельно взятым примером и типом. В теме хоть и рассматриваться хранения конфигов в файлах, но думаю большой ризницы между хранением шаблонов языков нет , так как по сути шаблоны языков представляют из себя те же конфиги.
 
Назад
Сверху