Übersetzung von Cards
Überblick
Abschnitt betitelt „Überblick“Greentic unterstützt die Übersetzung von Adaptive Cards in mehrere Sprachen. Sie können entweder:
- Ein Befehl:
generate --auto-translate(extrahiert + übersetzt + baut) - Schritt für Schritt: extrahieren → übersetzen → bauen
Schnellstart (ein Befehl)
Abschnitt betitelt „Schnellstart (ein Befehl)“greentic-cards2pack generate \ --cards ./cards \ --out ./my-pack \ --name my-pack \ --auto-translate \ --langs fr,de,jaFertig. Das Pack enthält assets/i18n/en.json, fr.json, de.json, ja.json.
Schritt-für-Schritt-Workflow
Abschnitt betitelt „Schritt-für-Schritt-Workflow“-
Cards erstellen
cards/welcome.json {"type": "AdaptiveCard","version": "1.4","body": [{ "type": "TextBlock", "text": "Welcome!", "size": "Large" },{ "type": "TextBlock", "text": "How can I help you today?" }],"actions": [{ "type": "Action.Submit", "title": "Get Help" },{ "type": "Action.Submit", "title": "Contact Support" }]} -
Übersetzbare Zeichenfolgen extrahieren
Terminal-Fenster greentic-cards2pack extract-i18n \--input ./cards \--output i18n/en.jsonAusgabe:
i18n/en.json {"card.welcome.body_0.text": "Welcome!","card.welcome.body_1.text": "How can I help you today?","card.welcome.actions_0.title": "Get Help","card.welcome.actions_1.title": "Contact Support"} -
Mit greentic-i18n-translator übersetzen
Terminal-Fenster greentic-i18n-translator translate \--langs fr,ja \--en i18n/en.jsonDadurch werden
i18n/fr.jsonundi18n/ja.jsonim selben Verzeichnis erstellt. -
Pack generieren
Terminal-Fenster greentic-cards2pack generate \--cards ./cards \--out ./my-pack \--name my-pack
Schlüsselformat
Abschnitt betitelt „Schlüsselformat“Extrahierte Schlüssel folgen dem Muster:
{prefix}.{cardId}.{json_path}.{field}| Teil | Quelle | Beispiel |
|---|---|---|
prefix | Flag --prefix (Standard: card) | card |
cardId | Feld greentic.cardId oder Dateiname | welcome |
json_path | Position in der Card-Struktur | body_0, actions_1 |
field | Feldname | text, title, label |
Beispiele:
card.welcome.body_0.text→ Text des ersten TextBlockcard.welcome.actions_0.title→ Titel der ersten Aktioncard.form.body_1.placeholder→ Placeholder des zweiten Body-Elementscard.form.body_0_choices_2.title→ Titel der dritten Auswahloption
Glossar
Abschnitt betitelt „Glossar“Halten Sie Markennamen und technische Begriffe in allen Übersetzungen konsistent:
{ "Greentic": "Greentic", "Dashboard": "Dashboard", "CLI": "CLI"}Mit beiden Ansätzen verwendbar:
# One commandgreentic-cards2pack generate \ --cards ./cards --out ./pack --name demo \ --auto-translate --langs fr,de \ --glossary glossary.json
# Step by stepgreentic-i18n-translator translate \ --langs fr,de \ --en i18n/en.json \ --glossary glossary.jsonWas extrahiert wird
Abschnitt betitelt „Was extrahiert wird“| Feld | Quellelement |
|---|---|
text | TextBlock, RichTextBlock |
title | Aktionen, Toggles, Faktentitel |
label | Eingabelabels |
placeholder | Eingabe-Placeholder |
errorMessage | Validierungsmeldungen |
altText | Bild-Alternativtext |
fallbackText | Fallback-Inhalt |
value | Faktenwerte |
Automatisch übersprungen:
- Leere Zeichenfolgen
- Reine Handlebars-Templates:
{{variable}} - Variablenreferenzen:
${var} - Vorhandene i18n-Muster:
$t(key)(außer mit--include-existing)
Laufzeitübersetzung
Abschnitt betitelt „Laufzeitübersetzung“Locales konfigurieren
Abschnitt betitelt „Locales konfigurieren“i18n: default_locale: "en" locales: en: "assets/i18n/en.json" fr: "assets/i18n/fr.json" ja: "assets/i18n/ja.json"Locale im Flow setzen
Abschnitt betitelt „Locale im Flow setzen“- id: set_language type: state config: key: "locale" value: "fr" next: show_welcome
- id: show_welcome type: adaptive-card config: card: "cards/welcome" # Card text automatically resolved based on session localeFehlerbehandlung
Abschnitt betitelt „Fehlerbehandlung“Übersetzungsfehler sind nicht fatal. Falls greentic-i18n-translator für eine Sprache fehlschlägt:
- Das Pack wird trotzdem erfolgreich gebaut
- Eine Warnung erscheint in
.cards2pack/manifest.json - Das englische Bundle (
en.json) wird immer erstellt
Warnungen prüfen:
cat my-pack/.cards2pack/manifest.json | jq '.warnings[] | select(.kind == "translation")'Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Translator nicht gefunden
Abschnitt betitelt „Translator nicht gefunden“auto-translation failed: failed to execute greentic-i18n-translatorInstallation: cargo install greentic-i18n-translator
Oder einen benutzerdefinierten Pfad setzen: export GREENTIC_I18N_TRANSLATOR_BIN=/path/to/translator
Fehlende Übersetzungen zur Laufzeit
Abschnitt betitelt „Fehlende Übersetzungen zur Laufzeit“Wenn ein Schlüssel im Bundle der Zielsprache fehlt, greift die Runtime auf den englischen Quelltext zurück.
Placeholder gehen in der Übersetzung verloren
Abschnitt betitelt „Placeholder gehen in der Übersetzung verloren“Stellen Sie sicher, dass Handlebars-Placeholder erhalten bleiben:
// Correct{ "card.welcome.body_0.text": "Bonjour, {{name}} !" }
// Wrong — placeholder lost{ "card.welcome.body_0.text": "Bonjour, nom !" }