gpt4 book ai didi

json - 使用 angular ngx-translate 翻译 json 数组

转载 作者:行者123 更新时间:2023-12-02 14:53:21 27 4
gpt4 key购买 nike

我有一段很长的文本要在 Ionic 4 应用程序中翻译。我正在使用 Angular ngx-translate (@ngx-translate v11.0.1)。

为了提高可读性,我希望翻译成多行而不是一行。

我已经更改了我的 i18n json,从此 (en-US.json):

  "common-questions-content" : "<b>Question 1?</b> Answer 1 <br> <b>Question 2?</b> Answer 2 <b>Question 3?</b> Answer 3",

对此:

  "common-questions-content" : [
"<b>Question 1?</b> Answer 1 <br>",
"<b>Question 2?</b> Answer 2 <br>",
"<b>Question 3?</b> Answer 3"
],

出乎意料的是这有效!但是,它在数组的每个值之间放置逗号:

strings separated with commas

我在我的 app.component.ts 中加载翻译服务:

import {TranslateService} from '@ngx-translate/core';
...
private translateService: TranslateService,
...
this.translateService.use('en-US');

最后我像这样在我的 html 页面中使用它:

{{ 'common_questions' | translate }}

是否可以更改此行为并只显示所有不带逗号的文本?

最佳答案

我建议您每个语句只有一个输入,并且没有 html 标记翻译,例如:

在你的 en.JSON 中:

"QUESTION_1":"blabla",
"QUESTION_2":"blabla",
"QUESTION_3":"blabla",
"ANSWER_1":"blabla",
"ANSWER_2":"blabla",
"ANSWER_3":"blabla",

然后在你的组件中,创建两个数组类型的类属性,如下所示:

public questions : string[];
pulbic answers : string[];
constructor (private translate: TranslateService) {
translate.get(["QUESTION_1", "QUESTION_2", "QUESTION_3"]).subscribe(
values => {
this.questions = Object.keys(values).map(key => values[key]);
}
);
translate.get(["ANSWER_1", "ANSWER_2", "ANSWER_3"]).subscribe(
values => {
this.answers = Object.keys(values).map(key => values[key]);
}
);
}

然后在您的 html 显示中,自定义、添加点击事件或您需要的任何内容:

<ion-grid>
<ion-row>
<ion-col col-6>
<ion-grid>
<ion-row *ngFor="let q of questions"><b>{{q}}</b></ion-row>
</ion-grid>
</ion-col>
<ion-col col-6>
<ion-grid>
<ion-row *ngFor="let a of answers">{{a}}</ion-row>
</ion-grid>
</ion-col>
</ion-row>
</ion-grid>

这是基本的 html 实现,但您会看到还有多少潜力供您使用。您可以定义点击事件、动画、颜色、选定项目等。

关于json - 使用 angular ngx-translate 翻译 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54378211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com