我正在寻找一种方便的方法来使用内置i18n支持的angular2,以便处理API返回的服务器端消息。例如,我有一个很大的动态菜单,每个项目的标签都来自服务器。我还有来自API的消息(错误,警告,结果代码)。
由于我发现了我认为阻止like this的问题,我还在寻找允许简单的键/值转换消息的第三方库,并且可以包含在angular2应用中。我是Angular2的新手,所以我想听听社区接受的这个案例库。
谢谢!
答案 0 :(得分:2)
我正在寻找一个允许简单的键/值翻译消息的库,并且可以包含在angular2应用程序中。
写起来很容易:
type Messages = {
error: string,
hello: string,
}
export function getMessage(message: keyof Messages, localization = 'en') {
/** Define your messages */
const messages: {
[localization: string]: Messages;
} = {
en: {
error: 'Unexpected error',
hello: 'hello world'
}
}
return messages[localization][message];
}
// Usage
getMessage('error'); // OK
getMessage('notvalid'); // Compile time error
您可以将此模式扩展为所需的
答案 1 :(得分:0)
我知道这不是您正在寻找的答案,但我只想记录使用Angular的静态翻译为服务器错误提供消息值是微不足道的。
@Component(
template: `
<ng-container [ngSwitch]="errorCode">
<ng-container *ngSwitchCase="error1" i18n>A bad thing happend</ng-container>
<ng-container *ngSwitchCase="5152" i18n>Error in AE35 unit</ng-container>
<ng-container *ngSwitchCaseDefault i18n>Unknown Error</ng-container>
</ng-container>
`
)
export class ErrorMessageComponent {
@Input errorCode: number | string;
}