70c1732d78 Bring back eight dropped locales as (Experimental) languages and fill their catalogs (#38944)
* 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>
2026-10-02 22:41:56 +03:00
2018-05-30 10:23:25 -04:00

Mattermost logo

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.

mattermost user interface

Learn more about the following use cases with Mattermost:

Other useful resources:

Table of contents

Install Mattermost

Other 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 Mattermost on Google Play Get Mattermost on the App Store Get Mattermost on Windows PC Get Mattermost on Mac OSX Get Mattermost on 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.

Subscribe here

Get involved

Learn more

License

See the LICENSE file for license rights and limitations.

Get the latest news

Contributing

Small Image

Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.

S
Description
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Readme AGPL-3.0, Apache-2.0
2.6 GiB
0 Stars 3 Watchers 0 Forks
Languages
TypeScript 48.8%
Go 41.7%
JavaScript 5.1%
SCSS 2.3%
HTML 1.4%
Other 0.5%