react-localization
Advanced tools
Comparing version 0.0.12 to 0.0.13
{ | ||
"name": "react-localization", | ||
"version": "0.0.12", | ||
"version": "0.0.13", | ||
"description": "Simple module to localize the React interface using the same syntax used in the ReactNativeLocalization module, use 'npm run build' before publishing", | ||
@@ -5,0 +5,0 @@ "scripts": { |
@@ -17,15 +17,29 @@ 'use strict'; | ||
*/ | ||
const DEFAULT_VALUE = 'en-US'; | ||
export default class LocalizedStrings { | ||
_getInterfaceLanguage() { | ||
let lang = null; | ||
if (typeof navigator !== 'undefined' && navigator.languages && typeof navigator.languages !== 'undefined' && navigator.languages[0] && typeof navigator.languages[0] !== 'undefined') { | ||
lang = navigator.languages[0]; | ||
} else if (typeof navigator !== 'undefined' && navigator.language && typeof navigator.language !== 'undefined') { | ||
lang = navigator.language; | ||
} else if (typeof navigator !== 'undefined' && navigator.userLanguage && typeof navigator.userLanguage !== 'undefined') { | ||
lang = navigator.userLanguage; | ||
} else if (typeof navigator !== 'undefined' && navigator.browserLanguage && typeof navigator.browserLanguage !== 'undefined') { | ||
lang = navigator.browserLanguage; | ||
} | ||
return lang || DEFAULT_VALUE; | ||
} | ||
_getBestMatchingLanguage(language, props) { | ||
//If an object with the passed language key exists return it | ||
if (props[language]) return language; | ||
//if the string is composed try to find a match with only the first language identifiers (en-US --> en) | ||
var idx = language.indexOf("-"); | ||
if (idx >= 0) { | ||
language = language.substring(0, idx); | ||
if (props[language]) return language; | ||
} | ||
//Return the default language (the first coded) | ||
return Object.keys(props)[0]; | ||
const idx = language.indexOf('-'); | ||
const auxLang = (idx >= 0) ? language.substring(0, idx) : language; | ||
return props[auxLang] ? auxLang : Object.keys(props)[0]; | ||
} | ||
@@ -35,6 +49,3 @@ | ||
constructor(props) { | ||
this.interfaceLanguage = (typeof navigator !== 'undefined' && navigator.languages && typeof navigator.languages !== 'undefined' && navigator.languages[0] && typeof navigator.languages[0] !== 'undefined') ? navigator.languages[0] : | ||
((typeof navigator !== 'undefined' && navigator.language && typeof navigator.language !== 'undefined') ? navigator.language : | ||
((typeof navigator !== 'undefined' && navigator.userLanguage && typeof navigator.userLanguage !== 'undefined') ? navigator.userLanguage : | ||
'en-US')); | ||
this.interfaceLanguage = this._getInterfaceLanguage(); | ||
//Store locally the passed strings | ||
@@ -113,3 +124,3 @@ this.props = props; | ||
//Replace all occorrencies of a string in another using RegExp | ||
//Replace all occurrences of a string in another using RegExp | ||
_replaceAll(find, replace, str) { | ||
@@ -116,0 +127,0 @@ //Escape find |
17223
263