以下是我提供的服务,应根据参数en
在导入de
或lang
之间切换。
如果我按原样使用lang
,我只会将this.phrases
打印为{0: "d", 1: "e"}
,而不是原来的样子。
这可能吗?
import { Injectable } from '@angular/core';
import en from '../locale/en';
import de from '../locale/de';
@Injectable({
providedIn: 'root'
})
export class TranslateService {
phrases: any = {};
constructor() { }
use(lang: string) {
this.phrases = Object.assign({}, lang || {});
return this.phrases;
}
}
如果使用this.translateService.use('en')
调用了此服务,我希望它会从en
导入中返回内容。
如果是this.translateService.use('de')
,那么我希望返回de
内容。
../ locale / de
export default {
"CONTINUE": "fortsetzen",
"HELLO": "Halo {{value}}",
"Email address": "E-Mail-Addresse"
}
我已经能够通过
使其正常工作import { Injectable } from '@angular/core';
import en from '../locale/en';
import de from '../locale/de';
@Injectable({
providedIn: 'root'
})
export class TranslateService {
phrases: any = {};
constructor() { }
use(lang: string) {
let locale;
switch(lang) {
case 'de':
locale = de;
break;
default:
locale = en;
break;
}
this.phrases = Object.assign({}, locale || {});
return this.phrases;
}
}
但是我希望有一个更清洁的方法