我正在编写的应用程序几乎已经完成,我希望使用不同语言的人使用它.
我不知道从哪里开始,全球化和文化在编程方面的区别是什么?
如何采用不常见的短语,例如"此应用程序是为了这样做而构建的"而不是文件,打开,保存等...并将它们变成说,西班牙语?
非常感谢 :-)
微软已经有了一个非常好的教程
你有不同的事情可以做一个"全球化"的应用程序.
1)翻译申请表格和控件中的每个标签
您需要在每个表单和控件上将属性"Localizable"设置为true.此属性允许在每种语言和区域中创建资源文件.现在,使用"语言"属性,您可以选择要支持的语言.在组合框列表中选择语言时,表单(或控件)将自动切换为该语言.现在,翻译控件中的每个单词都是你的工作.只要进行修改,Visual Studio就会为特定语言创建资源文件.(例如,法国 - 法国的MyForm.fr-FR.resx).
2)将代码中的每个硬编码字符串导入resx文件
创建一个资源文件(personnally,我使用StringTable.resx)并添加每个字符串以在此文件中进行翻译.之后,为要支持的每种语言创建资源文件,并在每个文件中翻译字符串.例如,如果要支持法语,可以为法语 - 法语创建StringTable.fr.resx或StringTable.fr-FR.resx.使用ResourceManager类,您可以加载每个字符串.
注意: 如果您使用的是Visual Studio 2005或2008,则您已经创建了默认的资源文件.
3)你需要明智地详细说明你的表格和控制
Microsoft指南:Microsoft指南
4)处理日期和数字
如果您的应用程序创建了可以发送给其他区域中其他用户的数据文件,则需要在将数据保存到文件中时进行考虑.因此,请始终以UTC格式存储日期时间,并仅在加载信息时在本地进行转换.同样的事情适用于十进制数,特别是如果它们存储在文本中.
当您编译应用程序时,Visual Studion将在子文件夹fr中创建类似MyApplication.fr.dll的卫星文件.要加载此dll,您需要在应用程序启动时切换当前线程的语言.
这里的代码:
CultureInfo ci = new CultureInfo("fr"); Thread.CurrentThread.CurrentUICulture = ci;