Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
451 lines
14 KiB
JSON
451 lines
14 KiB
JSON
{
|
|
"Mattermost": {
|
|
"target": "Mattermost"
|
|
},
|
|
"Enterprise Edition": {
|
|
"target": "Enterprise Edition",
|
|
"note": "Product name; existing strings occasionally show 'Enterprise editie' but keep the English edition name."
|
|
},
|
|
"Team Edition": {
|
|
"target": "Team Edition"
|
|
},
|
|
"Mattermost Cloud": {
|
|
"target": "Mattermost Cloud"
|
|
},
|
|
"Channels": {
|
|
"target": "Channels",
|
|
"note": "Product name, stays English; the common noun 'channel' is 'kanaal'."
|
|
},
|
|
"Playbooks": {
|
|
"target": "Playbooks"
|
|
},
|
|
"Boards": {
|
|
"target": "Boards"
|
|
},
|
|
"Calls": {
|
|
"target": "Calls"
|
|
},
|
|
"Markdown": {
|
|
"target": "Markdown"
|
|
},
|
|
"OAuth": {
|
|
"target": "OAuth"
|
|
},
|
|
"SAML": {
|
|
"target": "SAML"
|
|
},
|
|
"LDAP": {
|
|
"target": "LDAP",
|
|
"note": "Also AD/LDAP; never translate (product/protocol name)."
|
|
},
|
|
"SSO": {
|
|
"target": "SSO",
|
|
"note": "Render the spelled-out form as 'Single Sign-On (SSO)'; never 'vereenvoudigde authenticatie'."
|
|
},
|
|
"MFA": {
|
|
"target": "MFA"
|
|
},
|
|
"OpenID Connect": {
|
|
"target": "OpenID Connect"
|
|
},
|
|
"Entra ID": {
|
|
"target": "Entra ID"
|
|
},
|
|
"GitLab": {
|
|
"target": "GitLab"
|
|
},
|
|
"Elasticsearch": {
|
|
"target": "Elasticsearch"
|
|
},
|
|
"Gossip": {
|
|
"target": "Gossip",
|
|
"note": "Protocol name; never 'Praatjes'."
|
|
},
|
|
"Actiance XML": {
|
|
"target": "Actiance XML"
|
|
},
|
|
"Global Relay": {
|
|
"target": "Global Relay"
|
|
},
|
|
"System Console": {
|
|
"target": "systeemconsole",
|
|
"note": "Existing strings split 28 vs 18 with 'Systeem console'. Capitalize 'Systeemconsole' when used as a menu or UI-area name."
|
|
},
|
|
"marketplace": {
|
|
"target": "marktplaats",
|
|
"note": "'Plugin Marketplace' = 'Plugin marktplaats'."
|
|
},
|
|
"channel": {
|
|
"target": "kanaal",
|
|
"note": "Plural: kanalen."
|
|
},
|
|
"team": {
|
|
"target": "team",
|
|
"note": "Plural: teams."
|
|
},
|
|
"post": {
|
|
"target": "bericht",
|
|
"note": "'post' is an anglicism. Use 'publiceren' only for system/integration posts, 'versturen' for user messages."
|
|
},
|
|
"message": {
|
|
"target": "bericht",
|
|
"note": "Plural: berichten."
|
|
},
|
|
"thread": {
|
|
"target": "draadje",
|
|
"note": "Consistently 'draadje' (89 of 92 occurrences); plural 'draadjes'. Do not use 'discussie' or keep English."
|
|
},
|
|
"reply": {
|
|
"target": "antwoord",
|
|
"note": "Noun 'antwoord'; verb 'antwoorden'. You 'verzendt' (send) a reply."
|
|
},
|
|
"direct message": {
|
|
"target": "privé-bericht",
|
|
"note": "Existing usage is split between 'privé-bericht' (majority) and 'direct bericht'/'rechtstreeks bericht'. Derived form: 'privé-berichtkanaal'."
|
|
},
|
|
"group message": {
|
|
"target": "groepsbericht",
|
|
"note": "Plural: groepsberichten."
|
|
},
|
|
"mention": {
|
|
"target": "vermelding",
|
|
"note": "Noun 'vermelding' (plural 'vermeldingen'); verb 'vermelden'."
|
|
},
|
|
"notification": {
|
|
"target": "melding",
|
|
"note": "Put 'melding' last in compounds: e-mailmelding, pushmelding, bureaubladmelding. Avoid 'notificatie' (legacy inconsistency)."
|
|
},
|
|
"pin": {
|
|
"target": "vastmaken",
|
|
"note": "Majority 'vastgemaakt(e)' (14 vs 5 for 'vastgezet'); 'pinned messages' = 'vastgemaakte berichten', 'unpin' = 'losmaken'."
|
|
},
|
|
"bookmark": {
|
|
"target": "bladwijzer",
|
|
"note": "Noun; verb phrase 'een bladwijzer toevoegen'. 'Channel bookmark' = 'kanaalbladwijzer'."
|
|
},
|
|
"saved messages": {
|
|
"target": "bewaarde berichten",
|
|
"note": "Verb 'save' in this feature = 'bewaren' (exception to the general 'Opslaan' preference, matches existing UI)."
|
|
},
|
|
"draft": {
|
|
"target": "concept",
|
|
"note": "Majority rendering (19 vs 2 for 'ontwerp'); plural 'concepten'."
|
|
},
|
|
"scheduled post": {
|
|
"target": "gepland bericht",
|
|
"note": "Tab label 'Scheduled' = 'Gepland'; plural 'geplande berichten'."
|
|
},
|
|
"emoji": {
|
|
"target": "emoticon",
|
|
"note": "Majority usage (63 vs 33); 'emoji' also occurs. Plural 'emoticons'."
|
|
},
|
|
"custom emoji": {
|
|
"target": "aangepaste emoticon"
|
|
},
|
|
"reaction": {
|
|
"target": "reactie",
|
|
"note": "Plural 'reacties'; verb 'reageren'. Distinct from a reply ('antwoord')."
|
|
},
|
|
"status": {
|
|
"target": "status"
|
|
},
|
|
"custom status": {
|
|
"target": "aangepaste status"
|
|
},
|
|
"do not disturb": {
|
|
"target": "niet storen",
|
|
"note": "Capitalized 'Niet storen' as a menu item; keep 'DND' abbreviation only in technical contexts."
|
|
},
|
|
"away": {
|
|
"target": "afwezig"
|
|
},
|
|
"online": {
|
|
"target": "online"
|
|
},
|
|
"offline": {
|
|
"target": "offline"
|
|
},
|
|
"out of office": {
|
|
"target": "out of office",
|
|
"note": "Existing UI keeps the English phrase ('Out of office' in webapp/mobile status menus); keep for consistency. 'Afwezig van kantoor' would be the translated alternative."
|
|
},
|
|
"guest": {
|
|
"target": "gast",
|
|
"note": "Both 'gast' and 'gastgebruiker' are in use; 'gastgebruiker' appears in admin screens. Use 'gast' in short UI labels and 'gastgebruiker' when disambiguation from a visitor is needed."
|
|
},
|
|
"member": {
|
|
"target": "lid",
|
|
"note": "Plural 'leden'; 'channel member' = 'kanaallid', 'team member' = 'teamlid'."
|
|
},
|
|
"user": {
|
|
"target": "gebruiker",
|
|
"note": "Plural 'gebruikers'."
|
|
},
|
|
"system admin": {
|
|
"target": "systeembeheerder",
|
|
"note": "Plural 'systeembeheerders'."
|
|
},
|
|
"team admin": {
|
|
"target": "teambeheerder"
|
|
},
|
|
"channel admin": {
|
|
"target": "kanaalbeheerder"
|
|
},
|
|
"session": {
|
|
"target": "sessie",
|
|
"note": "Plural 'sessies'."
|
|
},
|
|
"sign in": {
|
|
"target": "aanmelden",
|
|
"note": "Use for both 'sign in' and 'log in' (majority; 'inloggen' occurs occasionally). Imperative button: 'Aanmelden'."
|
|
},
|
|
"sign out": {
|
|
"target": "afmelden",
|
|
"note": "Use for both 'sign out' and 'log out' ('Log Out' = 'Afmelden')."
|
|
},
|
|
"join": {
|
|
"target": "lid worden",
|
|
"note": "For channels/teams: 'lid worden (van)'. For calls use 'deelnemen (aan)'."
|
|
},
|
|
"leave": {
|
|
"target": "verlaten"
|
|
},
|
|
"archive": {
|
|
"target": "archiveren",
|
|
"note": "Past participle 'gearchiveerd'."
|
|
},
|
|
"unarchive": {
|
|
"target": "dearchiveren",
|
|
"note": "Existing UI buttons use 'Dearchiveren'; the system message uses 'haalde het kanaal terug uit het archief' — both acceptable, prefer 'dearchiveren' in labels."
|
|
},
|
|
"mute": {
|
|
"target": "dempen",
|
|
"note": "For channel notifications; 'unmute' = 'niet langer dempen' (webapp) / 'dempen uitschakelen' (calls)."
|
|
},
|
|
"follow": {
|
|
"target": "volgen",
|
|
"note": "'Following' state label = 'Volgend'."
|
|
},
|
|
"unfollow": {
|
|
"target": "niet langer volgen"
|
|
},
|
|
"favorite": {
|
|
"target": "favoriet",
|
|
"note": "Noun/adjective 'favoriet' (plural 'Favorieten' for the sidebar category); verb 'markeren als favoriet', 'unfavorite' = 'verwijderen uit favorieten'."
|
|
},
|
|
"search": {
|
|
"target": "zoeken",
|
|
"note": "Verb/label 'zoeken'; noun (a search) 'zoekopdracht'."
|
|
},
|
|
"integration": {
|
|
"target": "integratie",
|
|
"note": "Plural 'integraties'."
|
|
},
|
|
"slash command": {
|
|
"target": "slash-opdracht",
|
|
"note": "Existing usage is inconsistent: slashopdracht, slash-opdracht (majority, 15 vs 9), slash-commando."
|
|
},
|
|
"webhook": {
|
|
"target": "webhook",
|
|
"note": "Kept in English; plural 'webhooks'."
|
|
},
|
|
"incoming webhook": {
|
|
"target": "inkomende webhook"
|
|
},
|
|
"outgoing webhook": {
|
|
"target": "uitgaande webhook"
|
|
},
|
|
"trigger word": {
|
|
"target": "triggerwoord",
|
|
"note": "Existing usage is inconsistent: 'activeer-woord', 'trigger woord'."
|
|
},
|
|
"plugin": {
|
|
"target": "plugin",
|
|
"note": "Kept in English (majority usage); plural 'plugins'."
|
|
},
|
|
"bot": {
|
|
"target": "bot",
|
|
"note": "Keep 'bot'/'BOT'; 'bot account' = 'botaccount'."
|
|
},
|
|
"role": {
|
|
"target": "rol",
|
|
"note": "Plural 'rollen'."
|
|
},
|
|
"permission": {
|
|
"target": "recht",
|
|
"note": "Plural 'rechten'. Avoid 'machtigingen'/'permissies'/'toestemmingen', which appear inconsistently in older strings."
|
|
},
|
|
"scheme": {
|
|
"target": "schema",
|
|
"note": "Permission scheme = '(toestemmings)schema'; existing strings mostly use plain 'schema'. For URL scheme use 'URL-protocol'."
|
|
},
|
|
"license": {
|
|
"target": "licentie"
|
|
},
|
|
"seat": {
|
|
"target": "gebruiker",
|
|
"note": "Billing strings translate 'seats' as 'gebruikers' (e.g. '{num} seats' = '{num} gebruikers'); use 'gebruikerslicentie' only if disambiguation is required."
|
|
},
|
|
"trial": {
|
|
"target": "proefperiode",
|
|
"note": "'Free trial' = 'gratis proefperiode'. Avoid 'probeerversie'/'proefversie' which appear sporadically."
|
|
},
|
|
"workspace": {
|
|
"target": "werkruimte",
|
|
"note": "Majority rendering (78 vs 8 English); plural 'werkruimten'."
|
|
},
|
|
"subscription": {
|
|
"target": "abonnement"
|
|
},
|
|
"deactivate": {
|
|
"target": "deactiveren",
|
|
"note": "Past participle 'gedeactiveerd'."
|
|
},
|
|
"invite": {
|
|
"target": "uitnodigen",
|
|
"note": "Verb 'uitnodigen'; noun 'uitnodiging'."
|
|
},
|
|
"invitation": {
|
|
"target": "uitnodiging",
|
|
"note": "Plural 'uitnodigingen'; e-mail invitations = 'e-mailuitnodigingen' (note the 'e-mail' spelling)."
|
|
},
|
|
"sidebar": {
|
|
"target": "zijbalk"
|
|
},
|
|
"unread": {
|
|
"target": "ongelezen"
|
|
},
|
|
"attachment": {
|
|
"target": "bijlage",
|
|
"note": "Plural 'bijlagen'; verb 'attach' for files = 'toevoegen'/'bijvoegen', 'koppelen' otherwise."
|
|
},
|
|
"public channel": {
|
|
"target": "publiek kanaal",
|
|
"note": "Usage is split between 'publiek kanaal' (majority, 12) and 'openbaar kanaal' (9); standardize on 'publiek kanaal'."
|
|
},
|
|
"private channel": {
|
|
"target": "privé-kanaal",
|
|
"note": "Majority spelling (37 vs 15 for 'privékanaal'); keep the hyphenated form for consistency."
|
|
},
|
|
"shared channel": {
|
|
"target": "gedeeld kanaal",
|
|
"note": "Plural 'gedeelde kanalen'."
|
|
},
|
|
"channel header": {
|
|
"target": "kanaalkoptekst",
|
|
"note": "Existing usage is inconsistent (kanaalkoptekst, hoofding, koptekst, kop); server strings mostly use 'kanaalkoptekst' — standardize on that; avoid the Flemish 'hoofding'."
|
|
},
|
|
"channel purpose": {
|
|
"target": "kanaaldoel",
|
|
"note": "Existing strings consistently use 'doel'/'kanaaldoel'; 'beschrijving' is an alternative in this context."
|
|
},
|
|
"system message": {
|
|
"target": "systeembericht"
|
|
},
|
|
"persistent notification": {
|
|
"target": "blijvende melding",
|
|
"note": "Plural 'blijvende meldingen'."
|
|
},
|
|
"message priority": {
|
|
"target": "berichtprioriteit",
|
|
"note": "Also rendered 'prioriteit van het bericht' in picker headers; use 'berichtprioriteit' as compound term."
|
|
},
|
|
"urgent": {
|
|
"target": "dringend",
|
|
"note": "'urgente meldingen' also occurs in some strings."
|
|
},
|
|
"recap": {
|
|
"target": "samenvatting",
|
|
"note": "Existing recap feature strings use 'samenvatting'; disambiguate as 'AI-samenvatting' only if plain 'samenvatting' is ambiguous in context."
|
|
},
|
|
"agent": {
|
|
"target": "agent",
|
|
"note": "AI feature; 'AI agent' = 'AI-agent', plural 'AI-agenten'. Keep product name 'Agents' in English where used as a product."
|
|
},
|
|
"burn-on-read": {
|
|
"target": "verbrand-na-lezen",
|
|
"note": "Webapp UI uses 'verbrand-na-lezen berichten'; some server strings keep English 'burn-on-read' — prefer the Dutch form in user-facing text."
|
|
},
|
|
"magic link": {
|
|
"target": "magische link",
|
|
"note": "Majority rendering; 'Magic Link' kept in English in a few strings — prefer 'magische link'."
|
|
},
|
|
"personal access token": {
|
|
"target": "persoonlijk toegangstoken",
|
|
"note": "'Token' stays untranslated; avoid 'toegangsbewijs', which is not used in product strings."
|
|
},
|
|
"announcement banner": {
|
|
"target": "aankondigingsbanner"
|
|
},
|
|
"channel banner": {
|
|
"target": "kanaalbanner"
|
|
},
|
|
"keyword": {
|
|
"target": "trefwoord",
|
|
"note": "Plural 'trefwoorden'."
|
|
},
|
|
"user group": {
|
|
"target": "gebruikersgroep",
|
|
"note": "Plural 'gebruikersgroepen'; plain 'group' = 'groep'."
|
|
},
|
|
"permalink": {
|
|
"target": "permalink"
|
|
},
|
|
"profile": {
|
|
"target": "profiel",
|
|
"note": "'Profile picture' = 'profielafbeelding' or 'profielfoto'."
|
|
},
|
|
"username": {
|
|
"target": "gebruikersnaam"
|
|
},
|
|
"nickname": {
|
|
"target": "roepnaam",
|
|
"note": "Existing UI uses 'roepnaam'; keep 'Nickname' in AD/LDAP-attribute admin contexts where the technical attribute name is meant."
|
|
},
|
|
"display name": {
|
|
"target": "weergavenaam"
|
|
},
|
|
"collapsed reply threads": {
|
|
"target": "ingeklapte draadjes",
|
|
"note": "Majority mobile rendering; 'ingeklapte antwoorddraadjes' also occurs — prefer the shorter form."
|
|
},
|
|
"auto-translation": {
|
|
"target": "automatische vertaling",
|
|
"note": "Consistent existing rendering; 'AUTO-TRANSLATED' label = 'AUTOMATISCH VERTAALD'."
|
|
},
|
|
"data retention": {
|
|
"target": "gegevensbewaring",
|
|
"note": "'Data retention policy' = 'gegevensbewaarbeleid' (majority); avoid 'dataretentie' which appears sporadically."
|
|
},
|
|
"compliance export": {
|
|
"target": "nalevingsexport",
|
|
"note": "'compliance export' is also kept in English in some strings. 'Beta' contexts render as 'Experimenteel'."
|
|
},
|
|
"access control": {
|
|
"target": "toegangscontrole",
|
|
"note": "'Attribute-based access control (ABAC)' = 'attribuutgebaseerde toegangscontrole (ABAC)'."
|
|
},
|
|
"attribute": {
|
|
"target": "attribuut",
|
|
"note": "Plural 'attributen'; 'kenmerk' also occurs in ABAC strings — prefer 'attribuut' for the profile/access-control field."
|
|
},
|
|
"onboarding": {
|
|
"target": "verwelkoming"
|
|
},
|
|
"Town Square": {
|
|
"target": "Dorpsplein"
|
|
},
|
|
"Off-Topic": {
|
|
"target": "Off-Topic",
|
|
"note": "Existing server translation keeps the English channel name."
|
|
},
|
|
"read-only": {
|
|
"target": "alleen-lezen",
|
|
"note": "Predicative use: 'alleen lezen' ('Kanaal is alleen lezen')."
|
|
},
|
|
"server": {
|
|
"target": "server",
|
|
"note": "Plural 'servers'."
|
|
}
|
|
}
|