我正在构建可以支持多种语言的 ac# windows 窗体应用程序。为了存储所有字符串资源,我使用.resx
了每种文化的文件。我设法使应用程序工作,但我前段时间在某处读到资源字符串也可以存储在文本文件中。您能解释一下如何在文本文件中写入字符串以及如何为每种文化加载每个文本文件吗?谢谢。
PS:我是初学者,请多多包涵。
我正在构建可以支持多种语言的 ac# windows 窗体应用程序。为了存储所有字符串资源,我使用.resx
了每种文化的文件。我设法使应用程序工作,但我前段时间在某处读到资源字符串也可以存储在文本文件中。您能解释一下如何在文本文件中写入字符串以及如何为每种文化加载每个文本文件吗?谢谢。
PS:我是初学者,请多多包涵。
在 resx 文件中,您将获得添加文件的选项(从左上角菜单),您可以从解决方案中添加文本文件,这些文件将在构建期间添加到 resx 现在您可以更改解决方案中的文本文件,并且在构建时更改将是resx 的一部分。
我过去在同一个 resx 中使用过每种文化的一个文件,一旦应用程序了解文化,我就会从 resx 加载相应的文本文件。
在文本文件中,我有“键:值”,我从中准备字典并缓存了它,这在我的简单/小型文化特定文本要求中更容易使用。
请参阅http://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.90).aspx
您可以使用文本文件获取新闻 Win8 Apps 的资源。不确定这是否也适用于其他平台:
找到了!
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;
}