Talk:Translations / i18n / localizations for programs/ru

From Lazarus wiki
Jump to navigationJump to search

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

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

  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)