JQuery.i18n 将 none 现有密钥替换为密钥名称而不是后备文本
JQuery.i18n replaces none existing key with the key name instead of the fallback text
我指的是 JQuery.i18n 文档中的 https://github.com/wikimedia/jquery.i18n#data-api:
<li data-i18n="message-key">Fallback text</li>
It is also possible to have the above li node with fallback text
already in place.
很遗憾,我没有得到这项工作。当我在语言文件中没有 message-key
时,JQuery.i18n 将显示而不是 Fallback text
键:message-key
我的问题:
我做错了什么?一旦我将密钥添加到语言文件,它就会被替换,所以显然语言文件已正确加载,函数调用似乎也有效。
好像是个bug!我在检查 JQuery.i18n 代码时发现了问题。
都在jquery.i18n.js
。它从第 169 行的代码开始:
if ( message === '' ) {
message = key;
}
当没有为键定义的文本时执行if
,然后消息成为键。
我评论了作业:
if ( message === '' ) {
// message = key;
}
然后我不得不在第 244 行更改此代码:
} else {
$this.text( i18n.parse( messageKey ) );
}
至
} else {
const translatedText = i18n.parse( messageKey );
if ( '' !== translatedText ) {
$this.text( translatedText );
}
}
现在备用文本可以正常工作了。第 165 行中的以下评论似乎证实这是一个错误,开发人员知道它但不知何故他忍受了它:
// FIXME: This changes the state of the I18N object,
// should probably not change the 'this.parser' but just
// pass it to the parser.
如果您应用此 hack,那么还要考虑对 html
和上面其他 tags
几行的修改。
我指的是 JQuery.i18n 文档中的 https://github.com/wikimedia/jquery.i18n#data-api:
<li data-i18n="message-key">Fallback text</li>
It is also possible to have the above li node with fallback text already in place.
很遗憾,我没有得到这项工作。当我在语言文件中没有 message-key
时,JQuery.i18n 将显示而不是 Fallback text
键:message-key
我的问题:
我做错了什么?一旦我将密钥添加到语言文件,它就会被替换,所以显然语言文件已正确加载,函数调用似乎也有效。
好像是个bug!我在检查 JQuery.i18n 代码时发现了问题。
都在jquery.i18n.js
。它从第 169 行的代码开始:
if ( message === '' ) {
message = key;
}
当没有为键定义的文本时执行if
,然后消息成为键。
我评论了作业:
if ( message === '' ) {
// message = key;
}
然后我不得不在第 244 行更改此代码:
} else {
$this.text( i18n.parse( messageKey ) );
}
至
} else {
const translatedText = i18n.parse( messageKey );
if ( '' !== translatedText ) {
$this.text( translatedText );
}
}
现在备用文本可以正常工作了。第 165 行中的以下评论似乎证实这是一个错误,开发人员知道它但不知何故他忍受了它:
// FIXME: This changes the state of the I18N object,
// should probably not change the 'this.parser' but just
// pass it to the parser.
如果您应用此 hack,那么还要考虑对 html
和上面其他 tags
几行的修改。