c# - 如何在.net(C#/ ASP.Net)开发中使用xliff或po l10n文件格式

原文 标签 c# localization po

我一直在研究xliff和po i18n文件格式,它们似乎被广泛使用和支持。有很多免费工具来管理xliff/po文件中的翻译。
但是,到目前为止,我还没有找到一个很好的解决方案来解决如何在.net(c/asp.net)项目中使用xliff或po文件的问题。我希望有某种转换器,但到目前为止还没有找到。
但同时,许多工具确实支持将xliff/po文件转换为java.properties格式。
如果您有在.NET项目中通过XLIFF或PO文件实现L10N的经验,请提供建议并分享其工作原理的最佳实践。
注:我更喜欢使用xliff格式,因为我发现它更干净,功能更广泛,但po也是一个选择。

最佳答案

po和xliff文件的工作方式通常不同:
po文件是以二进制格式编译的资源文件,然后使用getText()库访问。有时po被用作像xliff这样的提取格式,但这不是它的原始目的。
xliff是通过将资源文件(例如resx)提取到xliff中,然后合并回原始格式而创建的提取文件。
因此,对于xliff,您应该寻找一个执行resx -> xliff -> resx而不是xlif -> resx的工具。
提取/合并xliff文件的工具通常称为过滤器。有很多商业翻译工具可以接受xliff,也有一些可以创建xliff(剑鱼,trados工作室等)。
还有一些开源工具可以提取/合并xliff:file2xliff4j(但我不认为它支持resx)。
来自okapi项目的rainbow确实支持resx。“旧的”.net版本(sourceforge上的rainbow 5:okapi)有一个专门用于resx文件的过滤器,可以很好地处理它们;即使是二进制数据。但是,它可能会遇到第三方控件的问题(有关详细信息,请参见http://okapi.sourceforge.net/Release/Filters/Help/netres.htm)。
新的java版本(rainbow 6:http://code.google.com/p/okapi/)通过其xml过滤器支持resx,并且可以很好地处理简单的resx,但是如果其中包含二进制数据,则不会提取这些条目中的文本。
-伊斯

相关文章:

c# - C#要在类中使用泛型类型委托也具有泛型

c# - 使用protobuf-net将自定义类序列化为原始类型

javascript - 将Google Maps API v3地区设置为加拿大

php - CakePHP 1.3.18升级和语言环境/翻译问题

php - 使用POEdit - 仅搜索特定域中的字符串

c# - Google Translate V2无法处理来自C#的大型文本翻译

c# - 如何增加表到达的数量?

ios - 如何让Xcode 6生成的XLIFF文件导入回Xcode - 重命名是不够的

ios - 如何在iOS项目中存储本地化的字符串?

java - 是否有用于解析gettext PO文件的Java库? [关闭]