【问题标题】:Tips on refactoring existing .net applications to support localization?重构现有 .net 应用程序以支持本地化的提示?
【发布时间】:2010-04-12 19:53:12
【问题描述】:

我们正在走向全球。我的任务是重构我们现有的产品以支持本地化。上周,我避免使用资源文件 (.resx) 来支持自制的数据库查找方法。在遇到了严重的障碍之后,我又回到了微软使用 resx 的方式。

到目前为止,我看到的所有文档都详细说明了如何创建新的“全球通用”应用程序,但我没有看到任何关于更改现有应用程序的内容。我唯一的办法是逐个表单地触摸应用程序并逐个控件使其指向新创建的资源文件吗?

有什么好的资源/链接可以让您的应用国际化吗?

编辑: 我相信这些是 C# winform 应用程序,主要使用 2.0 框架。我是公司的新人。

【问题讨论】:

    标签: .net localization internationalization globalization


    【解决方案1】:

    抱歉,没有很好的资源或链接可用于国际化您的应用程序,但也许将 resource refactoring toollocalization FxCop rule 一起使用可能有助于找到所有要本地化的字符串。 Imo,这条规则太严格了(例如异常文本或日志输出不应该被最终用户阅读),但你的里程可能会有所不同。

    【讨论】:

    • +1 用于重构工具。我希望我在 2 周前手动完成整个网站时也能做到这一点。
    【解决方案2】:

    这将是很多工作,可能比一开始就本地化应用程序要多,因为现在您必须删除/编辑内容,而不仅仅是创建它们。

    即使有一个自动化工具可以提供帮助,您也需要逐一检查每个表单,以确保本地化字符串的格式不会中断(某些语言通常比其他语言长;例如,德语与英语)。对于网络表单应用程序,这应该更容易,但您没有指定应用程序类型,所以我将尝试在这里给出一个中等中立的答案。

    请查看我对 this question 的回答,了解我通过应用程序分发本地化字符串的策略。

    我见过的最大问题是本地化字符串,其中语言语法很重要,代码以编程方式将值注入字符串。尽量避免这些,因为它们只会给你带来痛苦。我记得这里有一个关于本地化字符串的问题,例如“x 天,y 小时,z 分钟”——或者类似的东西。

    我在大多数情况下使用的策略是找到一种方法,尽可能以与区域设置无关的方式显示相同的数据。例如,不是使用带有文本“45 分钟”的单个标签,而是将其重构为将标签与“分钟:”和“45”的值分开。像这样的东西。重构 UI 既是一门艺术又是一门科学,因此如果不知道您正在处理什么、业务领域或用例等,很难给出具体的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 2014-03-26
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多