Лучшие практики для создания различных языковых пакетов на сайте? PHP - PullRequest
1 голос
/ 09 октября 2008

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

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

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

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

Ответы [ 3 ]

1 голос
/ 09 октября 2008

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

1 голос
/ 09 октября 2008

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

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

0 голосов
/ 09 октября 2008

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

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

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

...