German Eine App mehrsprachig gestalten???

PeBo007

Member
Licensed User
Longtime User
Hallo Miteinander,
gerne würde ich meine erste im Google Play Store veröffentlichte App über ein Update mehrsprachig anbieten.
Zur Zeit ist diese komplett in Deutsch gehalten, ich möchte die App aber um die Sprachen Englisch, Spanisch, Italienisch und Holländisch erweitern.
Die Übersetzungen sind nicht das Problem, sondern die Realisierung.
Im Moment habe ich noch überhaupt noch keine Vorstellung wie ich das verwirklichen könnte.
Am liebsten wäre mir, wenn bei der Installation oder beim starten der App, sich diese automatisch auf die richtige Sprache einstellen würde.
Nur ungern würde ich das über eine manuelle Sprachauswahl realisieren wollen.
Es würde mich sehr freuen, wenn mir da jemand kurzfristig auf die Sprünge helfen könnte.
Ich bedanke mich schon einmal im voraus.
Beste Grüsse
Peter
 

PeBo007

Member
Licensed User
Longtime User
Vielen Dank Trebun für die schnelle Antwort.

Ich habe mir die vorgeschlagene Lösung mal angeschaut und bin dann aber
auf eine einfachere Lösung gekommen, nämlich die Library "AHLocale"
in mein Projekt einzubinden.
Mit AHLocale kann ich ganz einfach die LänderID (wie "en", "it" oder "de" usw.) ermitteln, welche aus der eingestellten Sprache am Smartphone resultiert.
Die einzelnen Übersetzungen binde ich einfach durch Textdateien ein und mit der
ermittelten LänderID führe ich dann die entsprechende Übersetzung aus.

Beste Grüsse

Peter
 

trebun

Member
Licensed User
Longtime User
Auch eine Möglichkeit, allerdings wäre mir das zu aufwendig alles selber zu implementieren...

Aber, es gibt viele Wege nach Rom... :)
 

corwin42

Expert
Licensed User
Longtime User
Naja, aufwändig ist das mit dem AHTranslator object nun wirklich nicht.

Ich habe mir ein Codemodul erstellt, das folgendes enthält:

B4X:
Sub Process_Globals
    Private t As AHTranslator
    Private translationInitialised As Boolean = False
End Sub

Sub InitTranslations
    If Not(translationInitialised) then
        t.Initialize(File.DirAssets, "myapp")
        translationInitialised = True
    End If
End Sub

Sub GetText(Text As String) As String
    Return t.GetText(Text)
End Sub

Sub GetText2(Text As String, Params As List) As String
    Return t.GetText2(Text, Params)
End Sub

Die Initialisierung ruft man in jeder Activity bei Actvity_Create auf. Immer wenn man einen Text benötigt benutzt man einfach Utility.GetText("Mein Text") und man bekommt den entsprechenden Text in übersetzter Form. Ähnlich wie bei der Resource Methode muss man für jede Übersetzung eine eigene Übersetzungsdatei anlegen.
 
Top