Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
ребят, скажите как вы делаете многоязычность?
у меня пока основной вариант - языковой файл, где массивом фразы... но вызыывать их не оч удобно
щас стал читать про gettext
вроде удобно.. но не мог бы кто нибудь привести пример реализации???
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
OrmaJever
Отправлено: 15 Ноября, 2010 - 01:10:12
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
не знаю как другие а ядля себя делал так
Файл с языком ru.php
файл lang.php инклудить во свех файлах и место названий писать $lang['ключ масива'].
ну и в итоге на странице зделать сылки для переключения языков которые добавляют куки lang.
ЗЫ. можно использовать $_GET место $_COOKIE но это пуличится не красиво, в каждой сылке будет ...&lang=ru а это неочень приятно
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Вездеход
Отправлено: 15 Ноября, 2010 - 10:39:51
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
OrmaJever
куки это ужасно имхо. я их использую только для сохранения авторизации.... я язык сохраняю в сессиях.
а языки нужна для фреймворка. и в случае если переводчик совершит ошибку и случайно затрет в одном из языков какую то фразу - на сайте будет ошибка. думаю это не хорошо, согласны?
поэтому нужен вариант такой, чтобы был базовый языковой пакет, и он уже правился под выбранный язык
пока основной вариант такой - есть основной файл с языком. в нем есть все необходимые фразы
а по верх него загружаю языковой пакет под выбранный язык... соотвтетсвенно те фразы, которые переведены - будут успешно выводиться в нужном языке. остальные - выводятся из стандартных...
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
OrmaJever
Отправлено: 15 Ноября, 2010 - 12:53:47
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Вездеход пишет:
куки это ужасно имхо.
Чем ужасно? Сесия заканчивается после закрытия браузера или через 24минуты. А как потом? А потом все настройки сбились
Вездеход пишет:
я язык сохраняю в сессиях.
Ну я привёл пример.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Viper
Отправлено: 15 Ноября, 2010 - 15:29:49
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
Вездеход что-то мне кажется вы велосипед решили погнуть.
Для каждого языка свой языковой файл. Зачем в массив-то все это собирать?
Далее делаете выбор языка либо глобально в системе, либо даете выбрать язык юзеру в настройках своего профиля. Затем сохраняете либо в БД, либо в куку(как говорится для контроля) и загружаете потом нужный язык.
Обработку, загрузку данных о языке стоит выполнить глобально в ядре дабы не подключать каждый раз языковой файл в каждом нужном(и ненужном) месте, а просто при помощи самописной функции вызвать нужную переменную из онного и вывести.
Сами же языковые файлы обычно делают либо в виде
$var = 'value';
либо
$var['var_name'] = 'value';
либо
CONSTANT=VALUE;
Покинул форум
Сообщений всего: 114
Дата рег-ции: Сент. 2010
Помог: 2 раз(а)
Я делаю так:
Все тексты описываю константами в файлах ru.php , en.php
Информацию о выбраном языке храню в куках, сесионной переменной и в базе данных для каждого пользователя отдельно.
При старте скрипта если пользователь авторизирован то устанавливаем нужный язык из базы данных, если нет то проверяется значение в куки, если есть то устанавливаем выбранный язык, если нет то проверяем значение сессионной переменной и устанавливаем соответствующий язык.
Если все три варианта не дали возможности опредилить язык сайта то можно установить его в зависимости от айпи пользователя.
После этого в зависимости от установленного языка инклудистя нужный файл ru.php или en.php
----- Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев. Качественный хостинг по доступной цене
Nibiru
Отправлено: 30 Ноября, 2010 - 11:35:25
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2010 Откуда: Майкоп
Помог: 0 раз(а)
На основе прочитанного решил сделать пробные файлы с реализацией многоязычности.
С программированием не очень, вроде сделал все правильно: создал файлы (ru.php, en.php, lang.php и собственно файл на котором должна быть реализована многоязычность index.php. В этом файле по умолчанию выводится текст на языке, который первый прописан в файле lang.php
Но переключение между языками не работает. Подскажите, что я не так сделал. Варианты ссылок пробовал несколько. нНо кажется дело не в них.
Вставка кода на страницу index.php (делаю на денвере, соответственно в папке "proba" находятся все файлы)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.