2008-10-13 53 views

回答

2

您可以使用Simple Resx Editor,它有一些有趣的功能,可以帮助您进入翻译过程。

3

您可以使用Resx Editor,一个小型的面向翻译的文件编辑器。

  • 目标受众:translators。
  • 支持的文件格式:Microsoft的RESX 2.0

这里是JOANNES Vermoel的(免费工具的作者)weblog entry关于它的链接。

+0

@takrl谢谢,该项目显然是移动到这个链接http://resx.sourceforge。净/(我更新了答案) – splattne 2013-04-17 09:11:48

1

即使它是直观的,翻译exe文件比资源文件更好。了解为什么在这里:

http://www.apptranslator.com/misconceptions.html

+0

好主意,你知道任何类似ASP.NET资源文件的应用程序吗? – 2010-07-07 14:21:53

0

你可以使用winres.exe来自微软,它可以让您本地化Windows窗体,而无需使用Visual Studio。它不会将资源保存到文本文件,但想法是每种文化的本地化专家都可以使用该工具生成应用程序的本地化版本。

这里有一个更好的解释: http://msdn.microsoft.com/en-us/library/8bxdx003(VS.80).aspx

1

你可能想看看Excel Resource Transfer。它是 用于Microsoft Excel的加载项从资源文件导入和导出文本。 有一个试用版。完整版费用为25欧元。

1

最后我只是用一个快速的黑客:

public class Export 
{ 
    public string Run() 
    { 
     var resources = new StringBuilder(); 

     var assembly = Assembly.GetExecutingAssembly(); 
     var types = from t in assembly.GetTypes() 
        where t != typeof(Export) 
        select t; 
     foreach (Type t in types) 
     { 
      resources.AppendLine(t.Name); 
      resources.AppendLine("Key, Value"); 
      var props = from p in t.GetProperties() 
         where !p.CanWrite && p.Name != "ResourceManager" 
         select p; 
      foreach (PropertyInfo p in props) 
      { 
       resources.AppendFormat("\"{0}\",\"{1}\"\n", p.Name, p.GetValue(null)); 
      } 

      resources.AppendLine(); 
     } 
     return resources.ToString(); 
    } 
} 

将此代码添加到其中包含your.resx文件的项目(我是在一个单独的“语言”项目),然后使用下面的代码将结果保存为.csv,以便可以使用电子表格编辑器加载。

var hack = new Languages.Export(); 
var resourcesSummary = hack.Run(); 
var cultureName = System.Threading.Thread.CurrentThread.CurrentCulture.Name; 
using (TextWriter file = File.CreateText(@"C:\resources." + cultureName + ".csv")) 
{ 
    file.Write(resourcesSummary); 
} 

这不允许你从该.csv文件导入回到您的.resx文件,以便它们可以被编译。如果有一个能够做到这一点的实用工具将会很好。

+1

这是真正的答案。 – aliopi 2015-10-06 14:05:13

0

如果您正在为Web项目执行此操作,则更好的国际化(包括翻译)方法是使用i18n nuget package。不仅可以更好地使用模板,还可以使用其他好玩的内容,例如本地化的网址。

下面是来自GitHub库的例子:

<div id="content"> 
    <h2>[[[Welcome to my web app!]]]</h2> 
    <h3><span>[[[Amazing slogan here]]]</span></h3> 
    <p>[[[Ad copy that would make Hiten Shah fall off his chair!]]]</p> 
    <span class="button" title="[[[Click to see plans and pricing]]]"> 
     <a href="@Url.Action("Plans", "Home", new { area = "" })"> 
      <strong>[[[SEE PLANS & PRICING]]]</strong> 
      <span>[[[Free unicorn with all plans!]]]</span> 
     </a> 
    </span> 
</div> 

运行后生成任务生成可提供给使用PO编辑工具译员PO数据库(如POEdit)提供特定语言环境的文本。