我已经包含了一个在我的html中显示占位符的指令,数据源属性保存了我的翻译的关键值
app.directive("placeholderLink", function ($compile, $translate, $filter) {
return {
priority: 1001, // compiles first
terminal: true, // prevent lower priority directives to compile after it
compile: function (el) {
var params = $.parseJSON(el.context.attributes['dataSource'].value);
var key = params.pHolderKey;
var value = $filter('translate')(key);
var att = "";
if (value == key)
att = params.pHolderMessage;
else
att = "{{'" + key + "'|translate}}";
el.removeAttr('placeholder-Link');
el.attr('placeholder', att);
var fn = $compile(el);
return function (scope) {
fn(scope);
};
}
};
});
翻译的关键值在json文件中,如下所示
烯US.json
{“81”:“用户名”}
解DE.json
{ “81”: “Benutzername”}
以下是我的指示
<input type="text" id="txtusername" placeholder="{{'81'|translate}}" />
我有一个下拉菜单来改变en-US和de-DE之间的语言(Defualt languafe设置为en-US)。如果我们有密钥81的json数据(en-US&amp; de-DE),它工作正常。
如果密钥在json中可用,则html将如下所示
<input type="text" id="txtusername" placeholder="User Name" />
并且在更改语言时翻译工作正常。
如果密钥在en-US的json文件中不可用,但在de-DE中可用。然后html形成如下
{{1}}
在这种情况下,即使密钥在de-DE json中可用,翻译也不适用于其他语言。
我需要一个像占位符的translate-default这样的属性。
是否可能。
先谢谢