i18n перевод не работает на усилителе-аутентификаторе - PullRequest
0 голосов
/ 28 февраля 2019

В моем приложении Ionic я реализовал директиву по умолчанию, которая дает вам все необходимые формы регистрации / входа.

Единственное, что мне нравится переводить все строки. Согласно документации Amplify, это возможно стам модуль i18n: https://aws -amplify.github.io / docs / js / i18n

Так что на моем home.page.ts у меня есть:

....
import { I18n } from '@aws-amplify/core';


@Component({
  selector: 'app-page-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss']
})
export class HomePage implements AfterContentInit {
  authState: any;
  signUpConfig: any;
  // including AuthGuardService here so that it's available to listen to 
  auth events
  authService: AuthGuardService;
  amplifyService: AmplifyService;

  constructor(
    public events: Events,
    public guard: AuthGuardService,
    public amplify: AmplifyService,
  ) {
      this.authState = { loggedIn: false };
      this.authService = guard;
      this.amplifyService = amplify;
      this.amplifyService.authStateChange$.subscribe(authState => {
      this.authState.loggedIn = authState.state === 'signedIn';
      this.events.publish('data:AuthState', this.authState);
  });


  const dict = {
    'nl': {
      'Sign In': 'Inloggen',
      'Sign Up': 'Account aanmaken',
      'No account?': 'Geen account?'
    }
  };
  I18n.putVocabularies(dict);
  I18n.setLanguage('nl');

  this.signUpConfig = {
    header: 'Welkom!',
    hideAllDefaults: true,
    signUpFields: [
      {
        label: 'Gebruikersnaam',
        key: 'username',
        required: true,
        displayOrder: 1,
        type: 'string',
      },
      {
        label: 'Wachtwoord',
        key: 'password',
        required: true,
        displayOrder: 2,
        type: 'password',
      },
      {
        label: 'Email',
        key: 'email',
        required: true,
        displayOrder: 3,
        type: 'email',
      }
    ]
  };
 }

 ngAfterContentInit() {
   this.events.publish('data:AuthState', this.authState);
 }
 }

В данный момент это не имеет никакого эффекта.

В моем home.page.html директива реализована, но как узнать о существовании класса I18N?

<amplify-authenticator framework="ionic" [signUpConfig]="signUpConfig"></amplify-authenticator>
...