4

作为国际化我们基于 asp.net、c#、silverlight、XBAP 的应用程序的一部分,我正在评估开始的方法。我不得不在GNU gettext()(PO 文件)和微软的基于资源(resx) 的方法之间做出选择。所以在这个时刻,我试图了解如果我必须采用 MS 方式,那么自动从 .cs 文件、aspx、ascx、xaml(silverlight)文件中提取可本地化字符串到资源文件(resx)的最佳方法是什么。

我有以下选择:

  1. 资源重构工具,但它会提取所有字符串(无论您是否必须翻译),例如页眉等。我们不能标记或排除特定字符串。或者我们将不得不手动选择每个字符串然后提取(右键单击并单击提取)。
  2. Resharper 的本地化帮助,这里我没有看到自动提取,但我必须手动逐个字符串提取。

我知道必须进行一些手动干预,但任何建议都有助于在 gettext()( gnu gettext() c# 或相当本地化或 MS 本地化方法之间选择正确的方向。

4

1 回答 1

7

两种方法各有优劣,大家一起讨论。

相当本地

( GNU Gettext)首先,需要进行初始调整:

  1. 下载库和工具并在与您的项目相关的某个地方转储
  2. 修改站点的基本页面对象(手动干预)
  3. 向您的 Web 项目添加一个构建后步骤,该步骤将运行 xgettext 并更新您的 .po 文件

其次,字符串提取已FairlyLocal自行处理。 第三,字符串的翻译可以在内部完成或外包,因为 PO 文件已广为人知linguists第四,一些 UTF-8 字符(如果有)的渲染依赖于 webfonts {eot (trident), svg (webkit,gecko,presto)}。第五,需要维护语言环境(如pa-IN languageCode-countryCode)。第六,有几个转换器可用于 PO 文件。第七,默认逻辑将回退到默认语言环境(en-US)资源的值。一个问题默认情况下,构建脚本生成的 .po 文件不是 UTF8。如果您希望翻译的文本正确显示特殊字符,则需要在 POEdit(或类似的)中打开它们并在第一次编辑它们时明确更改编码

质谱本地化

首先,提取字符串非常容易使用Resource Refactoring Tool其次,resgen.exe 命令行工具可用于使 .resx 文件linguists友好。

resgen /compile examplestrings.xx.resx,examplestrings.xx.txt

第三,.NET 内的本地化(不特定于 ASP.NET Proper 或 ASP.NET MVC)实现了标准的回退机制。、不依赖GNU Gettext Utils第五,可以使用 CurrentUICulture 和 CurrentCultureStringstoDates、本地化第六Currency,这里也推荐使用webfonts。

谢谢。

于 2012-12-27T07:34:53.273 回答