我使用Durandal和Breeze开发ASP.NET MVC解决方案。我需要将前端翻译成法语和荷兰语。如何继续Durandal /淘汰赛?用HotTowel(Durandal框架)翻译视图+ VS2012
在传统的ASP.NET MVC解决方案中,我们有机会将视图呈现在服务器端(感谢剃须刀)。
感谢您的帮助。
我使用Durandal和Breeze开发ASP.NET MVC解决方案。我需要将前端翻译成法语和荷兰语。如何继续Durandal /淘汰赛?用HotTowel(Durandal框架)翻译视图+ VS2012
在传统的ASP.NET MVC解决方案中,我们有机会将视图呈现在服务器端(感谢剃须刀)。
感谢您的帮助。
要上的尝试i18n.js罗布的回答扩展插件的require.js,这里是我遵循的步骤(我工作过Visual Studio中的Durandal初学者模板)。
App
文件夹中。创建一个App/nls
文件夹,您可以在其中放置require.js资源包,例如, App/nls/welcomeBundle.js
。
define({
"root": {
"displayName": "Welcome to the Durandal Starter Project!"
},
"fr-fr": true
});
你会看到我添加了一行告诉require.js是有可用的法文版。这将在App/nls/fr-fr/welcomeBundle.js
,我还挺下面做创建(改变勒:d)
define({
"displayName": "Welcome to le Durandal Starter Project!"
});
require.js需要与区域设置初始配置(不能动态完成)。所以在main.js文件,我宣布了下述getLocale()
功能,我用它来配置require.js的语言环境:
function getLocale() {
var locale = 'en-us';
if (localStorage) {
var storedLocale = localStorage.getItem('locale');
locale = storedLocale || locale;
}
return locale;
}
requirejs.config({
paths: {
'text': 'durandal/amd/text'
},
locale: getLocale()
});
在welcome.js模块,然后我加载包,并用它来DisplayName属性:
define(function(require) {
var bundle = require('i18n!nls/welcomeBundle');
return {
displayName: bundle.displayName,
...
}
});
我那么区域设置为法国和通过JavaScript重新加载页面:
localStorage.setItem('locale', 'fr-fr');
location.reload();
希望帮助:)
编辑:2013年4月4日:我更新了上面初始化在main.js文件中的语言环境,而不是在shell.js模块,如因某种原因在外壳模块中加载软件包时,语言环境未被正确使用。尽管如此,应该尽快配置它。
我建议你看看需要对本地化的支持:http://requirejs.org/docs/api.html#i18n