在过去的几天里,我一直在为用MVC编写的web应用程序实现本地化。 关于Lozalization “问题”的3个主要任务我可以指出:
有几种方法可以完成我已经探索过的每项任务,而且我正在努力在它们之间进行选择。 我有两个问题:
创建一个结构化XML文件,该文件将包含每个文本特定值的每个键和childe节点的父节点,例如
<string key="myAppName">
<heIL>some Hebrew value</heIL>
<enUS>some English value</enUS>
</string>
这是有趣的,有时很复杂的地方。 我在这里探讨了两个选项,我不知道如何继续。
<script>
标记从这一点开始,在java脚本中动态创建一个键数组或静态变量,并将所需的字符串放在其中。 以下是使用Razor引擎的示例。
<script type="text/javascript">
k_CultureInfo = "@CultureInfo.CurrentCulture.Name";
K_ApplicationName = "@MyStrings.SomeStringKey";
....
</script>
我在博客中找到了这个想法:Localize text in JavaScript files in ASP.NET这里
答案 0 :(得分:1)
资源文件:
使用resx格式。翻译工具将无法处理您提议的格式,因为它在同一文件中包含多种语言。典型的翻译工具将获取源文件并在翻译后为每种语言生成匹配文件。我会不惜一切代价避免你建议的格式。
如果要使用XML,请按语言使用单个文件。此外,无论您选择何种格式,请确保为每个片段添加上下文注释以帮助翻译。
服务器端访问
使用resx并节省定义图层的时间
客户端访问
在我看来,服务器端生成的脚本更简单,与服务器端访问更加一致。
文化转换机制
我假设您在询问逻辑而不是UI。最常用的方法是获取用户的浏览器语言设置。如果语言设置为应用程序中不存在的语言,请回退到默认语言。您还希望设置一个包含用户选择的cookie(如果他们手动更改语言),以便下次使用他们选择的语言。
答案 1 :(得分:-2)
如果它是一个webapp,也许这会有所帮助 https://developers.google.com/chrome/web-store/docs/i18n
试一试!!!