diff --git a/l10n/.schema-l10n-baseline.json b/l10n/.schema-l10n-baseline.json index 14c9ffff0..9b0d96b93 100644 --- a/l10n/.schema-l10n-baseline.json +++ b/l10n/.schema-l10n-baseline.json @@ -1,3 +1,3 @@ { - "uncovered": 2824 + "uncovered": 2764 } diff --git a/l10n/be.js b/l10n/be.js index 790a424d9..a10c37ee1 100644 --- a/l10n/be.js +++ b/l10n/be.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "засталося {days} дзён", "{field} is required": "{field} абавязкова", "{filled} of {total} properties filled": "{filled} з {total} уласцівасцей запоўнена", - "{from} \\u2014 (no end)": "{from} \\u2014 (без канца)", + "{from} – (no end)": "{from} – (без канца)", "{hours} hours ago": "{hours} гадзін таму", "{min} min ago": "{min} хв таму", "{n} conflicts": "{n} канфліктаў", diff --git a/l10n/be.json b/l10n/be.json index 007a46d0e..67448a892 100644 --- a/l10n/be.json +++ b/l10n/be.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "засталося {days} дзён", "{field} is required": "{field} абавязкова", "{filled} of {total} properties filled": "{filled} з {total} уласцівасцей запоўнена", - "{from} \\u2014 (no end)": "{from} \\u2014 (без канца)", + "{from} – (no end)": "{from} – (без канца)", "{hours} hours ago": "{hours} гадзін таму", "{min} min ago": "{min} хв таму", "{n} conflicts": "{n} канфліктаў", diff --git a/l10n/bg.js b/l10n/bg.js index 06108d20d..2fa21f47e 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} дни просрочие", "{days} days remaining": "остават {days} дни", "{field} is required": "{field} е задължително", - "{from} \\u2014 (no end)": "{from} \\u2014 (без край)", + "{from} – (no end)": "{from} – (без край)", "{hours} hours ago": "преди {hours} часа", "{min} min ago": "преди {min} мин", "{n} days": "{n} дни", diff --git a/l10n/bg.json b/l10n/bg.json index bf6e7429a..365304289 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} дни просрочие", "{days} days remaining": "остават {days} дни", "{field} is required": "{field} е задължително", - "{from} \\u2014 (no end)": "{from} \\u2014 (без край)", + "{from} – (no end)": "{from} – (без край)", "{hours} hours ago": "преди {hours} часа", "{min} min ago": "преди {min} мин", "{n} days": "{n} дни", diff --git a/l10n/bs.js b/l10n/bs.js index dba2d0eb4..52fe7e986 100644 --- a/l10n/bs.js +++ b/l10n/bs.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "{days} dana preostalo", "{field} is required": "{field} je obavezno", "{filled} of {total} properties filled": "{filled} od {total} svojstava popunjeno", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez kraja)", + "{from} – (no end)": "{from} – (bez kraja)", "{hours} hours ago": "prije {hours} sati", "{min} min ago": "prije {min} min", "{n} conflicts": "{n} konflikata", diff --git a/l10n/bs.json b/l10n/bs.json index d54cead94..f4b9c5c7b 100644 --- a/l10n/bs.json +++ b/l10n/bs.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "{days} dana preostalo", "{field} is required": "{field} je obavezno", "{filled} of {total} properties filled": "{filled} od {total} svojstava popunjeno", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez kraja)", + "{from} – (no end)": "{from} – (bez kraja)", "{hours} hours ago": "prije {hours} sati", "{min} min ago": "prije {min} min", "{n} conflicts": "{n} konflikata", diff --git a/l10n/ca.js b/l10n/ca.js index 23bd8205d..258ea4bd9 100644 --- a/l10n/ca.js +++ b/l10n/ca.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "{days} dies restants", "{field} is required": "{field} és obligatori", "{filled} of {total} properties filled": "{filled} de {total} propietats emplenades", - "{from} \\u2014 (no end)": "{from} \\u2014 (sense fi)", + "{from} – (no end)": "{from} – (sense fi)", "{hours} hours ago": "fa {hours} hores", "{min} min ago": "fa {min} min", "{n} conflicts": "{n} conflictes", diff --git a/l10n/ca.json b/l10n/ca.json index aec733924..6144f711c 100644 --- a/l10n/ca.json +++ b/l10n/ca.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "{days} dies restants", "{field} is required": "{field} és obligatori", "{filled} of {total} properties filled": "{filled} de {total} propietats emplenades", - "{from} \\u2014 (no end)": "{from} \\u2014 (sense fi)", + "{from} – (no end)": "{from} – (sense fi)", "{hours} hours ago": "fa {hours} hores", "{min} min ago": "fa {min} min", "{n} conflicts": "{n} conflictes", diff --git a/l10n/cs.js b/l10n/cs.js index 889a930f0..1c4808d65 100644 --- a/l10n/cs.js +++ b/l10n/cs.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dní po termínu", "{days} days remaining": "zbývá {days} dní", "{field} is required": "{field} je povinné", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez konce)", + "{from} – (no end)": "{from} – (bez konce)", "{hours} hours ago": "před {hours} hodinami", "{min} min ago": "před {min} min", "{n} days": "{n} dní", diff --git a/l10n/cs.json b/l10n/cs.json index 1ddc88692..40ecdfdda 100644 --- a/l10n/cs.json +++ b/l10n/cs.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dní po termínu", "{days} days remaining": "zbývá {days} dní", "{field} is required": "{field} je povinné", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez konce)", + "{from} – (no end)": "{from} – (bez konce)", "{hours} hours ago": "před {hours} hodinami", "{min} min ago": "před {min} min", "{n} days": "{n} dní", diff --git a/l10n/da.js b/l10n/da.js index 8e5e6d805..7af92c0d9 100644 --- a/l10n/da.js +++ b/l10n/da.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dage forsinket", "{days} days remaining": "{days} dage tilbage", "{field} is required": "{field} er påkrævet", - "{from} \\u2014 (no end)": "{from} \\u2014 (ingen slutning)", + "{from} – (no end)": "{from} – (ingen slutning)", "{hours} hours ago": "for {hours} timer siden", "{min} min ago": "for {min} min. siden", "{n} days": "{n} dage", diff --git a/l10n/da.json b/l10n/da.json index d7590ff1e..38820f1de 100644 --- a/l10n/da.json +++ b/l10n/da.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dage forsinket", "{days} days remaining": "{days} dage tilbage", "{field} is required": "{field} er påkrævet", - "{from} \\u2014 (no end)": "{from} \\u2014 (ingen slutning)", + "{from} – (no end)": "{from} – (ingen slutning)", "{hours} hours ago": "for {hours} timer siden", "{min} min ago": "for {min} min. siden", "{n} days": "{n} dage", diff --git a/l10n/de.js b/l10n/de.js index 3d1b4d89f..4b2661d83 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} Tage überfällig", "{days} days remaining": "noch {days} Tage", "{field} is required": "{field} ist erforderlich", - "{from} \\u2014 (no end)": "{from} \\u2014 (kein Ende)", + "{from} – (no end)": "{from} – (kein Ende)", "{hours} hours ago": "vor {hours} Stunden", "{min} min ago": "vor {min} Min.", "{n} days": "{n} Tage", diff --git a/l10n/de.json b/l10n/de.json index 90176e8b1..364f54e63 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} Tage überfällig", "{days} days remaining": "noch {days} Tage", "{field} is required": "{field} ist erforderlich", - "{from} \\u2014 (no end)": "{from} \\u2014 (kein Ende)", + "{from} – (no end)": "{from} – (kein Ende)", "{hours} hours ago": "vor {hours} Stunden", "{min} min ago": "vor {min} Min.", "{n} days": "{n} Tage", diff --git a/l10n/el.js b/l10n/el.js index 07f03af58..d8481d8b1 100644 --- a/l10n/el.js +++ b/l10n/el.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} ημέρες καθυστέρηση", "{days} days remaining": "απομένουν {days} ημέρες", "{field} is required": "Το {field} είναι υποχρεωτικό", - "{from} \\u2014 (no end)": "{from} \\u2014 (χωρίς λήξη)", + "{from} – (no end)": "{from} – (χωρίς λήξη)", "{hours} hours ago": "πριν από {hours} ώρες", "{min} min ago": "πριν από {min} λεπτά", "{n} days": "{n} ημέρες", diff --git a/l10n/el.json b/l10n/el.json index ffc8a0704..cae01f33e 100644 --- a/l10n/el.json +++ b/l10n/el.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} ημέρες καθυστέρηση", "{days} days remaining": "απομένουν {days} ημέρες", "{field} is required": "Το {field} είναι υποχρεωτικό", - "{from} \\u2014 (no end)": "{from} \\u2014 (χωρίς λήξη)", + "{from} – (no end)": "{from} – (χωρίς λήξη)", "{hours} hours ago": "πριν από {hours} ώρες", "{min} min ago": "πριν από {min} λεπτά", "{n} days": "{n} ημέρες", diff --git a/l10n/en.js b/l10n/en.js index 25924f769..056173f7a 100644 --- a/l10n/en.js +++ b/l10n/en.js @@ -34,7 +34,7 @@ OC.L10N.register( "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.": "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.", "{field} is required": "{field} is required", "{filled} of {total} properties filled": "{filled} of {total} properties filled", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} hours ago", "{min} min ago": "{min} min ago", "{n} changes waiting for sync": "{n} changes waiting for sync", @@ -115,7 +115,7 @@ OC.L10N.register( "Aanbesteding niet gevonden.": "Aanbesteding niet gevonden.", "Aanbestedingen": "Aanbestedingen", "Aangeboden": "Aangeboden", - "Aangezocht bevoegd gezag (OIN or name)": "Aangezocht bevoegd gezag (OIN or name)", + "Aangezocht bevoegd gezag (OIN or name)": "Requested competent authority (OIN or name)", "Aangezochte bevoegd gezag": "Aangezochte bevoegd gezag", "Aanhouden": "Defer", "Aanmaken": "Aanmaken", @@ -220,7 +220,7 @@ OC.L10N.register( "Advice types per case type": "Advice types per case type", "Advice uitgebracht": "Advice uitgebracht", "Advice:": "Advice:", - "Advies": "Advies", + "Advies": "Advice", "Advies indienen": "Advies indienen", "Advies ingediend": "Advies ingediend", "Advies uitbrengen": "Advies uitbrengen", @@ -467,7 +467,7 @@ OC.L10N.register( "Betwist": "Betwist", "Betwistratio": "Betwistratio", "Bevoegd gezag": "Bevoegd gezag", - "Bevoegdheidstype": "Bevoegdheidstype", + "Bevoegdheidstype": "Authority type", "Bevoegdheidstype is required": "Bevoegdheidstype is required", "Bewaarmodus": "Bewaarmodus", "Bewaartermijn": "Bewaartermijn", @@ -499,7 +499,7 @@ OC.L10N.register( "Bottleneck ranking": "Bottleneck ranking", "bouwactiviteiten": "bouwactiviteiten", "BSN": "BSN", - "BSN (burgerservicenummer)": "BSN (burgerservicenummer)", + "BSN (burgerservicenummer)": "BSN (citizen service number)", "BSN is required for Mijn Overheid messages": "BSN is required for Mijn Overheid messages", "BTW": "VAT", "Building supervision with three inspection phases: foundation, shell, completion": "Building supervision with three inspection phases: foundation, shell, completion", @@ -973,8 +973,8 @@ OC.L10N.register( "Documents relation tab is being migrated. The full document list will appear here once dossiq-case-relation-tabs lands.": "Documents relation tab is being migrated. The full document list will appear here once dossiq-case-relation-tabs lands.", "Documents to share": "Documents to share", "Documents uploaded": "Documents uploaded", - "Doel bevoegd gezag (OIN or name)": "Doel bevoegd gezag (OIN or name)", - "Doormandaat": "Doormandaat", + "Doel bevoegd gezag (OIN or name)": "Target competent authority (OIN or name)", + "Doormandaat": "Sub-mandate", "Dossier": "Dossier", "Download": "Download", "Download evaluatierapport": "Download evaluatierapport", @@ -1511,7 +1511,7 @@ OC.L10N.register( "just now": "just now", "kalenderdagen": "kalenderdagen", "Kanaal": "Channel", - "KCC instellingen opgeslagen": "KCC instellingen opgeslagen", + "KCC instellingen opgeslagen": "KCC settings saved", "KCC-werkplek Integration": "KCC-werkplek Integration", "Kenmerk": "Reference", "Key (used to invoke the decision)": "Key (used to invoke the decision)", @@ -1608,7 +1608,7 @@ OC.L10N.register( "Manager": "Manager", "Manager-rechten vereist": "Manager permissions required", "Mandaat": "Mandate", - "Mandaat niveau": "Mandaat niveau", + "Mandaat niveau": "Mandate level", "Mandaatnummer": "Mandaatnummer", "Mandaatnummer is required": "Mandaatnummer is required", "Mandaatreferentie": "Mandaatreferentie", @@ -1956,7 +1956,7 @@ OC.L10N.register( "Offline — {n} changes waiting for sync": "Offline — {n} changes waiting for sync", "OIN (Organisatie-identificatienummer)": "OIN (Organisatie-identificatienummer)", "OK": "OK", - "Omgevingsvergunning — Detail": "Omgevingsvergunning — Detail", + "Omgevingsvergunning — Detail": "Environmental permit", "Omgevingsvergunning (regulier)": "Omgevingsvergunning (regulier)", "Omgevingsvergunning (uitgebreid)": "Omgevingsvergunning (uitgebreid)", "Omgevingsvergunning detail": "Omgevingsvergunning detail", @@ -3087,7 +3087,7 @@ OC.L10N.register( "View task": "View task", "Viewing version {version}. Active version is {active}.": "Viewing version {version}. Active version is {active}.", "Visits": "Visits", - "Vóór deadline (pre-breach)": "Vóór deadline (pre-breach)", + "Vóór deadline (pre-breach)": "Before deadline (pre-breach)", "Voor deze zaak is nog geen leges berekend.": "No fee has been calculated for this case yet.", "Voorlopige voorziening (interim relief) has been requested. Expedited handling required.": "Voorlopige voorziening (interim relief) has been requested. Expedited handling required.", "Voorlopige voorziening (interim relief) requested": "Voorlopige voorziening (interim relief) requested", @@ -3265,7 +3265,7 @@ OC.L10N.register( "Notes": "Notes", "Connected contacts": "Connected contacts", "Appointments & hearings": "Appointments & hearings", - "Besluitvorming": "Besluitvorming", + "Besluitvorming": "Decision-making", "Case assistant": "Case assistant", "Adaptive case plan": "Adaptive case plan", "Flow runs": "Flow runs", @@ -3280,17 +3280,17 @@ OC.L10N.register( "now": "now", "History": "History", "Sharing": "Sharing", - "Bezwaar": "Bezwaar", + "Bezwaar": "Objection", "Advice requests": "Advice requests", "Statutory clock & suspension": "Statutory clock & suspension", - "Commissie": "Commissie", + "Commissie": "Committee", "Assigned at": "Assigned at", "No advice requests raised for this objection yet": "No advice requests raised for this objection yet", - "Beslissingen": "Beslissingen", + "Beslissingen": "Decisions", "Disposition type": "Disposition type", "Published at": "Published at", "No decisions recorded for this objection yet": "No decisions recorded for this objection yet", - "Beslissing op bezwaar": "Beslissing op bezwaar", + "Beslissing op bezwaar": "Decision on objection", "Disposition & reasoning": "Disposition & reasoning", "Publication & documents": "Publication & documents", "Bezwaar & case": "Bezwaar & case", @@ -3310,8 +3310,8 @@ OC.L10N.register( "Tenants": "Tenants", "Provision": "Provision", "View usage": "View usage", - "Kaartlagen": "Kaartlagen", - "Kaartlaag": "Kaartlaag", + "Kaartlagen": "Map layers", + "Kaartlaag": "Map layer", "Refresh usage": "Refresh usage", "Partner organisation": "Partner organisation", "Key figures": "Key figures", @@ -3336,26 +3336,26 @@ OC.L10N.register( "LHS Recommendation": "LHS Recommendation", "Override & final": "Override & final", "Case & inspection": "Case & inspection", - "Bezwaaradviescommissies": "Bezwaaradviescommissies", - "Bezwaaradviescommissie": "Bezwaaradviescommissie", + "Bezwaaradviescommissies": "Objection advisory committees", + "Bezwaaradviescommissie": "Objection advisory committee", "Committee": "Committee", "Advice assignments": "Advice assignments", "In deliberation": "In deliberation", "Roster & term": "Roster & term", - "Adviesaanvragen": "Adviesaanvragen", + "Adviesaanvragen": "Advice requests", "No advice requests assigned to this committee yet": "No advice requests assigned to this committee yet", - "BAC-advies": "BAC-advies", + "BAC-advies": "Committee advice", "Assignment": "Assignment", "Advice & outcome": "Advice & outcome", "Bezwaar & committee": "Bezwaar & committee", - "Beroep": "Beroep", + "Beroep": "Appeal", "Filing & judgment": "Filing & judgment", "Case & source bezwaar": "Case & source bezwaar", "Deadline compliance, quarterly reporting and the annual dwangsom audit": "Deadline compliance, quarterly reporting and the annual dwangsom audit", "Dossiq handles cases from intake to archive. Load the demo data to see it work. Then initialise the register and schemas.": "Dossiq handles cases from intake to archive. Load the demo data to see it work. Then initialise the register and schemas.", "Let's take a quick spin through case handling. We'll register a case together so you can see how the pieces fit, and you'll add the record yourself.": "Let's take a quick spin through case handling. We'll register a case together so you can see how the pieces fit, and you'll add the record yourself.", "Register your first case. Give it a title, pick a case type, then save. You can add tasks, decisions and documents later.": "Register your first case. Give it a title, pick a case type, then save. You can add tasks, decisions and documents later.", - "Subsidie": "Subsidie", + "Subsidie": "Grant", "Executions": "Executions", "Case, scheme & handler": "Case, scheme & handler", "Assessments": "Assessments", @@ -3515,7 +3515,9 @@ OC.L10N.register( "When this change is due to be sent.": "When this change is due to be sent.", "When this retry ran.": "When this retry ran.", "Which layer the error came from.": "Which layer the error came from.", - "Which retry this was, counting from one.": "Which retry this was, counting from one." + "Which retry this was, counting from one.": "Which retry this was, counting from one.", + "Queue": "Queue", + "Nothing is waiting. Every open case has someone on it.": "Nothing is waiting. Every open case has someone on it." }, "nplurals=2; plural=(n != 1);" ) diff --git a/l10n/en.json b/l10n/en.json index e4afed288..16241952f 100644 --- a/l10n/en.json +++ b/l10n/en.json @@ -33,7 +33,7 @@ "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.": "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.", "{field} is required": "{field} is required", "{filled} of {total} properties filled": "{filled} of {total} properties filled", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} hours ago", "{min} min ago": "{min} min ago", "{n} changes waiting for sync": "{n} changes waiting for sync", @@ -114,7 +114,7 @@ "Aanbesteding niet gevonden.": "Aanbesteding niet gevonden.", "Aanbestedingen": "Aanbestedingen", "Aangeboden": "Aangeboden", - "Aangezocht bevoegd gezag (OIN or name)": "Aangezocht bevoegd gezag (OIN or name)", + "Aangezocht bevoegd gezag (OIN or name)": "Requested competent authority (OIN or name)", "Aangezochte bevoegd gezag": "Aangezochte bevoegd gezag", "Aanhouden": "Defer", "Aanmaken": "Aanmaken", @@ -219,7 +219,7 @@ "Advice types per case type": "Advice types per case type", "Advice uitgebracht": "Advice uitgebracht", "Advice:": "Advice:", - "Advies": "Advies", + "Advies": "Advice", "Advies indienen": "Advies indienen", "Advies ingediend": "Advies ingediend", "Advies uitbrengen": "Advies uitbrengen", @@ -466,7 +466,7 @@ "Betwist": "Betwist", "Betwistratio": "Betwistratio", "Bevoegd gezag": "Bevoegd gezag", - "Bevoegdheidstype": "Bevoegdheidstype", + "Bevoegdheidstype": "Authority type", "Bevoegdheidstype is required": "Bevoegdheidstype is required", "Bewaarmodus": "Bewaarmodus", "Bewaartermijn": "Bewaartermijn", @@ -498,7 +498,7 @@ "Bottleneck ranking": "Bottleneck ranking", "bouwactiviteiten": "bouwactiviteiten", "BSN": "BSN", - "BSN (burgerservicenummer)": "BSN (burgerservicenummer)", + "BSN (burgerservicenummer)": "BSN (citizen service number)", "BSN is required for Mijn Overheid messages": "BSN is required for Mijn Overheid messages", "BTW": "VAT", "Building supervision with three inspection phases: foundation, shell, completion": "Building supervision with three inspection phases: foundation, shell, completion", @@ -972,8 +972,8 @@ "Documents relation tab is being migrated. The full document list will appear here once dossiq-case-relation-tabs lands.": "Documents relation tab is being migrated. The full document list will appear here once dossiq-case-relation-tabs lands.", "Documents to share": "Documents to share", "Documents uploaded": "Documents uploaded", - "Doel bevoegd gezag (OIN or name)": "Doel bevoegd gezag (OIN or name)", - "Doormandaat": "Doormandaat", + "Doel bevoegd gezag (OIN or name)": "Target competent authority (OIN or name)", + "Doormandaat": "Sub-mandate", "Dossier": "Dossier", "Download": "Download", "Download evaluatierapport": "Download evaluatierapport", @@ -1510,7 +1510,7 @@ "just now": "just now", "kalenderdagen": "kalenderdagen", "Kanaal": "Channel", - "KCC instellingen opgeslagen": "KCC instellingen opgeslagen", + "KCC instellingen opgeslagen": "KCC settings saved", "KCC-werkplek Integration": "KCC-werkplek Integration", "Kenmerk": "Reference", "Key (used to invoke the decision)": "Key (used to invoke the decision)", @@ -1607,7 +1607,7 @@ "Manager": "Manager", "Manager-rechten vereist": "Manager permissions required", "Mandaat": "Mandate", - "Mandaat niveau": "Mandaat niveau", + "Mandaat niveau": "Mandate level", "Mandaatnummer": "Mandaatnummer", "Mandaatnummer is required": "Mandaatnummer is required", "Mandaatreferentie": "Mandaatreferentie", @@ -1955,7 +1955,7 @@ "Offline — {n} changes waiting for sync": "Offline — {n} changes waiting for sync", "OIN (Organisatie-identificatienummer)": "OIN (Organisatie-identificatienummer)", "OK": "OK", - "Omgevingsvergunning — Detail": "Omgevingsvergunning — Detail", + "Omgevingsvergunning — Detail": "Environmental permit", "Omgevingsvergunning (regulier)": "Omgevingsvergunning (regulier)", "Omgevingsvergunning (uitgebreid)": "Omgevingsvergunning (uitgebreid)", "Omgevingsvergunning detail": "Omgevingsvergunning detail", @@ -3086,7 +3086,7 @@ "View task": "View task", "Viewing version {version}. Active version is {active}.": "Viewing version {version}. Active version is {active}.", "Visits": "Visits", - "Vóór deadline (pre-breach)": "Vóór deadline (pre-breach)", + "Vóór deadline (pre-breach)": "Before deadline (pre-breach)", "Voor deze zaak is nog geen leges berekend.": "No fee has been calculated for this case yet.", "Voorlopige voorziening (interim relief) has been requested. Expedited handling required.": "Voorlopige voorziening (interim relief) has been requested. Expedited handling required.", "Voorlopige voorziening (interim relief) requested": "Voorlopige voorziening (interim relief) requested", @@ -3264,7 +3264,7 @@ "Notes": "Notes", "Connected contacts": "Connected contacts", "Appointments & hearings": "Appointments & hearings", - "Besluitvorming": "Besluitvorming", + "Besluitvorming": "Decision-making", "Case assistant": "Case assistant", "Adaptive case plan": "Adaptive case plan", "Flow runs": "Flow runs", @@ -3279,17 +3279,17 @@ "now": "now", "History": "History", "Sharing": "Sharing", - "Bezwaar": "Bezwaar", + "Bezwaar": "Objection", "Advice requests": "Advice requests", "Statutory clock & suspension": "Statutory clock & suspension", - "Commissie": "Commissie", + "Commissie": "Committee", "Assigned at": "Assigned at", "No advice requests raised for this objection yet": "No advice requests raised for this objection yet", - "Beslissingen": "Beslissingen", + "Beslissingen": "Decisions", "Disposition type": "Disposition type", "Published at": "Published at", "No decisions recorded for this objection yet": "No decisions recorded for this objection yet", - "Beslissing op bezwaar": "Beslissing op bezwaar", + "Beslissing op bezwaar": "Decision on objection", "Disposition & reasoning": "Disposition & reasoning", "Publication & documents": "Publication & documents", "Bezwaar & case": "Bezwaar & case", @@ -3309,8 +3309,8 @@ "Tenants": "Tenants", "Provision": "Provision", "View usage": "View usage", - "Kaartlagen": "Kaartlagen", - "Kaartlaag": "Kaartlaag", + "Kaartlagen": "Map layers", + "Kaartlaag": "Map layer", "Refresh usage": "Refresh usage", "Partner organisation": "Partner organisation", "Key figures": "Key figures", @@ -3335,26 +3335,26 @@ "LHS Recommendation": "LHS Recommendation", "Override & final": "Override & final", "Case & inspection": "Case & inspection", - "Bezwaaradviescommissies": "Bezwaaradviescommissies", - "Bezwaaradviescommissie": "Bezwaaradviescommissie", + "Bezwaaradviescommissies": "Objection advisory committees", + "Bezwaaradviescommissie": "Objection advisory committee", "Committee": "Committee", "Advice assignments": "Advice assignments", "In deliberation": "In deliberation", "Roster & term": "Roster & term", - "Adviesaanvragen": "Adviesaanvragen", + "Adviesaanvragen": "Advice requests", "No advice requests assigned to this committee yet": "No advice requests assigned to this committee yet", - "BAC-advies": "BAC-advies", + "BAC-advies": "Committee advice", "Assignment": "Assignment", "Advice & outcome": "Advice & outcome", "Bezwaar & committee": "Bezwaar & committee", - "Beroep": "Beroep", + "Beroep": "Appeal", "Filing & judgment": "Filing & judgment", "Case & source bezwaar": "Case & source bezwaar", "Deadline compliance, quarterly reporting and the annual dwangsom audit": "Deadline compliance, quarterly reporting and the annual dwangsom audit", "Dossiq handles cases from intake to archive. Load the demo data to see it work. Then initialise the register and schemas.": "Dossiq handles cases from intake to archive. Load the demo data to see it work. Then initialise the register and schemas.", "Let's take a quick spin through case handling. We'll register a case together so you can see how the pieces fit, and you'll add the record yourself.": "Let's take a quick spin through case handling. We'll register a case together so you can see how the pieces fit, and you'll add the record yourself.", "Register your first case. Give it a title, pick a case type, then save. You can add tasks, decisions and documents later.": "Register your first case. Give it a title, pick a case type, then save. You can add tasks, decisions and documents later.", - "Subsidie": "Subsidie", + "Subsidie": "Grant", "Executions": "Executions", "Case, scheme & handler": "Case, scheme & handler", "Assessments": "Assessments", @@ -3514,7 +3514,9 @@ "When this change is due to be sent.": "When this change is due to be sent.", "When this retry ran.": "When this retry ran.", "Which layer the error came from.": "Which layer the error came from.", - "Which retry this was, counting from one.": "Which retry this was, counting from one." + "Which retry this was, counting from one.": "Which retry this was, counting from one.", + "Queue": "Queue", + "Nothing is waiting. Every open case has someone on it.": "Nothing is waiting. Every open case has someone on it." }, "plurals": "" } diff --git a/l10n/en_US.js b/l10n/en_US.js index 93f82f714..e0a087954 100644 --- a/l10n/en_US.js +++ b/l10n/en_US.js @@ -549,7 +549,7 @@ OC.L10N.register( "{days} days overdue": "{days} days overdue", "{days} days remaining": "{days} days remaining", "{field} is required": "{field} is required", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} hours ago", "{min} min ago": "{min} min ago", "{n} days": "{n} days", @@ -662,7 +662,7 @@ OC.L10N.register( "Identificatievragen": "Identificatievragen", "Identification method": "Identification method", "Identification score threshold (0.6 - 1.0)": "Identification score threshold (0.6 - 1.0)", - "KCC instellingen opgeslagen": "KCC instellingen opgeslagen", + "KCC instellingen opgeslagen": "KCC settings saved", "KCC-werkplek Integration": "KCC-werkplek Integration", "Max contactmomenten in history": "Max contactmomenten in history", "Max open zaken in voorblad": "Max open zaken in voorblad", @@ -676,7 +676,29 @@ OC.L10N.register( "This case has {count} sub-cases. Deleting it will unlink the sub-cases from their parent. Do you want to continue?": "This case has {count} sub-cases. Deleting it will unlink the sub-cases from their parent. Do you want to continue?", "Whether burgers are identified via DigiD (portaal/chat), identificatievragen (telefoon), or both.": "Whether burgers are identified via DigiD (portaal/chat), identificatievragen (telefoon), or both.", "{count} deelzaken": "{count} deelzaken", - "_%n document selected_::_%n documents selected_": ["%n document selected","%n documents selected"] + "_%n document selected_::_%n documents selected_": ["%n document selected","%n documents selected"], + "Advies": "Advice", + "Adviesaanvragen": "Advice requests", + "BAC-advies": "Committee advice", + "BSN (burgerservicenummer)": "BSN (citizen service number)", + "Beroep": "Appeal", + "Beslissing op bezwaar": "Decision on objection", + "Beslissingen": "Decisions", + "Besluitvorming": "Decision-making", + "Bevoegdheidstype": "Authority type", + "Bezwaar": "Objection", + "Bezwaaradviescommissie": "Objection advisory committee", + "Bezwaaradviescommissies": "Objection advisory committees", + "Commissie": "Committee", + "Doormandaat": "Sub-mandate", + "Kaartlaag": "Map layer", + "Kaartlagen": "Map layers", + "Omgevingsvergunning — Detail": "Environmental permit", + "Subsidie": "Grant", + "Mandaat niveau": "Mandate level", + "Aangezocht bevoegd gezag (OIN or name)": "Requested competent authority (OIN or name)", + "Doel bevoegd gezag (OIN or name)": "Target competent authority (OIN or name)", + "Vóór deadline (pre-breach)": "Before deadline (pre-breach)" }, "nplurals=2; plural=(n != 1);" ) diff --git a/l10n/en_US.json b/l10n/en_US.json index 54d0c2620..fc540137a 100644 --- a/l10n/en_US.json +++ b/l10n/en_US.json @@ -548,7 +548,7 @@ "{days} days overdue": "{days} days overdue", "{days} days remaining": "{days} days remaining", "{field} is required": "{field} is required", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} hours ago", "{min} min ago": "{min} min ago", "{n} days": "{n} days", @@ -661,7 +661,7 @@ "Identificatievragen": "Identificatievragen", "Identification method": "Identification method", "Identification score threshold (0.6 - 1.0)": "Identification score threshold (0.6 - 1.0)", - "KCC instellingen opgeslagen": "KCC instellingen opgeslagen", + "KCC instellingen opgeslagen": "KCC settings saved", "KCC-werkplek Integration": "KCC-werkplek Integration", "Max contactmomenten in history": "Max contactmomenten in history", "Max open zaken in voorblad": "Max open zaken in voorblad", @@ -678,7 +678,29 @@ "_%n document selected_::_%n documents selected_": [ "%n document selected", "%n documents selected" - ] + ], + "Advies": "Advice", + "Adviesaanvragen": "Advice requests", + "BAC-advies": "Committee advice", + "BSN (burgerservicenummer)": "BSN (citizen service number)", + "Beroep": "Appeal", + "Beslissing op bezwaar": "Decision on objection", + "Beslissingen": "Decisions", + "Besluitvorming": "Decision-making", + "Bevoegdheidstype": "Authority type", + "Bezwaar": "Objection", + "Bezwaaradviescommissie": "Objection advisory committee", + "Bezwaaradviescommissies": "Objection advisory committees", + "Commissie": "Committee", + "Doormandaat": "Sub-mandate", + "Kaartlaag": "Map layer", + "Kaartlagen": "Map layers", + "Omgevingsvergunning — Detail": "Environmental permit", + "Subsidie": "Grant", + "Mandaat niveau": "Mandate level", + "Aangezocht bevoegd gezag (OIN or name)": "Requested competent authority (OIN or name)", + "Doel bevoegd gezag (OIN or name)": "Target competent authority (OIN or name)", + "Vóór deadline (pre-breach)": "Before deadline (pre-breach)" }, "plurals": "" } diff --git a/l10n/es.js b/l10n/es.js index 7e1775209..c7ca19fae 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} días de retraso", "{days} days remaining": "{days} días restantes", "{field} is required": "{field} es obligatorio", - "{from} \\u2014 (no end)": "{from} \\u2014 (sin fin)", + "{from} – (no end)": "{from} – (sin fin)", "{hours} hours ago": "hace {hours} horas", "{min} min ago": "hace {min} min", "{n} days": "{n} días", diff --git a/l10n/es.json b/l10n/es.json index 2715765c8..2ff432630 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} días de retraso", "{days} days remaining": "{days} días restantes", "{field} is required": "{field} es obligatorio", - "{from} \\u2014 (no end)": "{from} \\u2014 (sin fin)", + "{from} – (no end)": "{from} – (sin fin)", "{hours} hours ago": "hace {hours} horas", "{min} min ago": "hace {min} min", "{n} days": "{n} días", diff --git a/l10n/et.js b/l10n/et.js index 4c92e93c1..8ca3be3ce 100644 --- a/l10n/et.js +++ b/l10n/et.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} päeva üle tähtaja", "{days} days remaining": "jäänud {days} päeva", "{field} is required": "{field} on kohustuslik", - "{from} \\u2014 (no end)": "{from} \\u2014 (lõputa)", + "{from} – (no end)": "{from} – (lõputa)", "{hours} hours ago": "{hours} tundi tagasi", "{min} min ago": "{min} min tagasi", "{n} days": "{n} päeva", diff --git a/l10n/et.json b/l10n/et.json index 504e390ed..adb5b9af9 100644 --- a/l10n/et.json +++ b/l10n/et.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} päeva üle tähtaja", "{days} days remaining": "jäänud {days} päeva", "{field} is required": "{field} on kohustuslik", - "{from} \\u2014 (no end)": "{from} \\u2014 (lõputa)", + "{from} – (no end)": "{from} – (lõputa)", "{hours} hours ago": "{hours} tundi tagasi", "{min} min ago": "{min} min tagasi", "{n} days": "{n} päeva", diff --git a/l10n/fi.js b/l10n/fi.js index 9e4453ff1..80f6cfd81 100644 --- a/l10n/fi.js +++ b/l10n/fi.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} päivää myöhässä", "{days} days remaining": "{days} päivää jäljellä", "{field} is required": "{field} on pakollinen", - "{from} \\u2014 (no end)": "{from} \\u2014 (ei loppua)", + "{from} – (no end)": "{from} – (ei loppua)", "{hours} hours ago": "{hours} tuntia sitten", "{min} min ago": "{min} min sitten", "{n} days": "{n} päivää", diff --git a/l10n/fi.json b/l10n/fi.json index d821d7516..ff4ffd7cd 100644 --- a/l10n/fi.json +++ b/l10n/fi.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} päivää myöhässä", "{days} days remaining": "{days} päivää jäljellä", "{field} is required": "{field} on pakollinen", - "{from} \\u2014 (no end)": "{from} \\u2014 (ei loppua)", + "{from} – (no end)": "{from} – (ei loppua)", "{hours} hours ago": "{hours} tuntia sitten", "{min} min ago": "{min} min sitten", "{n} days": "{n} päivää", diff --git a/l10n/fr.js b/l10n/fr.js index db1524ba7..fbe789544 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} jours de retard", "{days} days remaining": "{days} jours restants", "{field} is required": "{field} est obligatoire", - "{from} \\u2014 (no end)": "{from} \\u2014 (sans fin)", + "{from} – (no end)": "{from} – (sans fin)", "{hours} hours ago": "il y a {hours} heures", "{min} min ago": "il y a {min} min", "{n} days": "{n} jours", diff --git a/l10n/fr.json b/l10n/fr.json index cf9b13f08..27d961b12 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} jours de retard", "{days} days remaining": "{days} jours restants", "{field} is required": "{field} est obligatoire", - "{from} \\u2014 (no end)": "{from} \\u2014 (sans fin)", + "{from} – (no end)": "{from} – (sans fin)", "{hours} hours ago": "il y a {hours} heures", "{min} min ago": "il y a {min} min", "{n} days": "{n} jours", diff --git a/l10n/ga.js b/l10n/ga.js index 6157c5b5e..ddbe4b05e 100644 --- a/l10n/ga.js +++ b/l10n/ga.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "{days} lá fágtha", "{field} is required": "Tá {field} riachtanach", "{filled} of {total} properties filled": "{filled} as {total} airí líonta", - "{from} \\u2014 (no end)": "{from} \\u2014 (gan deireadh)", + "{from} – (no end)": "{from} – (gan deireadh)", "{hours} hours ago": "{hours} uair an chloig ó shin", "{min} min ago": "{min} nóim ó shin", "{n} conflicts": "{n} coinbhleacht", diff --git a/l10n/ga.json b/l10n/ga.json index 6856295dd..364b5ffee 100644 --- a/l10n/ga.json +++ b/l10n/ga.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "{days} lá fágtha", "{field} is required": "Tá {field} riachtanach", "{filled} of {total} properties filled": "{filled} as {total} airí líonta", - "{from} \\u2014 (no end)": "{from} \\u2014 (gan deireadh)", + "{from} – (no end)": "{from} – (gan deireadh)", "{hours} hours ago": "{hours} uair an chloig ó shin", "{min} min ago": "{min} nóim ó shin", "{n} conflicts": "{n} coinbhleacht", diff --git a/l10n/hr.js b/l10n/hr.js index 521f3fa0b..f5378eaf8 100644 --- a/l10n/hr.js +++ b/l10n/hr.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dana kašnjenja", "{days} days remaining": "preostalo {days} dana", "{field} is required": "{field} je obavezno", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez kraja)", + "{from} – (no end)": "{from} – (bez kraja)", "{hours} hours ago": "prije {hours} sati", "{min} min ago": "prije {min} min", "{n} days": "{n} dana", diff --git a/l10n/hr.json b/l10n/hr.json index 1779cd9a0..b7def8160 100644 --- a/l10n/hr.json +++ b/l10n/hr.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dana kašnjenja", "{days} days remaining": "preostalo {days} dana", "{field} is required": "{field} je obavezno", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez kraja)", + "{from} – (no end)": "{from} – (bez kraja)", "{hours} hours ago": "prije {hours} sati", "{min} min ago": "prije {min} min", "{n} days": "{n} dana", diff --git a/l10n/hu.js b/l10n/hu.js index df5a5fd6d..08dfe9567 100644 --- a/l10n/hu.js +++ b/l10n/hu.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} nap késésben", "{days} days remaining": "{days} nap van hátra", "{field} is required": "A(z) {field} megadása kötelező", - "{from} \\u2014 (no end)": "{from} \\u2014 (nincs vége)", + "{from} – (no end)": "{from} – (nincs vége)", "{hours} hours ago": "{hours} órája", "{min} min ago": "{min} perce", "{n} days": "{n} nap", diff --git a/l10n/hu.json b/l10n/hu.json index bc04beb83..5432a1aaa 100644 --- a/l10n/hu.json +++ b/l10n/hu.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} nap késésben", "{days} days remaining": "{days} nap van hátra", "{field} is required": "A(z) {field} megadása kötelező", - "{from} \\u2014 (no end)": "{from} \\u2014 (nincs vége)", + "{from} – (no end)": "{from} – (nincs vége)", "{hours} hours ago": "{hours} órája", "{min} min ago": "{min} perce", "{n} days": "{n} nap", diff --git a/l10n/is.js b/l10n/is.js index bfd697e5b..48fccd3d3 100644 --- a/l10n/is.js +++ b/l10n/is.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "{days} dagar eftir", "{field} is required": "{field} er nauðsynlegt", "{filled} of {total} properties filled": "{filled} af {total} eiginleikum útfylltir", - "{from} \\u2014 (no end)": "{from} \\u2014 (engin lok)", + "{from} – (no end)": "{from} – (engin lok)", "{hours} hours ago": "fyrir {hours} klukkustundum", "{min} min ago": "fyrir {min} mín", "{n} conflicts": "{n} árekstrar", diff --git a/l10n/is.json b/l10n/is.json index 43d02b3f2..88d94d191 100644 --- a/l10n/is.json +++ b/l10n/is.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "{days} dagar eftir", "{field} is required": "{field} er nauðsynlegt", "{filled} of {total} properties filled": "{filled} af {total} eiginleikum útfylltir", - "{from} \\u2014 (no end)": "{from} \\u2014 (engin lok)", + "{from} – (no end)": "{from} – (engin lok)", "{hours} hours ago": "fyrir {hours} klukkustundum", "{min} min ago": "fyrir {min} mín", "{n} conflicts": "{n} árekstrar", diff --git a/l10n/it.js b/l10n/it.js index af6081ec2..8de02fd5f 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} giorni di ritardo", "{days} days remaining": "{days} giorni rimanenti", "{field} is required": "{field} è obbligatorio", - "{from} \\u2014 (no end)": "{from} \\u2014 (nessuna fine)", + "{from} – (no end)": "{from} – (nessuna fine)", "{hours} hours ago": "{hours} ore fa", "{min} min ago": "{min} min fa", "{n} days": "{n} giorni", diff --git a/l10n/it.json b/l10n/it.json index 431b283a5..745a8c8a8 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} giorni di ritardo", "{days} days remaining": "{days} giorni rimanenti", "{field} is required": "{field} è obbligatorio", - "{from} \\u2014 (no end)": "{from} \\u2014 (nessuna fine)", + "{from} – (no end)": "{from} – (nessuna fine)", "{hours} hours ago": "{hours} ore fa", "{min} min ago": "{min} min fa", "{n} days": "{n} giorni", diff --git a/l10n/lb.js b/l10n/lb.js index 615707ded..0db56fa21 100644 --- a/l10n/lb.js +++ b/l10n/lb.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "{days} Deeg iwwreg", "{field} is required": "{field} ass erfuerderlech", "{filled} of {total} properties filled": "{filled} vun {total} Eegeschafte gefëllt", - "{from} \\u2014 (no end)": "{from} \\u2014 (kee Enn)", + "{from} – (no end)": "{from} – (kee Enn)", "{hours} hours ago": "viru {hours} Stonnen", "{min} min ago": "viru {min} Min", "{n} conflicts": "{n} Konflikter", diff --git a/l10n/lb.json b/l10n/lb.json index f9e90db53..40258aa3a 100644 --- a/l10n/lb.json +++ b/l10n/lb.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "{days} Deeg iwwreg", "{field} is required": "{field} ass erfuerderlech", "{filled} of {total} properties filled": "{filled} vun {total} Eegeschafte gefëllt", - "{from} \\u2014 (no end)": "{from} \\u2014 (kee Enn)", + "{from} – (no end)": "{from} – (kee Enn)", "{hours} hours ago": "viru {hours} Stonnen", "{min} min ago": "viru {min} Min", "{n} conflicts": "{n} Konflikter", diff --git a/l10n/lt.js b/l10n/lt.js index 015d8c50e..6ea6dade2 100644 --- a/l10n/lt.js +++ b/l10n/lt.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} d. pradelsta", "{days} days remaining": "liko {days} d.", "{field} is required": "{field} yra privalomas", - "{from} \\u2014 (no end)": "{from} \\u2014 (be pabaigos)", + "{from} – (no end)": "{from} – (be pabaigos)", "{hours} hours ago": "prieš {hours} val.", "{min} min ago": "prieš {min} min.", "{n} days": "{n} d.", diff --git a/l10n/lt.json b/l10n/lt.json index 96725f3e8..b51802d71 100644 --- a/l10n/lt.json +++ b/l10n/lt.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} d. pradelsta", "{days} days remaining": "liko {days} d.", "{field} is required": "{field} yra privalomas", - "{from} \\u2014 (no end)": "{from} \\u2014 (be pabaigos)", + "{from} – (no end)": "{from} – (be pabaigos)", "{hours} hours ago": "prieš {hours} val.", "{min} min ago": "prieš {min} min.", "{n} days": "{n} d.", diff --git a/l10n/lv.js b/l10n/lv.js index 003057880..93f6fbdc7 100644 --- a/l10n/lv.js +++ b/l10n/lv.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dienas nokavētas", "{days} days remaining": "atlikušas {days} dienas", "{field} is required": "{field} ir obligāts", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez beigām)", + "{from} – (no end)": "{from} – (bez beigām)", "{hours} hours ago": "pirms {hours} stundām", "{min} min ago": "pirms {min} min", "{n} days": "{n} dienas", diff --git a/l10n/lv.json b/l10n/lv.json index 0a2e02af7..a332d6ed2 100644 --- a/l10n/lv.json +++ b/l10n/lv.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dienas nokavētas", "{days} days remaining": "atlikušas {days} dienas", "{field} is required": "{field} ir obligāts", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez beigām)", + "{from} – (no end)": "{from} – (bez beigām)", "{hours} hours ago": "pirms {hours} stundām", "{min} min ago": "pirms {min} min", "{n} days": "{n} dienas", diff --git a/l10n/mk.js b/l10n/mk.js index 25d4b0db4..754af530a 100644 --- a/l10n/mk.js +++ b/l10n/mk.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "{days} дена преостанати", "{field} is required": "{field} е задолжително", "{filled} of {total} properties filled": "{filled} од {total} својства пополнети", - "{from} \\u2014 (no end)": "{from} \\u2014 (без крај)", + "{from} – (no end)": "{from} – (без крај)", "{hours} hours ago": "пред {hours} часа", "{min} min ago": "пред {min} мин", "{n} conflicts": "{n} конфликти", diff --git a/l10n/mk.json b/l10n/mk.json index 4830c5f86..017e62b06 100644 --- a/l10n/mk.json +++ b/l10n/mk.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "{days} дена преостанати", "{field} is required": "{field} е задолжително", "{filled} of {total} properties filled": "{filled} од {total} својства пополнети", - "{from} \\u2014 (no end)": "{from} \\u2014 (без крај)", + "{from} – (no end)": "{from} – (без крај)", "{hours} hours ago": "пред {hours} часа", "{min} min ago": "пред {min} мин", "{n} conflicts": "{n} конфликти", diff --git a/l10n/mt.js b/l10n/mt.js index 6956bf152..7fb04dc3c 100644 --- a/l10n/mt.js +++ b/l10n/mt.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} jiem b'dewmien", "{days} days remaining": "{days} jiem fadal", "{field} is required": "{field} huwa meħtieġ", - "{from} \\u2014 (no end)": "{from} \\u2014 (ebda tmiem)", + "{from} – (no end)": "{from} – (ebda tmiem)", "{hours} hours ago": "{hours} sigħat ilu", "{min} min ago": "{min} min ilu", "{n} days": "{n} jiem", diff --git a/l10n/mt.json b/l10n/mt.json index b024777c6..54fbcaecc 100644 --- a/l10n/mt.json +++ b/l10n/mt.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} jiem b'dewmien", "{days} days remaining": "{days} jiem fadal", "{field} is required": "{field} huwa meħtieġ", - "{from} \\u2014 (no end)": "{from} \\u2014 (ebda tmiem)", + "{from} – (no end)": "{from} – (ebda tmiem)", "{hours} hours ago": "{hours} sigħat ilu", "{min} min ago": "{min} min ilu", "{n} days": "{n} jiem", diff --git a/l10n/nb.js b/l10n/nb.js index 541d6f72b..454fb9a10 100644 --- a/l10n/nb.js +++ b/l10n/nb.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "{days} dager gjenstår", "{field} is required": "{field} er påkrevd", "{filled} of {total} properties filled": "{filled} av {total} egenskaper fylt ut", - "{from} \\u2014 (no end)": "{from} \\u2014 (ingen slutt)", + "{from} – (no end)": "{from} – (ingen slutt)", "{hours} hours ago": "{hours} timer siden", "{min} min ago": "{min} min siden", "{n} conflicts": "{n} konflikter", diff --git a/l10n/nb.json b/l10n/nb.json index 6e1d2d793..5434134af 100644 --- a/l10n/nb.json +++ b/l10n/nb.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "{days} dager gjenstår", "{field} is required": "{field} er påkrevd", "{filled} of {total} properties filled": "{filled} av {total} egenskaper fylt ut", - "{from} \\u2014 (no end)": "{from} \\u2014 (ingen slutt)", + "{from} – (no end)": "{from} – (ingen slutt)", "{hours} hours ago": "{hours} timer siden", "{min} min ago": "{min} min siden", "{n} conflicts": "{n} konflikter", diff --git a/l10n/nl.js b/l10n/nl.js index 7a5a4e38f..a91893550 100644 --- a/l10n/nl.js +++ b/l10n/nl.js @@ -34,7 +34,7 @@ OC.L10N.register( "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.": "{failed} van {total} deelzaken konden niet worden losgekoppeld, dus de zaak is niet verwijderd. Koppel ze eerst los en probeer het opnieuw.", "{field} is required": "{field} is verplicht", "{filled} of {total} properties filled": "{filled} van {total} eigenschappen ingevuld", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} uur geleden", "{min} min ago": "{min} min geleden", "{n} changes waiting for sync": "{n} wijzigingen wachten op synchronisatie", @@ -3408,7 +3408,6 @@ OC.L10N.register( "Mail & messages": "Mail en berichten", "Log hours": "Uren boeken", "Queue": "Werkvoorraad", - "All types": "Alle typen", "Nothing is waiting. Every open case has someone on it.": "Er wacht niets. Elke open zaak heeft iemand.", "Assigned to me": "Aan mij toegewezen", "A store registry is another OpenRegister instance that publishes case configuration. Leave the address empty to keep dossiq offline: nothing is requested from the network until one is set.": "Een storeregister is een andere OpenRegister-instantie die zaakconfiguratie publiceert. Laat het adres leeg om dossiq offline te houden: er wordt niets van het netwerk opgehaald zolang er geen adres staat.", diff --git a/l10n/nl.json b/l10n/nl.json index 7c454be35..dbad3bd1a 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -33,7 +33,7 @@ "{failed} of {total} sub-cases could not be detached, so the case was not deleted. Detach them first, then try again.": "{failed} van {total} deelzaken konden niet worden losgekoppeld, dus de zaak is niet verwijderd. Koppel ze eerst los en probeer het opnieuw.", "{field} is required": "{field} is verplicht", "{filled} of {total} properties filled": "{filled} van {total} eigenschappen ingevuld", - "{from} \\u2014 (no end)": "{from} \\u2014 (no end)", + "{from} – (no end)": "{from} – (no end)", "{hours} hours ago": "{hours} uur geleden", "{min} min ago": "{min} min geleden", "{n} changes waiting for sync": "{n} wijzigingen wachten op synchronisatie", @@ -3407,7 +3407,6 @@ "Mail & messages": "Mail en berichten", "Log hours": "Uren boeken", "Queue": "Werkvoorraad", - "All types": "Alle typen", "Nothing is waiting. Every open case has someone on it.": "Er wacht niets. Elke open zaak heeft iemand.", "Assigned to me": "Aan mij toegewezen", "A store registry is another OpenRegister instance that publishes case configuration. Leave the address empty to keep dossiq offline: nothing is requested from the network until one is set.": "Een storeregister is een andere OpenRegister-instantie die zaakconfiguratie publiceert. Laat het adres leeg om dossiq offline te houden: er wordt niets van het netwerk opgehaald zolang er geen adres staat.", diff --git a/l10n/pl.js b/l10n/pl.js index 424777bbd..925efe82d 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dni po terminie", "{days} days remaining": "pozostało {days} dni", "{field} is required": "{field} jest wymagane", - "{from} \\u2014 (no end)": "{from} \\u2014 (brak końca)", + "{from} – (no end)": "{from} – (brak końca)", "{hours} hours ago": "{hours} godz. temu", "{min} min ago": "{min} min temu", "{n} days": "{n} dni", diff --git a/l10n/pl.json b/l10n/pl.json index 22276ec87..067845fe7 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dni po terminie", "{days} days remaining": "pozostało {days} dni", "{field} is required": "{field} jest wymagane", - "{from} \\u2014 (no end)": "{from} \\u2014 (brak końca)", + "{from} – (no end)": "{from} – (brak końca)", "{hours} hours ago": "{hours} godz. temu", "{min} min ago": "{min} min temu", "{n} days": "{n} dni", diff --git a/l10n/pt.js b/l10n/pt.js index 8ef0ee9c6..2def221bc 100644 --- a/l10n/pt.js +++ b/l10n/pt.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dias em atraso", "{days} days remaining": "{days} dias restantes", "{field} is required": "{field} é obrigatório", - "{from} \\u2014 (no end)": "{from} \\u2014 (sem fim)", + "{from} – (no end)": "{from} – (sem fim)", "{hours} hours ago": "há {hours} horas", "{min} min ago": "há {min} min", "{n} days": "{n} dias", diff --git a/l10n/pt.json b/l10n/pt.json index 294c3fcec..242f05dca 100644 --- a/l10n/pt.json +++ b/l10n/pt.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dias em atraso", "{days} days remaining": "{days} dias restantes", "{field} is required": "{field} é obrigatório", - "{from} \\u2014 (no end)": "{from} \\u2014 (sem fim)", + "{from} – (no end)": "{from} – (sem fim)", "{hours} hours ago": "há {hours} horas", "{min} min ago": "há {min} min", "{n} days": "{n} dias", diff --git a/l10n/rm.js b/l10n/rm.js index f844563df..ad50601c7 100644 --- a/l10n/rm.js +++ b/l10n/rm.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "{days} dis restants", "{field} is required": "{field} è obligatoric", "{filled} of {total} properties filled": "{filled} da {total} proprietads emplenidas", - "{from} \\u2014 (no end)": "{from} \\u2014 (nagina fin)", + "{from} – (no end)": "{from} – (nagina fin)", "{hours} hours ago": "avant {hours} uras", "{min} min ago": "avant {min} min", "{n} conflicts": "{n} conflicts", diff --git a/l10n/rm.json b/l10n/rm.json index 30581d28f..1353707ba 100644 --- a/l10n/rm.json +++ b/l10n/rm.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "{days} dis restants", "{field} is required": "{field} è obligatoric", "{filled} of {total} properties filled": "{filled} da {total} proprietads emplenidas", - "{from} \\u2014 (no end)": "{from} \\u2014 (nagina fin)", + "{from} – (no end)": "{from} – (nagina fin)", "{hours} hours ago": "avant {hours} uras", "{min} min ago": "avant {min} min", "{n} conflicts": "{n} conflicts", diff --git a/l10n/ro.js b/l10n/ro.js index 3f501beb0..75311e5ea 100644 --- a/l10n/ro.js +++ b/l10n/ro.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} zile întârziere", "{days} days remaining": "{days} zile rămase", "{field} is required": "{field} este obligatoriu", - "{from} \\u2014 (no end)": "{from} \\u2014 (fără sfârșit)", + "{from} – (no end)": "{from} – (fără sfârșit)", "{hours} hours ago": "acum {hours} ore", "{min} min ago": "acum {min} min", "{n} days": "{n} zile", diff --git a/l10n/ro.json b/l10n/ro.json index 291d96814..403f70a34 100644 --- a/l10n/ro.json +++ b/l10n/ro.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} zile întârziere", "{days} days remaining": "{days} zile rămase", "{field} is required": "{field} este obligatoriu", - "{from} \\u2014 (no end)": "{from} \\u2014 (fără sfârșit)", + "{from} – (no end)": "{from} – (fără sfârșit)", "{hours} hours ago": "acum {hours} ore", "{min} min ago": "acum {min} min", "{n} days": "{n} zile", diff --git a/l10n/ru.js b/l10n/ru.js index 785c58331..06e525ab3 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "осталось {days} дней", "{field} is required": "{field} обязательно", "{filled} of {total} properties filled": "{filled} из {total} свойств заполнено", - "{from} \\u2014 (no end)": "{from} \\u2014 (без окончания)", + "{from} – (no end)": "{from} – (без окончания)", "{hours} hours ago": "{hours} часов назад", "{min} min ago": "{min} мин назад", "{n} conflicts": "{n} конфликтов", diff --git a/l10n/ru.json b/l10n/ru.json index 1b4a700a4..eac1180fe 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "осталось {days} дней", "{field} is required": "{field} обязательно", "{filled} of {total} properties filled": "{filled} из {total} свойств заполнено", - "{from} \\u2014 (no end)": "{from} \\u2014 (без окончания)", + "{from} – (no end)": "{from} – (без окончания)", "{hours} hours ago": "{hours} часов назад", "{min} min ago": "{min} мин назад", "{n} conflicts": "{n} конфликтов", diff --git a/l10n/sk.js b/l10n/sk.js index b81f2988f..8b35faea4 100644 --- a/l10n/sk.js +++ b/l10n/sk.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dní po termíne", "{days} days remaining": "zostáva {days} dní", "{field} is required": "{field} je povinný", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez konca)", + "{from} – (no end)": "{from} – (bez konca)", "{hours} hours ago": "pred {hours} hodinami", "{min} min ago": "pred {min} min", "{n} days": "{n} dní", diff --git a/l10n/sk.json b/l10n/sk.json index 8642afbea..241b879b3 100644 --- a/l10n/sk.json +++ b/l10n/sk.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dní po termíne", "{days} days remaining": "zostáva {days} dní", "{field} is required": "{field} je povinný", - "{from} \\u2014 (no end)": "{from} \\u2014 (bez konca)", + "{from} – (no end)": "{from} – (bez konca)", "{hours} hours ago": "pred {hours} hodinami", "{min} min ago": "pred {min} min", "{n} days": "{n} dní", diff --git a/l10n/sl.js b/l10n/sl.js index 8cee28580..adb67aaf4 100644 --- a/l10n/sl.js +++ b/l10n/sl.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dni prepozno", "{days} days remaining": "preostalo dni: {days}", "{field} is required": "{field} je obvezno", - "{from} \\u2014 (no end)": "{from} \\u2014 (brez konca)", + "{from} – (no end)": "{from} – (brez konca)", "{hours} hours ago": "pred {hours} urami", "{min} min ago": "pred {min} min", "{n} days": "{n} dni", diff --git a/l10n/sl.json b/l10n/sl.json index 2c3b77dad..ec63db3a0 100644 --- a/l10n/sl.json +++ b/l10n/sl.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dni prepozno", "{days} days remaining": "preostalo dni: {days}", "{field} is required": "{field} je obvezno", - "{from} \\u2014 (no end)": "{from} \\u2014 (brez konca)", + "{from} – (no end)": "{from} – (brez konca)", "{hours} hours ago": "pred {hours} urami", "{min} min ago": "pred {min} min", "{n} days": "{n} dni", diff --git a/l10n/sq.js b/l10n/sq.js index b22de8f4d..d0793761c 100644 --- a/l10n/sq.js +++ b/l10n/sq.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} ditë me vonesë", "{days} days remaining": "{days} ditë të mbetura", "{field} is required": "{field} është i detyrueshëm", - "{from} \\u2014 (no end)": "{from} \\u2014 (pa fund)", + "{from} – (no end)": "{from} – (pa fund)", "{hours} hours ago": "{hours} orë më parë", "{min} min ago": "{min} min më parë", "{n} days": "{n} ditë", diff --git a/l10n/sq.json b/l10n/sq.json index 05593f6fa..cf9b49f88 100644 --- a/l10n/sq.json +++ b/l10n/sq.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} ditë me vonesë", "{days} days remaining": "{days} ditë të mbetura", "{field} is required": "{field} është i detyrueshëm", - "{from} \\u2014 (no end)": "{from} \\u2014 (pa fund)", + "{from} – (no end)": "{from} – (pa fund)", "{hours} hours ago": "{hours} orë më parë", "{min} min ago": "{min} min më parë", "{n} days": "{n} ditë", diff --git a/l10n/sr.js b/l10n/sr.js index ddad85084..b7bf3ddfe 100644 --- a/l10n/sr.js +++ b/l10n/sr.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "{days} дана преостало", "{field} is required": "{field} је обавезан", "{filled} of {total} properties filled": "{filled} од {total} својстава попуњено", - "{from} \\u2014 (no end)": "{from} \\u2014 (без краја)", + "{from} – (no end)": "{from} – (без краја)", "{hours} hours ago": "пре {hours} сати", "{min} min ago": "пре {min} мин", "{n} conflicts": "{n} конфликата", diff --git a/l10n/sr.json b/l10n/sr.json index 6062d4e68..e8e95954f 100644 --- a/l10n/sr.json +++ b/l10n/sr.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "{days} дана преостало", "{field} is required": "{field} је обавезан", "{filled} of {total} properties filled": "{filled} од {total} својстава попуњено", - "{from} \\u2014 (no end)": "{from} \\u2014 (без краја)", + "{from} – (no end)": "{from} – (без краја)", "{hours} hours ago": "пре {hours} сати", "{min} min ago": "пре {min} мин", "{n} conflicts": "{n} конфликата", diff --git a/l10n/sv.js b/l10n/sv.js index 21938f135..ef20523ac 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -356,7 +356,7 @@ OC.L10N.register( "{days} days overdue": "{days} dagar försenad", "{days} days remaining": "{days} dagar kvar", "{field} is required": "{field} krävs", - "{from} \\u2014 (no end)": "{from} \\u2014 (inget slut)", + "{from} – (no end)": "{from} – (inget slut)", "{hours} hours ago": "{hours} timmar sedan", "{min} min ago": "{min} min sedan", "{n} days": "{n} dagar", diff --git a/l10n/sv.json b/l10n/sv.json index 7e597db30..21b5b61d8 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -355,7 +355,7 @@ "{days} days overdue": "{days} dagar försenad", "{days} days remaining": "{days} dagar kvar", "{field} is required": "{field} krävs", - "{from} \\u2014 (no end)": "{from} \\u2014 (inget slut)", + "{from} – (no end)": "{from} – (inget slut)", "{hours} hours ago": "{hours} timmar sedan", "{min} min ago": "{min} min sedan", "{n} days": "{n} dagar", diff --git a/l10n/tr.js b/l10n/tr.js index 6c77f1cbc..2829ae3bb 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -1967,7 +1967,7 @@ OC.L10N.register( "{days} days remaining": "{days} gün kaldı", "{field} is required": "{field} gereklidir", "{filled} of {total} properties filled": "{total} özelliğin {filled} tanesi dolduruldu", - "{from} \\u2014 (no end)": "{from} \\u2014 (bitiş yok)", + "{from} – (no end)": "{from} – (bitiş yok)", "{hours} hours ago": "{hours} saat önce", "{min} min ago": "{min} dakika önce", "{n} conflicts": "{n} çakışma", diff --git a/l10n/tr.json b/l10n/tr.json index 0a30153a9..d0fc434b9 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -1966,7 +1966,7 @@ "{days} days remaining": "{days} gün kaldı", "{field} is required": "{field} gereklidir", "{filled} of {total} properties filled": "{total} özelliğin {filled} tanesi dolduruldu", - "{from} \\u2014 (no end)": "{from} \\u2014 (bitiş yok)", + "{from} – (no end)": "{from} – (bitiş yok)", "{hours} hours ago": "{hours} saat önce", "{min} min ago": "{min} dakika önce", "{n} conflicts": "{n} çakışma", diff --git a/l10n/uk.js b/l10n/uk.js index ef8e2f1e9..90d03a36f 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -1936,7 +1936,7 @@ OC.L10N.register( "{days} days remaining": "залишилось {days} днів", "{field} is required": "{field} є обов'язковим", "{filled} of {total} properties filled": "заповнено {filled} з {total} властивостей", - "{from} \\u2014 (no end)": "{from} \\u2014 (без завершення)", + "{from} – (no end)": "{from} – (без завершення)", "{hours} hours ago": "{hours} годин тому", "{min} min ago": "{min} хв тому", "{n} conflicts": "{n} конфліктів", diff --git a/l10n/uk.json b/l10n/uk.json index 4024a9231..e9cfce125 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -1935,7 +1935,7 @@ "{days} days remaining": "залишилось {days} днів", "{field} is required": "{field} є обов'язковим", "{filled} of {total} properties filled": "заповнено {filled} з {total} властивостей", - "{from} \\u2014 (no end)": "{from} \\u2014 (без завершення)", + "{from} – (no end)": "{from} – (без завершення)", "{hours} hours ago": "{hours} годин тому", "{min} min ago": "{min} хв тому", "{n} conflicts": "{n} конфліктів", diff --git a/src/views/settings/CaseTypeList.vue b/src/views/settings/CaseTypeList.vue index 01d8c3252..2f0c6b88a 100644 --- a/src/views/settings/CaseTypeList.vue +++ b/src/views/settings/CaseTypeList.vue @@ -197,9 +197,9 @@ export default { month: 'short', year: 'numeric', }) - return `${from} \u2014 ${until}` + return `${from} – ${until}` } - return t('dossiq', '{from} \u2014 (no end)', { from }) + return t('dossiq', '{from} – (no end)', { from }) }, /** diff --git a/tests/l10n/check-l10n.js b/tests/l10n/check-l10n.js index 069e53b59..346f691e4 100644 --- a/tests/l10n/check-l10n.js +++ b/tests/l10n/check-l10n.js @@ -20,9 +20,11 @@ * l10n/nl.json with a non-empty value (and vice versa). Without this, a new * English source string can ship with no Dutch translation and a Dutch-locale * user silently sees the raw English key as fallback text — the gap that - * `nl-locale-coverage-gap-and-dutch-keys` closed. It also WARNS on any new - * translation key whose text reads as Dutch (Dutch-as-key anti-pattern), since - * translation keys MUST be English source per project convention. + * `nl-locale-coverage-gap-and-dutch-keys` closed. It also FAILS on the + * Dutch-as-key anti-pattern: a USED key whose en.json value is identical to its + * nl.json value renders Dutch to an English reader, unless the word is listed in + * tests/l10n/language-neutral-keys.json as genuinely the same in both languages. + * This docblock previously claimed to WARN on that while no such code existed. * * Modes: * (default) check only — exit non-zero if any used key is missing OR the @@ -135,6 +137,11 @@ function unescape (s) { .replace(/\\'/g, "'") .replace(/\\"/g, '"') .replace(/\\`/g, '`') + // \uXXXX must decode, or the key recorded here is not the key t() looks up at + // runtime. `t('dossiq', '{from} \u2014 (no end)')` was extracted as the literal + // backslash-u text, so the catalogue held a key nothing ever requested and all + // 35 translations of it were dead on arrival. + .replace(/\\u([0-9a-fA-F]{4})/g, (_, h) => String.fromCharCode(parseInt(h, 16))) .replace(/\\\\/g, '\\') } @@ -244,6 +251,47 @@ for (const file of manifestFiles) { recordManifestStrings(parsed, file, '') } +// --------------------------------------------------------------------------- +// Dutch-as-key guard (REQ-I18N-04). +// +// A translation key is the ENGLISH SOURCE string. When a Dutch string is used as +// the key, l10n/en.json maps it to itself and an English UI renders Dutch. The +// docblock above claimed this was warned about since `nl-locale-coverage-gap-and- +// dutch-keys`; it never was, and 23 live keys shipped that way: `Commissie` and +// `Bezwaar` as column headers, `Kaartlaag` and `Subsidie` as page titles. +// +// The test is mechanical and needs no language detection. If en.json and nl.json +// hold the SAME value for a used key, the English catalogue offers a reader +// nothing the Dutch one does not. Either the word is the same in both languages, +// or the key is Dutch and untranslated. The first case is finite and listed in +// language-neutral-keys.json; everything else is the anti-pattern. +// +// The fix is NOT to change the key. Changing it orphans every other locale's +// translation of it. Give the Dutch key an English VALUE in l10n/en.json and +// leave the Dutch value in l10n/nl.json, the way 189 entries already do. +// --------------------------------------------------------------------------- +const neutralFile = path.join(ROOT, 'tests', 'l10n', 'language-neutral-keys.json') +const dutchNlFile = path.join(path.dirname(enFile), 'nl.json') +const dutchAsKey = [] +let neutralChecked = false +if (fs.existsSync(dutchNlFile) && fs.existsSync(neutralFile)) { + neutralChecked = true + const nlAll = readJson(dutchNlFile).translations || {} + const neutral = new Set(readJson(neutralFile).keys || []) + for (const key of used.keys()) { + if (neutral.has(key)) { + continue + } + if (Object.hasOwn(translations, key) + && Object.hasOwn(nlAll, key) + && translations[key] === nlAll[key]) { + dutchAsKey.push(key) + } + } +} else if (!fs.existsSync(neutralFile)) { + console.warn(`l10n-check: WARN — ${path.relative(ROOT, neutralFile)} not found; skipping the Dutch-as-key guard`) +} + const missing = [] for (const [key, locations] of used) { if (!Object.hasOwn(translations, key)) { @@ -289,12 +337,16 @@ if (fs.existsSync(nlFile)) { } const parityFail = parityMissingInNl.length > 0 || parityMissingInEn.length > 0 || parityEmptyNl.length > 0 +const dutchFail = dutchAsKey.length > 0 -if (missing.length === 0 && !parityFail) { +if (missing.length === 0 && !parityFail && !dutchFail) { console.log('l10n-check: OK — every used translation key is present in l10n/en.json') if (nlChecked) { console.log('l10n-check: OK — en.json and nl.json key sets match (no missing Dutch translations)') } + if (neutralChecked) { + console.log('l10n-check: OK — no used key renders Dutch to an English reader') + } process.exit(0) } @@ -315,7 +367,7 @@ if (WRITE && missing.length > 0) { + 'Review the diff and translate the nl.json side as needed.') // Fall through to the parity report so --write still surfaces nl gaps, // but never auto-exits 0 while the Dutch side is incomplete. - if (!parityFail) { + if (!parityFail && !dutchFail) { process.exit(0) } } @@ -366,4 +418,18 @@ if (parityFail) { + 'string falls back to the raw English key.') } -process.exit((missing.length > 0 && !WRITE) || parityFail ? 1 : 0) +if (dutchFail) { + console.error(`\nl10n-check: FAIL — ${dutchAsKey.length} used translation key(s) render Dutch to an English reader.`) + console.error('l10n/en.json maps each of these to the very same text l10n/nl.json does, so an English UI shows the Dutch string:') + for (const key of dutchAsKey.sort((a, b) => a.localeCompare(b))) { + console.error(` • ${JSON.stringify(key)}`) + for (const loc of [...used.get(key)].slice(0, 3)) { + console.error(` ${loc}`) + } + } + console.error('\nGive each key an English VALUE in l10n/en.json and keep the Dutch value in l10n/nl.json.') + console.error('Do NOT rename the key: that orphans every other locale\'s translation of it.') + console.error(`If the word really is identical in both languages, add it to ${path.relative(ROOT, neutralFile)}.`) +} + +process.exit((missing.length > 0 && !WRITE) || parityFail || dutchFail ? 1 : 0) diff --git a/tests/l10n/language-neutral-keys.json b/tests/l10n/language-neutral-keys.json new file mode 100644 index 000000000..45223027b --- /dev/null +++ b/tests/l10n/language-neutral-keys.json @@ -0,0 +1,54 @@ +{ + "_comment": [ + "Keys whose English and Dutch renderings are genuinely the same word, so l10n/en.json", + "mapping the key to itself is correct rather than an untranslated Dutch key.", + "check-l10n.js FAILS on any USED key where en.json and nl.json hold the same value and", + "the key is not listed here. That is the Dutch-as-key anti-pattern: the key is Dutch, the", + "English catalogue offers nothing better, and an English UI renders Dutch.", + "Adding an entry here is a claim that a reader of BOTH languages sees the same word.", + "It is not a place to park a Dutch string you have not translated yet: give that string an", + "English value in l10n/en.json instead, keeping the key, the way the other 189 entries do." + ], + "keys": [ + "#", + "1 week", + "Checklist", + "Circuit open", + "Cloud", + "Contact", + "Dashboard", + "Flow", + "Flows", + "HTTP", + "Hit policy", + "Initiator", + "Label", + "Mail", + "Manager", + "OK", + "Partner", + "Process mining", + "Register", + "SLA", + "Score", + "Start", + "Status", + "Status schema", + "Status: {name}", + "Status: {status}", + "Store", + "Subsidies", + "Team", + "Tenant", + "Tenants", + "Trigger", + "Type", + "Urgent", + "Workflow", + "ZGW API Mapping", + "items", + "max {n}", + "{count} items", + "{from} – (no end)" + ] +}