似乎您也正在解决一些客户端/服务器放置问题,但让我们专注于您的问题并缩小问题范围。
定义你的收藏
Translations = new Meteor.Collection('translations');
引导数据库数据
if (Meteor.isServer) {
if (Translations.find({}).count() === 0) {
Translations.insert({
'translation' : 'ru_RU',
'value1': 'translation1',
'value2': 'translation2'
});
Translations.insert({
'translation': 'en_US',
'value1': 'translation1',
'value2': 'translation2'
});
}
}
Publish
如果您发布带有参数的集合
Meteor.publish('translations', function (lang) { //lang argument
return Translations.find({'translation': lang});
});
订阅
您可以使用这样的参数进行订阅
Meteor.subscribe('translations', 'ru_RU'); // pass in the other language code
为了简单起见,我将省略iron-router,因为您必须做一些设置(在主模板和 Router.map 中的 {{yield}} --铁路由器快速入门 https://github.com/EventedMind/iron-router#quick-start)
模板助手
Template.myTemplate.helpers({
translations: function() {
// return all subscribed translations
return Translations.findOne({});
}
});
Template
<template name='myTemplate'>
{{translations.value1}}<br>
{{translations.value2}}
</template>