我有一个包含许多模板的Polymer应用程序,我希望在其中管理本地化。我使用app-localize-behavior。我找到了a nice way of managing localization from a single file。在那里提出的解决方案使用行为,并且在每个模板中需要很少的添加,并且具有唯一的json数据文件。
我的问题是我希望能够动态更改语言,并且可能将其存储在app-localstorage-document元素中,我从另一个文件管理。如何从此文件外部设置此语言属性?
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/app-localize-behavior/app-localize-behavior.html">
<script>
MyLocalizeImpl = {
properties: {
language: {
value: 'fr'
}
},
attached: function() {
this.loadResources(this.resolveUrl('../locales.json'));
},
};
MyLocalize = [MyLocalizeImpl, Polymer.AppLocalizeBehavior];
</script>
答案 0 :(得分:1)
好的我改编了app-localize-behavior demo code。更改语言的模板必须覆盖语言属性,包括“notify:true”:
properties: {
language: {
value: 'en',
type: String,
notify: true
},
},
然后我将所有其他元素的语言属性与此绑定:
<element language="{{language}}"></element>
使用localize的模板当然必须链接本地化脚本:
<link rel="import" href="localize.html">
...并在脚本部分中添加行为:
Polymer({
is: "my-page",
behaviors: [
MyLocalize
]
奖励:如何为每种语言使用不同的json文件:https://abendigo.github.io/2016/08/03/lazyloading_localization.html