【问题标题】:Localization Resources .NET - how to keep them synchronized?本地化资源 .NET - 如何使它们保持同步?
【发布时间】:2011-07-08 04:26:17
【问题描述】:

当我们遵循本地化指南时,我们最终会得到至少几个资源文件。

Resource.resxResource.CI.resx 这是一个特定的 CultureInfo 资源。 假设我们在Resource.resx 中添加了一百个字符串对,并希望将这些键翻译到另一个资源中。我们现在可以复制粘贴它们并翻译它们,它可能会在第一次工作。

但是,在我们翻译字符串之后,很难保持文件同步 - 它会自动重新排序字符串,我目前不明白确保每个字符串都本地化的假定方法是什么。

由于资源字符串应该是相互链接的,并且需要完成额外的工作以确保正确构建附属程序集,我希望有一个功能,例如“确保每个资源字符串都存在于本地化资源文件中' 但我担心缺少一个..

【问题讨论】:

    标签: c# .net silverlight resources localization


    【解决方案1】:

    RESX Synchroniser 可能会满足您的需求

    当您编辑 .NET 资源文件时 在 Visual Studio 中,手动和 使用“生成本地资源” 命令,IDE 只更新 文化不变的资源:如果你 有一个名为的资源文件 Messages.aspx,其他中的文件 语言,比如 Messages.it-IT.resx, 没有更新,你必须这样做 手动的。 RESX 同步器将 帮助您保留资源文件 同步,将新密钥添加到 本地化文件,并删除 删除的。保留评论 在这个过程中。

    【讨论】:

    • 看起来很有希望!至少描述。然而,它已经有 3 年没有得到支持了——你认为我们可以依赖它吗?
    • 我不确定,但我认为 vs 处理 resx 的方式在一段时间内没有太大变化,所以为什么不呢
    【解决方案2】:

    我刚刚发现http://zetaresourceeditor.codeplex.com/ 似乎与其他人的想法相似

    【讨论】:

    • 我会选择这个......不是自动化的东西,但可以做到这一点。而且它是免费的。
    【解决方案3】:

    可能是UnitTest可以帮助你吗?你知道,每个控件应该有哪些文本,一旦你创建它们,只需添加新字符串以列出并比较值。经过一次努力,您就可以测试您的本地化是否正确。

    【讨论】:

    • 这个解决方案对我来说听起来像是很多重复的代码。不能说单元测试资源文件对我来说是个好计划。
    • 让我们等待最佳解决方案!
    • 恕我直言,.net 提供的本地化开箱即用并不是那么好。如果本地化很重要,我建议寻找替代方案...
    • 我猜你是对的。然而,应用程序相当容易 atm 并且我相信开箱即用的本地化可以完成这项工作。
    【解决方案4】:

    这个讨论有点老了,但仍然很有趣。看看ResXManager

    【讨论】:

      【解决方案5】:

      我知道这已经得到了传统的答案,但我也想提出一些完全原创的东西,我们自己尝试(并成功)了,以更有效地对 Silverlight 进行本地化:

      Localisation of Silverlight projects after completion

      (Resx 太“上个世纪”了)

      【讨论】:

        【解决方案6】:

        我建议您使用该 Winform 的 Resx 文件以编程方式创建特定于文化的资源文件。 您可以创建一个可以不时运行的小应用程序。

        为每种文化创建 XML 类型的文件,例如 fr.XML,用项目中所有字符串的 Union 填充该文件。并在其中提供翻译本身,例如,法语文件可能如下所示。

        < wordTranslation>
        < Word>Hello< /Word>
        < Translation>Bonjour< /Translation>
        < /wordTranslation>
        

        创建一个哈希表或一些最适合作为每种文化的字典的数据结构,用来自文化特定 XMl 文件(如 frDictionary)的数据填充它。

        对于项目中的每个 Resx 文件(例如 wind1.resx),创建一个特定于文化的文件,例如 wind1.fr.resx。 从 wind1.resx 中读取单词,从 frDictionayry 中找到单词的翻译。 将其写入 wind1.fr.resx。

        您可以在 XML 文件中不断更新您的翻译。 所以这是一次性的努力。 通过这种方式,您可以保持同步且易于维护。

        【讨论】:

          【解决方案7】:

          您的意思是在这些文件之间同步翻译?使用http://www.getlocalization.com 并将两者都作为主文件上传,当它们被翻译时,翻译会填充到您的所有文件中。

          【讨论】:

            【解决方案8】:

            我想你可以试试Amanuens。它由 RESX Synchronizer 的同一作者开发,除了帮助保持资源文件同步(如果您设置它,甚至自动进入您的存储库),还可用于让您的翻译人员访问要在非常强大且易于使用的网络中翻译的字符串编辑。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2018-03-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-03
              • 2010-12-31
              相关资源
              最近更新 更多