русский вариант темы
dervan |
|
---|---|
# Trustmaster : Не надо упускать из виду текучку. Стабильные релизы редко выходят, а работать часто приходится с тем "что есть". Сначала подробнее про утилиту синхронизации lang-паков. 1. Утилита синхронизации сверяет lang-файлы с эталонными, английскими. В конце каждого несинхронного lang-файла формируются несколько секций. 1а) Секция пропусков. В эту секцию добавляются строки на английском, которые отсутствуют в несинхронном lang-файле. В результате пропуски в таком несинхронном lang-файле будут заполнены английскими вариантами - в соответствии с идеей, предложенной esclkm. Для тех, кто занимается локализацией, будет дополнительное удобство - все новые строки для перевода будут расположены группой, их не надо будет искать по всему lang-файлу. 1б) Секция несинхронных массивов. В эту секцию переносятся массивы (или не массивы), размеры которых не соответствуют размерам массивов в английском lang-файле. Для массивов declension нужна специальная обработка. Для их опознавания в тексте после каждого массива declension в английском lang-файле должен быть добавлен специальный комментарий: // declension array; WARNING!!! never delete this commentДля каждого языка в конфигурации утилиты должно быть задано количество элементов в массиве declension: $declension_items = array( 'en' => 2, 'ru' => 3, 'tr' => 1, ... );Если строка в lang-файле предполагается как массив declension, но не реализована как массив, то она оставляется на месте, а в секцию несинхронных массивов добавляется комментарий с рекомендацией реализовать эту строку как массив declension. Если строка - массив declension с неправильным размером, то она перемещается в секцию несинхронных массивов. 1в) Секция лишних строк. В неё перемещаются все строки, которых нет в английском lang-файле. Исключение - строки для формы конфигурации плагина, которых может не быть в английском lang-файле. Эти строки имеют вид: $L['cfg_*'] = '*'; 2. По результатам обработки lang-паков утилита синхронизации создаёт отчёты. 2а) Log-файл, в котором зафиксированы изменения для каждого файла. Разбит на секции по lang-пакам. 2б) Для тех lang-паков, которые нуждаются в доработке, создаются файлы с текстами ticket'ов для внесения в track. Теперь про возможную организацию текущей работы. Синхронизацию lang-паков можно проводить и при подготовке к выходу нового релиза, и при накоплении критического числа изменений. Синхронизацию делает кто-то из координаторов локально на своей копии SVN. Затем он делает comit полученных результатов, создаёт для локализаторов сообщение форуме, в котором выкладывает log-файл утилиты синхронизации, и при необходимости вносит ticket'ы в track. Полагаю, это будет удобный и чёткий способ синхронизации lang-паков. # Kort : Под Seditio был же такой langcompare.Да, есть такой плагин. Но это из другой оперы - когда для каждой локализации есть переводчик, который оперативно, с помощью этого инструмента для персональной работы, делает качественную локализацию, ничего при этом не пропуская. Но если локализация сделана неполностью, - либо погрешности в работе, либо lang-паком некому заниматься, - тогда надо делать синхронизацию с английским вариантом, как предлагает esclkm. Конечно, с этим плагином такую синхронизацию (добавить английские тексты) может сделать и человек, не знающий языка. Но это - ручная работа, к тому же получатся файлы с идущими вперемешку строками на разных языках. # esclkm : про лишню нагрузку - если лэнг файлы будут разбиты по модулям - файлы станут небольшими.Ключевое слово - лишняя. :) И к тому же такое латание на лету при формировании страниц не выявляет недоделки, а наоборот их затушёвывает. |