Blang.js
Detect browser's default language.
Blang.js is light-weight and none-dependency language detect javascript library. Blang.js is able to detecting user's set default language on Web-browser.
; langis; // if English, return 'true' langis; // if not French, return falselangis; // if not German, return falselangis; // if not Spanish, return falselangis; // if not Russian, return false // ... goes on
! Working only web-browser. The reason why using
navigator
object inside.
Installation
// npmnpm i blang// yarnyarn add blang// cdn<script src="https://unpkg.com/blang/dist/blang.min.js"></script>
Import library
ES-2015 and so (Babel)
; langis; // call library
CommonJS
const lang = ; langis; // call library
Import library with <script>
tag
<!-- import library from script tag --><!-- OR from CDN -->
is.languageCode() : Boolean
is
object is used to compare a browser's language.
Quick example snippet.
If user's browser-language has set as English, return true
. Otherwise return false
.
/* detect english of not */; // true if, en-us, en-gp, en-in, en-ca, en-nz ...*langis;
Currently detectable 108 languages.
// if English, return 'true'langis; // Englishlangis; // Frenchlangis; // Russianlangis; // Hebrewlangis; // Chineselangis; // Hindi // .. goes on
multiple regions
Some languages have multiple regions like country in one language.
For example English have en
, en-au
, en-ca
, en-in
, en-za
, en-gb
, en-nz
, en-us
They each indicate
English
,Australia
,Canada
,India
,South Africa
,United Kingdom
,New Zealand
, andUnited States
In this case, you can define a regions with argument.
/* detect one-region in English :String */langis; // if 'en-gb' /* multiple regions in English :Array */langis; // if 'en', 'en-us' and 'en-ca'langis; // // if 'en', 'en-au' and 'en-nz'
Languages are available in 'English', 'Chinese', 'French', 'German', 'Italian', 'Portuguese', 'Spanish'
plural(array) : Boolean
plural
method is used detect a languages.
Below snippet return boolean, if browser's language has setting such as English
, French
, Spanish
or German
.
; // English, French, Spanish, Germanlang;
exact(array) : Boolean
exact
method is detect a languages.
Almost same as plural
method but, this is able to specify a lang-code with country. Like, en-us
, de-ch
.
; /* * (United States)(English) : en-us * (United States)(Spanish) : es-us * (Mexico)(Spanish) : es-mx * (Canada)(English) : en-ca * (Canada)(French) : fr-ca */lang;
detect() : String
detect
method is to return browser's setting language as string.
; lang;// e.x.p: fr-ca, en-us, en, zh-tw ... etc
Practical usage
Blang.js is very useful for a case of switching rendering components by language with Virtual-DOM libs ( React.js, Vue.js, and so.) .
vue.js case ( vuex )
<!-- if English to be rendering --> Your expected it's English 😆 <!-- if setting as 'en-ca' --> 🇨🇦 😆 <!-- if setting as 'en-au', 'en-nz' or 'en' --> 🇦🇺 🇳🇿 😆
react.js case
This example with React.js. using below's snippet react-extras.
;; //... { const lang = languageis; return <div> /* Choose */ <Choose> /* rendering if set as English */ <ChooseWhen condition=lang> <h1> Hello! </h1> </ChooseWhen> /* rendering if set as Chinise */ <ChooseWhen condition=lang> <h1> 你好! </h1> </ChooseWhen> /* rendering if set as Japanese */ <ChooseWhen condition=lang> <h1> こんにちは! </h1> </ChooseWhen> <ChooseOtherwise> <h1> Somthing else </h1> </ChooseOtherwise> </Choose> </div> } // ! render()
axios case
You can easily switch a request by language.
;; let url; iflangis // if japan url = '/req/for/japanese'; else // if not japan url = '/req/for/english'; axios ;
moment.js case
You can easily switch a locale (date-formats) by language.
var m = moment; // if japan to be 'japan', else 'english'blangis === true ? m // japan : m; // english ;// e.x.p : if ja : 2018年7月8日 日曜日 17:30// e.x.p : else : Sunday, July 8, 2018 5:30 PM
Detectable-languages
Those list of data are from Google-Chrome.
Language | code |
---|---|
Albanian | sq |
Afrikaans | af |
Amharic | am |
Arabic | ar |
Aragonese | an |
Armenian | hy |
Asturian | ast |
Azerbaijani | az |
Bangla | bn |
Basque | eu |
Belarusian | be |
Bosnian | bs |
Breton | br |
Bulgarian | bg |
Catalan | ca |
Central Kurdish | ckb |
Chinese | (Chinese) : zh (Hong Kong) : zh-HK (Simplified) : zh-CN (Traditional) : zh-TW |
Corsican | co |
Croatian | hr |
Czech | cs |
Danish | da |
Dutch | nl |
English | (English) : en (Australia) : en-AU (Canada) : en-CA (India) : en-IN (New Zealand) : en-NZ (South Africa) : en-ZA (United Kingdom) : en-GB (United States) : en-US |
Esperanto | eo |
Estonian | et |
Faroese | fo |
Filipino | fil |
Finnish | fi |
French | (French) : fr (Canada) : fr-CA (France) : fr-FR (Switzerland) : fr-CH |
Galician | gl |
Georgian | ka |
German | (German) : de (Austria) : de-AT (Germany) : de-DE (Liechtenstein) : de-LI (Switzerland) : de-CH |
Greek | el |
Guarani | gn |
Gujarati | gu |
Hausa | ha |
Hawaiian | haw |
Hebrew | he |
Hindi | hi |
Hmong | hmn |
Hungarian | hu |
Icelandic | is |
Indonesian | id |
Interlingua | ia |
Irish | ga |
Italian | (Italian) : it (Italy) : it-IT (Switzerland) : it-CH |
Javanese | jv |
Japanese | ja |
Kannada | kn |
Kazakh | kk |
Khmer | km |
Korean | ko |
Kurdish | ku |
Kyrgyz | ky |
Lao | lo |
Latin | la |
Latvian | lv |
Lingala | ln |
Lithuanian | lt |
Luxembourgish | lb |
Macedonian | mk |
Malay | ms |
Malayalam | ml |
Maltese | mt |
Marathi | mr |
Mongolian | mn |
Nepali | ne |
Norwegian Bokmål | nb |
Norwegian Nynorsk | nn |
Occitan | oc |
Odia | or |
Oromo | om |
Pashto | ps |
Persian | fa |
Polish | pl |
Portuguese | (Portuguese) : pt (Brazil) : pt-BR (Portugal) : pt-PT |
Punjabi | pa |
Quechua | qu |
Romanian | (Romanian) : ro (Moldova) : mo |
Romansh | rm |
Russian | ru |
Samoan | sm |
Scottish Gaelic | gd |
Serbian | sr |
Serbo-Croatian | sh |
Shona | sn |
Sindhi | sd |
Sinhala | si |
Slovak | sk |
Slovenian | sl |
Somali | so |
Southern Sotho | st |
Spanish | (Spanish) : es (Argentina) : es-AR (Chile) : es-CL (Colombia) : es-CO (Costa Rica) : es-CR (Honduras) : es-HN (Latin America) : es-419 (Mexico) : es-MX (Peru) : es-PE (Spain) : es-ES (United States) : es-US (Uruguay) : es-UY (Venezuela) : es-VE |
Sundanese | su |
Swahili | sw |
Swedish | sv |
Tajik | tg |
Tamil | ta |
Tatar | tt |
Telugu | te |
Thai | th |
Tigrinya | ti |
Tongan | to |
Turkish | tr |
Turkmen | tk |
Twi | tw |
Ukrainian | uk |
Uyghur | ug |
Uzbek | uz |
Urdu | ur |
Vietnamese | vi |
Walloon | wa |
Welsh | cy |
Western Frisian | fy |
Xhosa | xh |
Yiddish | yi |
Yoruba | yo |
Zulu | zu |
LICENCE
MIT