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
+