* Restore eight dropped locales as (Experimental) languages
Brings back the webapp and server catalogs for Danish, Czech, Croatian,
Lithuanian, Norwegian Bokmål, Portuguese (Portugal), Finnish and Belarusian
exactly as they stood before e9379690d5 removed them, and wires them in as
ordinary supported locales: the webapp languages map, the generated
imports.ts, and the server's supportedLocales list.
These were the catalogs with a real human-translated foundation (60-93% of
the user-facing strings for the first five, 20-31% for hr/fi/pt). Danish is
offered without a tag; the rest are labelled (Experimental) in the picker.
The EnableExperimentalLocales setting is not reinstated.
The catalogs are restored verbatim here; syncing them to today's en.json and
filling the remaining strings follow in separate commits.
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Sync the restored catalogs to en.json and clear strings that fail the checkers
Runs the translate-i18n sync (apply_translations.mjs with no payload) over the
eight restored catalogs: every id en.json no longer has is pruned, and every
id they lack is seeded as "" so the gap is a value the worklists can read.
The strings that fail check_icu.mjs or mmgotool i18n verify -- 209 webapp
strings that drop or invent a variable, demote a plural, or do not parse, and
11 server strings with a stale template token or an empty or unused plural
category -- are reset to "" so the translation pass rewrites them rather than
shipping a string that throws at runtime.
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Describe the 17 webapp strings that had no translator description
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Fill the Danish catalogs and add the Danish glossary
Translates the 1,155 webapp and 358 server strings the restored da catalogs
lacked, following the translate-i18n skill: a Danish glossary derived from
the majority renderings already in the catalog, per-chunk validation with
the skill's validator (ICU parse, variable and tag parity, plural
categories, the apostrophe trap), then apply_translations.mjs.
Both catalogs are now complete and pass check_icu.mjs and
mmgotool i18n verify.
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Add glossaries for the seven experimental locales and translate their first 700 strings each
Each locale's glossary carries the 122 shared terms with targets derived from
the majority rendering already in that catalog, and notes recording the
inconsistent alternates and known mistranslations that a translation pass
must not propagate.
The webapp translations are the first two validated chunks per locale
(admin console strings, which sort first in en.json); the rest follow.
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,050 more Croatian webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 2,100 more Finnish webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Czech webapp catalog (1,716 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 350 Czech server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,050 more Norwegian Bokmål webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 2,185 more Lithuanian webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Belarusian webapp catalog and translate 700 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 4,200 more European Portuguese webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Czech server catalog (650 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Belarusian server catalog (175 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 2,100 more Finnish webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 2,100 more Croatian webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 700 more Lithuanian webapp strings and 1,050 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Lithuanian webapp catalog and translate 350 more server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Norwegian Bokmål webapp catalog and translate 700 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the European Portuguese webapp catalog and translate 700 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,400 more Finnish webapp strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 350 more Lithuanian server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 700 more European Portuguese server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 350 more Finnish webapp strings and 287 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Finnish webapp catalog and translate 700 more server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 2,095 more Norwegian Bokmål server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,320 more Lithuanian server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,373 more Croatian webapp strings and 1,400 server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Norwegian Bokmål server catalog (700 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the European Portuguese server catalog (2,007 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Lithuanian server catalog (350 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Croatian webapp catalog (350 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,050 more Finnish server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Finnish server catalog (350 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Translate 1,750 more Croatian server strings
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Finish the Croatian server catalog (225 strings)
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Retranslate 24 restored Finnish server strings that had dropped their template tokens
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Retranslate 8 restored Belarusian server strings that lacked required plural branches or tokens
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Retranslate 10 restored Czech server strings that lacked required plural branches or tokens
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Use a genuinely unsupported locale in the display settings fallback test
The test used 'cs' as its example of an unsupported locale; Czech is
supported again now that the experimental locales are restored, so the
fallback assertions failed. Use a junk locale code instead, matching
the server-side TestFixInvalidLocales.
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
* Prune stale i18n key from restored locales and document new languages
* Treat extra locale keys as warnings in i18n verification
* Label alpha and beta languages in display options docs
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.
Deploy Mattermost on-premises, or try it for free in the cloud.
Learn more about the following use cases with Mattermost:
Other useful resources:
- Download and Install Mattermost - Install, setup, and configure your own Mattermost instance.
- Product documentation - Learn how to run a Mattermost instance and take advantage of all the features.
- Developer documentation - Contribute code to Mattermost or build an integration via APIs, Webhooks, slash commands, Apps, and plugins.
Table of contents
- Install Mattermost
- Native mobile and desktop apps
- Get security bulletins
- Get involved
- Learn more
- License
- Get the latest news
- Contributing
Install Mattermost
- Download and Install Mattermost Self-Hosted - Deploy a Mattermost Self-hosted instance in minutes via Docker, Ubuntu, or tar.
- Get started in the cloud to try Mattermost today.
- Developer machine setup - Follow this guide if you want to write code for Mattermost.
Other install guides:
- Deploy Mattermost on Docker
- Mattermost Omnibus
- Install Mattermost from Tar
- Ubuntu 20.04 LTS
- Kubernetes
- Helm
- More server install guides
Native mobile and desktop apps
In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.
Get security bulletins
Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.
Get involved
- Contribute to Mattermost
- Find "Help Wanted" projects
- Join Developer Discussion on a Mattermost server for contributors
- Get Help With Mattermost
Learn more
- API options - webhooks, slash commands, drivers, and web service
- See who's using Mattermost
- Browse over 700 Mattermost integrations
License
See the LICENSE file for license rights and limitations.
Get the latest news
- X - Follow Mattermost on X, formerly Twitter.
- Blog - Get the latest updates from the Mattermost blog.
- Facebook - Follow Mattermost on Facebook.
- LinkedIn - Follow Mattermost on LinkedIn.
- Email - Subscribe to our newsletter (1 or 2 per month).
- Mattermost - Join the ~contributors channel on the Mattermost Community Server.
- IRC - Join the #matterbridge channel on Freenode (thanks to matterircd).
- YouTube - Subscribe to Mattermost.
Contributing
Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.




