Skip to content

Commit b014d84

Browse files
committed
use Intl.Locale to convert language input to 2-char code
1 parent 890526c commit b014d84

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ client.previousPage();
162162

163163
#### Define language filter
164164
```js
165-
// Fetch documents in specific language (e.g. "en" or "de")
165+
// Fetch documents in specific language (e.g. "en" or "de" or "en-GB")
166166
client.setLanguage('en');
167167
```
168168

src/settings.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,16 @@ var settings = function() {
5858
}
5959

6060
this.setLanguage = function(language) {
61-
if (language && language.length !== 2) {
62-
throw "use 2-char language code (e.g. \"en\")";
61+
var languageIntlLocale;
62+
try {
63+
languageIntlLocale = new Intl.Locale(language).language;
64+
} catch (e) {
65+
throw "use accepted language code provided by ECMAScript Internationalization API (e.g. \"en\", \"en-GB\")";
6366
}
64-
this.settings.lang = language;
67+
if (languageIntlLocale && languageIntlLocale.length !== 2) {
68+
throw "use 2-char/4-char language code (e.g. \"en\", \"en-GB\")";
69+
}
70+
this.settings.lang = languageIntlLocale;
6571
}
6672

6773
this.setFuzzyMatch = function(fuzzy) {

0 commit comments

Comments
 (0)