123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* @flow */
-
- import jqueryI18next from 'jquery-i18next';
-
- import { i18next } from '../../react/features/base/i18n';
-
- declare var $: Function;
-
- /**
- * Notifies that the {@link i18next} instance has finished its initialization.
- *
- * @returns {void}
- * @private
- */
- function _onI18nInitialized() {
- $('[data-i18n]').localize();
- }
-
- /**
- *
- */
- class Translation {
- /**
- *
- */
- generateTranslationHTML(key: string, options: Object) {
- const optAttr
- = options ? ` data-i18n-options='${JSON.stringify(options)}'` : '';
-
- // XXX i18next expects undefined if options are missing.
- const text = i18next.t(key, options ? options : undefined);
-
- return `<span data-i18n="${key}"${optAttr}>${text}</span>`;
- }
-
- /**
- *
- */
- init() {
- jqueryI18next.init(i18next, $, { useOptionsAttr: true });
-
- if (i18next.isInitialized) {
- _onI18nInitialized();
- } else {
- i18next.on('initialized', _onI18nInitialized);
- }
-
- i18next.on('languageChanged', _onI18nInitialized);
- }
-
- /**
- *
- */
- translateElement(selector: Object, options: Object) {
- // XXX i18next expects undefined if options are missing.
- selector.localize(options ? options : undefined);
- }
- }
-
- export default new Translation();
|