Repair 37 Klingon search keywords and verify localized parsing

Replace remaining German-seeded operator and predicate keywords with whitespace-free Klingon terms supported by the apostrophe-aware parser. Exercise actual locale values through Query for user, member, assignee, creator, board, swimlane, list, title, description, attachment and checklist searches.

Low-confidence Klingon wording remains open to fluent-speaker review. Audited corrections, tokens and localized parser regressions pass; browser verification remains pending.

Thanks to xet7 !
This commit is contained in:
Lauri Ojansivu committed 2026-09-13 17:13:09 +03:00
1 parent 91fc5ccb91
commit 1044eebc97
3 files changed
+309 -38

No files matched your search

+37 -37
View File
@@ -1688,52 +1688,52 @@
"one-card-found": "wa' 'echletHom tu'lu'",
"n-cards-found": "%s 'echletHommey tu'lu'",
"n-n-of-n-cards-found": "__total__ 'echletHommeyvo' __start__-__end__ tu'lu'",
"operator-board": "Board",
"operator-board": "raS",
"operator-board-abbrev": "t",
"operator-swimlane": "Swimlane",
"operator-swimlane": "He",
"operator-swimlane-abbrev": "c",
"operator-list": "Liste",
"operator-list": "tetlh",
"operator-list-abbrev": "l",
"operator-label": "Label",
"operator-label": "per",
"operator-label-abbrev": "#",
"operator-user": "Nutzer",
"operator-user": "lo'wI'",
"operator-user-abbrev": "@",
"operator-member": "Mitglied",
"operator-member": "jeSwI'",
"operator-member-abbrev": "m",
"operator-assignee": "Zugewiesener",
"operator-assignee": "HevwI'",
"operator-assignee-abbrev": "a",
"operator-creator": "Ersteller",
"operator-status": "Status",
"operator-due": "Fällig",
"operator-created": "erstellt",
"operator-modified": "geändert",
"operator-sort": "sortieren",
"operator-comment": "Kommentar",
"operator-has": "hat",
"operator-limit": "Begrenzung",
"operator-debug": "Debug",
"operator-org": "Organisation",
"operator-team": "Team",
"operator-title": "Titel",
"operator-description": "Beschreibung",
"operator-creator": "chenmoHwI'",
"operator-status": "Dotlh",
"operator-due": "poH",
"operator-created": "chenmoHlu'",
"operator-modified": "choHlu'",
"operator-sort": "pat",
"operator-comment": "QInHom",
"operator-has": "ghaj",
"operator-limit": "vuS",
"operator-debug": "waH",
"operator-org": "DIvI'",
"operator-team": "ghom",
"operator-title": "pong",
"operator-description": "Del",
"operator-customfield": "Champ personnalisé",
"operator-attachment-text": "Anhang",
"operator-checklist-text": "Checkliste",
"predicate-archived": "archiviert",
"predicate-open": "offen",
"predicate-ended": "beendet",
"predicate-all": "alle",
"predicate-overdue": "überfällig",
"predicate-week": "Woche",
"predicate-month": "Monat",
"predicate-quarter": "Quartal",
"predicate-year": "Jahr",
"predicate-due": "Fällig",
"predicate-modified": "geändert",
"predicate-created": "erstellt",
"operator-attachment-text": "rarDoch",
"operator-checklist-text": "ta'tetlh",
"predicate-archived": "pollu'",
"predicate-open": "poS",
"predicate-ended": "Dor",
"predicate-all": "Hoch",
"predicate-overdue": "paS",
"predicate-week": "Hogh",
"predicate-month": "jar",
"predicate-quarter": "wejjar",
"predicate-year": "DIS",
"predicate-due": "poH",
"predicate-modified": "choHlu'",
"predicate-created": "chenmoHlu'",
"predicate-attachment": "rarDoch",
"predicate-description": "Beschreibung",
"predicate-checklist": "Checkliste",
"predicate-description": "Del",
"predicate-checklist": "ta'tetlh",
"predicate-start": "tagh",
"predicate-end": "bertlham",
"predicate-assignee": "Qu' Hevbogh lo'wI'",
@@ -102870,5 +102870,264 @@
"before": "Protokoll",
"after": "rarmeH chut",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-board",
"before": "Board",
"after": "raS",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-swimlane",
"before": "Swimlane",
"after": "He",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-list",
"before": "Liste",
"after": "tetlh",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-label",
"before": "Label",
"after": "per",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-user",
"before": "Nutzer",
"after": "lo'wI'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-member",
"before": "Mitglied",
"after": "jeSwI'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-assignee",
"before": "Zugewiesener",
"after": "HevwI'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-creator",
"before": "Ersteller",
"after": "chenmoHwI'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-status",
"before": "Status",
"after": "Dotlh",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-due",
"before": "Fällig",
"after": "poH",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-created",
"before": "erstellt",
"after": "chenmoHlu'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-modified",
"before": "geändert",
"after": "choHlu'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-sort",
"before": "sortieren",
"after": "pat",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-comment",
"before": "Kommentar",
"after": "QInHom",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-has",
"before": "hat",
"after": "ghaj",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-limit",
"before": "Begrenzung",
"after": "vuS",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-debug",
"before": "Debug",
"after": "waH",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-org",
"before": "Organisation",
"after": "DIvI'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-team",
"before": "Team",
"after": "ghom",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-title",
"before": "Titel",
"after": "pong",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-description",
"before": "Beschreibung",
"after": "Del",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-attachment-text",
"before": "Anhang",
"after": "rarDoch",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "operator-checklist-text",
"before": "Checkliste",
"after": "ta'tetlh",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-archived",
"before": "archiviert",
"after": "pollu'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-open",
"before": "offen",
"after": "poS",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-ended",
"before": "beendet",
"after": "Dor",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-all",
"before": "alle",
"after": "Hoch",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-overdue",
"before": "überfällig",
"after": "paS",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-week",
"before": "Woche",
"after": "Hogh",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-month",
"before": "Monat",
"after": "jar",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-quarter",
"before": "Quartal",
"after": "wejjar",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-year",
"before": "Jahr",
"after": "DIS",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-due",
"before": "Fällig",
"after": "poH",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-modified",
"before": "geändert",
"after": "choHlu'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-created",
"before": "erstellt",
"after": "chenmoHlu'",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-description",
"before": "Beschreibung",
"after": "Del",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
},
{
"locale": "tlh",
"key": "predicate-checklist",
"before": "Checkliste",
"after": "ta'tetlh",
"reason": "Replace wrong-language prose directly; preserve source placeholders and literal syntax. Low-confidence Klingon wording; fluent-speaker validation outstanding."
}
]
+13 -1
View File
@@ -6,7 +6,7 @@ const path = require('node:path');
const root = path.resolve(__dirname, '..');
const read = filename => fs.readFileSync(path.join(root, filename), 'utf8');
const en = JSON.parse(read('imports/i18n/data/en.i18n.json'));
const labels = { ...en, 'operator-user': "lo'wI'", 'operator-title': "pong’le'" };
let labels = { ...en, 'operator-user': "lo'wI'", 'operator-title': "pong’le'" };
const context = { TAPi18n: { __: key => labels[key] || key }, Boards: { colorMap: () => ({}) }, console };
vm.createContext(context);
vm.runInContext(read('config/search-const.js').replace(/export /g, '') + '\n' +
@@ -23,4 +23,16 @@ assert.equal(query('board:Roadmap').getQueryParams().getPredicate('board'), 'Roa
assert.equal(query('board:"two words"').getQueryParams().getPredicate('board'), 'two words');
assert.equal(query("unknown'operator:value").hasErrors(), true);
assert.equal(query("'plain words'").getQueryParams().text, 'plain words');
labels = JSON.parse(read('imports/i18n/data/tlh.i18n.json'));
for (const [key, operator] of [
['operator-user', 'user'], ['operator-member', 'members'],
['operator-assignee', 'assignees'], ['operator-creator', 'userId'],
['operator-board', 'board'], ['operator-swimlane', 'swimlane'],
['operator-list', 'list'], ['operator-title', 'title'],
['operator-description', 'description'], ['operator-attachment-text', 'attachment-text'], ['operator-checklist-text', 'checklist-text'],
]) {
const parsed = query(`${labels[key]}:"two words"`);
assert.equal(parsed.hasErrors(), false, key);
assert.equal(parsed.getQueryParams().getPredicate(operator), 'two words', key);
}
console.log('localizedSearchApostrophes: localized operators, quoted values, ordinary operators and unknown names verified');