我正在尝试使用lit translate将我的“elmish”打字脚本网站翻译成不同的语言。我使用网页包和网络。
在我的index.ts中,我注册了翻译配置:
registerTranslateConfig({
lookup: (key, config) => config.strings != null ? config.strings[key] : key,
empty: key => key,
loader: lang => {
return new Promise((resolve, reject) => {
resolve({"title": "Der Titel"});
})}
});
use("en");
(加载程序是硬编码的,因为获取本地化文件也不起作用,但现在这并不重要)。
在我使用的html中 get("title")
或 translate("title")
为了得到翻译。我没有翻译,而是读[标题]或 (part) => { partCache.set(part, cb); updatePart(part, cb); }
如果我指定 translate()
对于变量,我在对象内部得到以下结果:
TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
at Function.r (<anonymous>:1:83)
at Module../src/index.ts (http://localhost:8080/app.bundle.js:9800:10)
at __webpack_require__ (http://localhost:8080/app.bundle.js:12476:33)
at http://localhost:8080/app.bundle.js:13494:11
at http://localhost:8080/app.bundle.js:13497:12
我已经尝试禁用webpack严格模式。
完整类如下所示:
export class App extends Application<Model, Message, {}> {
@property({type: Boolean})
hasLoadedStrings = false;
init(): [Model, Cmd] {
const initModel: Model = {
openPage: [{title: "Home"}, home]
}
return [initModel, Cmd.none]
}
constructor() {
super();
this.hasLoadedStrings = false;
}
shouldUpdate (changedProperties: Map<string | number | symbol, unknown>) {
return this.hasLoadedStrings && super.shouldUpdate(changedProperties);
}
async connectedCallback () {
super.connectedCallback();
await use("en");
this.hasLoadedStrings = true;
}
}
customElements.define('my-element', App);
暂无答案!
目前还没有任何答案,快来回答吧!