Skip to content

Commit

Permalink
Improved language detection for Google Chrome (#42)
Browse files Browse the repository at this point in the history
* Better detection of language for chrome

* Condition restored to simpler form
  • Loading branch information
Deykun authored Jan 20, 2024
1 parent 493509f commit 602235a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 11 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Changelog

## Version 3.0.4
## Version 3.0.5
- **Fix**: Better detection of language for Chrome

## Version 3.0.4 (20.01.2024)
- **Fix**: Simplifying the game process restoration (changing the game language in settings always resets the game mode to daily)
- **Fix**: Polish characters can be typed only in Polish mode

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"literalnie"
],
"private": true,
"version": "3.0.4",
"version": "3.0.5",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
29 changes: 20 additions & 9 deletions src/utils/lang.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,27 @@ export const getLangFromUrl = () => {
export const getLangFromBrowser = () => {
const { language: browserLanguage, languages: browserLanguages } = navigator;

const langFromBrowser = SUPPORTED_LANGS.find(lang => browserLanguage === lang)
|| SUPPORTED_LANGS.find(lang => {
const { languages: langLanguages } = SUPPORTED_DICTIONARY_BY_LANG[lang];
const exactlangFromBrowser = SUPPORTED_LANGS.find(lang => {
const { languages: langLanguages } = SUPPORTED_DICTIONARY_BY_LANG[lang];

const isThisLanguageSupported = langLanguages.some(
oneOfBrowserLanguages => browserLanguages.includes(oneOfBrowserLanguages)
);
const isThisExactLanguage = langLanguages.includes(browserLanguage);

return isThisLanguageSupported;
});
return isThisExactLanguage;
});

return langFromBrowser;
if (exactlangFromBrowser) {
return exactlangFromBrowser;
}

const supportedLangFromBrowser = SUPPORTED_LANGS.find(lang => {
const { languages: langLanguages } = SUPPORTED_DICTIONARY_BY_LANG[lang];

const isThisLanguageSupported = langLanguages.some(
oneOfBrowserLanguages => browserLanguages.includes(oneOfBrowserLanguages)
);

return isThisLanguageSupported;
});

return supportedLangFromBrowser;
}

0 comments on commit 602235a

Please sign in to comment.