#!/bin/bash

####################################################################################################
# Name:         openSUSE Baldur (MicroOS with XFCE) - Locale Configurator                          #
# Description:  This file will configure the locale settings for the XFCE desktop enviroment.      #
# Author:       Steve Zabka                                                                        #
# Author URI:   https://cryinkfly.com                                                              #
# License:      MIT                                                                                #
# Copyright (c) 2023                                                                               #
# Time/Date:    21:00/09.12.2023                                                                   #
# Version:      1.0.6                                                                              #
####################################################################################################

function SHOW_LOCALE_SETUP {
    locale_data=$(cat /usr/etc/locale-list.txt | tr ',' '\n' | zenity --list \
        --title="Welcome" \
        --text="Please select your language:"\
        --column="" --column="" --hide-column=2 --print-column=2)

    clear
    LOCALE_SETUP_CONFIG_CHECK
}

function LOCALE_SETUP_CONFIG_CHECK {
# Check if the variable is empty
    if [ -z "$locale_data" ]; then
        LOCALE_SETUP_CONFIG_RESET
    else
        LOCALE_SETUP_CONFIG_EXPORT
    fi
}

function LOCALE_SETUP_CONFIG_EXPORT {
echo "export LANGUAGE=$locale_data
export LANG=$locale_data
export LC_ALL=$locale_data" > $HOME/.i18n

LOCALE_SETUP_CONFIG_LOCALE_INFO_WARNING
}

function LOCALE_SETUP_CONFIG_RESET {
echo "export LANGUAGE=en_US.UTF8
export LANG=en_US.UTF8
export LC_ALL=en_US.UTF8" > $HOME/.i18n
}

function LOCALE_SETUP_CONFIG_LOCALE_INFO_WARNING {
case "$locale_data" in
  "af_ZA.UTF-8")
    info_title="Inligting"
    info_text="Die taalinstellings is suksesvol toegepas. Die veranderinge sal outomaties in werking tree nadat jy weer ingeteken het!"
    warning_title="Waarskuwing"
    warning_text="Die sleutelbordtaalinstellings moet egter met die hand verander word via die XFCE-instellings!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "sq_AL.UTF-8")
    info_title="Informacion"
    info_text="Cilësimet e gjuhës janë aplikuar me sukses. Ndryshimet do të hyjnë në fuqi automatikisht pasi të identifikoheni përsëri!"
    warning_title="Paralajmërim"
    warning_text="Megjithatë, cilësimet e gjuhës së tastierës duhet të ndryshohen manualisht nëpërmjet cilësimeve XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ar_SA.UTF-8")
    info_title="معلومات"
    info_text="تم تطبيق إعدادات اللغة بنجاح. وستدخل التغييرات حيز التنفيذ تلقائيًا بعد تسجيل الدخول مرة أخرى!"
    warning_title="تحذير_العنوان"
    warning_text="ومع ذلك، يجب تغيير إعدادات لغة لوحة المفاتيح يدويًا عبر إعدادات"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "eu_ES.UTF-8")
    info_title="Informazioa"
    info_text="Hizkuntza-ezarpenak behar bezala aplikatu dira. Aldaketak automatikoki izango dira indarrean berriro saioa hasi ondoren!"
    warning_title="Abisua"
    warning_text="Hala ere, teklatuaren hizkuntza ezarpenak eskuz aldatu behar dira XFCE ezarpenen bidez!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "be_BY.UTF-8")
    info_title="Інфармацыя"
    info_text="Налады мовы былі паспяхова прыменены. Змены ўступяць у сілу аўтаматычна пасля таго, як вы паўторна ўвойдзеце ў сістэму!"
    warning_title="Папярэджанне"
    warning_text="Аднак налады мовы клавіятуры павінны быць зменены ўручную праз налады XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "bs_BA.UTF-8")
    info_title="Informacije"
    info_text="Postavke jezika su uspješno primijenjene. Promjene će automatski stupiti na snagu nakon što se ponovo prijavite!"
    warning_title="Upozorenje"
    warning_text="Međutim, postavke jezika tastature se moraju promijeniti ručno preko XFCE postavki!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "bg_BG.UTF-8")
    info_title="Информация"
    info_text="Езиковите настройки са приложени успешно. Промените ще влязат в сила автоматично, след като влезете отново!"
    warning_title="Предупреждение"
    warning_text="Въпреки това, езиковите настройки на клавиатурата трябва да се променят ръчно чрез настройките на XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ca_ES.UTF-8")
    info_title="Informació"
    info_text="La configuració d'idioma s'ha aplicat correctament. Els canvis tindran efecte automàticament quan torneu a iniciar sessió!"
    warning_title="Avís"
    warning_text="No obstant això, la configuració d'idioma del teclat s'ha de canviar manualment mitjançant la configuració de XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "hr_HR.UTF-8")
    info_title="Informacije"
    info_text="Jezične postavke su uspješno primijenjene. Promjene će automatski stupiti na snagu nakon što se ponovno prijavite!"
    warning_title="Upozorenje"
    warning_text="Međutim, postavke jezika tipkovnice moraju se promijeniti ručno putem XFCE postavki!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "zh_CN.UTF-8")
    info_title="信息"
    info_text="语言设置已成功应用，更改将在您重新登录后自动生效！"
    warning_title="警告"
    warning_text="但是，必须通过 XFCE 设置手动更改键盘语言设置！"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "zh_TW.UTF-8")
    info_title="資訊"
    info_text="語言設定已成功套用，變更將在您重新登入後自動生效！"
    warning_title="警告"
    warning_text="但是，必須透過 XFCE 設定手動更改鍵盤語言設定！"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "cs_CZ.UTF-8")
    info_title="Informace"
    info_text="Nastavení jazyka byla úspěšně použita. Změny se projeví automaticky po opětovném přihlášení!"
    warning_title="Varování"
    warning_text="Nicméně nastavení jazyka klávesnice je nutné změnit ručně prostřednictvím nastavení XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "da_DK.UTF-8")
    info_title="Information"
    info_text="Sprogindstillingerne er blevet anvendt. Ændringerne træder automatisk i kraft, når du logger ind igen!"
    warning_title="Advarsel"
    warning_text="Tastaturets sprogindstillinger skal dog ændres manuelt via XFCE-indstillingerne!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "nl_NL.UTF-8")
    info_title="Informatie"
    info_text="De taalinstellingen zijn succesvol toegepast. De wijzigingen worden automatisch van kracht nadat u opnieuw inlogt!"
    warning_title="Waarschuwing"
    warning_text="De toetsenbordtaalinstellingen moeten echter handmatig worden gewijzigd via de XFCE-instellingen!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "et_EE.UTF-8")
    info_title="Teave"
    info_text="Keeleseaded on edukalt rakendatud. Muudatused jõustuvad automaatselt pärast uuesti sisselogimist!"
    warning_title="Hoiatus"
    warning_text="Kuid klaviatuuri keeleseadeid tuleb XFCE seadete kaudu käsitsi muuta!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "fi_FI.UTF-8")
    info_title="Tiedot"
    info_text="Kieliasetukset on otettu käyttöön onnistuneesti. Muutokset astuvat voimaan automaattisesti, kun kirjaudut sisään uudelleen!"
    warning_title="Varoitus"
    warning_text="Näppäimistön kieliasetukset on kuitenkin vaihdettava manuaalisesti XFCE-asetusten kautta!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "fr*")
    info_title="Informations"
    info_text="Les paramètres de langue ont été appliqués avec succès. Les modifications prendront effet automatiquement après votre nouvelle connexion !"
    warning_title="Avertissement"
    warning_text="Cependant, les paramètres de langue du clavier doivent être modifiés manuellement via les paramètres XFCE !"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ga_IE.UTF-8")
    info_title="Fiosrachadh"
    info_text="Chaidh na roghainnean cànain a chur an sàs gu soirbheachail. Thig na h-atharraichean gu buil gu fèin-obrachail às dèidh dhut logadh a-steach a-rithist!"
    warning_title="Rabhadh"
    warning_text="Ach, feumar roghainnean cànain a’ mheur-chlàir atharrachadh le làimh tro na roghainnean XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "gl_ES.UTF-8")
    info_title="Información"
    info_text="A configuración do idioma aplicouse correctamente. Os cambios terán efecto automaticamente despois de que inicie sesión de novo!"
    warning_title="Aviso"
    warning_text="Non obstante, a configuración do idioma do teclado debe cambiarse manualmente mediante a configuración de XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ka_GE.UTF-8")
    info_title="ინფორმაცია"
    info_text="ენის პარამეტრები წარმატებით იქნა გამოყენებული. ცვლილებები ავტომატურად შევა ძალაში ხელახლა შესვლის შემდეგ!"
    warning_title="გაფრთხილება"
    warning_text="თუმცა, კლავიატურის ენის პარამეტრები ხელით უნდა შეიცვალოს XFCE პარამეტრების მეშვეობით!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "de_DE.UTF-8")
    info_title="Informationen"
    info_text="Die Spracheinstellungen wurden erfolgreich übernommen. Die Änderungen werden automatisch wirksam, nachdem Sie sich erneut angemeldet haben!"
    warning_title="Warnung"
    warning_text="Die Tastaturspracheneinstellungen müssen manuell über die XFCE-Einstellungen geändert werden!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "el_GR.UTF-8")
    info_title="Πληροφορίες"
    info_text="Οι ρυθμίσεις γλώσσας εφαρμόστηκαν με επιτυχία. Οι αλλαγές θα τεθούν σε ισχύ αυτόματα αφού συνδεθείτε ξανά!"
    warning_title="Προειδοποίηση"
    warning_text="Ωστόσο, οι ρυθμίσεις γλώσσας του πληκτρολογίου πρέπει να αλλάξουν χειροκίνητα μέσω των ρυθμίσεων XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "he_IL.utf8")
    info_title="מידע"
    info_text="הגדרות השפה הוחלו בהצלחה. השינויים ייכנסו לתוקף אוטומטית לאחר שתיכנס שוב!"
    warning_title="אזהרה"
    warning_text="עם זאת, יש לשנות את הגדרות שפת המקלדת באופן ידני דרך הגדרות XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "hu_HU.UTF-8")
    info_title="Információ"
    info_text="A nyelvi beállításokat sikeresen alkalmaztuk. A változtatások az újbóli bejelentkezés után automatikusan életbe lépnek!"
    warning_title="Figyelmeztetés"
    warning_text="A billentyűzet nyelvi beállításait azonban manuálisan kell módosítani az XFCE beállításokon keresztül!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "is_IS.UTF-8")
    info_title="Upplýsingar"
    info_text="Tungumálastillingunum hefur verið beitt. Breytingarnar taka sjálfkrafa gildi eftir að þú skráir þig inn aftur!"
    warning_title="Viðvörun"
    warning_text="Hins vegar verður að breyta tungumálastillingum lyklaborðsins handvirkt í gegnum XFCE stillingarnar!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "id_ID.UTF-8")
    info_title="Informasi"
    info_text="Pengaturan bahasa telah berhasil diterapkan. Perubahan akan berlaku otomatis setelah Anda login kembali!"
    warning_title="Peringatan"
    warning_text="Namun, pengaturan bahasa keyboard harus diubah secara manual melalui pengaturan XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "it_IT.UTF-8")
    info_title="Informazioni"
    info_text="Le impostazioni della lingua sono state applicate con successo. Le modifiche avranno effetto automaticamente dopo aver effettuato nuovamente l'accesso!"
    warning_title="Avviso"
    warning_text="Tuttavia, le impostazioni della lingua della tastiera devono essere modificate manualmente tramite le impostazioni XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ja_JP.UTF-8")
    info_title="お知らせ"
    info_text="言語設定が正常に適用されました。再度ログインすると、変更は自動的に有効になります。"
    warning_title="警告"
    warning_text="ただし、キーボードの言語設定は XFCE 設定から手動で変更する必要があります。"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ko_KR.UTF-8")
    info_title="정보"
    info_text="언어 설정이 성공적으로 적용되었습니다. 다시 로그인하면 변경 사항이 자동으로 적용됩니다!"
    warning_title="경고"
    warning_text="그러나 키보드 언어 설정은 XFCE 설정을 통해 수동으로 변경해야 합니다!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "lt_LT.UTF-8")
    info_title="Informacija"
    info_text="Kalbos nustatymai buvo sėkmingai pritaikyti. Pakeitimai įsigalios automatiškai, kai vėl prisijungsite!"
    warning_title="Įspėjimas"
    warning_text="Tačiau klaviatūros kalbos nustatymus reikia keisti rankiniu būdu per XFCE nustatymus!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ms_MY.UTF-8")
    info_title="Maklumat"
    info_text="Tetapan bahasa telah berjaya digunakan. Perubahan akan berkuat kuasa secara automatik selepas anda log masuk semula!"
    warning_title="Amaran"
    warning_text="Walau bagaimanapun, tetapan bahasa papan kekunci mesti ditukar secara manual melalui tetapan XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "mi_NZ.UTF-8")
    info_title="Mohiohio"
    info_text="Kua oti pai te tono i nga tautuhinga reo. Ka whai mana aunoa nga huringa i muri i to takiuru ano!"
    warning_title="Whakatupato"
    warning_text="Heoi, me huri a ringa ki nga tautuhinga reo papapātuhi ma nga tautuhinga XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "*NO.UTF-8")
    info_title="Informasjon"
    info_text="Språkinnstillingene har blitt brukt. Endringene trer i kraft automatisk når du logger på igjen!"
    warning_title="Advarsel"
    warning_text="Men tastaturets språkinnstillinger må endres manuelt via XFCE-innstillingene!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "pl_PL.UTF-8")
    info_title="Informacja"
    info_text="Ustawienia języka zostały pomyślnie zastosowane. Zmiany zaczną obowiązywać automatycznie po ponownym zalogowaniu!"
    warning_title="Ostrzeżenie"
    warning_text="Jednakże ustawienia języka klawiatury należy zmienić ręcznie w ustawieniach XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "pt_*UTF-8")
    info_title="Informações"
    info_text="As configurações de idioma foram aplicadas com sucesso. As alterações entrarão em vigor automaticamente após você fazer login novamente!"
    warning_title="Aviso"
    warning_text="No entanto, as configurações de idioma do teclado devem ser alteradas manualmente através das configurações do XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ro_RO.UTF-8")
    info_title="Informații"
    info_text="Setările de limbă au fost aplicate cu succes. Modificările vor intra în vigoare automat după ce vă conectați din nou!"
    warning_title="Avertisment"
    warning_text="Cu toate acestea, setările pentru limba tastaturii trebuie modificate manual prin setările XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "ru_RU.UTF-8")
    info_title="Информация"
    info_text="Настройки языка успешно применены. Изменения вступят в силу автоматически после повторного входа в систему!"
    warning_title="Предупреждение"
    warning_text="Однако настройки языка клавиатуры необходимо изменить вручную через настройки XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "mi_NZ.UTF-8")
    info_title="Fa'amatalaga"
    info_text="Ua manuia le fa'aogaina o le gagana. O suiga e otometi lava ona aoga pe a uma ona e toe ulufale!"
    warning_title="Lapataiga"
    warning_text="Ae ui i lea, o le gagana keyboard e tatau ona suia ma le lima e ala i le XFCE faatulagaga!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "sk_SK.UTF-8")
    info_title="Informácie"
    info_text="Nastavenia jazyka boli úspešne použité. Zmeny sa prejavia automaticky po opätovnom prihlásení!"
    warning_title="Upozornenie"
    warning_text="Avšak nastavenia jazyka klávesnice je potrebné zmeniť manuálne cez nastavenia XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "sl_SI.UTF-8")
   info_title="Informacije"
    info_text="Jezikovne nastavitve so bile uspešno uporabljene. Spremembe bodo začele veljati samodejno, ko se ponovno prijavite!"
    warning_title="Opozorilo"
    warning_text="Vendar je treba jezikovne nastavitve tipkovnice spremeniti ročno prek nastavitev XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "so_SO.UTF-8")
    info_title="Macluumaad"
    info_text="Dejinta luqadda si guul leh ayaa loo dabaqay"
    digniin_title="Digniin"
    warning_text="Si kastaba ha ahaatee, dejinta luqadda kiiboodhka waa in gacanta lagu beddelaa iyada oo la adeegsanayo dejinta XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "es_ES.UTF-8")
    info_title="Información"
    info_text="La configuración de idioma se ha aplicado correctamente. ¡Los cambios entrarán en vigor automáticamente después de que inicies sesión nuevamente!"
    advertencia_title="Advertencia"
    advertencia_text="¡Sin embargo, la configuración del idioma del teclado se debe cambiar manualmente a través de la configuración de XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "sv_SE.UTF-8")
    info_title="Information"
    info_text="Språkinställningarna har tillämpats. Ändringarna träder i kraft automatiskt när du loggar in igen!"
    warning_title="Varning"
    warning_text="Men tangentbordets språkinställningar måste ändras manuellt via XFCE-inställningarna!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "tl_PH.UTF-8")
    info_title="Impormasyon"
    info_text="Matagumpay na nailapat ang mga setting ng wika. Awtomatikong magkakabisa ang mga pagbabago pagkatapos mong mag-log in muli!"
    warning_title="Babala"
    warning_text="Gayunpaman, ang mga setting ng wika ng keyboard ay dapat baguhin nang manu-mano sa pamamagitan ng mga setting ng XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "th_TH.UTF-8")
    info_title="ข้อมูล"
    info_text="การตั้งค่าภาษาถูกนำไปใช้เรียบร้อยแล้ว การเปลี่ยนแปลงจะมีผลโดยอัตโนมัติหลังจากที่คุณเข้าสู่ระบบอีกครั้ง!"
    warning_title="คำเตือน"
    warning_text="อย่างไรก็ตาม การตั้งค่าภาษาของแป้นพิมพ์จะต้องเปลี่ยนด้วยตนเองผ่านการตั้งค่า XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "tr_TR.UTF-8")
    info_title="Bilgi"
    info_text="Dil ayarları başarıyla uygulandı. Değişiklikler, tekrar oturum açtıktan sonra otomatik olarak geçerli olacaktır!"
    warning_title="Uyarı"
    warning_text="Ancak klavye dili ayarlarının XFCE ayarları aracılığıyla manuel olarak değiştirilmesi gerekir!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  "uk_UA.UTF-8")
    info_title="Інформація"
    info_text="Налаштування мови успішно застосовано. Зміни набудуть чинності автоматично після повторного входу!"
    warning_title="Попередження"
    warning_text="Однак налаштування мови клавіатури потрібно змінити вручну за допомогою налаштувань XFCE!"
    SHOW_LOCALE_INFO_WARNING
    ;;
  *)
    info_title="Information"
    info_text="The language settings have been successfully applied. The changes will take effect automatically after you log in again!"
    warning_title="Warning"
    warning_text="However, the keyboard language settings must be changed manually via the XFCE settings!"
    SHOW_LOCALE_INFO_WARNING
    ;;
esac
}

function SHOW_LOCALE_INFO_WARNING {
    zenity --info \
           --title="$info_title" \
           --text="$info_text"
    zenity --warning \
           --title="$warning_title" \
           --text="$warning_text"
}

#####################################################################################################################################################################################################################
# THE PROGRAM IS STARTED HERE:                                                                                                                                                                                      #
#####################################################################################################################################################################################################################

SHOW_LOCALE_SETUP
