diff --git a/app-localize-behavior.html b/app-localize-behavior.html index a990747..7448cd5 100644 --- a/app-localize-behavior.html +++ b/app-localize-behavior.html @@ -110,12 +110,30 @@ * @event app-resources-error */ + /** + * This event is fired when each instance of app-localize-behavior + * is created. It is useful for collecting the instances so that + * later a method can be called on each of them. For an example, + * see demo/app-localize-behavior-mgr.html. + * + * @event app-localize-behavior-ready + */ + + /** + * This event is fired every time the language is changed. + * For an example of how this might be used, + * see demo/app-localize-behavior-mgr.html. + * + * @event app-language-changed + */ + properties: { /** * The language used for translation. */ language: { - type: String + type: String, + observer: '__languageChanged' }, /** @@ -194,6 +212,10 @@ } }, + ready() { + this.fire('app-localize-behavior-ready', this); + }, + /** * Returns a computed `localize` method, based on the current `language`. */ @@ -227,6 +249,10 @@ }; }, + __languageChanged: function() { + this.fire('app-language-changed', this.language); + }, + __onRequestResponse: function(event) { this.resources = event.response; this.fire('app-resources-loaded'); diff --git a/demo/app-localize-behavior-mgr.html b/demo/app-localize-behavior-mgr.html new file mode 100644 index 0000000..18ef456 --- /dev/null +++ b/demo/app-localize-behavior-mgr.html @@ -0,0 +1,44 @@ + + + + + + + diff --git a/demo/index.html b/demo/index.html index a25f461..6c4068a 100644 --- a/demo/index.html +++ b/demo/index.html @@ -20,6 +20,7 @@ + @@ -27,7 +28,9 @@ - - + + + + diff --git a/demo/x-local-translate.html b/demo/x-local-translate.html index afd2014..7bb6406 100644 --- a/demo/x-local-translate.html +++ b/demo/x-local-translate.html @@ -47,7 +47,8 @@

This demo's resources are loaded statically, not from an external file.

/* Overriden from AppLocalizeBehavior */ language: { value: 'en', - type: String + type: String, + observer: '_changeLanguage' }, /* Overriden from AppLocalizeBehavior */ @@ -76,6 +77,10 @@

This demo's resources are loaded statically, not from an external file.

} }, + _changeLanguage() { + this.$.switch.checked = this.language === 'fr'; + }, + _toggle: function() { this.language = this.$.switch.checked ? 'fr' : 'en'; } diff --git a/demo/x-translate.html b/demo/x-translate.html index cd90baa..0881792 100644 --- a/demo/x-translate.html +++ b/demo/x-translate.html @@ -70,7 +70,8 @@

{{localize('header_2')}}

/* Overriden from AppLocalizeBehavior */ language: { value: 'en', - type: String + type: String, + observer: '_changeLanguage' }, /* Overriden from AppLocalizeBehavior */ @@ -88,6 +89,10 @@

{{localize('header_2')}}

this.loadResources(this.resolveUrl('locales.json')); }, + _changeLanguage() { + this.$.switch.checked = this.language === 'fr'; + }, + _toggle: function() { this.language = this.$.switch.checked ? 'fr' : 'en'; } diff --git a/index.html b/index.html index 0b14f7c..6330210 100644 --- a/index.html +++ b/index.html @@ -23,8 +23,6 @@ - -