Записи с меткой «ngettext»
Локализуем проекты
Для локализации своих проектов я взял класс pomo из вордпресса.
Также будет необходим Poedit.
В исходном тексте скрипта все фразы написаны на английском языке, но обрамлены в специальную функцию:
_e('Hello world ');
Выбор локализации указывается так:
define('LANG', 'ru_RU');
Всегда можно изменить:
$locale = 'en_US';
Из файлов записанных по стандарту gettext берутся фразы на языке локализации и ставятся на место оригинальных. Если какая-то фраза не переведена, то на ее место ставится оригинальная.
Плюс такого подхода заключается в том, что оригинальные фразы являются идентификаторами подстановки. Программисту не надо контролировать правильность подстановки нужно идентификатора, а переводчику становится более наглядно, что, где и, самое главное, как переводить нужную фразу.
Что же делает Poedit?
Она рекурсивно обходит каталог скрипта, собирает все фразы, которые обрамлены в теги gettext и записывает в специальный .po-файл. Далее этот файл открывается в удобном виде для перевода. После сохранения перевода Poedit создает .mo-файл.
.po-файл (от portable object) — текстовый, который непосредственно и переводят.
.mo-файл (от machine object) — бинарный файл, который использует скрипт/программа для подстановки перевода.
Итак начнем установку Poedit.
При первом запуске он что-то спросит — заполняй, как посчитаешь нужным, потом если что подправишь. Чтобы было проще работать, можно поставить русский язык в настройках программы(File —> Preferences —> Change UI Language —> Russian).
Далее переходим в меню Файл->Создать каталог и вводим информацию о проекте:

Самые важные строки: Кодировка и Кодировка исходного кода. Рекомендую выставлять оба этих параметра как utf-8. Формы множественного числа вставить вот это:
nplurals=3; plural=(n%10==1 && n%100!=11) ? 0 : ((n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20)) ? 1 : 2);
На следующей вкладке Пути необходимо прописать путь к папке в которой располагаются файлы для перевода:

Вкладка Ключевые слова. Здесь необходимо прописать названия функций «__», «_e» и тд (без кавычек и без круглых скобок):

Жмакаем OK. В открывшемся окне выбираешь ту же папку, куда забросил все .php файлы и сохраняем под именем ru_RU.po.
После сохранения выскакивает окошечко Сводка об обновлении. Здесь ты можешь видеть все строки, которые нашла программа и которые можно перевести. Опять жмакаем ОК и в следующем окне приступаем к переводу найденных фраз.
Напутственный совет
Функции форм множественного числа указываются _n:1,2.
Исходный код
l10n
Популярность: 6%
