Лучшие практики для создания различных языковых пакетов на сайте? PHP
-
06-07-2019 - |
Вопрос
Я уже создал языковой пакет для сайта, но не уверен, что то, что я делаю, - лучший метод.
По сути, все, что у меня есть, это файл с переменными, определяющими строковые константы. Обычно это набор массивов, где массив обычно ссылается на определенные элементы сайта.
Затем код сайта просто включает соответствующий файл на основе флага, а затем выводит соответствующий элемент массива. Р>
Какими способами это можно сделать, чтобы уменьшить головные боли и производительность при обслуживании?
Решение
Я предлагаю использовать Zend_Translate . Это в некоторой степени сочетание других предложений, оставленных здесь людьми, только более понятное и лучше спроектированное. Р>
Вы можете переключать адаптеры в зависимости от ваших предпочтений (поддерживает gettext, csv и множество других), вам не нужны определения или глобальные переменные, загрязняющие вашу глобальную область видимости, и это хорошо задокументировано.
Другие советы
Наилучший вариант с PHP - GetText , но не на всех серверах он встроен, так что это может быть остановкой шоу, если вы управляете сервером.
Вот несколько наиболее распространенных способов сделать это:
1) Используйте define ('SOME_STRING', 'Some string');
- просто создайте отдельный файл с этими определениями для каждого языка. Это очень просто, и вам не нужно использовать " глобальный " повсюду.
2) Обтекание строк в функции: translate ('My String')
- это более гибко, так как вы можете анализировать свой код для создания списков строк для перевода и добавлять такие функции, как переменные например, translate ('Я могу сосчитать до [число]', 10);
(конечно, вы обычно выбираете более короткое имя функции, например " _ ")