C#本地化
可能重复:C#本地化,c#,localization,internationalization,C#,Localization,Internationalization,可能重复: 有没有人能分享一下大型C 35;应用程序的本地化步骤 我非常确信,在谈论中小型项目时,基本的基于资源的策略可能会起作用 然而,如果我们谈论大型产品,这种方法应该与定制构建步骤以及语言学家专门使用的一些第三方应用程序相结合 因此,您能否建议/分享一些在您的应用程序中使用的全球本地化策略(显然,足够大:) 谢谢。即使在大型企业应用程序中,基于资源的基本策略也有效。这是一个内置的、易于理解的解决方案,因此每个程序员都可以毫无问题地使用它 唯一的问题是,您需要以某种方式将资源文件转换为翻译
有没有人能分享一下大型
C 35;
应用程序的本地化步骤
我非常确信,在谈论中小型项目时,基本的基于资源的策略可能会起作用
然而,如果我们谈论大型产品,这种方法应该与定制构建步骤以及语言学家专门使用的一些第三方应用程序相结合
因此,您能否建议/分享一些在您的应用程序中使用的全球本地化策略(显然,足够大:)
谢谢。即使在大型企业应用程序中,基于资源的基本策略也有效。这是一个内置的、易于理解的解决方案,因此每个程序员都可以毫无问题地使用它 唯一的问题是,您需要以某种方式将资源文件转换为翻译内存文件(即tmx)并返回,以便翻译人员可以使用他们的标准工具 所以你需要的实际上是一个本地化过程。对于大型应用程序,它是否有所不同?好吧,如果你设置了正确的流程,它会扩展。现在进入程序。在我看来,应该是这样的:
[项目名称]
.
.
[中立][德语][日语][法语]
.
.
(每个文件夹包含给定语言的可翻译资源,中性语言通常为英语)
当然,您需要以某种方式将代码库转换为文件夹结构,但这可以自动化
除此之外,您可能不需要建立通用术语表并对翻译内容进行语言审查 我认为您可以在很大程度上依赖.NET提供的资源框架,只需进行一些修改,使其更适合大型项目,即独立于应用程序构建和维护资源,并消除按名称引用每个资源的生成属性。如果有其他适合于大型项目本地化的目标,请在下面进行描述,这样我也可以考虑它们。
namespace MyResources
{
public enum StrId
{
Street
....
}
}
namespace MyResources
{
public class Resources
{
static System.Resources.ResourceManager resourceMan =
new System.Resources.ResourceManager("MyResources.Properties.Resources",
typeof(Resources).Assembly);
public static string GetString(StrId name,
System.Globalization.CultureInfo culture = null, params string[] substitutions)
{
if (culture == null) culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
string format = resourceMan.GetString(name.ToString(), culture);
if (format != null)
{
return string.Format(format, substitutions);
}
return name.ToString();
}
}
}
using MyResources;
namespace LocalizationDemo
{
class Program
{
static void Main(string[] args)
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("de-DE");
Console.WriteLine(Resources.GetString(StrId.Street));
}
}
}