![]() |
1
33
以后的一切都太晚了。要么现在,要么永远! 的确,现在做好准备需要付出额外的努力,但如果不这样做,成本会高很多。 如果你不愿意遵循下面链接中的所有指导原则,那么至少要注意总结中的第1、2和7点,这三点现在做起来非常便宜,而且在我的经验中,这会给我带来最大的痛苦。 检查这些指导方针,亲自看看为什么现在就开始,做好一切准备更好。
|
![]() |
2
4
IMHO,声称“几年内”会发生一些事情,字面意思是“我们希望有一天”,意思是“永远不会”。虽然我仍然会浏览各种教程,以确保您不会犯任何可怕的错误。现在进行正确的国际化支持将意味着未来的工作量会减少,而且一旦您习惯了它,它将不会对今天的生产力产生任何实际影响。但是如果你能用几年的时间来衡量这个目标,也许现在根本不值得去做。
您应该将所有文本(标签、按钮文本等)作为数据存储在数据库中。使用键引用这些内容(我更喜欢使用前4个单词,大写,空格转换为下划线和非字母数字),如果有重复的内容,则在末尾附加一个数字。这种键方法的好处是程序员只需查看键就可以对文本的内容有很强的理解。 编写一个实用程序来提取数据并生成.NET资源文件,将其添加到项目中进行编译。为每种语言创建一个单独的资源文件。在代码中,使用键指向正确的条目。 http://www.microsoft.com/globaldev/getwr/dotneti18n.mspx 要避免的一些基本事项:
|
![]() |
3
2
|
![]() |
4
1
一些问题 关于
如果你不能很快从英文版本中获得现金流,你还会交易吗? 迅速地 从一些客户那里得到了什么? 在国际化UI之前,您多久重写一次UI?
国际化的痛苦很大一部分是确保你不破坏英文版本,那么UI的自动化系统测试是更好的投资吗? 我认为我将永远做的唯一一件事是: 如果你这样做了,不要把构建一个字符串的代码分散到很多方法上。
我刚刚开始国际化一个WinForms应用程序,我们希望能够使用每个控件的名称作为查找键,而不必将大量内容移动到资源文件中等。这并不总是像您最初想象的那样困难。 |
![]() |
5
1
您可以使用NGettext.Wpf(它可以从NuGet安装,是的,我是作者,但我是在其他答案中列出的挫折中完成的)。 它是在今天举行的 github repository Wpf旨在使用依赖项注入。您需要在应用程序的入口点调用以下命令:
这个
现在,您可以在XAML中执行以下操作:
它演示了此库的两个功能。最重要的是Gettext标记扩展,它将确保
Preparing Strings 从gettext实用程序手册。 |
![]() |
6
0
国际化将使您的产品在其他国家可用,这很容易,而且应该从一开始就做到(这样全世界讲英语的人都可以使用您的软件),这三条规则将让您在实现这一目标的过程中发挥最大的作用:
本地化就是将软件翻译成不同的语言,这既困难又昂贵,一个好的开始就是不要硬编码字符串,也不要用较小的字符串造句。 |
![]() |
7
0
如果使用测试数据,请使用非英语字符串(例如:俄语、波兰语、挪威语等)。
我个人喜欢俄语,因为尽管我一个字都不会说俄语(尽管我的名字来源于俄语),但俄语中有外来字符,而且比英语占用更多的空间,因此也测试了你的间距。
|
![]() |
Guilherme Santana · Angular翻译服务有时不起作用 10 月前 |
![]() |
Viktor Sec · 如何自动将字符串添加到Xcode字符串目录? 10 月前 |
![]() |
EleXorZ · 更改了国家/地区,但url中没有翻译[已关闭] 1 年前 |