German App lokalisieren und XML-File

pjo12345

Active Member
Licensed User
Longtime User

DonManfred

Expert
Licensed User
Longtime User
Sind die Umlaute in STrings oder hst Du Variablen mit Umlauten? Mit welcher Dateikodierung sind die XML-Dateien denn gespeichert? Ansonsten hätte es sicher auch geholfen wenn du aussagekräftige Fehlermeldungen gepostet hättest (LOG-File).
 

pjo12345

Active Member
Licensed User
Longtime User
OK, waren etwas wenig Info. Hier mal mein XML-File


B4X:
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="Gebuehr_text">Gebühr :</string>
</resources>


Hier der Code:
B4X:
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout1")
   
   
    ResourceStrings.Initialize
    ResourceStrings.Put("Gebühr_text", "Error, resource string not found")
    
    ResourceStrings=AndroidResources1.GetApplicationStrings(ResourceStrings)


   lblGebuehrText.Text = ResourceStrings.Get("Gebühr_text")

End Sub

Beim Compilieren kommt dann folgende Fehlermeldung:
res\values-de\strings.xml:3: error: Error parsing XML: not well-formed (invalid token)

Schreibe ich Gebühr mit ue dann funktionierts.
 

DonManfred

Expert
Licensed User
Longtime User
Du greifst ja hier auf Resourcen zu. Ähnlich wie Variablen. Kann sein, das hier keine Umlaute verwendet werden. Und ich schätze auch, das hier keine Umlaute erlaubt sind wie so ziemlich jeder anderen Programmiersprache. Das Ü selber darf dann in ausgabestrings natürlich vorhanden sein. Aber nicht im "Namen" der Resource.
 

pjo12345

Active Member
Licensed User
Longtime User
B4X:
ResourceStrings.Put("Gebuehr_text", "Error, resource string not found")

Das ist richtig. So habe ich es auch. Durch die ganzen Versuche das falsche kopiert und hier eingefügt.

Das funktioniert nicht:
B4X:
 <string name="Gebuehr_text">Gebühr :</string>

Das funktioniert:
B4X:
 <string name="Gebuehr_text">Gebuehr :</string>

Habe noch etwas gefunden. Zwar nicht im Zusammenhang mit B4A aber es ging um XML. Da war die Rede von UTF-8 ändern in ISO irgendwas. Ich muss das noch einmal suchen.
 

pjo12345

Active Member
Licensed User
Longtime User
Hab's gefunden und es funktioniert. In dem XML-File für die deutsche Übersetzung folgendes ändern:

Zeile:
B4X:
<?xml version="1.0" encoding="utf-8"?>

Ändern in:
B4X:
<?xml version="1.0" encoding="ISO-8859-1"?>
 
Top