c#国际化文本资源

时间:2013-09-01 17:01:52

标签: c# .net internationalization globalization

我正在构建一个可以支持多种语言的c#windows窗体应用程序。为了存储所有字符串资源,我为每种文化使用.resx个文件。我设法使应用程序工作,但我前段时间读过,资源字符串也可以存储在文本文件中。您是否会如此友好地向我解释如何在文本文件中编写字符串以及如何为每种文化加载每个文本文件?感谢。

PS:我是初学者,请耐心等待。

3 个答案:

答案 0 :(得分:0)

在resx文件中,您将获得添加文件的选项(从左上角菜单),在那里您可以添加解决方案中的文本文件,这些文件将在构建期间添加到resx,现在您可以在解决方案中更改文本文件并在构建时更改将成为resx的一部分。

我在同一个resx中使用了每个文化的过去一个文件,一旦app知道了我正在从resx加载相应的文本文件的文化。

在文本文件中,我有“key:value”,我正在准备字典并缓存它,这在我的简单/小文化特定文本要求中更容易使用。

请参阅http://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.90).aspx

答案 1 :(得分:0)

您可以将文本文件用作新闻Win 8 Apps的资源。不确定这是否适用于其他平台:

http://msdn.microsoft.com/en-us/library/xbx3z216.aspx

答案 2 :(得分:0)

发现它!

http://www.cnblogs.com/anorthwolf/archive/2010/08/23/1806686.html

static public string GetStringRegistryValue(string key, string defaultValue)
{
    RegistryKey rkCompany;
    RegistryKey rkApplication;
    rkCompany = Registry.CurrentUser.OpenSubKey(SOFTWARE_KEY, 
                false).OpenSubKey(COMPANY_NAME, false);
    if( rkCompany != null )
    {
        rkApplication = rkCompany.OpenSubKey(APPLICATION_NAME, true);
        if( rkApplication != null )
        {
            foreach(string sKey in rkApplication.GetValueNames())
            {
                if( sKey == key )
                {
                return (string)rkApplication.GetValue(sKey);
                }
            }
        }
    }
    return defaultValue;
}