2012-02-17 4 views
8

В Delphi есть опция VersionInfo-> Language-> Locale ID при просмотре свойств проекта.
Я блуждал, как установить такое свойство для программы, скомпилированной под Free Pascal.
Любые решения приветствуются: аргумент командной строки или препроцессор директива, такой как {$key value}; эквивалентно Delphi.Как сообщить Free Pascal Compiler установить идентификатор локали для скомпилированного приложения

+3

В Lazarus это очень просто, есть очень похожая вкладка настроек проекта. Эти параметры затем сохраняются в файлах '* .lpi' проекта, таких как:' ' – TLama

+1

@TLama, это выглядит как отличный ответ, я предлагаю вам сделать его одним, чтобы мы могли его проголосовать. – Johan

+0

(1) Что вы ожидаете от локализации? (2) Вряд ли портативный инструмент будет использовать кодовую страницу Windows. (3) если это только D2009 +, такой материал все еще работает. –

ответ

8

Если вы можете создавать свои проекты, используя *.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 выпадающих доступно, если вы включите информацию о версии в проект.

5

Не уверен, что это сработает, не стесняйтесь проголосовать за меня, если это не сработает.

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.

 Смежные вопросы

  • Нет связанных вопросов^_^