Talk:Translations / i18n / localizations for programs/ru
Что-то перемудрили
Пора упростить, но не уверен, что я прав на все сто. Сейчас для локализации проекта, написанного на Лазарусе, достаточно следующего:
- вписать в uses к проекту модуль DefaultTranslator
- создать папку locale рядом с создаваемым экзешником
- в настройках проекта, в разделе i18n, включить генерацию po-файла и прописать путь к созданной папке locale
- скопировать в ту папку содержимое из папки C:\lazarus\lcl\languages для подключения локализации lcl-евских констант (это не обязательный шаг: можно это либо не копировать, либо разместить по каким-то стандартным общим путям, которые смотрит модуль DefaultTranslator)
- скомпилировать проект, чтобы сгенерировать po-файл проекта locale\<имя проекта>.po
- воспользоваться утилитой типа POedit (https://ru.wikipedia.org/wiki/Poedit) чтобы создать на основании генерёного <имя проекта>.po файл <имя проекта>.ru.po и повписывать туда переводы.
В генерируемый для проекта файл при перекомпиляции добавляются все встречаемые компилятором resourcestring и все строки из файлов форм. Устаревшие, похоже, автоматически не удаляются. Или я не нашёл где удаление включить. После перекомпиляции то ли обновляются все <имя проекта>.*.po файлы, а не только основной, то ли POedit умеет сама из основного подтягивать изменения - в общем, например, русскую локализацию можно править, открывая после перекомпиляции проекта двойным щелчком русский <имя проекта>.ru.po - там все последние пополнения перечня локализуемых строк уже будут отражены.
Профит! Больше никакого огорода городить не надо, чтобы программа была переведена.
Единственная беда - этот механизм не занимается размерами элементов формы, содержащих локализуемый текст. Так что надо либо искать что-то, что занимается - либо заранее предусматривать на элементах управления место для строк большей длины. --Nashev 16:39, 20 January 2014 (CET)