Ionic 2.2.3 中的 ng2-translate,文本不会随着不同的语言而改变
ng2-translate in Ionic 2.2.3, the text doesen't change with different languages
我需要一些有关 Ionic 2(.2.3) 应用程序中 ng2-translate 的帮助。
我遵循了本教程:
https://www.techdiary.io/internationalization-of-ionic2-apps/
它奏效了。
我创建了一个 en.json 文件和一个小 "dictionary" 文件。
我用 {{"Example"|translate}} 标记的词被翻译成相关词。
但是如果我将 initTranslation() 更改为 "de" 而不是 en
initTranslation() {
var userLang = navigator.language.split('-')[0]; // use navigator lang if available
userLang = /(de|en)/gi.test(userLang) ? userLang : 'de';
// this language will be used as a fallback when a translation isn't found in the current language
this.translate.setDefaultLang('en');
// the lang to use, if the lang isn't available, it will use the current loader to get them
this.translate.use(userLang);
}
什么都不会发生。
我错过了什么?
我创建了一个 de.json,其中包含与 en.json 文件相同的词。
是否可以使用标记的标签({{"Example"|translate}})作为默认语言?还是我现在总是需要翻译标签?
谢谢
编辑:
显然是这个:
userLang = /(fr|en|es|in|zh)/gi.test(userLang) ? userLang : 'en';
对我不起作用。如果我更改默认语言,它只会更改语言。而且它只有在我使用 "en" 时才会起作用。
很混乱。
编辑2:
是的,如果我使用
userLang = 'de'
有效。
但是,是否可以使用实际的 html 文本作为默认语言?
//但是,是否可以使用实际的 html 文本作为默认语言?
您是说用户浏览器语言?
如果是这样,就用这个。
let browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|es/) ? browserLang: 'en')
else initially {{"Example"|translate}} 示例需要稍后出现 您需要选择语言吗?如果是这样,请将下拉列表添加到您的 html
<ul class="dropdown-menu" role="menu">
<li>
<a (click)="changeLanguage('en')">English</a>
</li>
<li>
<a (click)="changeLanguage('es')">Spanish</a>
</li>
</ul>
.ts 文件
changeLanguage(lang) {
this.translate.use(lang);
}
我需要一些有关 Ionic 2(.2.3) 应用程序中 ng2-translate 的帮助。 我遵循了本教程: https://www.techdiary.io/internationalization-of-ionic2-apps/ 它奏效了。
我创建了一个 en.json 文件和一个小 "dictionary" 文件。 我用 {{"Example"|translate}} 标记的词被翻译成相关词。
但是如果我将 initTranslation() 更改为 "de" 而不是 en
initTranslation() {
var userLang = navigator.language.split('-')[0]; // use navigator lang if available
userLang = /(de|en)/gi.test(userLang) ? userLang : 'de';
// this language will be used as a fallback when a translation isn't found in the current language
this.translate.setDefaultLang('en');
// the lang to use, if the lang isn't available, it will use the current loader to get them
this.translate.use(userLang);
}
什么都不会发生。 我错过了什么? 我创建了一个 de.json,其中包含与 en.json 文件相同的词。
是否可以使用标记的标签({{"Example"|translate}})作为默认语言?还是我现在总是需要翻译标签?
谢谢
编辑: 显然是这个:
userLang = /(fr|en|es|in|zh)/gi.test(userLang) ? userLang : 'en';
对我不起作用。如果我更改默认语言,它只会更改语言。而且它只有在我使用 "en" 时才会起作用。 很混乱。
编辑2:
是的,如果我使用
userLang = 'de'
有效。 但是,是否可以使用实际的 html 文本作为默认语言?
//但是,是否可以使用实际的 html 文本作为默认语言?
您是说用户浏览器语言?
如果是这样,就用这个。
let browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|es/) ? browserLang: 'en')
else initially {{"Example"|translate}} 示例需要稍后出现 您需要选择语言吗?如果是这样,请将下拉列表添加到您的 html
<ul class="dropdown-menu" role="menu">
<li>
<a (click)="changeLanguage('en')">English</a>
</li>
<li>
<a (click)="changeLanguage('es')">Spanish</a>
</li>
</ul>
.ts 文件
changeLanguage(lang) {
this.translate.use(lang);
}