【问题标题】:Automated MVC App Localization自动化 MVC 应用程序本地化
【发布时间】:2010-08-24 10:18:46
【问题描述】:

我工作的公司去年构建了一个大型 ASP.NET MVC 应用程序,但它一开始并不准备支持本地化,因为该应用程序的主要目标是为葡萄牙客户提供服务。但随着应用程序所占的比例越来越大,要求它应该支持其他语言,例如英语。 我被要求为其实施本地化。我对如何添加资源文件进行了一些研究。但我需要一种自动本地化,也许是一种为每个视图自动生成资源文件的方法,获取需要本地化的内容。我已经用应用程序中的每个字符串及其所需语言的翻译制作了一个 excel 文件。 我该怎么办?

【问题讨论】:

    标签: asp.net-mvc localization


    【解决方案1】:

    可以将您现在在 Excel 中遇到的问题导出为适当的 .resx 文件。有很多方法可以做到这一点,具体取决于您的 Excel 版本。如果您需要(更多)体力劳动,您可以在 Visual Studio 中创建所需的.resx 文件并进行一些复制和粘贴。

    从视图自动生成.resx 文件需要某种工具。有一些 Visual Studio 插件可以为你做这件事; Resource Refactoring Tool 就是其中之一(我认为 ReSharper 也有类似的功能)。自动将文本提取到资源中有点不切实际,并且会导致资源键自动生成且不太容易理解。手动执行此操作将产生最佳结果。

    当您将文本片段提取到资源中时,我建议您将所有 .resx 文件放入单独的程序集中,以便资源文本可以在多个程序集中、错误消息、异常等中使用。这需要它们当然是全球性的。

    【讨论】:

    • 好吧,我不得不将字符串复制到一个 excel 文件中,因为有些翻译是由客户自己进行的,因为他想为它们添加一些不同语言的上下文。该文件会在实际翻译给我们之前发送给他们。
    • 我明白了。由于.resx 文件和 Excel 都有类似电子表格的编辑界面,您实际上可以从 Excel 中选择要复制的行并将它们粘贴到 Visual Studio 中的资源编辑器中。您唯一需要确保的是 Excel 中的数据不超过 3 列(“名称”、“值”和“评论”)。
    • 我觉得这已经是一个非常痛苦的任务了......好吧,从应用程序复制2400个字符串到excel文件已经够痛苦了,但是地狱来了!感谢您的建议。
    • 只要确保 Excel 电子表格有 3 列与资源编辑器中的 3 列匹配,只需创建 .resx 文件,在 Excel 中选择要复制的行,复制它们,然后将它们粘贴到资源编辑器中。虽然 2400 个资源字符串很多,但我预计 Excel 到 resx 的复制比应用程序到 Excel 的工作量要少得多。祝你好运! :)
    【解决方案2】:

    我认为this tool 可以帮助您。好像还有一个,但是page目前处于离线状态。

    【讨论】:

    • 你们两个给我的工具都很好,但它们只适用于控制器。我的主要问题是观点。你对此有什么建议吗?
    • 我认为 ReSharper 的资源提取支持从任何类型的文件中提取。它需要花钱,但它是一个巨大的工具,它不仅可以帮助我们提取资源:jetbrains.com/resharper/features/…