我正在开发一个Web应用程序,该应用程序的前端是Angular,后端是Ruby on Rails。 该应用程序使用一些静态数据,这些数据是从客户端的json文件加载的,并由@ ngx-translate / core的TranslateService进行翻译。
事实是我必须扩展数据库,我设法通过在服务器端存储新条目来做到这一点。
具体来说,有些条目的翻译是在客户端,而其他条目的翻译是在服务器。
除了TranslateService之外,我还可以使用TranslateHttpLoader与存储在服务器端的新翻译进行相同的工作吗?我的意思是,即使每个条目的来源(客户端或服务器端)都是随机的,我也可以自动获得翻译吗?还是有另一种解决方案并不意味着要改变一切?
当前,TranslateService的使用方式如下:
language.service.ts
@Injectable()
export class LanguagesService {
selectedLanguage: string;
constructor(private _translateService: TranslateService) { }
/**
* Initialize languages on the PIA tool
*/
initLanguages() {
this._translateService.addLangs(['en', 'cz', 'de', 'dk', 'el', 'es', 'et', 'fi', 'fr', 'hr', 'hu', 'it', 'lt', 'nl', 'no', 'pl', 'pt', 'ro']);
this._translateService.setDefaultLang('fr');
}
/**
* Get the current language or set it
*/
getOrSetCurrentLanguage() {
let language = localStorage.getItem('userLanguage');
// If there is already a language choosen
if (language && language.length > 0) {
this._translateService.use(language);
} else { // Set default language
const browserLang = this._translateService.getBrowserLang();
language = browserLang.match(/en|cz|de|dk|el|es|et|fi|fr|hr|hu|it|lt|nl|no|pl|pt|ro/) ? browserLang : 'fr';
this._translateService.use(language);
}
this.selectedLanguage = language;
}
/**
* Update the current language after choosing a new one
* @param {string} selectedLanguage
* @memberof HeaderComponent
*/
updateCurrentLanguage(selectedLanguage: string) {
localStorage.setItem('userLanguage', selectedLanguage);
this._translateService.use(selectedLanguage);
this.selectedLanguage = selectedLanguage;
}
}
然后在视图中使用管道。
我希望仍然可以在html视图中使用转换管道。
谢谢您的时间。