寻找关于在asp.net站点上实现本地化以及客户特定术语的最佳方法的一些建议,该站点将由多个客户端使用.
例如,表单上的标签必须根据登录到站点的客户端以及语言首选项的内容而有所不同.
因此,每个客户端都会有一组默认的措辞/术语......然后每个客户端的措辞/术语将被翻译成他们需要的语言.
我在考虑为每个客户创建自定义文化,然后使用asp.net和资源文件中的"内置"本地化功能.
所以我可能有一个默认文化......然后是客户特定的文化......然后将客户特定的文化翻译成其他语言.
EN-US
DE-DE
EN-US-客户端1
EN-US-客户端2
DE-DE-客户端1
DE-DE-客户端2
这听起来很疯狂吗?对我来说似乎是一个相当合理的方法......但也许有点像黑客...所以我欢迎任何更好的想法?
谢谢大家的帮助!
我正在开发一个.net 4.5应用程序,需要多语言支持多文化等.
以下是国家/语言的示例列表
对于上述所有内容,可以根据上述文化名称创建CultureInfo对象
当用户进入站点时,我将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture设置为使用上述名称创建的文化,例如.
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE", false)
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE", false)
Run Code Online (Sandbox Code Playgroud)
以上所有名称均为有效的文化名称.
不,但我需要在俄罗斯添加另一种文化名称,英语.但问题是代码en-RU无效,所以当我创建时,new CultureInfo("en-RU", false)我得到一个CultureNotFoundException,因为en-RU无效.
有了这种文化,我希望俄罗斯的格式等数字,日期等,但我希望网站上的语言是英语.是否可以使用国家/地区(俄罗斯)的行为为无效的文化名称创建自定义CultureInfo对象?
我一直在使用C#s(Visual Studios)资源机制,它运作良好.我需要能够使用资源,而不是使用CultureInfo作为决定者使用其他东西.这是我目前的设置工作正常,但我必须锻炼资源管理器使用.无论是布鲁塞尔还是巴黎.然后,资源管理器确定要在布鲁塞尔或巴黎使用哪个资源来调用.我想要的是两者的一个资源管理器,所以我不需要决定使用哪个资源管理器.部分问题是PublicResXFileCodeGenerator自定义工具为您生成代码(如果您使用标准方法,这是非常好的)
这是它目前的样子(这很好)
Brussels Resources
- brussels.en-GB.resx
- brussels.ja-JP.resx
- brussels.fr-FR.resx
- brussels.resx
巴黎
- paris.en-GB.resx
- paris.ja-JP.resx
- paris.fr-FR.resx
- paris.resx
我不想使用CultureInfo,而是指定我自己的resx标识符.有没有办法使用resx文件?
等等
布鲁塞尔和巴黎资源
- MyResourceManager.brussels烯GB.resx
- MyResourceManager.brussels-JA-JP.resx
- MyResourceManager.brussels-FR-FR.resx
- MyResourceManager.paris烯GB.resx
- MyResourceManager.paris-JA-JP.resx
- MyResourceManager.paris-FR-FR.resx
- MyResourceManager.resx
编辑:我想如何使用它(或类似的东西)的一个例子
MyResourceManager.Header
代替
brussels.Header
paris.Header
可以在此处找到类似问题但通过Custom Cultures解决的示例. 如何基于某些参数加载不同的RESX文件 我不想这样做但是因为在不同的机器上安装文化不是一种选择.