Willkommen Gast, Anmelden

Active Extension für FoxPro Suche im wiki »

automatische Übersetzung

Eine der besonderen Eigenschaften der AFPX sind die automatischen Übersetzungsmöglichkeiten.

Als erstes ist es notwendig bestimmte Parameter in der afpx.ini einzustellen.

Der Hauptschalter der Übersetzungsengine

; Translation engine switched on?
LOCALIZE=ON

Automatisches Übersetzen

Ist dieser Schalter auf ON wird automatisch die vom Browser übertragene Spracheinstellung verwendet um die Sprache einzustellen.
Eine Sprache besteht immer aus 2 Buchstaben. de = Deutsch, en = englisch, fr = Französisch etc
Sie sind nach ISO 639-1 definiert.
; Is HTTP_ACCEPT_LANGUAGE to be used for language recognition?
AUTOLOCALIZE=ON

ENABLEDLANGUAGES

Mit ENABLEDLANGUAGES müssen die im System verwendeten Sprachen angegeben werden.
Es müssen exakt 2 Zeichen getrennt mit einem Komma angegeben werden.
; Which languages-PRG files should be created automatically
; use de,en,fr, and so on
ENABLEDLANGUAGES=de,en,

Es gibt nun mehrere Möglichkeiten Zeichenketten zu übersetzen.

normale Ausgabe

Normalerweise wird mit einem Fragezeichen einem Gleichheitszeichen oder wie beim Textmerge eine Zeichenkette in die HTML-Seite eingefügt.

<%="Guten Abend"%>
<%?"Guten Abend"%>
<%fox.writeclient("Guten Abend")%>
<<"Guten Abend">>

Zwei Fragezeichen

Verwenden sie zwei Fragezeichen, wird die Zeichenkette automatisch übersetzt

<%??"Guten Abend"%>

Außerhalb der Scriptletzeichen können Sie mit <??> eine Übersetzung einleiten

<??>Guten Abend<??>

fox.localize

Zusätzlich gibt es auch noch eine Funktion, welche eine Übersetzung durchführt.

<%?fox.localize("Guten Abend")%>

Sobald einmal eine Zeichenkette durch die Übersetzung geschickt wurde, wird in der langfile.dbf ein Datensatz dafür gesucht.
Wird die Zeichenkette unter dem Feld origin nicht gefunden, wird automatisch ein neuer Datensatz angelegt und die ganzen Sprach-Memos mit der Zeichenkette gefüllt.

Sie können nun die Tabelle bearbeiten und die Übersetzungen vornehmen.

2 Varianten

Es sind zwei verschiedene Varianten der Übersetzung eingebaut.

  • die Übersetzung "on the fly"
    dies geschieht durch die doppelten Fragezeichen und durch fox.translate()
  • die Übersetzung zur Kompilierungszeit
    dies geschieht durch <<??>>

Übersetzung zur Kompilierungszeit

Sobald eine AFP-Seite in ein echtes PRG umgewandelt wird, werden abhängig vom Parameter ENABLEDLANGUAGES mehrere PRG´s erstellt.

Im Falle einer test.afp und den Sprachen de,en, können die erzeugten Dateien folgendermaßen aussehen:
C__inetpub_wwwroot_test_afp.ini
c__inetpub_wwwroot_test_afp__3cs1b48tf_2968_de.FXP
C__inetpub_wwwroot_test_afp__3CS1B48TF_2968_de.prg
c__inetpub_wwwroot_test_afp__3cs1b48tf_2968_en.FXP
C__inetpub_wwwroot_test_afp__3CS1B48TF_2968_en.prg

die INI-Datei

beinhaltet die Informationen der einzelnen Dateien mit deren Timestamps

20111107205224
C__inetpub_wwwroot_test_afp__3CS1B48TF_2968.fxp
C__inetpub_wwwroot_test_afp__3CS1B48TF_2968.prg
00000000000000
C:\inetpub\wwwroot\test.afp.code
00000000000000
C:\inetpub\wwwroot\application.code
00000000000000
C:\inetpub\wwwroot\application.prg
neu erstellt in Procedure makenewfiles

Es wird pro Sprachcode ein PRG erzeugt und dies wird zu einem FXP kompiliert.
Abhängig von der derzeitigen Sprache wird dann das jeweilige FXP aufgerufen.
Die im Original-AFP-File mit <<??>> markierten Zeichenketten werden automatisch durch die Übersetzungsengine geschickt, und somit befinden sich in den PRG´s die bereits ordentlich Übersetzten Texte.
Dies führt zu einer wesentlich schnelleren Ausführung des Codes.

der _lng=xx Querystringzusatz

Um zur Laufzeit zwischen verschiedenen Sprachen umschalten zu können, gibt es die Möglichkeit als zusätzlichen Querystringparameter ein
_lng=xx anzugeben, wobei xx dem Sprachcode entspricht.

Dies funktioniert jedoch nur bei der "on the fly" Übersetzung.

Wird _lng als HTTP-Cookie übertragen, wird es ebenfalls berücksichtigt

Edit | Alle | Kategorien | Navigation Pfad | Administration | Files
WikiSoftware (c) by Screwturn Wiki