.NET中的外部翻译

时间:2011-01-19 08:16:42

标签: c# .net localization

早上好,

我有兴趣开发一个支持外部GUI翻译文件的应用程序,以便用户根据需要添加。我想过使用.NET内置的本地化方法,但我认为这样我就无法在构建应用程序之后分发带有翻译的孤立文件(可以吗?)。

在C#中使用外部文件实现本地化的更好方法是什么?

非常感谢。

3 个答案:

答案 0 :(得分:6)

我见过很多人为.net实现自己的本地化系统,但就个人而言,我会留在内置的结构中。

现在,您可以添加其他.resx文件,然后重新编译应用程序。但我想这不是你想要的?

或者您可以实现自己的资源提供程序,例如从数据库中获取所有本地化字符串。

例:
http://msdn.microsoft.com/en-us/library/aa905797.aspx#exaspnet20rpm_topic4

答案 1 :(得分:3)

您可以毫无问题地使用.NET本地化。

在您成功本地化yopur应用程序文件后,在您的应用程序文件夹中将包含用于本地化版本的程序集资源的子文件夹。因此,在将新语言添加到本地化后,您可以从新添加的本地化文件夹中将这些新DLL分发给您的castomers。

干杯;)

答案 2 :(得分:1)

如果您以后不想重新编译文件,可以使用以下内容。

  1. 使用相同的键和不同位置的不同值创建多个xml文件。或者制作一个大文件。将该文件的路径保存在应用程序设置中(或在构建期间嵌入)
  2. 使用表单上的默认语言(对于e,英语)构建应用程序
  3. 在启动(或首次启动)时,要求用户指定要使用的语言。
  4. 在构造函数中的每个窗体/窗口上(在调用InitializeComponent()之后)使用XML中的值替换窗体上的文本。

  5. 示例xml:

    <doc>
      <loc name="English">
        <form name = "main">
          <okButton>OK</okButton>
          ....
        </form>
        <form name = "about">
          <lblAuthorName>Author's name: </lblAuthorName>
          ....
        </form>
      </loc>
      <loc name="Ukrainian">
        <form name = "main">
          <okButton>Добре</okButton>
          ....
        </form>
      </loc>
    
    </doc>