我可以更改关于 JHipsters 'jhiTranslate' 的字符串数组的连接字符吗?
Can I change the concatenation character of the String-Array regarding JHipsters 'jhiTranslate'?
如果我使用字符串数组进行翻译,例如i18n/en/home.json 喜欢
"primaryIntroduction": {
"p1": [
"Then Jenkins triggers a task to connect to the docker-server",
" and calls some docker- and docker-compose commands to pull the new image",
" and rebuilds and restarts the docker-container."
]
}
jhipster 连接英文页面上的 <p>
,如:
Then Jenkins triggers a task to connect to the
docker-server, and calls some docker- and docker-compose commands to
pull the new image, and rebuilds and restarts the docker-container.
(注意逗号)
输入一个新行而不用引号结束该行,json-文件将中断。
在我看来,如果没有换行符,较大的段落将难以阅读和翻译。
我可以改变句子在自己身上的连接方式吗?例如,在将数组的字符串放在一起时使用空格而不是逗号?在 Angular 系统中为该连接字符引入控制变量是否有用?
这很正常,您的键 p1
的值是一个数组,数组的字符串表示形式是逗号分隔的列表。有关详细信息,请参阅 https://github.com/ngx-translate/core/issues/339。
这个问题在 ngx-translate 中通过支持 JSON5 format but unfortunately it has not been released yet and it seems the project is no longer actively maintained 得到了解决,因为最后一个版本是从 2018 年 11 月开始的。
因此您可以尝试使用管道建议来支持数组,请参阅 https://github.com/ngx-translate/core/issues/339#issuecomment-360450296
为了改变 jhipster 的 Angular 翻译串联(版本 6.10.5,参见 ),我添加了
import { TranslateDefaultParser } from '@ngx-translate/core';
import { Injectable } from '@angular/core';
@Injectable()
export class TranslateAppParser extends TranslateDefaultParser {
getValue(target: any, key: string): any {
target = super.getValue(target, key);
if (target instanceof Array) {
target = target.join(' ');
}
return target;
}
}
在src/main/webapp/app/shared/translateappparser.module.ts
并添加
import {MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateParser} from '@ngx-translate/core';
import { TranslateAppParser } from 'app/shared/translateappparser.module';
export function createTranslateParser():any {
return new TranslateAppParser();
}
以及parser: { provide: TranslateParser, useFactory: createTranslateParser },
在
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: translatePartialLoader,
deps: [HttpClient],
},
parser: { provide: TranslateParser, useFactory: createTranslateParser },
missingTranslationHandler: {
provide: MissingTranslationHandler,
useFactory: missingTranslationHandler,
deps: [JhiConfigService],
},
在文件中 src/main/webapp/app/core/core.module.ts
这正是 向我指出的 - 今天我在使用 jhipster --with-entities
进行 jhipster-Upgrade 时不得不再次找到代码片段
如果我使用字符串数组进行翻译,例如i18n/en/home.json 喜欢
"primaryIntroduction": {
"p1": [
"Then Jenkins triggers a task to connect to the docker-server",
" and calls some docker- and docker-compose commands to pull the new image",
" and rebuilds and restarts the docker-container."
]
}
jhipster 连接英文页面上的 <p>
,如:
Then Jenkins triggers a task to connect to the docker-server, and calls some docker- and docker-compose commands to pull the new image, and rebuilds and restarts the docker-container.
(注意逗号)
输入一个新行而不用引号结束该行,json-文件将中断。 在我看来,如果没有换行符,较大的段落将难以阅读和翻译。
我可以改变句子在自己身上的连接方式吗?例如,在将数组的字符串放在一起时使用空格而不是逗号?在 Angular 系统中为该连接字符引入控制变量是否有用?
这很正常,您的键 p1
的值是一个数组,数组的字符串表示形式是逗号分隔的列表。有关详细信息,请参阅 https://github.com/ngx-translate/core/issues/339。
这个问题在 ngx-translate 中通过支持 JSON5 format but unfortunately it has not been released yet and it seems the project is no longer actively maintained 得到了解决,因为最后一个版本是从 2018 年 11 月开始的。
因此您可以尝试使用管道建议来支持数组,请参阅 https://github.com/ngx-translate/core/issues/339#issuecomment-360450296
为了改变 jhipster 的 Angular 翻译串联(版本 6.10.5,参见 ),我添加了
import { TranslateDefaultParser } from '@ngx-translate/core';
import { Injectable } from '@angular/core';
@Injectable()
export class TranslateAppParser extends TranslateDefaultParser {
getValue(target: any, key: string): any {
target = super.getValue(target, key);
if (target instanceof Array) {
target = target.join(' ');
}
return target;
}
}
在src/main/webapp/app/shared/translateappparser.module.ts
并添加
import {MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateParser} from '@ngx-translate/core';
import { TranslateAppParser } from 'app/shared/translateappparser.module';
export function createTranslateParser():any {
return new TranslateAppParser();
}
以及parser: { provide: TranslateParser, useFactory: createTranslateParser },
在
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: translatePartialLoader,
deps: [HttpClient],
},
parser: { provide: TranslateParser, useFactory: createTranslateParser },
missingTranslationHandler: {
provide: MissingTranslationHandler,
useFactory: missingTranslationHandler,
deps: [JhiConfigService],
},
在文件中 src/main/webapp/app/core/core.module.ts
这正是 jhipster --with-entities