我最近要求(并付费)翻译我的Delphi应用程序以支持马其顿语(西里尔字母)。 我张贴了文字以翻译给我的订约翻译人员,她将翻译后的字串寄回给我。文本是从我所有的.dfm和.pas文件中提取的
当我用西里尔字母翻译替换原始文本时,我可以在我喜欢的Notepad ++(或记事本)中打开.dfm fies以及.pas文件,并且可以正确看到翻译的字符。
当我在Delphi中打开这些文件(作为dpr文件)时,我看到这样的内容:
请有人告诉我如何在Delphi中正确转换/显示这些字符串。 我正在使用马其顿的区域设置,但是这个问题对我没有帮助。
PS:是的,我仍在使用Delphi 7,因为我喜欢它/购买了此版本。
更新
Delphi中的原始文本: 原文:ПОГГОТÐ'Ð〜 >
更正文字: ПОДГОТВИКУТИИЗАДРУГИТЕЦЕНТРАЛИ
我注意到,当我将ParentFont属性更改为false并将字体设置为Verdana和Cyrillic(RUSSIAN_CHARSET)时,然后我复制/粘贴了西里尔字母,它通常在Delphi中显示
答案 0 :(得分:2)
确定,所以我已解决了!
解决方案是第一步,需要Notepad ++:
第一步:将.dfm中的所有字体替换为(例如)Verdana或某些支持西里尔字母的字体
第二步:将所有state = {
records:{
data:{
location:[]
}
}
替换为render(){
const {records} = this.state;
return{
<div>
{records.data.location.map(l => l.deviceId)} // and so on
</div>
}
}
第三步:在记事本中选择:编码-> 转换为ANSI
仅此而已,对所有.dfm和.pas文件执行此操作(仅第3步)
我很高兴不听戴维·赫弗南(David Heffernan)并没有放弃!
答案 1 :(得分:0)
您的文本文件是UTF-8编码的,而Delphi7需要WinAnsi编码,西里尔字母的代码页为1251。
如果愿意,您可以在System.pas中使用UTF8Decode()
函数以编程方式进行转换。