Besondere Sorgfalt beim Einsatz von Meldungen erfordern Programme, für die Sie Übersetzungen in mindestens eine weitere Sprache vorgesehen haben. Einerseits müssen Sie dafür sorgen, dass die Texte in den Meldungen übersetzt werden und andererseits sollte das vorgesehene Design erhalten bleiben. Einfach ist das nicht, wie Sie auf dem rechten Bild sehen können:
Das Design müssen Sie für jede der Zielsprachen testen und sicherstellen, dass Sie die Zielsprachen auf Ihrem System installiert haben. Im Kapitel 3.5 Mehrsprachige Programme wird Ihnen deshalb ein Programm vorgestellt, das für die Tests genau das leisten kann:
Abbildung 20.1.3.1: Test-Programm I18N
In den Projekteigenschaften müssen Sie unter den Optionen angeben, ob das Projekt Übersetzungen enthält und u.U. die Vorgabesprache wählen. Für die Projektübersetzung findet man anschließend im Menü den Eintrag Übersetzen und in der Symbolleiste zeigt sich das Symbol Übersetzen als kleine blaue Flagge, während Sie mit [CTRL +T] die Projektübersetzung direkt aufrufen (→ Kapitel 3.5).
Im Quelltext Ihrer internationalisierten Programme müssen Sie die Zeichenketten, die zu übersetzen sind auszeichnen – aber nur für Zeichenketten deren Text man sieht – indem Sie diese Zeichenketten in runde Klammern einschließen:
PUBLIC SUB btnFileSave_Click() ' sDatei ist eine globale Variable: "filelist.txt" ' Originale MessageBox für ein Programm in deutscher Sprache ' Message.Question("Soll die Datei " & sDatei & " gespeichert werden?", "Ja", "Nein") Message.Question("<b>" & sDatei & "</b><br>" & ("Datei speichern?"), ("Ja"), ("Nein")) END ' btnFileSave()
Abbildung 20.1.3.2: Meldungsfenster (Original)
Nach der Übersetzung aller Zeichenketten in der Projektübersetzung in der IDE von Gambas erhalten Sie die folgenden Meldungen in einer MessageBox in der Sprache, die Sie zum Beispiel im Sprachen-Test-Programm ausgewählten:
Abbildung 20.1.3.3: deutsch - Abbildung 20.1.3.4: französisch - Abbildung 20.1.3.5: englisch
Hinweis:
Die Bezeichner auf den zwei Button müssen Sie nicht auszeichnen, denn diese stehen automatisch in der Liste der zu übersetzenden Zeichenketten.