В Delphi есть опция VersionInfo-> Language-> Locale ID при просмотре свойств проекта.
Я блуждал, как установить такое свойство для программы, скомпилированной под Free Pascal.
Любые решения приветствуются: аргумент командной строки или препроцессор директива, такой как {$key value}
; эквивалентно Delphi.Как сообщить Free Pascal Compiler установить идентификатор локали для скомпилированного приложения
Как сообщить Free Pascal Compiler установить идентификатор локали для скомпилированного приложения
ответ
Если вы можете создавать свои проекты, используя *.lpi
файлы, то я хотел бы попробовать добавить следующее в Project.lpi
файл вашего проекта.В следующем фрагменте показано, как установить идентификатор локали проекта (для платформы Windows) на 0405 (чешский).
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
...
<VersionInfo>
<UseVersionInfo Value="True"/>
<Language Value="0405"/>
<StringTable ProductVersion=""/>
</VersionInfo>
...
</ProjectOptions>
...
</CONFIG>
Или, если вы используете Lazarus IDE, то вы можете использовать для Delphi вкладки очень похожих настроек, которые можно открыть из Project/Project Options ...
и как в Delphi пойти Version Info
где это Language selection
выпадающих доступно, если вы включите информацию о версии в проект.
Не уверен, что это сработает, не стесняйтесь проголосовать за меня, если это не сработает.
Lazarus наследует настройки локали, с которых она начинается.
Вы можете установить локаль данные до начала Лазаря в Linux/OS X с помощью командной строки:
export LC_CTYPE="pt_BR"
export LANG="pt_BR"
export LANGUAGE="pt_BR"
./lazarus
скомпилированного приложения должны наследовать эти параметры.
Ответ на этот вопрос вызван this workaround Ошибка была исправлена.
Рекомендую посмотреть at the fpc forum ... и задал вопрос.
Не забывайте, что в него включены такие детали, как платформа (Linux/Windows/OS X) и точная версия FPC и Lazarus, которые вы используете, а также фактический язык, который вы хотите.
Лучше ответ
От: http://forum.lazarus.freepascal.org/index.php/topic,5924.0.html
Наконец, мне удалось найти простой и эффективный способ сделать свое приложение localizeable. Он использует только один блок и никакого кода.
1. Добавьте блок «defaulttranslator» в список использования.
2. Включите «i18n» в «Параметры проекта» и установите «каталог вывода PO» в «locale» или «Языки». Вы можете перенести файлы перевода прямо в папку приложения, но это просто создаст беспорядок. Не забудьте создать соответствующую папку.
3. Добавьте компоненты в форму. Если у вас уже есть все компоненты в вашей форме, вам придется немного переместить его, поэтому он будет изменен.
4. Сохраните проект.
5. Теперь в вашей папке «locale» или «Языки» должны быть файлы .po. Для разных языков файлы должны быть скопированы и переименованы так: «project1.XX.po», где XX - это код языка (например, «en», «de» и т. Д.).
6. Перевести .po файлы с программным обеспечением для перевода и сгенерировать файлы .mo. Я предлагаю использовать POEdit.
7. Запустите приложение, и используемый перевод будет выбран в соответствии с вашими региональными настройками. Если вам нужно протестировать другой язык, просто запустите приложение со следующими параметрами командной строки: «-l XX» или «-lang XX», где XX - код языка.
Этот метод не очень универсален, но он преобразует строки ресурсов и свойства компонента LCL.
В Lazarus это очень просто, есть очень похожая вкладка настроек проекта. Эти параметры затем сохраняются в файлах '* .lpi' проекта, таких как:' VersionInfo> ' –
TLama
@TLama, это выглядит как отличный ответ, я предлагаю вам сделать его одним, чтобы мы могли его проголосовать. – Johan
(1) Что вы ожидаете от локализации? (2) Вряд ли портативный инструмент будет использовать кодовую страницу Windows. (3) если это только D2009 +, такой материал все еще работает. –