Erstellen oder Ändern von internationalen Anwendungen
Sie können Probleme, die bei der Lokalisierung von Code auftreten können, verhindern, wenn Sie die in den folgenden Abschnitten beschriebenen Richtlinien beachten.
Testen für internationale Versionen
Wenn es für Ihre Anwendung wichtig ist, ermitteln zu können, in welcher Sprache Visual FoxPro ausgeführt wird, können Sie die VERSION( )-Funktion aufrufen. Wenn Sie die Sprachumgebung kennen, können Sie leichter bestimmen, welcher Text angezeigt werden soll, wie Daten formatiert werden müssen usw. Durch den folgenden Code wird beispielsweise bestimmt, in welcher Sprachumgebung Visual FoxPro ausgeführt wird. Basierend auf dem Ergebnis dieser Überprüfung wird dann ein sprachspezifisches Formular ausgeführt:
IF VERSION(3) = 34 THEN
* Running in Spanish--display Spanish form
DO FORM CST_SPN.SCX
ELSE
* Display English form
DO FORM CST_ENU.SCX
ENDIF
Anmerkung Die Unterstützung von Doppelbyte-Zeichenfolgen steht in Visual FoxPro erst seit Version 3.0b zur Verfügung. Basiert Ihre Anwendung auf der Verfügbarkeit der DBCS-Funktionen, sollten Sie daher auch die VERSION(1)-Funktion aufrufen, um die Versionsnummer von Visual FoxPro zu überprüfen.
Verwenden von Zeichenfolgen
Vermeiden Sie es, Zeichenfolgen direkt in Code einzubeziehen, da diese die Lokalisierung erschweren. Beziehen Sie beispielsweise keine Datumsangaben und Währungen als Zeichenfolgen in Code ein. Schreiben Sie Ihren Code möglichst so, dass er Zeichenfolgen aus vom Programm getrennten Dateien oder Tabellen einbindet.
Anmerkung Wenn Sie alle Zeichenfolgen aus Ihrem Programm entfernen, verringert sich möglicherweise dessen Geschwindigkeit. Dies kann zum Beispiel der Fall sein, wenn das Programm innerhalb einer Schleife nach Zeichenfolgen sucht.
Eine Möglichkeit, in einer Anwendung, die übersetzt werden soll, mit Zeichenfolgen zu arbeiten, besteht darin, konsequent Zeichenfolgenkonstanten zu verwenden. Hierbei können Sie den Text für diese Konstanten in einer separaten Textdatei definieren, auf die sich dann Ihre Programme mit Hilfe der #INCLUDE-Präprozessoranweisung beziehen. Anstatt also beispielsweise die Fehlermeldung "Datei nicht gefunden" einzubetten, können Sie die ERR_FILE_NOT_FOUND-Konstante verwenden. Der Text für diese Konstante könnte sich in einer Datei mit Namen ERR_TEXT.H befinden. Und so sähe beispielsweise ein Programm aus, das mit dieser Technik arbeitet:
#INCLUDE ERR_TEXT.H
* processing here
IF ERR THEN
MESSAGEBOX( ERR_FILE_NOT_FOUND )
ENDIF
Beim Lokalisieren der Anwendung kann der Übersetzer eine gebietsspezifische Version der Fehlertextdatei erstellen und die Anwendung neu kompilieren.
Arbeiten mit Zeichenfolgen in DBCS-Umgebungen
Visual FoxPro enthält Funktionen für das Bearbeiten von Zeichenausdrücken, die eine beliebige Kombination aus Ein- und Doppelbyte-Zeichen enthalten. Mit Hilfe der DBCS-Zeichenfolgenfunktionen können Sie Anwendungen entwickeln, ohne zusätzlichen Code schreiben zu müssen, der beim Zählen, Suchen, Einfügen oder Entfernen von Zeichen in einer Zeichenfolge speziell das Vorhandensein von Doppelbyte-Zeichen prüft.
Die meisten DBCS-Funktionen entsprechen ihren Ein-Byte-Gegenstücken, mit dem Unterschied, dass deren Name zwecks besserer Unterscheidungsmöglichkeit meist mit dem Suffix C versehen ist. Sie können diese Funktionen mit Ein-Byte- und mit Doppelbyte-Daten verwenden. Die DBCS-Funktionen geben, wenn Ein-Byte-Daten an sie übergeben werden, exakt den gleichen Wert zurück wie ihre Ein-Byte-Gegenstücke. Einige wenige andere Funktionen unterstützen Sie bei der Arbeit mit Zeichenfolgen speziell in Doppelbyte-Umgebungen.
DBCS-Zeichenfolgenfunktionen | Beschreibung |
---|---|
AT_C( ) | Gibt die Position einer Zeichenfolge innerhalb einer anderen zurück (Groß-/Kleinschreibung beachtend), und zwar beginnend auf der linken Seite. |
ATCC( ) | Gibt die Position einer Zeichenfolge innerhalb einer anderen zurück (ohne Berücksichtigung der Groß-/Kleinschreibung). |
CHRTRANC( ) | Ersetzt Zeichen in einer Zeichenfolge. |
IMESTATUS( ) | Schaltet im Datenblattfenster zur Doppelbyte-Bearbeitung um. |
ISLEADBYTE( ) | Prüft, ob ein Zeichen ein DBCS-Zeichen ist. |
LEFTC( ) | Gibt das am weitesten links befindliche Zeichen einer Zeichenfolge zurück. |
LENC( ) | Gibt die Anzahl der Zeichen einer Zeichenfolge zurück. |
LIKEC( ) | Prüft, ob sich zwei Zeichenfolgen entsprechen. |
RATC( ) | Gibt die Position einer Zeichenfolge innerhalb einer anderen zurück (Groß-/Kleinschreibung beachtend), beginnend auf der rechten Seite. |
RIGHTC( ) | Gibt das am weitesten rechts befindliche Zeichen einer Zeichenfolge zurück. |
STRCONV( ) | Wandelt Zeichen von Ein-Byte-Darstellung in Doppelbyte-Darstellung um. |
STUFFC( ) | Ersetzt Zeichen in einer Zeichenfolge durch eine andere Zeichenfolge. |
SUBSTRC( ) | Gibt eine untergeordnete Zeichenfolge zurück. |
Denken Sie bei der Arbeit mit Doppelbyte-Zeichen daran, dass die maximal mögliche Länge für Variablen, Namen usw. hierbei effektiv auf die Hälfte beschränkt ist. Weitere Informationen zur Kapazität von Visual FoxPro-Systemkomponenten finden Sie unter "Kapazität der Systemkomponenten".
Anmerkung Die DBCS-Funktionen von Visual FoxPro werden in früheren Versionen von Visual FoxPro nicht unterstützt, und deren Aufruf kann zu unvorhersehbaren Ergebnissen führen. Falls Sie in Ihrer Anwendung DBCS-Funktionen verwenden, prüfen Sie mit Hilfe der VERSION(1)-Funktion, ob Sie mit einer neueren Visual FoxPro-Version als 3.0 arbeiten.
Arbeiten mit Datums-, Uhrzeit- und Währungsformaten
Damit Datumsangaben, Uhrzeiten und Währungen so formatiert werden, wie es die Benutzer Ihrer Anwendungen gewöhnt sind, stehen Ihnen eine Vielzahl von Formatierungstechniken zur Verfügung. Dabei haben Sie folgende Möglichkeiten:
- Gestatten Sie Visual FoxPro, mit den Einstellungen zu arbeiten, die in der Systemsteuerung vorgegeben sind.
- Geben Sie im Dialogfeld Optionen von Visual FoxPro eine Sprache oder das spezifische Format an, die bzw. das Sie verwenden möchten.
- Formatieren Sie Datums-, Uhrzeit- und Währungsdaten in Code.
So legen Sie ein Format für Datum, Uhrzeit und Währung fest
Klicken Sie im Menü Extras auf Optionen, und klicken Sie anschließend auf die Registerkarte Ländereinstellungen.
Um mit den in der Windows-Systemsteuerung festgelegten Einstellungen zu arbeiten, klicken Sie auf Systemeinstellungen verwenden.
- Oder -
Wählen Sie eine Sprache oder ein Format für Datumsangaben und Uhrzeiten, und wählen Sie anschließend die Optionen zum Formatieren von Währung und Zahlen. Wenn Sie eines der Formate Kurz oder Lang für das Datumsformat wählen, können Sie hierfür keine weiteren Optionen festlegen; und es werden die Einstellungen aus der Windows-Systemsteuerung übernommen.
Klicken Sie auf OK, um die Optionen für die aktuelle Sitzung zu übernehmen, oder klicken Sie auf Als Standardeinstellung verwenden, um die Änderungen als Standardeinstellungen für die vorliegende Visual FoxPro-Kopie zu übernehmen.
Sie können diese Einstellungen auch mit Hilfe der Befehle SET SYSFORMATS und SET DATE vornehmen. In der Regel geben Sie diesen Befehl während der Initialisierung Ihrer Anwendung (beispielsweise in der Konfigurationsdatei) aus. Standardmäßig ist SET SYSFORMATS auf OFF eingestellt, daher müssen Sie diesen Befehl beim Starten der Anwendung explizit auf ON festlegen.
Sie können in einzelnen Textfeldern eine Datengültigkeitsprüfung initiieren, indem Sie die Format-Eigenschaft des Textfeldes einstellen. Da die Textfeldformatierung jedoch Vorrang vor der systemübergreifenden Formatierung hat, wird hierdurch die Lokalisierung Ihrer Anwendung für eine Umgebung, in der unterschiedliche Formate für Datum, Währung usw. verwendet werden, möglicherweise erschwert.
Verwenden von Präprozessoranweisungen
Mit Hilfe von Präprozessoranweisungen können Sie Anwendungsvarianten für unterschiedliche Gebietsschemata erstellen. Diese Anweisungen steuern die Kompilierung von Code in der Anwendung und umfassen die Konstruktionen #INCLUDE, #DEFINE, #UNDEF und #IF...ENDIF.
Mit Präprozessoranweisungen können Anwendungsvarianten zwar schnell erstellt werden, es sind jedoch auch folgende Nachteile zu bedenken:
- Bei Verwendung von Präprozessoranweisungen wird der Code zusätzlich geklammert, wodurch seine Komplexität erhöht wird.
- Kompilierzeit-Konstanten sind nur im Quellprogramm verfügbar.
Siehe auch
Anwendungserstellung mit Doppel-Byte-Zeichensätzen | Verwalten von Dateien in einer internationalen Anwendung | Entwickeln internationaler Anwendungen | VERSION( ) | VERSION(1) | #INCLUDE