【问题标题】:C#: Resource file refactoringC#:资源文件重构
【发布时间】:2009-06-05 13:05:24
【问题描述】:

有人知道在 Visual Studio 2008 解决方案中重构资源的好工具吗?

在用于本地化我们的应用程序的程序集中,我们有许多带有翻译文本的资源文件。但是它们变得有点混乱......我想重命名一些键,并将其中一些移动到其他资源文件中。我希望在我的代码中完成这些更改,以及资源文件的翻译版本。也许对翻译版本中缺少哪些字符串,以及从原始版本中删除了哪些字符串进行了一些分析......

有没有人知道可以帮助我解决这个问题的好的 Visual Studio 扩展或 ReSharper 插件?现在有点痛苦,因为我必须首先在基础资源文件中重命名密钥,然后在本地化版本中。然后编译以获取由现在具有不同名称的密钥导致的所有编译错误,然后通过并修复它们......非常烦人=/

【问题讨论】:

  • 我快速浏览了safedevelop.com/Products/RGreatEx,它似乎声称可以做大部分这些事情,但它不能正常工作。将字符串移动到资源文件后使 ReSharper 崩溃,甚至没有出现重命名对话框。不确定它是否能够将资源从一个文件移动到另一个文件......

标签: c# visual-studio-2008 localization resx


【解决方案1】:

我只是偶然发现了这个问题,这促使我在博客上写了我在 Moving and renaming resource keys in a .resx file 处使用什么来解决这个问题。

我有两个 PowerShell 脚本,一个重命名资源键,另一个将资源键从一个资源文件移动到另一个。

使用这些脚本我可以重命名资源键:

.\RenameResource.ps1 oldKey newKey

我可以将带有键“keyName”的资源从名为“ResourceFile1.resx”的文件移动到“ResourceFile2.resx”:

.\MoveResource.ps1 ResourceFile1 ResourceFile2 keyName

【讨论】:

    【解决方案2】:

    RGreatEx 适用于需要将代码中的大量字符串移动到资源中的情况。但在这种情况下,它无济于事。
    没有这样的插件(*这意味着我从未见过这样的插件,也没有在 google 中找到,但是有一些本地化工具可以帮助翻译成新的语言 - http://www.peoplewords.com/download/ResxEditor.aspxhttp://sourceforge.net/projects/resx/http://www.resx-localization-studio.net/ 和 @ 987654324@)。但是你很容易(可能)可以在没有它的情况下做到这一点。
    您所需要的只是编写一些小工具,该工具将为几个选定的 resx 文件生成选定语言的通用字符串字典并将其存储在某处。您需要创建的另一个工具是一个工具,该工具将使用更改的 resx 作为模板并使用以前的工具生成的字典来生成新的 resx 文件(在您更改之后)。
    当然,所有新的和更改的字符串都会丢失,但这可以手动修复。这不会花费太多时间(尤其是当您将添加功能以在生成新 resx 期间写入丢失字符串的日志时)。

    【讨论】:

      【解决方案3】:

      我们正在研究 Sisulizer 以本地化我们的软件,我认为它可以满足您的要求(也许有点矫枉过正?)

      【讨论】:

        【解决方案4】:

        似乎是 ReSharper 5 中的一些新功能对此有所帮助

        Localizing your Applications with ReSharper 5

        此演示展示了 ReSharper 5 如何帮助您在不破坏常规工作流程的情况下快速本地化代码中的字符串。使用 ReSharper 5 处理资源文件不再是开发人员的噩梦。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多