html简单的国际化,如何翻译只有一部分的HTML页面与国际化

这篇博客介绍了如何在Aurelia应用中创建自定义属性,以避免i18n语言环境变化时的默认行为。通过扩展TCustomAttribute并覆盖绑定和解绑方法,可以监听语言更改事件并在需要时手动更新翻译。示例代码展示了如何创建名为'foo'的新属性,使其在语言切换时不自动更新。
摘要由CSDN通过智能技术生成

你不能那样开箱。当您使用setLocale更改活动语言环境时,该方法会触发事件并向绑定行为发出更新信号https://github.com/aurelia/i18n/blob/master/src/i18n.js#L54。 TCustomAttribute侦听这些更改并自动提交绑定。你可以做的是创建你自己的自定义属性,如https://github.com/aurelia/i18n/blob/master/src/t.js所示,并且重写绑定和解除绑定方法,当你需要更新翻译时定义条件。

---更新与例子---

好了,所以这里有一个小例子,我在想,可能不是最好的方式,但它应该这样做。

在你main.js添加新globalResources

export function configure(aurelia) {

aurelia.use

.standardConfiguration()

.plugin('aurelia-i18n', (instance) => {

...

})

.globalResources("./foo-custom-attribute") //

现在创建一个文件foo-custom-attribute.js

import {TCustomAttribute} from 'aurelia-i18n';

import {customAttribute} from 'aurelia-framework';

@customAttribute('foo')

export class FooCustomAttribute extends TCustomAttribute {

constructor(element, i18n, ea, tparams) {

super(element, i18n, ea, tparams);

}

bind() {

this.params = this.lazyParams();

if (this.params) {

this.params.valueChanged = (newParams, oldParams) => {

this.paramsChanged(this.value, newParams, oldParams);

};

}

let p = this.params !== null ? this.params.value : undefined;

this.service.updateValue(this.element, this.value, p);

}

unbind() {}

}

这本质上创建一个新的属性称为foo,它扩展了TCustomAttribute并覆盖绑定/取消绑定方法来排除信号并收听语言改变的事件。

在你看来,你现在可以使用

现在切换语言会改变t属性,像往常一样,但将保持foo,因为它是。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值