当使用.resx资源文件进行本地化时,我有以下几点:
var lbl_Hello = new { en = "Hello, fr = "Bonjour" };
是否有其他办法来克服这些问题?
发布于 2016-12-21 17:42:02
我感觉到你的痛苦。这么多年来,微软一直没有提供更好的替代方案,这是很可笑的。甚至.NET核心本地化也使用.resx文件。我的替代方法是创建一个表,其中包含您想要跟踪的列前端语言。然后以静态变量(字典)的形式在管道中(在.NET核心中)或在配置阶段(较早的ASP)中将其加载到内存中,或者我将其插入本地/共享缓存中,没有过期日期。
编辑
如果要本地化的字符串数量不多,并且所有字符串都可用,那么您可以将它们内联到静态类本身,而不是将它们放在外部资源(数据库或文件)上。但是,在外部资源上使用这个字符串有一个明显的优势,您可以在不重新编译应用程序的情况下替换它们。
此外,有时您不会将所有字符串翻译成您想要提供的所有可用语言。然后,如果在数据库或外部文件中分配了资源,则可以提供用户界面,允许一些具有所需权限的用户修改/完成翻译。
https://stackoverflow.com/questions/41268528
复制相似问题