c#国际化文本资源

本文关键字:资源 文本 国际化 | 更新日期: 2023-09-27 18:29:53

我正在构建一个可以支持多种语言的c#windows窗体应用程序。为了存储所有的字符串资源,我为每个区域性使用.resx文件。我设法使应用程序正常工作,但不久前我在某个地方读到资源字符串也可以存储在文本文件中。你能解释一下字符串应该如何写在文本文件中,以及我应该如何为每个区域性加载每个文本文件吗?谢谢

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

c#国际化文本资源

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

过去,我在同一个resx中使用了每个区域性一个文件,应用程序一了解区域性,我就从resx加载相应的文本文件。

在文本文件中,我有"key:value",我从中准备字典并缓存了它,这在我的简单/小型文化特定文本需求中更容易使用。

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

您可以使用文本文件作为新闻Win8应用程序的资源。不确定这是否也适用于其他平台:

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

找到了!

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;
}