PixTMS - Die Lage Ihrer Anwendungen

PixTMS, neue Erweiterung Pixlib, kann leicht den Standort Ihres Flash-Anwendungen.

PixTMS für Pix lib BERSETZUNG T M anagement S ystem ermöglicht es Ihnen, Ihre Übersetzungen mit den Support-Dateien zu verwalten:

  • XML
  • XLIFF
  • MO / PO
  • Properties-Datei

Mal sehen, wie es funktioniert.

Zunächst ein kurzer Überblick über System verfügbaren Klassen in dieser Bibliothek.

PXLanguage ist die Singleton (der Säule) aussehen wird, gehen die Übersetzungen abzurufen und dann eine Reihe von Klassen zur Definition von verschiedenen Arten von Daten verwaltet Übersetzungen (Bündel):

  • PXXMLLanguageBundle: XML
  • PXXLIFFLanguageBundle: Daten XLIFF
  • PXPropLanguageBundle: Properties-Datei
  • PXPOLanguageBundle: PO Datengröße
  • PXMOLanguageBundle: binäre Daten MO

Diese Klassen dreht sich um PXILanguageBundle wichtigste Schnittstelle (und eine abstrakte Klasse PXLanguageBundle).

Das Übersetzungssystem von PixTMS entwickelt, um externe Dokumente zu laden, sondern auch Daten, die in der Zusammenstellung (eingebetteten) verpackt sind zu verwenden.

1. Einführung und Übersetzungen verpackt

Betrachten wir das erste Beispiel mit dem Einsatz von Erweiterung PixEmbed von Pixlib:

Zuerst wird eine XML-Datei eine schnelle Übersetzung:

  <file>
  <body>
      > Travail de bas niveaux sur Actionscript 3.0 </trans-unit > <trans-unit "NAME" id => Arbeit Tiefen auf Actionscript 3.0 </ trans-unit>
  </ Body>
 </ Datei> 

Wie bereits in einer früheren Lektion erwähnt, schaffen wir unsere einbetten:

  Paket
 {
	 MyEmbed public class MyEmbed
	 {
		 source = "fr-FR.xml" , mimeType= "application/octet-stream" ) ] [Embed (source = "fr-fr.xml", mimeType = "application / octet-stream")]
		 frFR : Class ; public var enGB: Klasse;

		 source = "en-US.xml" , mimeType= "application/octet-stream" ) ] [Embed (source = "en-US.xml", mimeType = "application / octet-stream")]
		 enUS : Class ; public var enUS: Klasse;
	 }
 } 

Und jetzt werden wir selbst verwalten Übersetzungen:

  Paket
 {
	 pixlib . core . PXBaseDocument ; net Import Kern PXBaseDocument pixlib ...;
	 pixlib . embed . PXEmbedEngine ; Nettoimport einbetten PXEmbedEngine pixlib ...;
	 pixlib . load . PXResourceLocator ; Nettoimport Last PXResourceLocator pixlib ...;
	 pixlib . log . PXDebug ; net Importprotokoll PXDebug pixlib ...;
	 pixlib . log . PXTraceLayout ; net Importprotokoll PXTraceLayout pixlib ...;
	 pixlib . log . addLogListener ; net Importprotokoll addLogListener pixlib ...;
	 pixlib . tms . PXLanguage ; Nettoimport tms PXLanguage pixlib ...;
	 pixlib . tms . bundles . PXXMLLanguageBundle ; Nettoimport pixlib Bundles PXXMLLanguageBundle tms ....;

	 . Event ; . Import flash.events Ereignis;

	 Sample extends PXBaseDocument public class Probe erstreckt PXBaseDocument
	 {
		 onDocumentReady ( ) : void onDocumentReady Override protected function (): void
		 {
			 / / Die Ausgabe wird in den Nachrichten hinzugefügt Pixlib hier das klassische "Spur"
			 getInstance ( ) ) ; addLogListener (PXTraceLayout getInstance ().)

			 / / Wir erklären den eingebetteten
			 "frFR" , PXEmbedEngine . parseXML ) ; PXEmbedEngine addParser ("enUS", PXEmbedEngine parseXML.).
			 "enUS" , PXEmbedEngine . parseXML ) ; PXEmbedEngine addParser ("enUS", PXEmbedEngine parseXML.).
			 MyEmbed ) ; . PXEmbedEngine einbetten (MyEmbed);

			 / / Die Singleton wird zurückgewonnen
			 PXLanguage = PXLanguage . getInstance ( ) ; var lang: PXLanguage PXLanguage = getInstance ().

			 / / Zwei Bündel werden mit Hilfe von XML-Bundles (<em> PXXMLLanguageBundle </ em>) und
			 / / Wir die rohen XML-Daten aus unseren Ressourcen.
			 new PXXMLLanguageBundle ( "fr-FR" , PXResourceLocator . getInstance ( ) . locateXML ( "frFR" ) ) ) ; . Lang addBundle (neu PXXMLLanguageBundle ("fr-FR", PXResourceLocator getInstance () locateXML ("enUS.")).)
			 new PXXMLLanguageBundle ( "en-US" , PXResourceLocator . getInstance ( ) . locateXML ( "enUS" ) ) ) ; . Lang addBundle (neu PXXMLLanguageBundle ("en-US", PXResourceLocator getInstance () locateXML ("enUS.")).)

			 / / Änderungen möglich Sprache hört
			 ( PXLanguage . onChangeEVENT , _onChange ) ; . Lang addEventListener (PXLanguage OnChange Ereignis, _onChange.)

			 / / Wir setzen die aktuelle Sprache, die die Wirkung der Belastung haben wird
			 / / Übersetzung automatisch.  Und das Ereignis <em> <strong> OnChange # </ strong> </ em> wird
			 / / Sent
			 ; . Aktuellen lang = "en-US";
		 }

		 _onChange ( event : Event ) : void _onChange private function (event: Event): void
		 {
			 / / Hier die Übersetzung von "NAME" in unserer XML-Datei identifiziert.
			 PXLanguage . getInstance ( ) . getString ( "NAME" ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("Name"), diese ..)
		 }
	 }
 } 

2. Externe Übersetzungen

Selbstverständlich ist es auch möglich, Übersetzungen von außen geladen.

  Paket
 {
	 pixlib . core . PXBaseDocument ; net Import Kern PXBaseDocument pixlib ...;
	 pixlib . log . PXDebug ; net Importprotokoll PXDebug pixlib ...;
	 pixlib . log . PXTraceLayout ; net Importprotokoll PXTraceLayout pixlib ...;
	 pixlib . log . addLogListener ; net Importprotokoll addLogListener pixlib ...;
	 pixlib . services . PXHTTPService ; Nettoimport pixlib Dienstleistungen PXHTTPService ...;
	 pixlib . tms . PXLanguage ; Nettoimport tms PXLanguage pixlib ...;
	 pixlib . tms . bundles . PXLoadableBundle ; Nettoimport pixlib Bundles PXLoadableBundle tms ....;
	 pixlib . tms . bundles . PXXLIFFLanguageBundle ; Nettoimport pixlib Bundles PXXLIFFLanguageBundle tms ....;

	 . Event ; . Import flash.events Ereignis;

	 Sample extends PXBaseDocument public class Probe erstreckt PXBaseDocument
	 {
		 onDocumentReady ( ) : void onDocumentReady Override protected function (): void
		 {
			 / / Die Ausgabe wird in den Nachrichten hinzugefügt Pixlib hier das klassische "Spur"
			 getInstance ( ) ) ; addLogListener (PXTraceLayout getInstance ().)

			 / / Die Singleton wird zurückgewonnen
			 PXLanguage = PXLanguage . getInstance ( ) ; var lang: PXLanguage PXLanguage = getInstance ().

			 / / Unsere Übersetzungen werden geladen Verwendung eines HTTP-Dienst
			 new PXLoadableBundle ( new PXXLIFFLanguageBundle ( "fr-FR" ) , new PXHTTPService ( "fr-FR.xlf" ) ) ) ; . Lang addBundle (neu PXLoadableBundle (neu PXXLIFFLanguageBundle ("fr-FR"), neue PXHTTPService ("fr-FR.xlf")));
			 new PXLoadableBundle ( new PXXLIFFLanguageBundle ( "en-US" ) , new PXHTTPService ( "en-US.xlf" ) ) ) ; . Lang addBundle (neu PXLoadableBundle (neu PXXLIFFLanguageBundle ("en-US"), neue PXHTTPService ("en-US.xlf")));

			 ( PXLanguage . onChangeEVENT , _onChange ) ; . Lang addEventListener (PXLanguage OnChange Ereignis, _onChange.)
			 ; . Aktuellen lang = "en-US";
		 }

		 _onChange ( event : Event ) : void _onChange private function (event: Event): void
		 {
			 PXLanguage . getInstance ( ) . getString ( "NAME" ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("Name"), diese ..)
		 }
	 }
 } 

Für externe Belastung, die die jeweilige Bündel PXLoadableBundle so verwendet wird.

Dieses Bundle als Argument, die Art der Translation Management (XML, XLIFF, PO, etc.) als PXILanguageBundle und dann ein PXService zu definieren, wie diese Übersetzungen berechnet.

3. Dateiverwaltung Übersetzungen

Um Ihre Übersetzung geschnitten ist es möglich, eine Kennung für jedes Bündel definieren.

Nützliches für die Erstellung von spezifischen Übersetzungen für einen Teil einer Anwendung.
Diese Kennung ist ein Konstruktor Argument:

  / / Bundle standardmäßig (ohne explizite Identifier)
 new PXLoadableBundle ( new PXMLLanguageBundle ( "fr-FR" ) , new PXHTTPService ( "fr/home.xml" ) ) ) ; . Lang addBundle (neu PXLoadableBundle (neu PXMLLanguageBundle ("fr-FR"), neue PXHTTPService ("en / home.xml")));

 / / Bundles gewidmet
 new PXLoadableBundle ( new PXMLLanguageBundle ( "fr-FR" , null , "home" ) , new PXHTTPService ( "fr/home.xml" ) ) ) ; . Lang addBundle (neu PXLoadableBundle (neu PXMLLanguageBundle ("fr-FR", null, "home"), neue PXHTTPService ("en / home.xml")));
 new PXLoadableBundle ( new PXMLLanguageBundle ( "fr-FR" , null , "error" ) , new PXHTTPService ( "fr/error.xml" ) ) ) ; . Lang addBundle (neu PXLoadableBundle (neu PXMLLanguageBundle ("fr-FR", null, "error"), neue PXHTTPService ("en / error.xml"))); 

Dann, um Übersetzungen abzurufen, einfach gezielt das gewünschte Bundle:

  _onChange ( event : Event ) : void _onChange private function (event: Event): void
 {
	 / / Holen Sie sich das Bündel von Standard-
	 PXLanguage . getInstance ( ) . getString ( "NAME" ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("Name"), diese ..)

	 / / Holen Sie sich das Bündel "zu Hause"
	 PXLanguage . getInstance ( ) . getString ( "MESSAGE" , "home" ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("Nachricht", "home"), diese ..)
 } 

4. Holen Sie sich eine Übersetzung

Wie in den verschiedenen obigen Beispiel gesehen haben, ist das Verfahren # getString () verwendet, um den Wert einer Übersetzung in die Sprache und das gewünschte Bundle abzurufen. Diese Methode unterstützt auch zwei zusätzliche optionale Parameter eine bessere Kontrolle der Wiederherstellung von Daten.

Der 3. Parameter ist der Standardwert zurück, in denen die Übersetzung nicht gefunden wurde:

  _onChange ( event : Event ) : void _onChange private function (event: Event): void
 {
	 / / Holen Sie sich das Bundle standardmäßig.  Wenn 'NAME' ist nicht definiert
	 / / Dann kehren "Pixlib"
	 PXLanguage . getInstance ( ) . getString ( "NAME" , null , "Pixlib" ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("NAME", null, "Pixlib"), diese ..)
 } 

Und der 4. Parameter ist eine Substitution Tabelle, die direkt gesendet werden können.

Sobald die Übersetzung gefunden wird, wird die substituion mit den Werten der Tabelle erreicht werden. Auswechslungen läuft das Modell nach der Methode definiert PXStringUtils # Ersatz ().

  _onChange ( event : Event ) : void _onChange private function (event: Event): void
 {
	 / / Holen Sie sich das Bündel "zu Hause" und die Substitution der Übersetzung durchgeführt wird.
	 / / In Datei Übersetzung wird unser Text zum Beispiel formatiert werden: Mein Name ist {0} auf {1}
	 PXLanguage . getInstance ( ) . getString ( "MESSAGE" , "home" , null , [ "Pixlib" , "AS3" ] ) , this ) ; PXDebug DEBUG. (PXLanguage getInstance () getString ("Nachricht", "home", null, ["Pixlib", "AS3"]), diese ..)
 } 

5. Downloads

Viel Spaß beim Programmieren mit Pixlib

Teilen

Über PixTeam

Die Pixlib Teams (Training, Beratung und Entwicklung Team)
Dieser Eintrag wurde veröffentlicht in Erweiterung , Rahmenprogramm , Tutorial und verschlagwortet mit , , , , , , . Lesezeichen auf den Permalink .