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);
    }