我最近要求(并支付)我的Delphi应用程序的翻译,以支持马其顿语(西里尔文字体)。我把要翻译的文字贴给我的签约翻译,她给我发回翻译后的字符串。文本是从我所有的.dfm和.pas文件中提取出来的
当我用西里尔文翻译替换原始文本时,我可以在我最喜欢的Notepad++ (或记事本)中打开.dfm fies和.pas文件,并且我可以正确地看到翻译后的字符。
当我在Delphi中打开这些文件(作为dpr文件)时,我看到如下所示:
请告诉我如何在Delphi中正确转换/显示这些字符串。我使用的是马其顿的区域设置,但这对我解决这个问题没有帮助。
PS:是的,我仍然在使用Delphi 7,因为我喜欢它/购买了这个版本。
更新
ЦзÐТРÐÐ>И原文: original:-Ÿ-ž-“-”-ž-,-‘-˜-š-·,-˜-˜-“-·”-˜-·Delphi
正确的文本:ПОДГОТВИКУТИИЗАДРУГИТЕЦЕНТРАЛИ
我注意到,当我将ParentFont属性更改为false并将字体设置为Verdana和Cyrillic (RUSSIAN_CHARSET)时,然后复制/粘贴cyrillic文本,它在Delphi中正常显示
发布于 2019-06-14 02:48:33
好了,我用解决了这个问题!
解决方案是多步式的,需要使用Notepad++:
第一步:将.dfm中的所有字体替换为(例如)宋体或支持西里尔文的字体
第二步:将所有ParentFont = False
替换为ParentFont = True
第三步: In notepad++ Choose: Encoding -> Convert to ANSI
这就是全部,对所有的.dfm和.pas文件做这件事(只有第三步)
我很高兴没有听大卫·赫弗南的话,也没有放弃!
发布于 2019-06-14 16:16:05
您的文本文件是UTF8编码的,而Delphi7需要WinAnsi编码,代码页1251表示西里尔字符。
如果愿意,您可以在System.pas中使用UTF8Decode()
函数以编程方式进行转换。
https://stackoverflow.com/questions/56585348
复制相似问题