我需要在类库中快速介绍本地化
我不想从用户上下文中提取语言环境,而是将用户存储在数据库中,并且他们的语言环境也在数据库中设置....
我在类库中的函数已经可以从db中的用户配置文件中提取语言环境代码...现在我想根据语言环境包含使用resx ...
我需要几个步骤来正确地做到这一点......
是的 - 我已经搜索了这个,以及一些研究,但我能找到的所有教程都太复杂了,无法满足我的需求.
Not*_*tMe 24
不幸的是,这个主题太复杂了.;)我知道,我也完成了研究.
为了让你入门,
在程序集中创建一个Resources目录.
从英语开始,在该目录中添加"资源文件"(.resx).将其命名为"text.resx".如果找不到本地化资源,应用程序将默认退出此文件.
添加文本资源.
添加另一个资源文件.将此名称命名为"text.es.resx".注意文件名的"es"部分.在这种情况下,这定义了西班牙语.请注意,每种语言都有自己的字符代码定义.看那个.
添加您的西班牙语资源.
现在我们有资源文件可供使用,让我们尝试实现.
要设置文化,请从数据库记录中提取文化.然后执行以下操作:
String culture = "es-MX"; // defines spanish culture
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Run Code Online (Sandbox Code Playgroud)
这可能发生在已加载程序集的应用程序中或在程序集初始化本身中.你选.
要使用资源,您需要做的就是在程序集中执行以下操作:
public string TestMessage() {
return Resources.Text.SomeTextValue;
}
Run Code Online (Sandbox Code Playgroud)
塔达 资源变得简单.如果您需要更改用户控件或直接在aspx页面中执行某些操作,事情会变得复杂一些.如果您需要更多信息,请更新您的问题.
请注意,您可以拥有名为"text.es-mx.resx"的资源文件,这将特定于墨西哥西班牙语.但是,这并不总是必要的,因为"es-mx"会在它回退到默认值之前回退到"es".只有您将了解您的资源需要具体的具体情况.
| 归档时间: |
|
| 查看次数: |
11783 次 |
| 最近记录: |