Как инициализировать интернационализацию для полимерного элемента перед его загрузкой на странице

Я использую Dart для создания приложения Polymer. Так как я использую Dart 'Возможности интернационализации в элементах Polymer. Я хочу инициализировать сообщения интернационализации до того, как будет создан элемент Polymer, и отобразить соответствующие сообщения для данной локали внутри элемента Polymer.

Как это может быть сделано? Кто-нибудь успешно использовал Полимер с Интернационализацией?

пс. Я следовалэтот пример настроить интернационализацию

Ниже приводится сгенерированное по умолчанию приложение Polymer от Dart Editor и код, который ямы добавили.

messages_en.dart

library messages_en;

import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';

final messages = new MessageLookup();

class MessageLookup extends MessageLookupByLibrary {

  get localeName => 'en';

  final messages = {
    "myMsg" : () => Intl.message("MY MESSAGE")
  };

}

messages_all.dart

library messages_all;

import'dart:async';
import 'package:intl/message_lookup_by_library.dart';
import 'package:intl/src/intl_helpers.dart';
import 'package:intl/intl.dart';
import 'messages_en.dart' as en;

MessageLookupByLibrary _findExact(localeName) {
  switch (localeName) {
    case 'en': return en.messages;
    default: return null;
  }
}

initializeMessages(localeName) {
  initializeInternalMessageLookup(() => new CompositeMessageLookup());
  messageLookup.addLocale(localeName, _findGeneratedMessagesFor);
  return new Future.value();
}

MessageLookupByLibrary _findGeneratedMessagesFor(locale) {
  var actualLocale = Intl.verifiedLocale(locale, (x) => _findExact(x) != null);
  if (actualLocale == null) return null;
  return _findExact(actualLocale);
}

clickcounter.dart

import 'package:polymer/polymer.dart';
import 'package:intl/intl.dart';
import 'dart:async';
import 'messages_all.dart';
import 'messages_en.dart' as en;

/**
 * A Polymer click counter element.
 */
@CustomTag('click-counter')
class ClickCounter extends PolymerElement {
  @published int count = 0;

  @observable var messagesLoaded = false;

  ClickCounter.created() : super.created() {
    var enMessagesFuture = initializeMessages('en');

    Future.wait([enMessagesFuture]).then((_) => messagesLoaded = true);
  }

  void increment() {
    count++;
  }
}

clickcounter.html


  
    
      div {
        font-size: 24pt;
        text-align: center;
        margin-top: 140px;
      }
      button {
        font-size: 24pt;
        margin-bottom: 20px;
      }
    
    
      Click me<br>
      <span>(click count: {{count}})</span>
      <br>
      <br>
      <span>current locale: {{Intl.getCurrentLocale()}}</span>
      <br>
      <br>
      
        <span>intl message: {{How can I extract myMsg here?}}</span>
      
    
  
  

Ответы на вопрос(2)

Ваш ответ на вопрос