diff --git a/android/app/src/main/java/com/mealtracker/app/MainActivity.java b/android/app/src/main/java/com/mealtracker/app/MainActivity.java index 218a19a..10955f9 100644 --- a/android/app/src/main/java/com/mealtracker/app/MainActivity.java +++ b/android/app/src/main/java/com/mealtracker/app/MainActivity.java @@ -8,6 +8,7 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.http.SslError; import android.os.Bundle; +import java.util.Locale; import android.view.KeyEvent; import android.view.View; import android.webkit.CookieManager; @@ -212,12 +213,21 @@ public class MainActivity extends AppCompatActivity { private void loadUrl(String url) { serverUrl = url; - currentUrl = url; + // Append device language so the web app renders in the user's language + currentUrl = url + "?lang=" + getDeviceLang(); firstLoad = true; errorView.setVisibility(View.GONE); webView.setVisibility(View.VISIBLE); progressBar.setVisibility(View.VISIBLE); - webView.loadUrl(url); + webView.loadUrl(currentUrl); + } + + /** Map the device's system language to one of the supported codes: en, fr, de. */ + private String getDeviceLang() { + String lang = Locale.getDefault().getLanguage(); + if ("fr".equals(lang)) return "fr"; + if ("de".equals(lang)) return "de"; + return "en"; } private void showSettingsDialog() { diff --git a/android/app/src/main/res/values-de/strings.xml b/android/app/src/main/res/values-de/strings.xml new file mode 100644 index 0000000..db1ea27 --- /dev/null +++ b/android/app/src/main/res/values-de/strings.xml @@ -0,0 +1,23 @@ + + + Mahlzeiten-Tracker + Aktualisieren + Einstellungen + Server-Konfiguration + Geben Sie die Basis-URL Ihres Mahlzeiten-Trackers ein: + Die Basisadresse Ihres Servers.\nBeispiel: https://mahlzeiten.beispiel.de + Speichern + Abbrechen + Daten löschen + Mit Server verbunden + Bitte geben Sie eine Basis-URL ein + Keine Netzwerkverbindung.\nZum Wiederholen tippen. + Server nicht erreichbar.\nÜberprüfen Sie die URL und tippen Sie zum Wiederholen.\n\nTipp: Öffnen Sie die URL zuerst in einem Browser. + Server antwortete mit HTTP %d.\nÜberprüfen Sie Ihre Basis-URL und wiederholen Sie. + Kein Server konfiguriert.\nTippen Sie auf ⚙, um Ihre Basis-URL einzugeben. + Lokale Daten gelöscht + ⚠ Zertifikatwarnung + Der Server %1$s verwendet ein nicht vertrauenswürdiges Zertifikat (Fehler %2$d).\n\nDies ist bei selbst gehosteten Servern üblich. Nur fortfahren, wenn Sie diesem Server vertrauen. + Fortfahren + Abbrechen + diff --git a/android/app/src/main/res/values-fr/strings.xml b/android/app/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000..d3de8d6 --- /dev/null +++ b/android/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,23 @@ + + + Suivi Repas + Actualiser + Paramètres + Configuration du serveur + Entrez l\'URL de base de votre Suivi Repas : + L\'adresse de base de votre serveur.\nExemple : https://repas.exemple.com + Enregistrer + Annuler + Effacer données + Connecté au serveur + Veuillez entrer une URL de base + Pas de connexion réseau.\nAppuyez pour réessayer. + Impossible de joindre le serveur.\nVérifiez l\'URL et appuyez pour réessayer.\n\nConseil : vérifiez que l\'URL s\'ouvre d\'abord dans un navigateur. + Le serveur a retourné HTTP %d.\nVérifiez votre URL de base et réessayez. + Aucun serveur configuré.\nAppuyez sur l\'icône ⚙ pour entrer votre URL de base. + Données locales effacées + ⚠ Avertissement certificat + Le serveur %1$s utilise un certificat non fiable (erreur %2$d).\n\nC\'est fréquent pour les serveurs auto-hébergés. Continuez seulement si vous faites confiance à ce serveur. + Continuer + Annuler +