Самый эффективный способ работать с несколькими естественными языками

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

Является codeigniters собственным классом языка самый эффективный способ обработать языки? Есть ли какой-либо определенный language-tools/libraries, которые являются наиболее часто используемыми в приложениях PHP?

Спасибо!

12
задан Industrial 30 April 2010 в 21:06
поделиться

2 ответа

Я никогда не использовал CI_Language, но похоже, что он использует языковые массивы для перевода.

Слишком упрощенный пример такого метода:

$trans = array(
    'MAIN_TITLE' => 'Title Here'
);

echo $trans['MAIN_TITLE'];

Лично я нахожу это очень раздражающим, потому что в этом случае вы редактируете представления, которые загромождены именами ключей массивов вместо полезного текста. Что иногда может быть довольно раздражающим. Не говоря уже о том, что вам приходится запоминать, какие ключи соответствуют каким строкам, если вы используете их в нескольких местах.

Я использую Gettext, который мне кажется намного проще. Вы просто должны обернуть свои строки методом translate: _(). Затем, когда вы закончите работу над приложением, вы откроете PoEdit и создадите новый языковой файл. PoEdit проанализирует все мои исходные файлы в поисках строк, обернутых следующим образом и вставит их в языковой файл .po. Затем вы можете перебирать строку за строкой и легко переводить текст в PoEdit. Преимущество этого способа в том, что исходный перевод находится прямо в PoEdit, а не в бессмысленном массиве имен ключей в каком-то включаемом файле

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

.
12
ответ дан 2 December 2019 в 21:23
поделиться

Вы можете заглянуть в библиотеку php intl. http://php.net/intl

1
ответ дан 2 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: