【发布时间】:2008-11-10 15:27:13
【问题描述】:
更有趣的是,在 Asp.net Mvc App 中实现全球化的最佳方法是什么
【问题讨论】:
标签: asp.net globalization
更有趣的是,在 Asp.net Mvc App 中实现全球化的最佳方法是什么
【问题讨论】:
标签: asp.net globalization
全球化是关于生成从字符串或标识符到其他语言翻译的映射,而本地化是关于使用该映射来找到正确的翻译。全球化发生在开发过程中,本地化发生在运行时。
我对使用 ASP.NET 执行此操作不是很有经验,但是...
至于如何,我看到的最常见的方法是每个程序集(或每个 UI 组件)的每种语言都有一个字典,其中的值是本地化字符串。键通常是静态类或枚举上的只读成员。通常有一个便利类,其成员是从标识符到本地化消息的映射。
字典通常存储在单独的文件中,并以面向人工翻译的格式存储。
【讨论】:
来自W3C I18n FAQ:
本地化是指调整产品、应用程序或文档内容以满足特定目标市场(“区域”)的语言、文化和其他要求。
国际化(或全球化)是产品、应用程序或文档内容的设计和开发,能够为不同文化、地区或语言的目标受众轻松本地化。
我从来没有全球化过 ASP.NET MVC 应用程序,如果我不能帮助你,很抱歉。
【讨论】:
System.Globalization 命名空间 包含定义的类 文化相关信息,包括 语言、国家/地区、 使用中的日历,格式模式 对于日期、货币和数字,以及 字符串的排序顺序。
至于它和本地化有什么区别?我想这可以解释为汽车和城市之间的区别。一个是目的地,另一个是到达目的地的方式。
我没有使用过 ASP.NET MVC,但我使用过类似的 Monorail。如果我想本地化一个 MR 应用程序,我可能会使用一个单独的视图文件树。因此,虽然只有英文版,但我有:
\Views\Home\*.asp
\Views\Admin\*.asp
\Views\Products\*.asp
对于一个国际化的应用程序,我会有类似的东西:
\en\Views\Home\*.asp
\en\Views\Admin\*.asp
\en\Views\Products\*.asp
\de\Views\Home\*.asp
\de\Views\Admin\*.asp
\de\Views\Products\*.asp
\es\Views\Home\*.asp
\es\Views\Admin\*.asp
\es\Views\Products\*.asp
【讨论】: