Лучшие практики для создания различных языковых пакетов на сайте? PHP

StackOverflow https://stackoverflow.com/questions/188364

Вопрос

Я уже создал языковой пакет для сайта, но не уверен, что то, что я делаю, - лучший метод.

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

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

Какими способами это можно сделать, чтобы уменьшить головные боли и производительность при обслуживании?

Это было полезно?

Решение

Я предлагаю использовать Zend_Translate . Это в некоторой степени сочетание других предложений, оставленных здесь людьми, только более понятное и лучше спроектированное.

Вы можете переключать адаптеры в зависимости от ваших предпочтений (поддерживает gettext, csv и множество других), вам не нужны определения или глобальные переменные, загрязняющие вашу глобальную область видимости, и это хорошо задокументировано.

Другие советы

Наилучший вариант с PHP - GetText , но не на всех серверах он встроен, так что это может быть остановкой шоу, если вы управляете сервером.

Вот несколько наиболее распространенных способов сделать это:

1) Используйте define ('SOME_STRING', 'Some string'); - просто создайте отдельный файл с этими определениями для каждого языка. Это очень просто, и вам не нужно использовать " глобальный " повсюду.

2) Обтекание строк в функции: translate ('My String') - это более гибко, так как вы можете анализировать свой код для создания списков строк для перевода и добавлять такие функции, как переменные например, translate ('Я могу сосчитать до [число]', 10); (конечно, вы обычно выбираете более короткое имя функции, например " _ ")

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top