|
|
1
3
如果这种方法是突出显示应用程序中的格式化字符串(或格式序列)(即XXXX以外的所有文本),您可以定位转义序列(可能使用正则表达式),并在格式化(替换)值周围插入块引号,
您可以获得可读性(XXX的所有字符串可能很难使用应用程序),还可以检测非资源(硬编码)字符串。
话虽如此,如果你想检测非资源加载的字符串(硬编码字符串),而不是替换Xs,为什么不直接在字符串前加前缀呢?您将能够轻松区分资源加载的字符串和硬编码的字符串,
希望有帮助? |
|
|
2
1
伪定位特征 appTranslator 它可以帮助你:它修改未翻译的字符串以使用变音符号、文本加宽或缩短等。到目前为止,你还不感兴趣。有趣的是,它可以选择将这些字符串括在括号中。这个想法是为了更明显地表明字符串是伪本地化的。您可以使用它来检测字符串实际上来自字符串表而不是代码。 当然,由于伪本地化程序必须正常运行,appTranslator会保留所有格式化程序(包括类似printf和FormatMessage的格式化程序)和特殊字符,如%或\n。这正是您要查找的。 你甚至不必修改你的代码:只需创建一个“虚拟”翻译。我所说的“虚拟”是指一种你不打算将你的应用程序翻译成的语言。将应用程序的语言首选项设置为该语言。 等等,这甚至更好:QA的人可以完全靠自己完成。他们甚至不必打扰你! :-) 免责声明:我是appTranslator的作者。 编辑:回复您的评论: 很高兴看到你已经在使用appTranslator了。 为了避免由于L10N DLL中没有的对话框或字符串引起的问题,您可以简单地重新构建DLL(例如,在VS项目中使用后链接步骤)。该过程会自动重新扫描源exe,并在构建的资源dll中合并新的和修改的文本(不影响appTranslator项目文件,而不是“更新源”)。这有助于确保资源DLL始终与exe同步。 |
|
|
3
0
您可以在此处应用编译器理论,并使用以下命令生成扫描程序和解析器 flex/bison (lex/yacc或任何工具)。您可以将\w+定义为单词,它可以匹配“Hello”和“World”等。。 |
|
|
4
0
如果你的软件支持区域设置,我认为你需要的是XXXX区域设置。 您用英语开发它,然后切换到XXXX语言环境以确保所有内容都是可翻译的。 |
|
|
5
0
我的最终解决方案是在字符串前加上前缀,如“*[资源实例名称]原始字符串”。它运行得很好,它显示了可能不适合德语的字符串。 例子: 来自appess.dll的原始字符串,“我的应用程序” 来自appess.dll的新字符串,“*[appes]我的应用程序”。 谢谢你的建议。 |
|
|
6
0
我更喜欢我在微软时使用的伪本地化机制,即在每个本地化资源周围加上括号。资源=>例如,[-资源-]。然后,你总是可以看出你有一个组合字符串,除非有换行规则,否则格式通常不会改变。 我们通常还会进行一些字符串扩展(在原始字符串周围添加各种字符),以及一些基于字典或随机化的字符替换(将“o”转换为“”)。 一些团队还将文字资源标识符(名称)作为本地化资源的值,这对本地化人员比测试人员更有用,因为他们可以看到资源在UI中的实际使用位置。 |