我正在使用 angular 8 > 在我的例子中 > 如果你想将 typescript 字符串翻译成另一种语言,那么使用这个 >
首先,制作一个服务文件来获取翻译值,下面是我的 globaltranslate.service.ts 文件代码
import { Injectable } from '@angular/core';
import {TranslateService} from '@ngx-translate/core';
constructor(public translate: TranslateService) {}
然后做一个返回函数…………
getTranslation(str) {
const currentLang = this.translate.currentLang; // get current language
const returnValue = this.translate.translations[currentLang][str]; // get converted string from current language
if (returnValue === undefined) {
return this.translate.translations.en_merch[str]; // if value is getting undefined then return default language string, en_merch is default english language file here
} else {
return returnValue;
}
}
并且在component.ts文件中,你可以导入服务文件并像下面的代码一样使用它...
import {GlobaltranslateService} from '../../../../services/globaltranslate.service';
@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [GlobaltranslateService] // add service in provider
})
constructor(
private gTranslate: GlobaltranslateService // add service into constructor
) {}
const title = this.gTranslate.getTranslation('Title text'); // get return value by calling function 'getTranslation' in globaltranslateservice.
这个方案更适合i18n和angular ngx translate
的所有项目
这也适用于 sweetalert2 字符串,如以下代码
Swal (
this.gTranslate.getTranslation('Warning'),
data.message,
'warning'
);
感谢阅读,如有疑问请留言。