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