Talk:Translations / i18n / localizations for programs/ru

From Free Pascal wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Что-то перемудрили

Пора упростить, но не уверен, что я прав на все сто. Сейчас для локализации проекта, написанного на Лазарусе, достаточно следующего:

  1. вписать в uses к проекту модуль DefaultTranslator
  2. создать папку locale рядом с создаваемым экзешником
  3. в настройках проекта, в разделе i18n, включить генерацию po-файла и прописать путь к созданной папке locale
  4. скопировать в ту папку содержимое из папки C:\lazarus\lcl\languages для подключения локализации lcl-евских констант (это не обязательный шаг: можно это либо не копировать, либо разместить по каким-то стандартным общим путям, которые смотрит модуль DefaultTranslator)
  5. скомпилировать проект, чтобы сгенерировать po-файл проекта locale\<имя проекта>.po
  6. воспользоваться утилитой типа POedit (https://ru.wikipedia.org/wiki/Poedit) чтобы создать на основании генерёного <имя проекта>.po файл <имя проекта>.ru.po и повписывать туда переводы.

В генерируемый для проекта файл при перекомпиляции добавляются все встречаемые компилятором resourcestring и все строки из файлов форм. Устаревшие, похоже, автоматически не удаляются. Или я не нашёл где удаление включить. После перекомпиляции то ли обновляются все <имя проекта>.*.po файлы, а не только основной, то ли POedit умеет сама из основного подтягивать изменения - в общем, например, русскую локализацию можно править, открывая после перекомпиляции проекта двойным щелчком русский <имя проекта>.ru.po - там все последние пополнения перечня локализуемых строк уже будут отражены.

Профит! Больше никакого огорода городить не надо, чтобы программа была переведена.

Единственная беда - этот механизм не занимается размерами элементов формы, содержащих локализуемый текст. Так что надо либо искать что-то, что занимается - либо заранее предусматривать на элементах управления место для строк большей длины. --Nashev 16:39, 20 January 2014 (CET)