Delphi resourcestring本地化过程

问题描述 投票:1回答:1

即使我在网上找到了很多东西,我仍然无法找到如何真正使用资源串。我有一个仅使用西雅图制作的iOS应用程序,我有一个名为italian.pas的文件,如下所示:

unit italian;

interface

resourcestring
 word1 = "parola1";
 test1 = "prova1";

implementation

end.

我不想使用本地化工具。根据我的理解,编译器生成一个包含我的resourcestrings的.drc文件。现在该怎么做才能本地化我的iOS应用程序? (或android)


我创建了上面的其他2个文件,名为french.pasamerican.pas。它们是italian.pas的副本,但字符串值当然根据语言而不同。在this回答艾伦鲍尔说:

然后可以翻译或以其他方式处理此.drc文件,然后重新编译成.res文件然后可以将此.res文件链接到一个特殊的“仅限资源”的dll,其中除了“.dll”之外的特定扩展名表示语言。

首先考虑一下我不是德尔福专家!从我在这里理解的,编译器应该从我的italian.pas生成一个drc文件,drc将包含我的字符串。现在(从上面的引文)我应该编辑drc添加我需要的本地化。

如何使用本地化编辑drc文件?另外我猜想包含本地化的已编辑的drc文件必须以某种方式与可执行文件链接。我真的需要创建3个不同的文件文件,或者我只需要一个drc文件然后进行本地化吗?

delphi firemonkey
1个回答
1
投票

目前还没有简单的方法来本地化移动Delphi应用程序。原因是这些平台不支持资源库,例如Windows中的资源DLL。当编译器编译代码在哪里是资源字符串时,编译器获取字符串并在应用程序文件中插入字符串资源。当然,您可以在编译后修改它,但这并不容易,因为您还必须计算ELF(Android)或Mach(iOS)文件中的所有内部引用。

唯一可行的解​​决方案是根本不使用资源字符串,而是使用某种翻译功能(类似于gettext),并使用某种翻译组件以某种格式存储翻译,并在运行时更改表单字符串并提供translate函数的正确语言字符串。但问题是RTL和FireMonkey库中使用的几个resourcestring。没有任何简单的方法来本地化它们。

© www.soinside.com 2019 - 2024. All rights reserved.