Я никогда не использовал CI_Language, но, похоже, он использует языковые массивы для перевода.
Слишком упрощенный пример метода этого типа:
$trans = array(
'MAIN_TITLE' => 'Title Here'
);
echo $trans['MAIN_TITLE'];
Лично я нахожу это действительно раздражающим, потому что вы редактируете представления, которые загромождены именами ключей массива вместо полезного текста. Что может быть довольно раздражающим время от времени. Не говоря уже о том, что вы должны помнить, какие ключи соответствуют каким строкам, если вы используете их в нескольких местах.
Я использую Gettext , который я считаю намного проще. Вам просто нужно обернуть ваши строки с помощью метода перевода: _()
. Затем, как только вы закончите с вашим приложением, вы откроете PoEdit и создадите новый языковой файл. PoEdit проанализирует все мои исходные файлы в поисках строк, обернутых как <?php echo _('Title here') ?>
, и вставит их в языковой файл .po. Затем вы можете переходить строка за строкой и легко переводить текст в PoEdit. Преимущество этого в том, что у вас есть исходный перевод прямо внутри PoEdit, вместо бессмысленного имени ключа массива в некоторых файлах включения
Все это делает мою жизнь намного проще, поскольку я могу обновлять свои языковые файлы каждую пятницу одним щелчком мыши. Любые новые или измененные переводы будут автоматически добавлены в мой языковой файл, а любые неиспользованные переводы будут автоматически удалены. Я отправляю файлы в мои 3 международных филиала для перевода, и мои изменения и обновленные языковые файлы готовы к развертыванию в понедельник утром