Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit b4771cf

Browse files
committed
improved language detection // fixes #101
1 parent 0880026 commit b4771cf

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
## [Unreleased]
1010
### Changed
11+
- Improved language detection by reading the user preferred languages from the macOS System Preferences instead of using the system locale (#101)
1112
- Improved logging for JAVA_HOME detection (#100)
1213

1314
### Fixed

src/universalJavaApplicationStub

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -334,11 +334,27 @@ done
334334
# internationalized messages
335335
############################################
336336

337-
LANG=$(defaults read -g AppleLocale)
338-
stub_logger "[Language] $LANG"
337+
# supported languages / available translations
338+
stubLanguages=("fr" "de" "zh" "es" "en")
339+
340+
# read user preferred languages as defined in macOS System Preferences (#101)
341+
stub_logger '[LanguageSearch] Checking preferred languages ...'
342+
appleLanguages=($(defaults read -g AppleLanguages | grep '\s"' | tr -d ',' | xargs))
343+
344+
language=""
345+
for i in "${appleLanguages[@]}"
346+
do
347+
langValue="${i%-*}"
348+
stub_logger "[LanguageSearch] ... found '$i' (as '$langValue')"
349+
if [ -z "${language}" ] && [[ " ${stubLanguages[@]} " =~ " ${langValue} " ]]; then
350+
stub_logger "[LanguageSearch] ... ... which has been set as the default language for the launcher stub"
351+
language=${langValue}
352+
fi
353+
done
354+
stub_logger "[Language] $language"
339355

340356
# French localization
341-
if [[ $LANG == fr* ]] ; then
357+
if [[ "$language" == "fr" ]] ; then
342358
MSG_ERROR_LAUNCHING="ERREUR au lancement de '${CFBundleName}'."
343359
MSG_MISSING_MAINCLASS="'MainClass' n'est pas spécifié.\nL'application Java ne peut pas être lancée."
344360
MSG_JVMVERSION_REQ_INVALID="La syntaxe de la version de Java demandée est invalide: %s\nVeuillez contacter le développeur de l'application."
@@ -353,7 +369,7 @@ if [[ $LANG == fr* ]] ; then
353369
MSG_VISIT_ADOPTOPENJDK="Java by AdoptOpenJDK"
354370

355371
# German localization
356-
elif [[ $LANG == de* ]] ; then
372+
elif [[ "$language" == "de" ]] ; then
357373
MSG_ERROR_LAUNCHING="FEHLER beim Starten von '${CFBundleName}'."
358374
MSG_MISSING_MAINCLASS="Die 'MainClass' ist nicht spezifiziert!\nDie Java-Anwendung kann nicht gestartet werden!"
359375
MSG_JVMVERSION_REQ_INVALID="Die Syntax der angeforderten Java-Version ist ungültig: %s\nBitte kontaktieren Sie den Entwickler der App."
@@ -368,7 +384,7 @@ elif [[ $LANG == de* ]] ; then
368384
MSG_VISIT_ADOPTOPENJDK="Java von AdoptOpenJDK"
369385

370386
# Simplifyed Chinese localization
371-
elif [[ $LANG == zh* ]] ; then
387+
elif [[ "$language" == "zh" ]] ; then
372388
MSG_ERROR_LAUNCHING="无法启动 '${CFBundleName}'."
373389
MSG_MISSING_MAINCLASS="没有指定 'MainClass'!\nJava程序无法启动!"
374390
MSG_JVMVERSION_REQ_INVALID="Java版本参数语法错误: %s\n请联系该应用的开发者。"
@@ -383,7 +399,7 @@ elif [[ $LANG == zh* ]] ; then
383399
MSG_VISIT_ADOPTOPENJDK="Java by AdoptOpenJDK"
384400

385401
# Spanish localization
386-
elif [[ $LANG == es* ]] ; then
402+
elif [[ "$language" == "es" ]] ; then
387403
MSG_ERROR_LAUNCHING="ERROR iniciando '${CFBundleName}'."
388404
MSG_MISSING_MAINCLASS="¡'MainClass' no especificada!\n¡La aplicación Java no puede iniciarse!"
389405
MSG_JVMVERSION_REQ_INVALID="La sintaxis de la versión Java requerida no es válida: %s\nPor favor, contacte con el desarrollador de la aplicación."

0 commit comments

Comments
 (0)