Passa al contenuto principale

Localizzazione

Il sistema dei Workflow supporta la localizzazione multi-lingua, permettendo allo stesso Workflow di visualizzare nomi e descrizioni corrispondenti nelle diverse interfacce linguistiche di Zotero.

Gerarchia di localizzazione​

La localizzazione dei Workflow ricade nella seguente ordine di priorità:

Messaggi inline (manifest.i18n.messages) ← Priorità più alta
↓
File di localizzazione a livello di pacchetto (locales/ del workflow-package)
↓
Campi grezzi del manifesto (label / description ecc. valori predefiniti in inglese)
↓
Ricerca della chiave (es. "workflows.my-id.label")

Localizzazione inline (Workflow singolo)​

Definita direttamente in workflow.json:

{
"id": "my-workflow",
"label": "My Workflow",
"i18n": {
"defaultLocale": "en-US",
"messages": {
"zh-CN": {
"label": "我的 Workflow",
"taskNameTemplate": "处理中: {query}",
"parameters.language.title": "语言",
"parameters.language.description": "选择输出内容的语言"
},
"ja-JP": {
"label": "マイワークフロー",
"taskNameTemplate": "処理中: {query}"
}
}
}
}

Campi come label e taskNameTemplate nel manifesto grezzo servono come valori predefiniti (solitamente in inglese) e le traduzioni in i18n.messages sovrascrivono il testo visualizzato per la lingua corrispondente.

Convenzioni di denominazione delle chiavi​

label — Nome del Workflow
taskNameTemplate — Modello del nome dell'attività
parameters.<paramKey>.title — Titolo del parametro
parameters.<paramKey>.description — Descrizione del parametro
skills.<skillId>.name — Nome visualizzato dello skill nel workflow corrente

skills.<skillId>.name influisce solo sul nome visualizzato nell'interfaccia. Il runner.json.name del pacchetto Skill rimane il nome predefinito dello skill; se il workflow non dichiara una traduzione corrispondente, l'interfaccia mostra runner.json.name come fallback.

Localizzazione a livello di pacchetto (Pacchetto multi-Workflow)​

Dichiara i file di localizzazione in workflow-package.json:

{
"id": "my-package",
"i18n": {
"defaultLocale": "en-US",
"locales": {
"zh-CN": "locales/zh-CN.json",
"ja-JP": "locales/ja-JP.json"
}
}
}

Contenuto di locales/zh-CN.json:

{
"workflows.my-workflow.label": "我的工作流",
"workflows.my-workflow.taskNameTemplate": "处理中: {query}",
"workflows.my-workflow.skills.my-skill.name": "我的技能",
"workflows.my-workflow.parameters.language.title": "语言",
"workflows.another-workflow.label": "另一个工作流"
}

Le chiavi nei file di localizzazione a livello di pacchetto utilizzano il formato completamente qualificato: workflows.<workflowId>.<campo>.

Uso misto​

I messaggi a livello di pacchetto e quelli inline del Workflow possono coesistere, con i messaggi inline che hanno priorità più alta. Migliori pratiche:

  • Mantieni la lingua predefinita (es. inglese) nei campi di workflow.json
  • Posiziona le traduzioni nei file di localizzazione a livello di pacchetto per una gestione unificata
  • Se una traduzione è molto specifica per un particolare Workflow, può anche essere posizionata nei messaggi inline del Workflow

Logica di corrispondenza della lingua​

Il sistema tenta di corrispondere alle impostazioni linguistiche dell'utente nel seguente ordine:

  1. Corrispondenza esatta: La lingua dell'utente è "zh-CN", cerca i messaggi "zh-CN"
  2. Corrispondenza del sotto-tag della lingua: La lingua dell'utente è "zh-Hans-CN", se non viene trovata una corrispondenza esatta, prova a corrispondere "zh"
  3. Ricerca del defaultLocale: Usa la lingua specificata da i18n.defaultLocale
  4. Ricerca del valore del campo grezzo: Usa i valori dei campi grezzi in workflow.json (es. label)
  5. Ricerca della chiave: Visualizza il nome della chiave stessa

Localizzazione degli enum dei valori dei parametri​

Se un parametro ha valori enum, il testo visualizzato per i valori enum attualmente utilizza i campi title e description del parametro. Per scenari complessi che richiedono la localizzazione dei valori enum stessi, si consiglia di spiegarlo nel label o nella descrizione del Workflow.

Aggiungere una nuova lingua a un Workflow​

  1. Crea un nuovo file <lingua>.json nella directory locales/ del pacchetto
  2. Fai riferimento ai file di localizzazione esistenti (es. zh-CN.json) e traduci tutte le chiavi
  3. Aggiungi la nuova voce della lingua in i18n.locales di workflow-package.json
  4. Ricarica il plugin per rendere effettive le modifiche

Riferimento​

  • Esempio di file di localizzazione ufficiale: content/official/workflows/literature-workbench-package/locales/zh-CN.json
  • Esempio di dichiarazione i18n a livello di pacchetto: content/official/workflows/literature-workbench-package/workflow-package.json

Passi successivi​