Skip to content

Commit 3339f69

Browse files
committed
refactored the improved language detection // refs tofi86#101
1 parent 246c0f3 commit 3339f69

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

src/universalJavaApplicationStub

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# #
1212
# @author Tobias Fischer #
1313
# @url https://github.com/tofi86/universalJavaApplicationStub #
14-
# @date 2021-02-03 #
14+
# @date 2021-02-20 #
1515
# @version 3.1.1-beta #
1616
# #
1717
##################################################################################
@@ -335,26 +335,33 @@ done
335335
############################################
336336

337337
# supported languages / available translations
338-
stubLanguages=("fr" "de" "zh" "es" "en")
338+
stubLanguages="^(fr|de|zh|es|en)-"
339339

340340
# read user preferred languages as defined in macOS System Preferences (#101)
341-
stub_logger '[LanguageSearch] Checking preferred languages ...'
341+
stub_logger '[LanguageSearch] Checking preferred languages in macOS System Preferences...'
342342
appleLanguages=($(defaults read -g AppleLanguages | grep '\s"' | tr -d ',' | xargs))
343+
stub_logger "[LanguageSearch] ... found [${appleLanguages[*]}]"
343344

344345
language=""
345346
for i in "${appleLanguages[@]}"
346347
do
347348
langValue="${i%-*}"
348-
stub_logger "[LanguageSearch] ... found '$i' (as '$langValue')"
349-
if [ -z "${language}" ] && grep -q ${langValue} <<< "${stubLanguages[@]}" ; then
350-
stub_logger "[LanguageSearch] ... ... which has been set as the default language for the launcher stub"
349+
if [[ "$i" =~ $stubLanguages ]]; then
350+
stub_logger "[LanguageSearch] ... selected '$i' ('$langValue') as the default language for the launcher stub"
351351
language=${langValue}
352+
break
352353
fi
353354
done
355+
if [ -z "${language}" ]; then
356+
language="en"
357+
stub_logger "[LanguageSearch] ... selected fallback 'en' as the default language for the launcher stub"
358+
fi
354359
stub_logger "[Language] $language"
355360

356-
# French localization
357-
if [[ "$language" == "fr" ]] ; then
361+
362+
case "${language}" in
363+
# French
364+
fr)
358365
MSG_ERROR_LAUNCHING="ERREUR au lancement de '${CFBundleName}'."
359366
MSG_MISSING_MAINCLASS="'MainClass' n'est pas spécifié.\nL'application Java ne peut pas être lancée."
360367
MSG_JVMVERSION_REQ_INVALID="La syntaxe de la version de Java demandée est invalide: %s\nVeuillez contacter le développeur de l'application."
@@ -367,9 +374,10 @@ if [[ "$language" == "fr" ]] ; then
367374
MSG_LATER="Plus tard"
368375
MSG_VISIT_JAVA_DOT_COM="Java by Oracle"
369376
MSG_VISIT_ADOPTOPENJDK="Java by AdoptOpenJDK"
377+
;;
370378

371-
# German localization
372-
elif [[ "$language" == "de" ]] ; then
379+
# German
380+
de)
373381
MSG_ERROR_LAUNCHING="FEHLER beim Starten von '${CFBundleName}'."
374382
MSG_MISSING_MAINCLASS="Die 'MainClass' ist nicht spezifiziert!\nDie Java-Anwendung kann nicht gestartet werden!"
375383
MSG_JVMVERSION_REQ_INVALID="Die Syntax der angeforderten Java-Version ist ungültig: %s\nBitte kontaktieren Sie den Entwickler der App."
@@ -382,9 +390,10 @@ elif [[ "$language" == "de" ]] ; then
382390
MSG_LATER="Später"
383391
MSG_VISIT_JAVA_DOT_COM="Java von Oracle"
384392
MSG_VISIT_ADOPTOPENJDK="Java von AdoptOpenJDK"
393+
;;
385394

386-
# Simplifyed Chinese localization
387-
elif [[ "$language" == "zh" ]] ; then
395+
# Simplified Chinese
396+
zh)
388397
MSG_ERROR_LAUNCHING="无法启动 '${CFBundleName}'."
389398
MSG_MISSING_MAINCLASS="没有指定 'MainClass'!\nJava程序无法启动!"
390399
MSG_JVMVERSION_REQ_INVALID="Java版本参数语法错误: %s\n请联系该应用的开发者。"
@@ -397,9 +406,10 @@ elif [[ "$language" == "zh" ]] ; then
397406
MSG_LATER="稍后"
398407
MSG_VISIT_JAVA_DOT_COM="Java by Oracle"
399408
MSG_VISIT_ADOPTOPENJDK="Java by AdoptOpenJDK"
409+
;;
400410

401-
# Spanish localization
402-
elif [[ "$language" == "es" ]] ; then
411+
# Spanish
412+
es)
403413
MSG_ERROR_LAUNCHING="ERROR iniciando '${CFBundleName}'."
404414
MSG_MISSING_MAINCLASS="¡'MainClass' no especificada!\n¡La aplicación Java no puede iniciarse!"
405415
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."
@@ -412,9 +422,10 @@ elif [[ "$language" == "es" ]] ; then
412422
MSG_LATER="Más tarde"
413423
MSG_VISIT_JAVA_DOT_COM="Java de Oracle"
414424
MSG_VISIT_ADOPTOPENJDK="Java de AdoptOpenJDK"
425+
;;
415426

416-
# English default localization
417-
else
427+
# English default
428+
en|*)
418429
MSG_ERROR_LAUNCHING="ERROR launching '${CFBundleName}'."
419430
MSG_MISSING_MAINCLASS="'MainClass' isn't specified!\nJava application cannot be started!"
420431
MSG_JVMVERSION_REQ_INVALID="The syntax of the required Java version is invalid: %s\nPlease contact the App developer."
@@ -427,7 +438,8 @@ else
427438
MSG_LATER="Later"
428439
MSG_VISIT_JAVA_DOT_COM="Java by Oracle"
429440
MSG_VISIT_ADOPTOPENJDK="Java by AdoptOpenJDK"
430-
fi
441+
;;
442+
esac
431443

432444

433445

0 commit comments

Comments
 (0)