Sus*_*pta 7 translation typescript ngx-translate angular
我正在设置一个新的 Angular 7 应用程序。我想设置一个默认的翻译文本。所以在翻译中{{ 'wait' | 翻译}},如果有任何后备,我想将文本“现在等待”设置为默认文本。意味着如果正在加载数据或缺少密钥,则应显示传递的值(在这种情况下正在等待)。
我试图做类似的事情 {{ 'Intro' | translate:'localizedText' }}
没有没有用
{{ 'Intro' | translate:'localizedText' }}
Run Code Online (Sandbox Code Playgroud)
我希望结果应该是
{{ '介绍' | translate:'localizedText' }} => 介绍(如果正在加载或丢失密钥)
{{ '介绍' | translate:'localizedText' }} => 翻译文本
Gee*_*key 10
我按照说明在这里创建了一个缺失的翻译处理程序:https : //github.com/ngx-translate/core#how-to-handle-missing-translations
但是我的版本允许像这样将默认值传递给管道
<span>{{"MyTranslateKey" | translate: {Default: "Default Translation"} }}</span>
Run Code Online (Sandbox Code Playgroud)
默认值可以是上述特定字符串或变量。
这是我的处理程序:
import {MissingTranslationHandler, MissingTranslationHandlerParams} from '@ngx-translate/core';
export class MissingTranslationHelper implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams) {
if (params.interpolateParams) {
return params.interpolateParams["Default"] || params.key;
}
return params.key;
}
}
Run Code Online (Sandbox Code Playgroud)
您将需要使用自定义的MissingTranslationHandler像这样:
在您app.module或您正在加载的任何地方TranslateModule.forRoot执行以下操作:
@Injectable()
export class MyMissingTranslationHandler implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams): string {
return `**MISSING KEY: ${params.key}**`;
}
}
Run Code Online (Sandbox Code Playgroud)
并在您providers:[]添加此:(导入后MissingTranslationHandler)
{
provide: MissingTranslationHandler,
useClass: MyMissingTranslationHandler
},
Run Code Online (Sandbox Code Playgroud)
请参阅此链接了解更多详细信息:
https://github.com/ngx-translate/core#how-to-handle-missing-translations
要返回缺失的默认值,您可以尝试以下操作:
1- 创建一个 object/json 来包含默认值,该 json 应包含与原始 json 相同的结构。
const alternativeJson = {
value1: 'default1'
}
handle(params: MissingTranslationHandlerParams): string {
return this.alternativeJson[params.key];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9825 次 |
| 最近记录: |