Over-the-Air (OTA)-Updates bieten eine flexible Möglichkeit, Übersetzungsaktualisierungen an mobile und Webanwendungen zu liefern, ohne dass eine neue Version im App Store, bei Google Play oder auf anderen Bereitstellungsplattformen erforderlich ist. Dieser Ansatz unterstützt die kontinuierliche Lokalisierung und agile Entwicklungsabläufe, indem Verzögerungen und manuelle Prozesse reduziert werden.
Die OTA-Funktion in Phrase Strings lässt sich in iOS-, Android-, React Native-, Flutter-, i18next- und Rails-Plattformen integrieren. Aktualisierungen für Textlabels werden sofort an mobile Apps gesendet.
Eine neue Version muss erstellt werden, damit die aktualisierten Einstellungen angewendet werden. Sämtlicher Content, der in einem Release enthalten ist, muss in Phrase Strings verfügbar sein, das Übersetzungen direkt an die Anwendung streamt. Wenn der Content nicht vorhanden ist, werden keine Übersetzungen geliefert.
Für mobile Anwendungen erfordert OTA die Integration des relevanten Software Development Kit (SDK) in die Anwendung, um Übersetzungen zur Laufzeit von Phrase Strings abzurufen.
Tipp
Details zu Distribution, Release und API-Referenz finden Sie im Developer Hub.
Beim ersten Start einer Anwendung, die das iOS-, Android-, React Native- oder Flutter-SDK auf einem Gerät implementiert, wird eine eindeutige und zufällige Gerätekennung generiert. Diese Kennung verfolgt aktive User über einen bestimmten Zeitraum. Sie wird nicht für andere Formen oder Mittel des Trackings verwendet und enthält keine User- oder Geräteinformationen.
Die Anzahl der OTA-Anfragen und die Menge der monatlich aktiven Benutzer (MAU) sind begrenzt, abhängig vom gewählten Preisplan.
MAU ist die Anzahl der eindeutigen Geräte, von denen aus Übersetzungen angefordert werden. Jedem Gerät wird eine zufällige ID zugewiesen. MAU wird basierend auf der Anzahl der eindeutigen IDs berechnet, die in den letzten 30 Tagen zugewiesen wurden. Jede Interaktion mit Phrase-Servern wird als Anfrage betrachtet.
Mit OTA-Anfragen gesendete Daten
Das SDK kommuniziert mit dem OTA-Service, um nach Updates zu suchen und enthält die folgenden Details bei jeder Anfrage:
-
Gerätekennung (z.B. "F3AFCB10-80A2-84CB-94C0-27F5EF58876D". Einzigartig für diese App und daher keine Verfolgung eines bestimmten Geräts möglich.)
-
App-Version (z.B. "1.2.0")
-
Letzte Aktualisierung der Übersetzungsdatei (z.B. "1542187679")
-
SDK-Version (z.B. "1.0.0")
-
Sprache (z.B. "de-DE")
-
Dateiformat (z.B. "strings")
-
Client (z.B. "ios")
-
Distributions-ID (ID der Distribution)
-
Umgebungsgeheimnis (zur Unterscheidung zwischen Entwicklung und Produktion)
Von den SDKs verwendete Domains:
EU-Rechenzentrum
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
US-Rechenzentrum
-
ota.us.phrase.com
-
cdn.us.phrase.com
Phrase OTA-SDKs sind so konzipiert, dass Apps auch dann funktionsfähig bleiben, wenn die OTA-API nicht verfügbar ist. In solchen Fällen greift das SDK auf die zuletzt erfolgreich abgerufenen Übersetzungen zurück, die auf dem Gerät gespeichert sind, oder auf die gebündelten Übersetzungen, die im App-Paket enthalten sind. Dies verhindert Fehler oder fehlende Strings für Endbenutzer. Um einen zuverlässigen Fallback zu gewährleisten, sollten gebündelte Übersetzungen bei jedem App-Release auf dem neuesten Stand gehalten werden.
Distributionen sind ein konfigurierter Setup, der definiert, wie und wo OTA-Updates für eine bestimmte Plattform oder ein Projekt bereitgestellt werden.
Zielplattformen werden innerhalb der Distribution definiert:
-
iOS
-
Android
-
Flutter
-
i18next
-
Rails
Mehrere Distributionen sind möglich, aber idealerweise gibt es eine Distribution pro Projekt. Wenn eine Distribution für iOS und Android verwendet wird, werden Platzhalter für die beiden Formate automatisch konvertiert.
Fallbacks
Wenn Sprachfallbacks in den Spracheinstellungen des Projekts festgelegt sind, an das die Distribution angeschlossen ist, werden Strings aus der ausgewählten Sprache angezeigt, wenn die angeforderte Sprache existiert, aber der Schlüssel nicht übersetzt ist.
Wenn eine länderspezifische Sprache (z.B. en-GB) verwendet wird, die aber nicht Teil der Veröffentlichung ist, kann das System auf eine Standardversion (z.B. en) dieser Sprache zurückgreifen, falls sie im Projekt existiert. Falls die angeforderte Sprache überhaupt nicht gefunden wird, kann stattdessen die Standardsprache des Projekts bereitgestellt werden.
Fallbacks funktionieren nicht bei verknüpften Keys.
Eine Distribution erstellen
Um eine Distribution zu erstellen, folge diesen Schritten:
-
Klicke auf der -Seite im -Kasten auf Konfigurieren oder auf die Anzahl der Konfigurationen, wenn bereits welche existieren.
Die -Seite öffnet sich und zeigt bestehende Konfigurationen an.
-
Klicke auf Neue Distribution. Das -Fenster öffnet sich.
-
Im Allgemein-Tab gib einen an, mit welchem die Distribution verknüpft ist, erforderliche und erforderliche .
-
Für Android-Distributionen klicke auf den Android-Tab, um die Formatoption auszuwählen, die jede Übersetzung einschließlich HTML-Tags in CDATA einschließt, falls erforderlich.
-
Nachdem du das Projekt ausgewählt hast, das mit der Distribution verknüpft werden soll, wird der Planung-Tab verfügbar. Falls erforderlich, nutze diesen Tab, um OTA-geplante Veröffentlichungen in der Distribution einzurichten.
-
-
Im Fallback-Sprachen-Tab wähle distributionsspezifische Fallback-Einstellungen aus, wie benötigt. Fallback-Optionen werden in der Liste nach Priorität angezeigt.
-
Optional klicke auf den Übersetzungen-Tab, um die Option auszuwählen, die neueste geprüfte Version der Übersetzungen zu verwenden. Aktivieren Sie diese Option nur, wenn Sie mit dem erweiterten Workflow für die Überprüfung arbeiten.
-
Klicke auf Speichern.
Distributionsdetails werden mit IDs angezeigt, die von den SDKs benötigt werden. Details können erneut angezeigt werden, indem du die Distribution von der -Seite aus anklickst.
Um Übersetzungen zu aktualisieren, erstelle ein neues Release innerhalb der Distribution. Der aktuelle Stand des Projekts wird exportiert und den verbundenen Clients zur Verfügung gestellt.
Um ein Release zu erstellen, folge diesen Schritten:
-
Klicke auf der Over the air-Seite neben der erforderlichen Distribution auf Release hinzufügen.
Das -Fenster öffnet sich.
-
Gib eine , erforderliche , , und an.
Locales, die noch nicht zur Sprachenliste der Distribution hinzugefügt wurden, erscheinen als nicht ausgewählt und stehen nicht zur Auswahl. Fügen Sie die erforderlichen Sprachen zur Distribution hinzu, damit sie in zukünftigen Releases ausgewählt werden können.
Wenn beim Erstellen eines Releases keine Locales manuell ausgewählt werden, sind standardmäßig alle in der Distribution konfigurierten Locales im Release enthalten.
Falls notwendig, gib Tags ein, um nur Schlüssel mit bestimmten Tags in das Release einzuschließen. Das Hinzufügen eines Tag-Filters zu einem Release schließt nur die Keys ein, die dieses Tag tragen. Keys ohne das Tag werden vollständig vom Release ausgeschlossen, und die verbundene App greift für diese Keys auf die statischen Übersetzungsdateien zurück, die lokal in ihrer Codebasis gebündelt sind. Das Tag-Filtern funktioniert unabhängig vom Branching: Wenn Branching aktiviert ist, wählen Sie den Branch und das/die relevante(n) Tag(s) aus; wenn Branching nicht aktiviert ist, wählen Sie nur das/die relevante(n) Tag(s) aus.
-
Klicke auf Importieren.
Das Release wird der Liste am unteren Rand der Distributionsdetailseite hinzugefügt.
Um wiederkehrende Zeitpläne für das Release der Distribution einzurichten, folge diesen Schritten:
-
Klicke auf der -Seite auf das Zahnrad-Symbol
neben der erforderlichen Distribution.
Das -Fenster wird angezeigt.
-
Wähle den Releasezeitplan-Tab und klicke auf .
Optionen für die Releaseplanung werden angezeigt.
Hinweis
Planungsoptionen sind auch bei der Erstellung einer neuen Distribution verfügbar.
-
Wähle im Dropdown-Menü die Veröffentlichungsfrequenz aus, indem du eine der verfügbaren Optionen auswählst:
-
-
Wähle die gewünschten Wochentage für die geplanten Releases aus.
-
-
Gib eine Uhrzeit und die relevante an.
-
Falls nötig, wähle , und für die geplanten Releases aus.
-
Das Feld wird nur angezeigt, wenn im Projekt das Branching aktiviert ist. Das Auswählen eines Branches aktualisiert die Liste der Sprachen und Sprachen.
-
-
Optional kannst du die App-Versionen in den Feldern und angeben.
Lass es leer, um das geplante Release auf alle Versionen der App anzuwenden.
-
Klicke auf Speichern.
Die Distribution wird mit Informationen zur Release-Planung aktualisiert.
Das Deaktivieren des Plans stoppt das automatische Release der Distribution, aber die konfigurierten Einstellungen bleiben gespeichert.
Hinweis
Es gibt in der Strings-Benutzeroberfläche keine Option, um OTA anzuhalten oder vorübergehend zu deaktivieren. Um zu verhindern, dass eine App Übersetzungen abruft, entfernen Sie die Distributions-ID aus der OTA-Konfiguration der App; stellen Sie die ID wieder her, um OTA fortzusetzen. Als letzte Möglichkeit löschen Sie die Distribution und erstellen eine neue.
Die Integration des passenden mobilen SDKs oder der Web-Bibliothek ermöglicht es, Übersetzungen mit einem Klick zu aktualisieren und bietet außerdem Metriken zur Messung der Nutzung. Die Berichte des mobilen SDKs und der Web-Bibliothek geben wertvolle Einblicke in aktive App-User und deren App-Sprachen. Diese Reihe von Berichten ist für jede Distribution verfügbar, und die Daten werden zweimal täglich aktualisiert.
Berichte werden für die Anzahl aktiver User, Gesamtanfragen, Anfragen pro Sprache, Anfragen pro Plattform und für nicht bereitgestellte Gerätesprachen bereitgestellt.
Berichte für jede Distribution sind über das Symbol auf der Seite zugänglich.
Technische Dokumentation zur Integration der OTA SDKs finden Sie in der README-Datei jedes Projekt-Repositorys: