您可以使用配置文件和语言 json 文件,而不是使用 ng-translate,您可以将该 json 文件放在您的服务器位置并从角度轻松访问它
在config.json
你可以玷污语言类型
{
"LANGUAGE": "fr.json"
}
在en/fr.json
文件 中
{
"TITLE": "Bonjour Angular avec translate !",
"SELECT": "Changer la langue"
}
听到是示例代码
应用程序组件
export class AppComponent {
name = LAN_CONFIG['TITLE'];
// name = APP_CONFIG['LANGUAGE'];
}
或者
您可以使用 config.js 文件
将此代码段添加到 index.html 标头部分
<script>
var xhrObj = new XMLHttpRequest();
var url = '/assets/config/config.js';
xhrObj.open('GET', url, false);
xhrObj.send('');
var se = document.createElement('script');
se.type = "text/javascript";
se.text = xhrObj.responseText;
document.getElementsByTagName('head')[0].appendChild(se);
</script>
config.js 文件
window.config= {};
window.config['LANGUAGE'] = 'er.js';
您可以使用该变量来访问值
@Injectable()
export class LanguageService {
appConfig:AppConfigService;
lanTypePath ='../../assets/i18n/'+ window['config'].LANGUAGE;
constructor(private http: HttpClient)
{
console.log(APP_CONFIG['LANGUAGE']);
}
public load()
{
return new Promise((resolve, reject) => {
this.http.get(this.lanTypePath).catch((error: any): any => {
reject(true);
return Observable.throw('Server error');
}).subscribe((envResponse :any) => {
let t = new LanConfig();
//Modify envResponse here if needed (e.g. to ajust parameters for https,...)
LAN_CONFIG = Object.assign(t, envResponse);
resolve(true);
});
});
}
}
对于您的情况,认为这种方法比以前更好
Github 演示
希望这会有所帮助..!