Meteor 关于语言全球化
如何使meteor应用程序支持多种语言?例如:中文、英文 首先,我尝试使用Handlebar.registerHelper和Session,但失败了 test.js代码: Handlebars.registerHelper('language',function(arg){ var nalization = Session.get('nalization'); console.log(nalization); var language = Session.get("language")[nalization]; if (!language){ console.log("nalization"+nalization+" is undefined"); return ""; } console.log(arg); return language[arg] ? language[arg] : "undefined"; }); Template.hello.created = function(){ Session.set('nalization','cn'); } Deps.autorun(function (c) { Session.set("language",{ cn : { hello: "你好", language: "Language" }, en : { hello: "Hello", language: "语言" } }); c.stop(); }); Template.hello.events = { "click #language_cn":function(){ Session.get("nalization") !== "cn" ? Session.set("nalization","cn") : 1=1; }, "click #language_en":function(){ Session.set("nalization","en"); console.log(); } } 车把.注册表帮助器('语言',功能(arg){ var-nalization=Session.get('nalization'); 控制台日志(nalization); var language=Session.get(“语言”)[nalization]; 如果(!语言){ log(“未定义nalization”+未定义nalization+); 返回“”; } 控制台日志(arg); 返回语言[arg]?语言[arg]:“未定义”; }); Template.hello.created=function(){ Session.set('nalization','cn'); } 副自动运行(功能(c){ Session.set(“语言”{ 中国:{ 您好:“你好", 语言:“语言” }, 嗯:{ 你好:“你好”, 语言:“语言" } }); c、 停止(); }); Template.hello.events={ “点击#语言#cn”:函数(){ Session.get(“nalization”)!==“cn”?Session.set(“nalization”,“cn”):1=1; }, “单击语言”:函数(){ Session.set(“名词化”、“en”); console.log(); } } test.html代码:Meteor 关于语言全球化,meteor,Meteor,如何使meteor应用程序支持多种语言?例如:中文、英文 首先,我尝试使用Handlebar.registerHelper和Session,但失败了 test.js代码: Handlebars.registerHelper('language',function(arg){ var nalization = Session.get('nalization'); console.log(nalization); var language = Sess
<body>
{{> hello}}
</body>
<template name="hello">
<h1>{{#language "hello"}}{{/language}}</h1>
<label>{{#language "language"}}{{/language}}</label>
<button id="language_cn">中文</button>
<button id="language_en">English</button>
</template>
{{>你好}
{{{语言“你好”}{{/语言}
{{{{语言“语言”}{{/语言}
中文
英语
在Seesion by click events中更改了值“nalization”,但在RegisterHelper中该值未更改。html上不会发生任何更改
关于语言全球化有什么想法吗?谢谢。请看本页最后一段: Handlebar helper包中有
getText
帮助程序。您可以在该文件末尾看到源代码:
关于您的代码,我不会使用会话来存储语言文件/资源。会话应主要用于创建反应性数据。此外,我也不了解您为什么使用此Deps.autorun
language=new Meteor.Collection();
Language = new Meteor.Collection();
session.setDeafault("language","EN_US");
Deps.autorun(function(c){
var languages = [
{
name:"EN_US",
value:{
username:"username",
password:"password"
}
},
{
name:"ZH_CN",
value:{
username:"yonghu",
password:"mima"
}
}
];
if(Language.find({}).fetch().length)
Language.remove({});
for(index in languages){
Language.insert(languages[index]);
}
c.stop();
});
Handlebars.helpers('language',function(){
return Language.findOne({name:Session.get("language")}).value;
});
/**
Change language by click events
for example:
"click #chooseLanguage":function(){
Session.set("language","ZH_CN");
}
in the html:
<label> {{language.username}}</label>
<label> {{language.password}}</label>
*/
session.setdeafult(“语言”,“EN_US”);
副自动运行(功能(c){
变量语言=[
{
名称:“恩_US”,
价值:{
用户名:“用户名”,
密码:“密码”
}
},
{
名称:“ZH_CN”,
价值:{
用户名:“永湖”,
密码:“mima”
}
}
];
if(Language.find({}).fetch().length)
语言。删除({});
for(语言索引){
语言。插入(语言[索引]);
}
c、 停止();
});
把手.助手('language',function()){
返回Language.findOne({name:Session.get(“Language”)}).value;
});
/**
通过单击事件更改语言
例如:
“单击#选择语言”:函数(){
Session.set(“语言”、“ZH_CN”);
}
在html中:
{{language.username}
{{language.password}}
*/
包裹怎么样
其特点是:
被动(字符串将在变量或语言
更改)支持MessageFormat selectformat(例如性别),复数
和偏移扩展完整的翻译Web UI,无需重新部署
当新翻译到达时,您的应用程序可以发送语言数据
初始页面加载,或在需要时按需加载(反应式就绪()
方法是为良好的用户界面(UI)提供的。
例如:
谢谢你的回复。我已经通过车把助手和非同步本地收集完成了。
Language = new Meteor.Collection();
session.setDeafault("language","EN_US");
Deps.autorun(function(c){
var languages = [
{
name:"EN_US",
value:{
username:"username",
password:"password"
}
},
{
name:"ZH_CN",
value:{
username:"yonghu",
password:"mima"
}
}
];
if(Language.find({}).fetch().length)
Language.remove({});
for(index in languages){
Language.insert(languages[index]);
}
c.stop();
});
Handlebars.helpers('language',function(){
return Language.findOne({name:Session.get("language")}).value;
});
/**
Change language by click events
for example:
"click #chooseLanguage":function(){
Session.set("language","ZH_CN");
}
in the html:
<label> {{language.username}}</label>
<label> {{language.password}}</label>
*/
$ mrt add messageformat