Resource Bundles für Skills
Wenn der Skill für mehrere Sprachen konzipiert ist und Sie den Wortlaut für die Antworten des Skills kontrollieren möchten, verwenden Sie Resource Bundles. Sie können Resource Bundles für beliebig viele Sprachen und Dialekte bereitstellen.
Selbst wenn der Skill nur auf eine Sprache ausgerichtet ist, hat die Verwendung von Resource Bundles Vorteile. So können Sie beispielsweise den gesamten anzeigbaren Text an einer Stelle sammeln.
Es gibt eine Reihe von Optionen für die Parametrierung von Resource-Bundle-Einträgen, mit denen Sie Variablen in die Zeichenfolgen einbetten können. Darüber hinaus können Sie die ICU-Formatierung für Bundle-Einträge verwenden, um den Wortlaut einer Antwort je nach Parameterauflösung zu erstellen. So können Sie Formulierungen an Singular oder Plural anpassen.
Typen von Resource-Bundle-Schlüsseln
Die für Benutzer anzeigbaren Zeichenfolgen eines Skills stammen aus mehreren Teilen des Skills. In einigen Fällen wird automatisch ein Resource-Bundle-Schlüssel für Sie erstellt. In anderen Fällen wird kein Schlüssel generiert, Sie können jedoch selber einen definieren.
Hier wird erläutert, aus welchen Stellen benutzerorientierte Zeichenfolgen stammen und wie Sie diese im Resource Bundle verwalten können.
- Feld Unterhaltungsname für Intents.
Wenn Sie Unterhaltungsnamen festlegen, werden automatisch Resource-Bundle-Schlüssel erstellt und mit dem Wert aufgefüllt, den Sie für die Standardsprache festgelegt haben. Sie können auf die Bundle-Schlüssel für Unterhaltungsnamen zugreifen, indem Sie auf
klicken und die Registerkarte Intents auswählen.
- Feld Antwort für Intents (Antwort-Intents).
Wenn Sie Antworten in Intents festlegen, werden automatisch Resource-Bundle-Schlüssel erstellt und mit dem Antworttext in der Standardsprache aufgefüllt. Sie können auf die Bundle-Schlüssel für Antworten zugreifen, indem Sie auf
klicken und die Registerkarte Fragen und Antworten auswählen.
- Konfigurationseinstellungen des Skills (auf die Sie zugreifen, indem Sie auf
klicken und die Registerkarte Konfiguration auswählen).
Für diese Einstellungen werden Resource-Bundle-Schlüssel mit Standardwerten generiert. Die Einstellungswerte werden als Referenzen zu den Resource-Bundle-Schlüssel ausgedrückt. Sie können die Werte dieser Schlüssel bearbeiten, indem Sie auf
klicken und die Registerkarte Konfiguration auswählen.
- Standard-Prompts, -labels und -nachrichten, die in Standard-Dialogablaufkomponenten integriert sind.
Wenn Sie den Standardwert einer dieser Eigenschaften ändern möchten, können Sie das im Resource Bundle tun, indem Sie auf
klicken und die Registerkarte Konfiguration auswählen.
Sie müssen die Eigenschaft nicht in der Dialogablaufdefinition zur Komponente hinzufügen, um den aktualisierten Wert im Resource Bundle zu referenzieren.
Wenn Sie den Wert einer dieser Eigenschaften für eine Komponente in einem bestimmten Status ändern möchten, ohne den Standardwert zu ändern, fügen Sie die Eigenschaft der Komponente in diesem Status hinzu.
- Dialogablaufzeichenfolgen. Für Text, den Sie in Komponenten integrieren, können Sie eigene Resource-Bundle-Schlüssel definieren und diese Schlüssel dann aus der Dialogablaufdefinition referenzieren.
Sie können diese Schlüssel erstellen und bearbeiten, indem Sie auf
klicken und die Registerkarte Benutzerdefiniert auswählen.
- Prompts und Nachrichten aus Entitydefinitionen Für diese Zeichenfolgen können Sie eigene Resource-Bundle-Schlüssel definieren und diese Schlüssel dann aus den Feldern für diese Eigenschaften in der Entitydefinition referenzieren.
Sie können Schlüssel für diese Zeichenfolgen erstellen und bearbeiten, indem Sie auf
klicken und die Registerkarte Benutzerdefiniert auswählen.
Resource Bundles eignen sich nicht zum Übersetzen von Wertelistenentitys. Stattdessen geben Sie die Übersetzung in der benutzerdefinierten Entitydefinition an. Bei Skills, die nativ unterstützte Sprachen verwenden, geben Sie Werte für diese native Sprache an. Bei Skills, die auf einem Übersetzungsservice basieren, geben Sie die übersetzten Werte als Synonyme für die Werte in der Standardsprache an.
Resource-Bundle-Schlüssel erstellen
Mit Resource-Bundle-Schlüsseln können Sie Ausgabetext identifizieren, der übersetzt werden muss, und Werte in einer oder mehreren Sprachen angeben. Schlüssel werden automatisch für die Intent-Unterhaltungsnamen, die Antworten auf Antwort-Intents und einige allgemeine Eigenschaften definiert. Sie müssen jedoch selbst Schlüssel für anderen zu übersetzenden Ausgabetext erstellen, z.B. Text aus Ihrem Dialogablauf.
So erstellen Sie Resource-Bundle-Einträge:
-
Klicken Sie in der linken Navigationsleiste des Skills auf
.
- Klicken Sie auf die Registerkarte Benutzerdefiniert.
-
Klicken Sie auf Bundle hinzufügen.
Das Dialogfeld "Eintrag erstellen" wird angezeigt. Dort können Sie den ersten Eintrag in der primären Sprache des Skills erstellen.
-
Geben Sie einen Schlüssel (zum Referenzieren des Bundle-Eintrags) und den entsprechenden Text ein. Beispiel: Für den Benutzer-Prompt Wie alt sind Sie? könnten Sie HowOld in das Feld Schlüssel und dann Wie alt sind Sie? in das Feld Text eingeben.
- Geben Sie unter Anmerkung alle wichtigen Informationen für Personen ein, die den Eintrag möglicherweise später referenzieren müssen, wie Übersetzer.
-
Klicken Sie auf Eintrag erstellen.
Sprache zu einem Resource-Bundle-Schlüssel hinzufügen
Wenn Sie einen Bundle-Schlüssel erstellen, bezieht sich der ursprüngliche Textwert auf den Standardwert des Skills (d.h. die primäre oder vorherrschende Sprache).
So fügen Sie Text für einen Bundle-Schlüssel in einer anderen Sprache hinzu:
-
Wählen Sie den Schlüssel aus, und klicken Sie auf Sprache hinzufügen.
-
Füllen Sie das Dialogfeld "Eintrag erstellen" aus:
-
Sprache: Geben Sie ein IETF BCP 47-Sprachtag wie
fr
für Französisch oderde
für Deutsch ein, oder wählen Sie es aus. -
Text: Die Ausgabezeichenfolge. Beispiel: Für eine deutsche Übersetzung (
de
) des HowOld-Schlüssels können Sie eine Zeichenfolge wie Wie alt sind Sie? hinzufügen.
-
Sie können auch spezifischere Gebietsschemas verwenden (wie
en-US
),die jedoch in den meisten Fällen nicht sinnvoll sind. Beispiel: Wenn Sie einen Übersetzungsservice verwenden, um die Sprache zu erkennen, wird nur ein Code mit zwei Buchstaben zurückgegeben.
Wenn der Skill die Eingabesprache keinem im Bundle definierten Sprachtag zuordnen kann, wird standardmäßig ein weniger spezifisches Tag verwendet (sofern verfügbar). Wenn keiner der Einträge der Sprache des Browsers entspricht, verwendet der Skill den Standardeintrag Englisch. Weitere Einzelheiten finden Sie unter Auflösung von Resource-Bundle-Einträgen.
Unterhaltungsnamen übersetzen
An einigen Punkten einer Unterhaltung, z.B. wenn der Skill versucht, den Ablauf zu ermitteln, dem der Benutzer folgen möchte, kann der Skill einen Dialog anzeigen, der sich auf ein oder mehrere Intents bezieht. In diesen Fällen bezeichnet der Skill die Intents mit ihren Unterhaltungsnamen, für die Schlüssel und Standardeinträge im Resource Bundle generiert werden.
So geben Sie eine Übersetzung für einen Unterhaltungsnamen an:
-
Klicken Sie in der linken Navigationsleiste auf Resource Bundle (
).
-
Klicken Sie auf der Seite "Resource Bundles" auf die Registerkarte Intents.
-
Intent auswählen
-
Klicken Sie auf Sprache hinzufügen.
-
Füllen Sie das Dialogfeld "Eintrag erstellen" aus:
-
Sprache: Fügen Sie ein IETF BCP 47-Sprachtag wie
fr
für Französisch,de
für Deutsch oderen-US
für US-Englisch hinzu. -
Text: Die Ausgabezeichenfolge. Beispiel: Für eine deutsche Übersetzung (
de
) des HowOld-Schlüssels können Sie eine Zeichenfolge wie Wie alt sind Sie? hinzufügen.
-
Wenn das Intent, für das Sie den Unterhaltungsnamen ändern möchten, nicht in der Liste angezeigt wird, klicken Sie auf

Antworten für Antwort-Intents übersetzen
Wenn Sie ein Antwort-Intent erstellen, wird automatisch ein Resource-Bundle-Schlüssel für die Antwort erstellt.
So geben Sie eine Übersetzung für eine Antwort in einem Antwort-Intent an:
-
Klicken Sie in der linken Navigationsleiste auf Resource Bundle (
).
-
Klicken Sie auf der Seite "Resource Bundles" auf die Registerkarte Fragen und Antworten.
-
Wählen Sie den Schlüssel für die Antwort aus, die übersetzt werden soll.
-
Klicken Sie auf Sprache hinzufügen.
-
Füllen Sie das Dialogfeld "Eintrag erstellen" aus:
-
Sprache: Fügen Sie ein IETF BCP 47-Sprachtag wie
fr
für Französisch,de
für Deutsch oderen-US
für US-Englisch hinzu. -
Text: Die Ausgabezeichenfolge.
-
Resource Bundles im Dialogablauf referenzieren
Um die Ausgabe für eine integrierte Komponente festzulegen, referenzieren Sie den Nachrichtenschlüssel über die Variable rb
(für Resource Bundles reserviert).
Im Folgenden finden Sie einen einfachen Ausdruck, der einen Bundle-Schlüssel namens WhatType
referenziert, um eine einfache Zeichenfolge zurückzugeben:
${rb('WhatType')}
Im Folgenden finden Sie einen Ausdruck, der dynamische Werte verwendet. Er referenziert einen Bundle-Schlüssel namens OnTheWay
, wobei size.value
und type.value
die Argumente für den Schlüssel OnTheWay
sind.
${rb('OnTheWay','${size.value}','${type.value}')}
Sie können auch Bundle-Einträge mit komplexeren Nachrichtenformaten erstellen, um Plural und andere Fälle zu verarbeiten. In den folgenden Themen wird der Bereich der Nachrichtenformate vorgestellt und erläutert, wie Sie diese im Dialogablauf referenzieren.
Tipp:
Um Ihre Resource Bundles mit dem Tester zu testen, stellen Sie eine andere Sprache für Ihren Browser ein.Nachrichtenformate
Sie können mehrere Formate für Resource-Bundle-Nachrichten verwenden, um alle möglichen Aktionen zu verarbeiten, von der Rückgabe statischer Nachrichten bis zur Zusammenstellung von Nachrichten abhängig von mehreren Variablen.
Einfache Nachrichten
Einfache statische Nachrichten:
- Geben Sie als Wert für den Bundle-Schlüssel Klartext an. Beispiel:
This is the value of my bundle key
. - Referenzieren Sie im Dialogablauf oder in der Konfigurationseigenschaft den Bundle-Schlüssel im Format
{rb.bundleKey}
oder{rb('bundleKey')}
.
Beispiel: Einfache Nachricht
Im Folgenden finden Sie ein Beispiel ohne Parameter.
- Resource-Bundle-Schlüssel:
pizzaOnTheWay
- Resource-Bundle-Nachricht:
Your pizza is on the way.
- Ausdruck zum Referenzieren des Resource-Bundle-Schlüssels:
${rb('pizzaOnTheWay')}
(oder${rb.pizzaOnTheWay}
)
Nachrichten mit Parametern
Nachrichten mit Variablen:
- Geben Sie als Wert für den Bundle-Schlüssel Text an, und nehmen Sie Parameter in einem der folgenden Formate auf:
- Benannte Parameter im Format
{parameterName}
- Mit Folgenummern nummerierte Parameter beginnend mit
{0}
- Benannte Parameter im Format
- Referenzieren Sie im Dialogablauf oder in der Konfigurationseigenschaft den Bundle-Schlüssel im Format:
${rb('bundleKey','variable1','variable2',...)}
Beispiel: Nachricht mit benannten Parametern
Beispiel mit zwei benannten Parametern:
- Resource-Bundle-Schlüssel:
pizzaOnTheWayWithNamedParams
- Resource-Bundle-Nachricht (auf Englisch):
(Dabei sindYour {pizzaSizeParam} {pizzaTypeParam} pizza is on the way.
{pizzaSizeParam}
und{pizzaTypeParam}
Parameter für Werte, die während der Unterhaltung aufgelöst und eingefügt werden müssen.) - Ausdruck zum Referenzieren des Resource-Bundle-Schlüssels:
(Dabei sind${rb('pizzaOnTheWayWithNamedParams','pizzaSizeParam,pizzaTypeParam',pizzaSize.value, pizzaType.value)}
pizzaSize
undpizzaType
im Dialogablauf definierte Variablen.)
Beispiel: Nachricht mit nummerierten Parametern
Beispiel mit nummerierten Parametern:
- Resource-Bundle-Schlüssel:
pizzaOnTheWayWithNumberedParams
- Resource-Paket-Nachricht:
(Dabei sindYour {0} {1} pizza is on the way.
{0}
und{1}
Parameter für Werte, die während der Unterhaltung aufgelöst und eingefügt werden müssen.) - Ausdruck zum Referenzieren des Resource-Bundle-Schlüssels:
(Dabei sind${rb('pizzaOnTheWayWithNumberedParams',pizzaSize.value, pizzaType.value)}
pizzaSize
undpizzaType
im Dialogablauf definierte Variablen.)
Komplexe Nachrichten
Sie können auch komplexe Nachrichten erstellen, bei denen der Wert einer oder mehrerer Variablen den umgebenden Ausgabetext beeinflussen kann. Beispiel: Wenn die Antwort eine Variable für die Anzahl der bestellten Pizzas enthält, können Sie mit einer komplexen Nachricht bestimmen, ob Singular ("Pizza") oder Plural ("Pizzas") verwendet werden soll.
Tipp:
Wenn Sie komplexe Bundle-Einträge erstellen, können Sie mit diesem Tester sicherstellen, dass die Einträge wie beabsichtigt aufgelöst werden: https://format-message.github.io/icu-message-format-for-translators/editor.html.Nachrichten, die sowohl Singular als auch Plural verarbeiten
Bei Nachrichten mit einer Variable, die eine Menge ausdrückt, müssen Sie möglicherweise den Wortlaut der zusammengestellten Nachricht variieren, je nachdem, wie die Variable aufgelöst wird. Bei einigen Sprachen müssen Sie möglicherweise auch mehr als eine einfache Singular/Plural-Unterscheidung verarbeiten. Um Nachrichten mit Variablen für Mengen zu verarbeiten, können Sie im Wert des Schlüssels ein plural
-Argument verwenden, um die verschiedenen Arten der Nachrichtenerstellung anzugeben.
In einem Pluralargument wird ein Teil der Nachricht durch einen numerischen Wert sowie Grammatikregeln für die angegebene Sprache bestimmt. Je nach Auflösung des Pluralarguments definieren Sie den Nachrichtentext für verschiedene Fälle. Es gibt mehrere vordefinierte Fälle, wie one
, two
, few
, many
und other
. Sie können auch einen Fall für eine bestimmte Zahl angeben, indem Sie =
vor diese Zahl stellen (z.B. =3
). Nicht alle vordefinierten Fälle sind für jede Sprache relevant. Beispiel: Für Englisch sind =0
, =1
und other
ausreichend.
Sie müssen immer einen Fall und eine Nachricht für other
aufnehmen. Um die aufgelöste Zahl in den Nachrichtentext für einen Fall aufzunehmen, geben Sie die Zahl mit #
aus.
Wenn Sie Pluralargumente verwenden, sieht das Format in der Regel folgendermaßen aus:
{plural_arg_name, plural,
=0 {Text used when the plural argument resolves to 0}
=1 {Text used when the plural argument resolves to 1}
other {Text used when the plural argument resolves to a value that doesn't match the other cases (in this case 0 or 1)}
}
Im obigen Beispiel sind 0
, 1
und other
die möglichen Mengen. Weitere Informationen zur Funktionsweise von Pluralargumenten finden Sie in der Unicode Locale Data Markup-Spezifikation.
Details zur Pluralunterstützung für mehrere Sprachen finden Sie in den Sprachregeln für Plural von unicode.org.
Sonstige komplexe Nachrichten
Wenn der Inhalt der Nachricht auf anderen Bedingungen basieren muss, können Sie ein select
-Argument mit Schlüsselwörtern verwenden, die Sie für die Zusammenstellung der Nachricht definieren.
{select_arg_name, select,
keyword1 {Text used when the select argument resolves to keyword1}
keyword2 {Text used when the select argument resolves to keyword2}
other {Text used when the plural argument resolves to a value that doesn't match the other keywords}
}
Sie können plural- und select-Argumente auch verschachteln:
{select_arg_name, select,
keyword1 {
{plural_arg_name, plural,
=0{Text used when the select argument resolves to keyword1 and the plural argument resolves to 0.}
=1 {Text used when the select argument resolves to keyword1 and the plural argument resolves to 1}
other {Text used when the select argument resolves to keyword1 and the plural argument resolves to a value that doesn't match the other cases (in this case 0 or 1)}}}
keyword2 {
{plural_arg_name, plural,
=0 {Text used when the select argument resolves to keyword2 and the plural argument resolves to 0.}
=1 {Text used when the select argument resolves to keyword2 and the plural argument resolves to 1}
other {Text used when the select argument resolves to keyword2 and the plural argument resolves to a value that doesn't match the other cases (in this case 0 or 1)}}}
other {
{plural_arg_name, plural,
=0 {Text used when the select argument resolves to other and the plural argument resolves to 0.}
=1 {Text used when the select argument resolves to other and the plural argument resolves to 1}
other {Text used when the select argument resolves to other and the plural argument resolves to a value that doesn't match the other cases (in this case 0 or 1)}}}
}
Verwenden Sie bei Schlüsselwortnamen nur ASCII-Alphabetzeichen (A-Z, a-z).
Weitere Details zu komplexen Nachrichten finden Sie unter https://unicode-org.github.io/icu/userguide/format_parse/messages/#complex-argument-types.
Komplexe Nachrichten referenzieren
Sie können komplexe Resource Bundle-Nachrichten auf zwei Arten referenzieren:
- Verwenden Sie eine Mapvariable, bei der Werte für jeden Parameter zusammengestellt werden:
${rb('bundleKey', formatMap.value)}
- Fügen Sie ein Listenargument mit den Parameternamen gefolgt von Argumenten für jeden Wert ein:
${rb('bundleKey', 'param1, param2, param3', paramValue1, paramValue2, paramValue3)}
Hinweis
Wenn Parameterwerte Zeichenfolgen sind, müssen sie in einfache Anführungszeichen gesetzt werden ('
).
Weitere Einzelheiten finden Sie im Thema Komplexe Argumenttypen in der ICU-Dokumentation.
Maps für komplexe Resource-Bundle-Werte
Wenn Sie die Parameter für komplexe Nachrichten mit einer Mapvariable zusammenstellen möchten, gehen Sie folgendermaßen vor:
- Definieren Sie eine Variable des Typs "Map", und geben Sie ihr einen Wert im gültigen JSON-Format. Beispiel: Der Wert für einen Pizzabundle-Eintrag könnte wie folgt aussehen:
{ "pizzaSize": "${pizzaSize.value}", "pizzaType:": "${pizzaType.value}", "count": "${pizzaNum.value}" }
Hinweis
In YAML-basierten Dialogabläufen deklarieren Sie die Variable zuerst im Knotencontext
und verwenden dann eineSystem.SetVariable
-Komponente, um ihren Wert mit folgender Syntax festzulegen:populateMap: component: "System.SetVariable" properties: variable: "formatMap" value: pizzaSize: "${pizzaSize.value}" pizzaType: "${pizzaType.value}" count: "${pizzaNum.value}"
- Fügen Sie im Ausdruck, in dem Sie den Bundle-Schlüssel referenzieren, die Map als Argument ein. Beispiel:
${rb('pizzaOnTheWaySingularOrPlural', formatMap.value)}
Beispiel: Nachricht, die Singular- und Pluralvarianten verarbeitet
Beispiel für einen Resource-Bundle-Eintrag für eine Nachricht, die Singular- oder Pluralinhalt aufweisen kann:
- Resource-Bundle-Schlüssel:
pizzaOnTheWaySingularOrPlural
- Resource-Bundle-Nachricht (auf Englisch):
{count, plural, =0 {No pizzas will be delivered.} =1 {Your {pizzaSizeParam} {pizzaTypeParam} pizza is on the way.} other {# pizzas are on the way.} }
- Ausdruck zum Referenzieren des Resource-Bundle-Schlüssels:
Wie Sie sehen, enthält der Ausdruck zwei Argumente:${rb('pizzaOnTheWaySingularOrPlural','count, pizzaSizeParam, pizzaTypeParam', 'pizzaNum.value, pizzaSize.value, pizzaType.value')}
- Eine Liste mit Parameternamen (
count, pizzaSizeParam, pizzaTypeParam
) - Eine Werteliste für diese Parameter (
pizzaNum.value, pizzaSize.value, pizzaType.value
)
- Eine Liste mit Parameternamen (
Beispiel: Nachricht mit verschachtelten Parametern
{ gender, select,
female
{{count, plural,
=0 {She has not ordered anything.}
=1 {She has ordered only one.}
other {She has ordered #.}}}
male
{{count, plural,
=0 {He has not ordered anything.}
=1 {He has ordered only one.}
other {He has ordered #.}}}
other
{{count, plural,
=0 {They have not ordered anything.}
=1 {They have ordered only one.}
other {They have ordered #.}}}}
- She has not ordered anything. (Sie hat nichts bestellt.)
- She has ordered only one. (Sie hat nur eine bestellt.)
- Sie hat 2 bestellt.
- He has not ordered anything. (Er hat nichts bestellt.)
- He has ordered only one. (Er hat nur eine bestellt.)
- Er hat 2 bestellt.
- They have not ordered anything. (Sie haben nichts bestellt.)
- They have ordered only one. (Sie haben nur eine bestellt.)
- Sie haben 2 bestellt.
2
wird im obigen Beispiel als durch das Argument count
aufgelöste Zahl angegeben, kann jedoch eine beliebige Zahl sein, die nicht 0 oder 1 ist.
Resource Bundles und automatische Übersetzung von Skills
Nachfolgend werden die allgemeinen Schritte für die Einrichtung eines Skills beschrieben, der nur die Benutzereingabe mit einem Übersetzungsservice übersetzt und Resource Bundles für die Antworten des Skills verwendet:
- Falls noch nicht geschehen, fügen Sie Ihrem Skill einen Übersetzungsservice hinzu.
- Verwenden Sie die Komponente "Sprache erkennen", um die Sprache der Eingabe des Benutzers zu bestimmen.
- Wenden Sie Resource Bundles an, um die Antworten des Skills an den Benutzer zu bearbeiten.
- Stellen Sie bei Komponenten, die Resource Bundles referenzieren, sicher, dass die Ausgabe nicht automatisch übersetzt wird.
- Legen Sie für Skills, die im visuellen Dialogmodus entwickelt wurden, die Eigenschaft Botantwortnachricht übersetzen auf der Seite Einstellungen des Skills auf
False
fest. - Bei Skills, die im YAML-Dialogmodus entwickelt wurden, können Sie dies global im Skill ausführen, indem Sie die Kontextvariable
autoTranslate
so festlegen, dass die Eingabe, aber nicht die Ausgabe übersetzt wird. Beispiel:setAutoTranslate: component: "System.SetVariable" properties: variable: "autoTranslate" value: input: true output: false
- Legen Sie für Skills, die im visuellen Dialogmodus entwickelt wurden, die Eigenschaft Botantwortnachricht übersetzen auf der Seite Einstellungen des Skills auf
Für Skills, die im YAML-Modus entwickelt wurden, können Sie dies auch auf Komponentenebene tun, indem Sie die Eigenschaft
translate
jeder Komponente verwenden und nicht die Variable autoTranslate
festlegen. Beispiel: Um die automatische Übersetzung für die Eingabe einer System.Text
-Komponente einzurichten und die automatische Übersetzung für die Ausgabe zu deaktivieren, können Sie folgendermaßen vorgehen: askName:
component: "System.Text"
properties:
prompt: "${rb.askNamePrompt}"
variable: "name"
translate:
input: true
output: false
Wenn Ihr Skill für einige Komponenten Resource Bundles, für andere jedoch die automatische Übersetzung verwendet, können Sie wie folgt vorgehen:
- Setzen Sie die Kontextvariable
autoTranslate
auftrue
. - Setzen Sie wie im obigen Codebeispiel die Eigenschaft
translate:input
für jede Komponente, die ein Resource Bundle verwendet, auffalse
.
Bedingte automatische Übersetzung
Wenn Sie Ressourcen-Bundles für einige Sprachen definiert haben, aber auch Antworten für Sprachen bereitstellen möchten, für die keine Resource-Bundle-Einträge vorhanden sind, können Sie mit FreeMarker-Ausdrücken bestimmen, wie die Einstellungen Benutzereingabemeldung übersetzen und Botantwortnachricht übersetzen (für Visual Flow Designer-Skills) sowie die Eigenschaften autotranslate
und translate
(für YAML-basierte Skills) auflösen.
Beispiel: Wenn nur englische und niederländische Ressourcen-Bundles definiert sind, können Sie die Ausgabeübersetzung für die anderen Sprachen bedingt aktivieren. So könnte dieser Ausdruck aussehen:
${profile.languageTag!='en'&& profile.languageTag!='nl'}
Auflösung von Resource-Bundle-Einträgen
Das angewendete Ressourcen-Bundle ist vom für die beiden standortspezifischen Benutzerprofilvariablen profile.languageTag
und profile.locale
gespeicherten Wert abhängig. Wenn beide Variablen festgelegt sind, hat profile.languageTag
Vorrang.
Beim Auflösen der zu verwendenden Sprache sucht Oracle Digital Assistant zuerst nach einer genauen Übereinstimmung. Wenn keine gefunden wird, wird die Suche schrittweise ausgeweitet, bis sie erfolgreich ist. Wenn immer noch keine Übereinstimmung gefunden wird, wird die Standardsprache Englisch (en
) zurückgegeben.
${profile.locale}
en-AU-sydney
ist (und profile.languageTag
nicht festgelegt ist), führt Oracle Digital Assistant die folgenden Schritte aus, um nach der besten Sprachübereinstimmung zu suchen:
-
Das Bundle wird nach dem Kriterium Sprache-Land-Variante (
en-AU-sydney
) durchsucht. -
Wenn dies nicht gefunden wird, wird das Bundle nach Sprache und Land durchsucht (
en-AU
). -
Wenn auch dies erfolglos ist, wird die Suche auf nur die Sprache (
en
) erweitert.Hinweis
profile.locale
unterstützt Werte im ISO-Format "Sprache - Land" oder "ISO language_country".
Resource Bundles exportieren und importieren
Sie können Resource Bundles in Form einer CSV-Datei exportieren und importieren. Dadurch können Sie offline mit den Bundles arbeiten.
Die CSV-Datei muss folgende Spalten enthalten:
languageTag
key
message
annotation
So exportieren Sie eine CSV-Datei mit dem vorhandenen Resource Bundle:
-
Klicken Sie auf der Seite "Resource Bundle" für Ihren Skill oder digitalen Assistenten auf
, um eine CSV-Datei mit dem vorhandenen Resource Bundle zu exportieren.
Selbst wenn Sie dem Resource Bundle noch keine Schlüssel hinzugefügt haben, wird eine Datei mit dem erforderlichen Format der CSV-Datei exportiert.
So importieren Sie eine Resource-Bundle-Datei:
- Klicken Sie auf der Seite "Resource Bundle" für Ihren Skill oder digitalen Assistenten auf
.