Skip to content

Commit

Permalink
[RN] Add builtin translations
Browse files Browse the repository at this point in the history
Load all of them as imports, so the packager includes them in the bundle. Then
register them with the i18next library.
  • Loading branch information
saghul committed Jan 26, 2018
1 parent b52e584 commit 8673083
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 0 deletions.
144 changes: 144 additions & 0 deletions react/features/base/i18n/BuiltinLanguages.native.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
import i18next from 'i18next';

/**
* Collection of builtin languages.
*/
const languages = [

// Bulgarian
{
name: 'bg',
mainResource: require('../../../../lang/main-bg'),
langResource: require('../../../../lang/languages-bg')
},

// German
{
name: 'de',
mainResource: require('../../../../lang/main-de'),
langResource: require('../../../../lang/languages-de')
},

// Esperanto
{
name: 'eo',
mainResource: require('../../../../lang/main-eo'),
langResource: require('../../../../lang/languages-eo')
},

// Spanish
{
name: 'es',
mainResource: require('../../../../lang/main-es'),
langResource: require('../../../../lang/languages-es')
},

// French
{
name: 'fr',
mainResource: require('../../../../lang/main-fr'),
langResource: require('../../../../lang/languages-fr')
},

// Armenian
{
name: 'hy',
mainResource: require('../../../../lang/main-hy'),
langResource: require('../../../../lang/languages-hy')
},

// Italian
{
name: 'it',
mainResource: require('../../../../lang/main-it'),
langResource: require('../../../../lang/languages-it')
},

// Norwegian Bokmal
{
name: 'nb',
mainResource: require('../../../../lang/main-nb'),
langResource: require('../../../../lang/languages-nb')
},

// Occitan
{
name: 'oc',
mainResource: require('../../../../lang/main-oc'),
langResource: require('../../../../lang/languages-oc')
},

// Polish
{
name: 'pl',
mainResource: require('../../../../lang/main-pl'),
langResource: require('../../../../lang/languages-pl')
},

// Portuguese (Brazil)
{
name: 'ptBR',
mainResource: require('../../../../lang/main-ptBR'),
langResource: require('../../../../lang/languages-ptBR')
},

// Russian
{
name: 'ru',
mainResource: require('../../../../lang/main-ru'),
langResource: require('../../../../lang/languages-ru')
},

// Slovak
{
name: 'sk',
mainResource: require('../../../../lang/main-sk'),
langResource: require('../../../../lang/languages-sk')
},

// Slovenian
{
name: 'sl',
mainResource: require('../../../../lang/main-sl'),
langResource: require('../../../../lang/languages-sl')
},

// Swedish
{
name: 'sv',
mainResource: require('../../../../lang/main-sv'),
langResource: require('../../../../lang/languages-sv')
},

// Turkish
{
name: 'tr',
mainResource: require('../../../../lang/main-tr'),
langResource: require('../../../../lang/languages-tr')
},

// Chinese (China)
{
name: 'zhCN',
mainResource: require('../../../../lang/main-zhCN'),
langResource: require('../../../../lang/languages-zhCN')
}
];

/**
* Registers all builtin languages with the i18n library.
*/
for (const language of languages) {
i18next.addResourceBundle(
language.name,
'main',
language.mainResource,
/* deep */ true,
/* overwrite */ true);
i18next.addResourceBundle(
language.name,
'languages',
language.langResource,
/* deep */ true,
/* overwrite */ true);
}
Empty file.
6 changes: 6 additions & 0 deletions react/features/base/i18n/i18next.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,10 @@ i18next.addResourceBundle(
/* deep */ true,
/* overwrite */ true);

// Add builtin languages.
// XXX: Note we are using require here, because we want the side-effects of
// the import, but imports can only be placed at the top, and it would be
// too early, since i18next is not yet initialized at that point.
require('./BuiltinLanguages');

export default i18next;

0 comments on commit 8673083

Please sign in to comment.