Implement Overtime Guard workflow and localization
This commit is contained in:
292
Localization.bas
Normal file
292
Localization.bas
Normal file
@@ -0,0 +1,292 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=StaticCode
|
||||
Version=13
|
||||
@EndOfDesignText@
|
||||
|
||||
Sub Process_Globals
|
||||
Private translations As Map
|
||||
Private currentLanguage As String
|
||||
Private initialized As Boolean
|
||||
End Sub
|
||||
|
||||
Public Sub Initialize
|
||||
If initialized Then Return
|
||||
translations.Initialize
|
||||
LoadLanguage("en", CreateEnglishMap)
|
||||
LoadLanguage("it", CreateItalianMap)
|
||||
LoadLanguage("fr", CreateFrenchMap)
|
||||
LoadLanguage("de", CreateGermanMap)
|
||||
LoadLanguage("es", CreateSpanishMap)
|
||||
currentLanguage = NormalizeLanguage(DetectDeviceLanguage)
|
||||
initialized = True
|
||||
End Sub
|
||||
|
||||
Public Sub T(Key As String) As String
|
||||
If initialized = False Then Initialize
|
||||
Dim languageMap As Map = translations.Get(currentLanguage)
|
||||
If languageMap.IsInitialized And languageMap.ContainsKey(Key) Then Return languageMap.Get(Key)
|
||||
Dim fallback As Map = translations.Get("en")
|
||||
If fallback.IsInitialized And fallback.ContainsKey(Key) Then Return fallback.Get(Key)
|
||||
Return Key
|
||||
End Sub
|
||||
|
||||
Public Sub CurrentLanguageCode As String
|
||||
If initialized = False Then Initialize
|
||||
Return currentLanguage
|
||||
End Sub
|
||||
|
||||
Private Sub LoadLanguage(Code As String, Values As Map)
|
||||
translations.Put(Code, Values)
|
||||
End Sub
|
||||
|
||||
Private Sub NormalizeLanguage(Code As String) As String
|
||||
Code = Code.ToLowerCase
|
||||
Select True
|
||||
Case Code.StartsWith("it")
|
||||
Return "it"
|
||||
Case Code.StartsWith("fr")
|
||||
Return "fr"
|
||||
Case Code.StartsWith("de")
|
||||
Return "de"
|
||||
Case Code.StartsWith("es")
|
||||
Return "es"
|
||||
Case Else
|
||||
Return "en"
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub DetectDeviceLanguage As String
|
||||
Dim context As JavaObject
|
||||
context.InitializeContext
|
||||
Dim resources As JavaObject = context.RunMethod("getResources", Null)
|
||||
Dim configuration As JavaObject = resources.RunMethod("getConfiguration", Null)
|
||||
Dim locale As JavaObject = configuration.GetField("locale")
|
||||
Dim code As String = locale.RunMethod("getLanguage", Null)
|
||||
If code <> "" Then Return code
|
||||
Dim jo As JavaObject
|
||||
jo.InitializeStatic("java.util.Locale")
|
||||
locale = jo.RunMethod("getDefault", Null)
|
||||
Return locale.RunMethod("getLanguage", Null)
|
||||
End Sub
|
||||
|
||||
Private Sub CreateEnglishMap As Map
|
||||
Dim m As Map
|
||||
m.Initialize
|
||||
m.Put("app_title", "Overtime Guard")
|
||||
m.Put("start", "Start")
|
||||
m.Put("end", "End")
|
||||
m.Put("pause", "Pause")
|
||||
m.Put("end_pause", "End pause")
|
||||
m.Put("stats", "Stats")
|
||||
m.Put("config", "Config")
|
||||
m.Put("bg", "Bg")
|
||||
m.Put("statistics", "Statistics")
|
||||
m.Put("close", "Close")
|
||||
m.Put("work_start", "Work start")
|
||||
m.Put("pause_start", "Pause start")
|
||||
m.Put("pause_end", "Pause end")
|
||||
m.Put("work_end", "Work end")
|
||||
m.Put("set_config", "Set config")
|
||||
m.Put("reset_config", "Reset config")
|
||||
m.Put("clear_today", "Clear today")
|
||||
m.Put("date", "Date")
|
||||
m.Put("work", "Work")
|
||||
m.Put("pause_col", "Pause")
|
||||
m.Put("overtime", "Overtime")
|
||||
m.Put("totals", "Totals")
|
||||
m.Put("manual_mode", "Manual mode")
|
||||
m.Put("auto_recording", "Auto: recording...")
|
||||
m.Put("auto_paused", "Auto: paused...")
|
||||
m.Put("auto_stopped", "Auto: stopped...")
|
||||
m.Put("use_hhmm", "Use HH:MM times.")
|
||||
m.Put("times_order", "Times must be in order.")
|
||||
m.Put("work_exceed", "Configured work cannot exceed 8 hours.")
|
||||
m.Put("auto_enabled", "Automatic config enabled.")
|
||||
m.Put("auto_disabled", "Automatic config disabled.")
|
||||
m.Put("no_day_to_clear", "No day to clear.")
|
||||
m.Put("clear_today_title", "Clear today")
|
||||
m.Put("clear_today_confirm", "Clear all recorded data for")
|
||||
m.Put("clear_button", "Clear")
|
||||
m.Put("cancel", "Cancel")
|
||||
m.Put("today_cleared", "Today cleared.")
|
||||
m.Put("limit_reached", "9-hour limit already reached for this workday.")
|
||||
Return m
|
||||
End Sub
|
||||
|
||||
Private Sub CreateItalianMap As Map
|
||||
Dim m As Map
|
||||
m.Initialize
|
||||
m.Put("app_title", "Overtime Guard")
|
||||
m.Put("start", "Start")
|
||||
m.Put("end", "End")
|
||||
m.Put("pause", "Pausa")
|
||||
m.Put("end_pause", "Fine pausa")
|
||||
m.Put("stats", "Statistiche")
|
||||
m.Put("config", "Config")
|
||||
m.Put("bg", "Sfondo")
|
||||
m.Put("statistics", "Statistiche")
|
||||
m.Put("close", "Chiudi")
|
||||
m.Put("work_start", "Inizio lavoro")
|
||||
m.Put("pause_start", "Inizio pausa")
|
||||
m.Put("pause_end", "Fine pausa")
|
||||
m.Put("work_end", "Fine lavoro")
|
||||
m.Put("set_config", "Imposta config")
|
||||
m.Put("reset_config", "Reset config")
|
||||
m.Put("clear_today", "Azzera oggi")
|
||||
m.Put("date", "Data")
|
||||
m.Put("work", "Lavoro")
|
||||
m.Put("pause_col", "Pausa")
|
||||
m.Put("overtime", "Straord.")
|
||||
m.Put("totals", "Totali")
|
||||
m.Put("manual_mode", "Modalita manuale")
|
||||
m.Put("auto_recording", "Auto: registrazione...")
|
||||
m.Put("auto_paused", "Auto: pausa...")
|
||||
m.Put("auto_stopped", "Auto: fermo...")
|
||||
m.Put("use_hhmm", "Usa orari HH:MM.")
|
||||
m.Put("times_order", "Gli orari devono essere in ordine.")
|
||||
m.Put("work_exceed", "Il lavoro configurato non puo superare 8 ore.")
|
||||
m.Put("auto_enabled", "Configurazione automatica attiva.")
|
||||
m.Put("auto_disabled", "Configurazione automatica disattivata.")
|
||||
m.Put("no_day_to_clear", "Nessun giorno da azzerare.")
|
||||
m.Put("clear_today_title", "Azzera oggi")
|
||||
m.Put("clear_today_confirm", "Cancellare tutti i dati registrati per")
|
||||
m.Put("clear_button", "Azzera")
|
||||
m.Put("cancel", "Annulla")
|
||||
m.Put("today_cleared", "Giornata azzerata.")
|
||||
m.Put("limit_reached", "Limite di 9 ore gia raggiunto per questa giornata.")
|
||||
Return m
|
||||
End Sub
|
||||
|
||||
Private Sub CreateFrenchMap As Map
|
||||
Dim m As Map
|
||||
m.Initialize
|
||||
m.Put("app_title", "Overtime Guard")
|
||||
m.Put("start", "Demarrer")
|
||||
m.Put("end", "Arreter")
|
||||
m.Put("pause", "Pause")
|
||||
m.Put("end_pause", "Fin pause")
|
||||
m.Put("stats", "Stats")
|
||||
m.Put("config", "Config")
|
||||
m.Put("bg", "Fond")
|
||||
m.Put("statistics", "Statistiques")
|
||||
m.Put("close", "Fermer")
|
||||
m.Put("work_start", "Debut travail")
|
||||
m.Put("pause_start", "Debut pause")
|
||||
m.Put("pause_end", "Fin pause")
|
||||
m.Put("work_end", "Fin travail")
|
||||
m.Put("set_config", "Activer config")
|
||||
m.Put("reset_config", "Reinit config")
|
||||
m.Put("clear_today", "Effacer aujourd'hui")
|
||||
m.Put("date", "Date")
|
||||
m.Put("work", "Travail")
|
||||
m.Put("pause_col", "Pause")
|
||||
m.Put("overtime", "Heures sup.")
|
||||
m.Put("totals", "Totaux")
|
||||
m.Put("manual_mode", "Mode manuel")
|
||||
m.Put("auto_recording", "Auto: enregistrement...")
|
||||
m.Put("auto_paused", "Auto: pause...")
|
||||
m.Put("auto_stopped", "Auto: arrete...")
|
||||
m.Put("use_hhmm", "Utilisez des heures HH:MM.")
|
||||
m.Put("times_order", "Les heures doivent etre dans l'ordre.")
|
||||
m.Put("work_exceed", "Le travail configure ne peut pas depasser 8 heures.")
|
||||
m.Put("auto_enabled", "Configuration automatique activee.")
|
||||
m.Put("auto_disabled", "Configuration automatique desactivee.")
|
||||
m.Put("no_day_to_clear", "Aucun jour a effacer.")
|
||||
m.Put("clear_today_title", "Effacer aujourd'hui")
|
||||
m.Put("clear_today_confirm", "Effacer toutes les donnees enregistrees pour")
|
||||
m.Put("clear_button", "Effacer")
|
||||
m.Put("cancel", "Annuler")
|
||||
m.Put("today_cleared", "Journee effacee.")
|
||||
m.Put("limit_reached", "Limite de 9 heures deja atteinte pour cette journee.")
|
||||
Return m
|
||||
End Sub
|
||||
|
||||
Private Sub CreateGermanMap As Map
|
||||
Dim m As Map
|
||||
m.Initialize
|
||||
m.Put("app_title", "Overtime Guard")
|
||||
m.Put("start", "Start")
|
||||
m.Put("end", "Stopp")
|
||||
m.Put("pause", "Pause")
|
||||
m.Put("end_pause", "Pause beenden")
|
||||
m.Put("stats", "Statistik")
|
||||
m.Put("config", "Konfig")
|
||||
m.Put("bg", "Hint.")
|
||||
m.Put("statistics", "Statistik")
|
||||
m.Put("close", "Schliessen")
|
||||
m.Put("work_start", "Arbeitsbeginn")
|
||||
m.Put("pause_start", "Pausenbeginn")
|
||||
m.Put("pause_end", "Pausenende")
|
||||
m.Put("work_end", "Arbeitsende")
|
||||
m.Put("set_config", "Konfig setzen")
|
||||
m.Put("reset_config", "Konfig reset")
|
||||
m.Put("clear_today", "Heute loschen")
|
||||
m.Put("date", "Datum")
|
||||
m.Put("work", "Arbeit")
|
||||
m.Put("pause_col", "Pause")
|
||||
m.Put("overtime", "Uberzeit")
|
||||
m.Put("totals", "Summen")
|
||||
m.Put("manual_mode", "Manueller Modus")
|
||||
m.Put("auto_recording", "Auto: Aufnahme...")
|
||||
m.Put("auto_paused", "Auto: Pause...")
|
||||
m.Put("auto_stopped", "Auto: gestoppt...")
|
||||
m.Put("use_hhmm", "Bitte HH:MM verwenden.")
|
||||
m.Put("times_order", "Die Zeiten muessen in Reihenfolge sein.")
|
||||
m.Put("work_exceed", "Die konfigurierte Arbeit darf 8 Stunden nicht uberschreiten.")
|
||||
m.Put("auto_enabled", "Automatische Konfiguration aktiviert.")
|
||||
m.Put("auto_disabled", "Automatische Konfiguration deaktiviert.")
|
||||
m.Put("no_day_to_clear", "Kein Tag zum Loschen.")
|
||||
m.Put("clear_today_title", "Heute loschen")
|
||||
m.Put("clear_today_confirm", "Alle erfassten Daten loschen fur")
|
||||
m.Put("clear_button", "Loschen")
|
||||
m.Put("cancel", "Abbrechen")
|
||||
m.Put("today_cleared", "Heutige Daten geloscht.")
|
||||
m.Put("limit_reached", "9-Stunden-Limit fur diesen Arbeitstag bereits erreicht.")
|
||||
Return m
|
||||
End Sub
|
||||
|
||||
Private Sub CreateSpanishMap As Map
|
||||
Dim m As Map
|
||||
m.Initialize
|
||||
m.Put("app_title", "Overtime Guard")
|
||||
m.Put("start", "Iniciar")
|
||||
m.Put("end", "Detener")
|
||||
m.Put("pause", "Pausa")
|
||||
m.Put("end_pause", "Fin pausa")
|
||||
m.Put("stats", "Stats")
|
||||
m.Put("config", "Config")
|
||||
m.Put("bg", "Fondo")
|
||||
m.Put("statistics", "Estadisticas")
|
||||
m.Put("close", "Cerrar")
|
||||
m.Put("work_start", "Inicio trabajo")
|
||||
m.Put("pause_start", "Inicio pausa")
|
||||
m.Put("pause_end", "Fin pausa")
|
||||
m.Put("work_end", "Fin trabajo")
|
||||
m.Put("set_config", "Activar config")
|
||||
m.Put("reset_config", "Reset config")
|
||||
m.Put("clear_today", "Borrar hoy")
|
||||
m.Put("date", "Fecha")
|
||||
m.Put("work", "Trabajo")
|
||||
m.Put("pause_col", "Pausa")
|
||||
m.Put("overtime", "Extra")
|
||||
m.Put("totals", "Totales")
|
||||
m.Put("manual_mode", "Modo manual")
|
||||
m.Put("auto_recording", "Auto: grabando...")
|
||||
m.Put("auto_paused", "Auto: pausa...")
|
||||
m.Put("auto_stopped", "Auto: detenido...")
|
||||
m.Put("use_hhmm", "Usa horas HH:MM.")
|
||||
m.Put("times_order", "Las horas deben estar en orden.")
|
||||
m.Put("work_exceed", "El trabajo configurado no puede superar 8 horas.")
|
||||
m.Put("auto_enabled", "Configuracion automatica activada.")
|
||||
m.Put("auto_disabled", "Configuracion automatica desactivada.")
|
||||
m.Put("no_day_to_clear", "No hay dia para borrar.")
|
||||
m.Put("clear_today_title", "Borrar hoy")
|
||||
m.Put("clear_today_confirm", "Borrar todos los datos registrados de")
|
||||
m.Put("clear_button", "Borrar")
|
||||
m.Put("cancel", "Cancelar")
|
||||
m.Put("today_cleared", "Dia borrado.")
|
||||
m.Put("limit_reached", "Limite de 9 horas ya alcanzado para esta jornada.")
|
||||
Return m
|
||||
End Sub
|
||||
Reference in New Issue
Block a user