[英]MEAN.JS with angular-translate
I am validating Mean.JS 0.4.1 我正在验证Mean.JS 0.4.1
Trying to implement multilingual support on sample application. 尝试在示例应用程序上实现多语言支持。
Following this article http://outlandish.com/blog/internationalisation-using-angular-translate-express-and-node/ 紧随本文http://outlandish.com/blog/internationalisation-using-angular-translate-express-and-node/
bower installed following packages 安装以下软件包的凉亭
"angular-translate": "~2.5.2", "angular-translate-loader-url": "~2.5.2", "angular-translate-storage-cookie": "~2.5.2" “ angular-translate”:“〜2.5.2”,“ angular-translate-loader-url”:“〜2.5.2”,“ angular-translate-storage-cookie”:“〜2.5.2”
added 'pascalprecht.translate' to the end of the dependencies in modules\\core\\client\\app\\config.js as shown below. 如下所示,在modules \\ core \\ client \\ app \\ config.js中的依赖项末尾添加了“ pascalprecht.translate”。
var applicationModuleVendorDependencies = ['ngResource', 'ngAnimate', 'ngMessages', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload','ui.utils.masks','pascalprecht.translate'];
after that added following lines in modules\\core\\client\\app\\init.js 之后,在modules \\ core \\ client \\ app \\ init.js中添加以下行
angular.module(ApplicationConfiguration.applicationModuleName).config(['$locationProvider', '$httpProvider','$translateProvider',
function ($locationProvider, $httpProvider,$translateProvider) {
$translateProvider.useUrlLoader('/lang'); //Added By Me
$translateProvider.preferredLanguage('es'); //Added By Me
$locationProvider.html5Mode(true).hashPrefix('!');
$httpProvider.interceptors.push('authInterceptor');
}
]);
I've created a express route as show below in modules\\core\\server\\routes\\core.server.routes.js 我已经在modules \\ core \\ server \\ routes \\ core.server.routes.js中创建了如下所示的快速路由
//Language Route app.route('/lang').get(core.getLanguageText); //语言路由app.route('/ lang')。get(core.getLanguageText); //added by me
//由我添加
I've created a getLanguageText shown below in modules\\core\\server\\controllers\\core.server.controller.js 我已经在模块\\核心\\服务器\\控制器\\ core.server.controller.js中创建了如下所示的getLanguageText
exports.getLanguageText = function (req, res) {
console.log('Call Received To getLanguageText');
console.log('Language Requested Is: '+ req.query.lang);
// Check endpoint called with appropriate param.:
if(!req.query.lang) {
res.status(500).send();
return;
}
try {
var lang = require('../config/i18n/' + req.query.lang);
res.send(lang); // `lang ` contains parsed JSON
} catch(err) {
res.status(404).send();
}
};
I try to use above implementation in home.client.view.html on client side as follows 我尝试在客户端的home.client.view.html中使用上述实现,如下所示
<h1>{{ 'home.helloWorld' | translate }}</h1>
Json file defined on sever 服务器上定义的JSON文件
es.json es.json
{
"languageNames": {
"en": "Inglés",
"es": "Español",
"fr": "Francés"
},
"home": {
"helloWorld": "Hola Mundo!"
}
}
express route is never been hit and i am getting. 快递路线从未被击中,而我得到了。
GET /lang?lang=es 304 12.647 ms - -
on node console. 在节点控制台上。
why is my route never hit and why am i getting 304. 为什么我的路线从未打过,为什么我要打304。
Are there any better solutions to implement multilingual support on MEAM.JS stack. 是否有更好的解决方案在MEAM.JS堆栈上实现多语言支持。
Thanks in advance. 提前致谢。
Are you sure the angular-translate.js
file is being included in the layout ?? 您确定将
angular-translate.js
文件包含在布局中吗?
It looks like bower-installed files (those on /public/lib
) are not loaded by default. 看起来Bower安装的文件(
/public/lib
上的文件)默认未加载。 Instead, its paths hardcoded in /config/assets/default.js
相反,其路径硬编码在
/config/assets/default.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.