从源代码,aspx,xaml中提取可本地化的字符串到资源文件

gsk*_*gsk 4 asp.net globalization resharper localization

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

我有以下选项:

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

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

小智 7

两种方法都有利有弊,让我们讨论一下.

FairlyLocal

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

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

第二,字符串提取FairlyLocal本身已经得到了解决. 第三,字符串的翻译可以在内部完成或外包,因为PO文件广为人知linguists.第四,渲染几个UTF-8字符(如果有的话)的依赖于网络字体{EOT( trident),SVG(,,)}.第五,需要维护语言环境(如).第六,有几个转换器可用于PO文件.第七,默认逻辑将回退到该值的default-locale(en-US)资源.问题,构建脚本生成的.po文件默认不是UTF8.如果希望翻译文本正确显示特殊字符,则需要在POEdit(或类似文件)中打开它们并在第一次编辑时显式更改编码.webkitgeckoprestopa-IN languageCode-countryCode

MS本地化

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

resgen /compile examplestrings.xx.resx,examplestrings.xx.txt
Run Code Online (Sandbox Code Playgroud)

第三,.NET中的本地化(不是特定于ASP.NET Proper或ASP.NET MVC)实现了标准的回退机制.第四,不依赖GNU Gettext Utils.第五,可以从实现本地化Strings到Dates,Currency等.使用的CurrentUICulture和的CurrentCulture.第六,这里也建议使用webfonts.

谢谢.