mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 09:40:20 -05:00
Repair Venetian advanced filter instructions and escaping
Translate Italian filter prose to Venetian and restore exact executable examples, operator spacing, quote delimiters and single backslashes. Extend existing regression coverage to Venetian and the escaped apostrophe example. Direct prose remains low confidence pending fluent-speaker review. Validation: all correction ledger checks and exact filter examples pass. Thanks to xet7 !
This commit is contained in:
1 parent
bf869242bc
commit
2bb366f9ab
3 files changed
+14
-5
No files matched your search
@@ -729,7 +729,7 @@
|
||||
"filter-to-selection": "Filtra selezione",
|
||||
"other-filters-label": "Altri flitri",
|
||||
"advanced-filter-label": "Filtro avanzato",
|
||||
"advanced-filter-description": "Il filtro avanzato permette di scrivere una stringa contenente i seguenti operatori: == != <= >= && || ( ) Uno spazio è usato come separatore tra gli operatori. Si può filtrare per tutti i campi personalizzati, scrivendo i loro nomi e valori. Per esempio: Campo1 == Valore1. Nota: Se i campi o i valori contengono spazi, è necessario incapsularli all'interno di apici singoli. Per esempio: 'Campo 1' == 'Valore 1'. Per i singoli caratteri di controllo (' \\\\/) che devono essere ignorati, si può usare \\\\. Per esempio: C1 == Campo1 == L'\\\\ho. Si possono anche combinare condizioni multiple. Per esempio: C1 == V1 || C1 ==V2. Di norma tutti gli operatori vengono letti da sinistra a destra. Si può cambiare l'ordine posizionando delle parentesi. Per esempio: C1 == V1 && ( C2 == V2 || C2 == V3) . Inoltre è possibile cercare nei campi di testo usando le espressioni regolari (n.d.t. regex): F1 ==/Tes.*/i",
|
||||
"advanced-filter-description": "El filtro avansà el permete de scrìvar na stringa co sti operatori: == != <= >= && || ( ) Un spàsio el separa i operatori. Te pol filtrar tuti i canpi personałizài scrivendo i so nomi e vałori. Par esenpio: Field1 == Value1. Nota: se i canpi o i vałori i gà spàsi, metełi tra virgołete singołe. Par esenpio: 'Field 1' == 'Value 1'. Par saltar i caràteri de controło singołi (' \\/), te pol doparar \\. Par esenpio: Field1 == I\\'m. Te pol anca conbinar pì condision. Par esenpio: F1 == V1 || F1 == V2. De sołito i operatori i vien łeti da sinistra a destra. Te pol canbiar el òrdine metendo parèntesi. Par esenpio: F1 == V1 && ( F2 == V2 || F2 == V3 ). Te pol anca sercar inte i canpi de testo co espresion regołari: F1 == /Tes.*/i",
|
||||
"text-contains-trigger-label": "Umbhalo ozofunwa",
|
||||
"text-contains-trigger-description": "Iyahambisana lapho ikhadi lidalwa, noma isihloko noma incazelo yalo ishintshwa, futhi umbhalo omusha unalokhu (akunandaba nosayizi wezinhlamvu).",
|
||||
"fullname": "Nome completo",
|
||||
|
||||
@@ -109373,5 +109373,12 @@
|
||||
"before": "Questa bacheca sarà <strong>pubblica</strong>.",
|
||||
"after": "Sto quadro el sarà <strong>pùblico</strong>.",
|
||||
"reason": "Replace Italian-seeded labels with Venetian; preserve irreversible loss warnings, logged-in access meaning and HTML tags. Low-confidence wording; fluent-speaker validation outstanding."
|
||||
},
|
||||
{
|
||||
"locale": "ve-CC",
|
||||
"key": "advanced-filter-description",
|
||||
"before": "Il filtro avanzato permette di scrivere una stringa contenente i seguenti operatori: == != <= >= && || ( ) Uno spazio è usato come separatore tra gli operatori. Si può filtrare per tutti i campi personalizzati, scrivendo i loro nomi e valori. Per esempio: Campo1 == Valore1. Nota: Se i campi o i valori contengono spazi, è necessario incapsularli all'interno di apici singoli. Per esempio: 'Campo 1' == 'Valore 1'. Per i singoli caratteri di controllo (' \\\\/) che devono essere ignorati, si può usare \\\\. Per esempio: C1 == Campo1 == L'\\\\ho. Si possono anche combinare condizioni multiple. Per esempio: C1 == V1 || C1 ==V2. Di norma tutti gli operatori vengono letti da sinistra a destra. Si può cambiare l'ordine posizionando delle parentesi. Per esempio: C1 == V1 && ( C2 == V2 || C2 == V3) . Inoltre è possibile cercare nei campi di testo usando le espressioni regolari (n.d.t. regex): F1 ==/Tes.*/i",
|
||||
"after": "El filtro avansà el permete de scrìvar na stringa co sti operatori: == != <= >= && || ( ) Un spàsio el separa i operatori. Te pol filtrar tuti i canpi personałizài scrivendo i so nomi e vałori. Par esenpio: Field1 == Value1. Nota: se i canpi o i vałori i gà spàsi, metełi tra virgołete singołe. Par esenpio: 'Field 1' == 'Value 1'. Par saltar i caràteri de controło singołi (' \\/), te pol doparar \\. Par esenpio: Field1 == I\\'m. Te pol anca conbinar pì condision. Par esenpio: F1 == V1 || F1 == V2. De sołito i operatori i vien łeti da sinistra a destra. Te pol canbiar el òrdine metendo parèntesi. Par esenpio: F1 == V1 && ( F2 == V2 || F2 == V3 ). Te pol anca sercar inte i canpi de testo co espresion regołari: F1 == /Tes.*/i",
|
||||
"reason": "Replace Italian filter prose with Venetian and restore exact English executable examples, single backslash escapes, quote delimiters and operator spacing. Low-confidence prose; fluent-speaker validation outstanding."
|
||||
}
|
||||
]
|
||||
@@ -86,10 +86,12 @@ const tokens = value => [...value.matchAll(/__[A-Za-z0-9]+(?:_[A-Za-z0-9]+)*__|%
|
||||
assert.match(cache.wa[key], /presse-papî/i, 'Walloon clipboard terminology follows the native computing source');
|
||||
assert.doesNotMatch(cache.wa[key], /tchapea emacralé/i, 'clipboard must not be translated as a magic hat');
|
||||
}
|
||||
const filterHelp = cache.ace['advanced-filter-description'];
|
||||
assert.deepEqual(filterHelp.match(/\\+/g), english['advanced-filter-description'].match(/\\+/g), 'filter examples must not double escape characters');
|
||||
for (const example of ['== != <= >= && || ( )', 'Field1 == Value1', "'Field 1' == 'Value 1'", 'F1 == V1 || F1 == V2', 'F1 == V1 && ( F2 == V2 || F2 == V3 )', 'F1 == /Tes.*/i']) {
|
||||
assert.ok(filterHelp.includes(example), `preserve filter example: ${example}`);
|
||||
for (const locale of ['ace', 've-CC']) {
|
||||
const filterHelp = cache[locale]['advanced-filter-description'];
|
||||
assert.deepEqual(filterHelp.match(/\\+/g), english['advanced-filter-description'].match(/\\+/g), `${locale}: filter examples must not double escape characters`);
|
||||
for (const example of ['== != <= >= && || ( )', 'Field1 == Value1', "'Field 1' == 'Value 1'", "Field1 == I\\'m", 'F1 == V1 || F1 == V2', 'F1 == V1 && ( F2 == V2 || F2 == V3 )', 'F1 == /Tes.*/i']) {
|
||||
assert.ok(filterHelp.includes(example), `${locale}: preserve filter example: ${example}`);
|
||||
}
|
||||
}
|
||||
console.log(`auditedTranslationCorrections: ${corrections.length} corrections verified; tokens, JSON examples, key order, idempotency and newer translations preserved`);
|
||||
})().catch(error => { console.error(error); process.exitCode = 1; });
|
||||
Reference in new issue
Block a user