如何更新程序中的语言字符串是最新的? 有便宜的方式吗?在哪里可以找到人们随时间进行转换?
答案 0 :(得分:2)
摘录自Joel的最佳软件写作I:http://blogs.msdn.com/ericlippert/archive/2003/10/28/53298.aspx(微软员工需要多少才能更换灯泡?),并在高层次上讨论了简单的变更有多大的影响。如果您认为MS有许多国际化应用程序,这是他们用来确保他们的应用程序保持最新的一千个因素的过程,包括新的/修改过的字符串不会错过其他语言。
对于翻译需求(这个领域我有一点知识!),我会推荐OmniLingua Worldwide。
答案 1 :(得分:1)
有些公司会以标准格式翻译资源文件以收取费用;我认为这是大多数大公司的做法。
最近我问了一个类似的问题here关于在项目中构建代码的最佳方法来支持这个问题,我希望在代码中保留可读字符串。这不是标准的,但是......通常你会把所有的字符串资源放到一个单独的文件中,并在代码中通过ID引用它们,然后翻译文件。
请参阅Windows C ++的.rc文件,.NET的.resx文件,不确定Linux / Mac /其他的存在,但我确定有等价物。
答案 2 :(得分:1)
我认为这取决于你想要语言的可访问性,这可能在很大程度上取决于项目的初衷(专业,爱好等)
在我的爱好工作中,我将特定于语言环境的字符串存储在一个简单的外部JSON文件中(XML甚至简单的INI也能正常工作,任何可以为您提供键值对的东西)。这样做的好处是跨平台,易于编辑,并且(如果需要)允许任何有知识和决心的人将您的应用翻译成他们选择的语言。对于开源项目等,这可能是非常宝贵的。
对于您可能不希望翻译的项目,那么嵌入式资源可能是一个更安全的选择,因为它们对于开发人员来说相当容易交换,但至少给潜在的翻译者留下了一个微不足道的障碍。但即使在这种情况下,存储方法也不需要复杂。任何给定的文件类型或本机字符串表都可以。
答案 3 :(得分:1)
在我参与过的项目中,我们采用了两种不同的本地化方法,具体取决于项目的规模。对于每个开发人员“拥有”一个组件的小型项目,开发人员有责任维护需要翻译的内容列表以及哪些语言。
对于较大的项目,我们使用语言前缀标记每个字符串。例如,德语字符串“是”标记为“[de]是”。本地化后,字符串被“Ja”替换。通过前缀搜索,可以轻松找到遗漏的内容。
至于其他商业来源,我最近在Net-Translators和BMT与{{3}}进行了不同的工作。
答案 4 :(得分:1)
我强烈建议您查看西风db resource provider。
我管理一个开源项目管理Web应用程序(http://sharpforge.org/p/SharpForge.aspx)并且最初使用了resx文件。以下是我遇到的问题
我能够将db提供程序作为应用程序的一部分来实现。它附带一个编辑器,您可以让翻译人员访问。他们的翻译直接进入应用程序,没有双重处理,并在应用程序重新启动后立即可用。它还能够创建强类型对象以从任何层访问提供程序。
安装完成后,我只需在getafreelancer上创建一个翻译项目,并在大约2周内完成了我的应用程序的25个翻译。全部约为50-100美元。
如果您对如何实施它有任何疑问,请与sharpforge forums联系。