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:
- Corrispondenza esatta: La lingua dell'utente è
"zh-CN", cerca i messaggi"zh-CN" - Corrispondenza del sotto-tag della lingua: La lingua dell'utente è
"zh-Hans-CN", se non viene trovata una corrispondenza esatta, prova a corrispondere"zh" - Ricerca del defaultLocale: Usa la lingua specificata da
i18n.defaultLocale - Ricerca del valore del campo grezzo: Usa i valori dei campi grezzi in
workflow.json(es.label) - 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
- Crea un nuovo file
<lingua>.jsonnella directorylocales/del pacchetto - Fai riferimento ai file di localizzazione esistenti (es.
zh-CN.json) e traduci tutte le chiavi - Aggiungi la nuova voce della lingua in
i18n.localesdiworkflow-package.json - 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
- Tipi di richiesta — Scegli il backend di esecuzione e il tipo di richiesta
- Pacchettizzazione e distribuzione — Pubblica pacchetti di Workflow con localizzazione