我正在开发一个不是多语言的应用程序,但客户要求能够通过管理界面更改标签、文本甚至通知。所以我想到了可以在应用程序加载时从服务器获取并绑定所有标签、文本和通知的资源文件。
不确定是否已经实施了某些事情,或者是否有更好的方法来实现这一点。我有 ng2-translate 但它不能通过管理屏幕达到改变文本的目的。
谢谢你。
我正在开发一个不是多语言的应用程序,但客户要求能够通过管理界面更改标签、文本甚至通知。所以我想到了可以在应用程序加载时从服务器获取并绑定所有标签、文本和通知的资源文件。
不确定是否已经实施了某些事情,或者是否有更好的方法来实现这一点。我有 ng2-translate 但它不能通过管理屏幕达到改变文本的目的。
谢谢你。
所有文本都可以使用模板绑定显示,例如{{ myLabel }}
. myLabel
反过来,可以根据对接受语言参数的服务器的请求进行分配,或者您可以拥有本地存储的值,如果选择了某种语言设置,则使用这些值。服务器选项更易于管理 IMO。
async setText(languageId: number) {
this.text = await this.http.get('yourUrl', {
params: { languageId: languageId.toString()} }).toPromise();
}
文本可以是您所有文本的对象,例如
"text": [
"notifications": ["warningNotification": "whatever", ...
]
您可以在整个模板中显示这些:
<div id="warningDiv">{{ text?.notifications?.warning }}</div>
并且始终遵循相同的模式,text
根据语言交付不同的 json 对象。
请注意作为安全运算符的问号,以避免在处理请求时出现空错误。