在数据对象中使用RESX国际化,不好主意?

时间:2009-12-08 14:44:19

标签: c# internationalization

假设我的数据层(国家/地区和语言)中有2个实体必须根据用户语言进行本地化。

通常的选择是创建一个包含翻译的数据库表,并使用用户语言为每个查询添加一个参数。好的,没问题,但我在这里寻找替代方案。

将翻译存储在RESX文件中更好的替代方法,只需在我的对象中添加属性即可获取翻译后的名称?我应该把这个resx文件放在哪里?在我的数据项目中?一个separete项目?还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

如果文本是常量(在使用应用程序时没有改变),它们实际上可能属于resx文件。一个优点是它会自动回归到最接近的已知语言(例如,如果你不支持en-uk,它会回到en-us,英国人会讨厌我这个例子: - )

将它放到需要文本的最高层。例如,如果您只需要在UI中,则将文本放入UI层。业务逻辑可以轻松(甚至更好)地使用密钥。如果您在业务层中需要它,例如导出功能或日志文件,则需要将其放在那里。

答案 1 :(得分:0)

这取决于您从何处加载数据。如果从数据库加载它,请使用数据库表。如果您的国家/地区和语言是静态数据,则可以选择包含多个本地化resx文件的实用程序类。