Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Совет по мультирегиональным и многоязычным сайтам

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, помогите советом.
Есть необходимость сделать сайт на нескольких языках.
Вопрос стоит в следующем:
Как это лучше сделать?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 10:37 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как это лучше сделать?

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

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:42 24-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
текст интерфейсов - языковые файлы  

хранить весь текст в одном файле соответствующий ему языка?
Например: ru.php, ua.php, en.php и т.д.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 12:48 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
http://php.net/manual/ru/intro.gettext.php
Ну или собственная реализация через массивы или как удобнее.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 13:21 24-10-2016 | Исправлено: Mavrikii, 13:33 24-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо.
Я так понимаю, что он работает по следующему принципу.
 
Указываем домен и каталог где лежит языковый файл (несколько в нашем случае)
Указываем какой текущий язык у пользователя
Выводим текст через gettext() и оно автоматически выведет текст на нужном языке в зависимости от установленного языка
правильно я понимаю?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 13:34 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
gettext()  

Еще короче, через echo _('Text');
Автоматически - если есть в подключенным файле перевод этой фразы.
Это некий необязательный стандарт, реализовать можно и самостоятельно как угодно.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 13:36 24-10-2016 | Исправлено: Mavrikii, 13:37 24-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Это некий необязательный стандарт, реализовать можно и самостоятельно как угодно.

Да это и так понятно.
Просто я стою перед выбором, какой вариант использовать.
1. хранить весь lang текст в массиве переменной $lang и по ключу выводить текст.
2. такой-же как и 1, только хранить в define весь lang.
3. использовать функцию lang и по ключу, через while или ещё что-то искать совпадения в файле, и выводить текст соответствующий ключу.
 
Все способы просты в реализации, но не могу решить какой выбрать. На Ваше усмотрение, какой способ будет наиболее быстрый и менее затратный (речь про нагрузку)?
 
Добавлено:
Есть ещё один вариант (косвенный), например выводить текст echo dettext('Привет','Hi') и в зависимости от установленного языка в куках выводить ту или иную строку.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 13:47 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
echo dettext('Привет','Hi') и в зависимости от установленного языка в куках

И при добавлении языка перелопачивать код добавляя новые фразы? Ну, если вам так будет удобнее.
 
Добавлено:

Цитата:
1. хранить весь lang текст в массиве переменной $lang и по ключу выводить текст.  
2. такой-же как и 1, только хранить в define весь lang.  
3. использовать функцию lang и по ключу, через while или ещё что-то искать совпадения в файле, и выводить текст соответствующий ключу.  

Да как понятнее и удобнее. Искать в файле особого смысла нет, проще пропарсить в структуру с удобным доступом к данным. Ну или хранить в файле в виде ассоциативного массива.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 14:02 24-10-2016 | Исправлено: Mavrikii, 14:12 24-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
проскочить в структуру

тут я не совсем понял.... Это как?)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 14:14 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
тут я не совсем понял.... Это как

Обновлять страницу нужно чаще - всего лишь планшетное автоисправление, не всегда сразу заметно.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 14:21 24-10-2016
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Да как понятнее и удобнее. Искать в файле особого смысла нет, проще пропарсить в структуру с удобным доступом к данным. Ну или хранить в файле в виде ассоциативного массива.

Таким методом пользуются множество больших сайтов? (Например: VK)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 14:24 24-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Таким методом пользуются множество больших сайтов

Они, скорее всего, пользуются тем, на что давал ссылку.
Либо в базе.  
https://m.habrahabr.ru/post/192228/
У почти каждого фреймворка есть раздел о локализации

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 14:34 24-10-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Совет по мультирегиональным и многоязычным сайтам


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru