* Format the admin console exact-time tooltip as one message The tooltip spliced a translated "at" into a moment format string, so a locale that needs no connecting word had no way to say so: "" falls back to the English, and zh-CN had settled on " ". It is now a single message formatting the date and time for the reader's locale, and translators can reorder or drop the connecting word. Each existing translation of "at" is carried into the new message as it rendered before; ja's was untranslated English and is left to fall back. * Remove the whitespace-only server translations 438 entries across es, fr, it and ja held " " in place of a full English sentence, mostly error messages. go-i18n renders that as-is, so the user saw a blank message where a missing id would at least have fallen back to English. Removed with `mmgotool i18n clean-empty`. * Report a blank translation the way a missing one is reported Both runtimes treat an empty translation as missing: react-intl falls back to the English, and go-i18n returns the id. A whitespace-only one is worse: it renders, and the user sees nothing. Both checkers now report either as a missing key, under the same --warn-missing-keys / --warn-missing-ids flags, and `mmgotool i18n clean-empty` removes both. clean-empty also now writes the two-space indent the catalogs use. * Correct the connecting word in six exact-time translations The carried-over "at" was wrong in ko, pl, ru, nl, tr and zh-TW: Korean attaches 에 to the date, Polish, Russian and Dutch take o, в and om before a clock time, and Turkish "zaman" and the spaced zh-TW 於 read as noise, so both drop the word as zh-CN already does.
Tools
This directory aims to provide a set of tools that simplify and enhance various development tasks. This README file serves as a guide to help you understand the directory, features of these tools, and how to get started using it. This is a collection of utilities and scripts designed to streamline common development tasks for Mattermost. These tools aim to help automate repetitive tasks and improve productivity.
Included tools
- mattermost-govet: custom Go vet analyzers enforcing Mattermost-specific code conventions (structured logging, error handling, SQL safety, etc.). Used by
make vetin the server. - mmgotool: is a CLI to help with i18n related checks for the mattermost/server development.
- sharedchannel-test: integration test tool that validates shared channel synchronization (posts, reactions, membership) between two real Mattermost server instances.
Installation & Usage
mmgotool
To install mmgotool, simply run the following command: go install github.com/mattermost/mattermost/tools/mmgotool
Make sure you have the necessary prerequisites such as Go compiler.
mmgotool i18n has following subcommands described below:
check: Check translationscheck-empty-src: Check for empty translation source stringsclean-empty: Clean empty translationsextract: Extract translations
sharedchannel-test
Stands up two Mattermost Enterprise instances, creates a remote cluster connection, and runs integration tests for shared channel synchronization (membership, posts, reactions).
Prerequisites:
make start-docker(Postgres and friends running)- Enterprise repo present at
../../enterprise - An enterprise license file
Usage:
# Managed mode (builds server, starts/stops both instances automatically)
cd tools/sharedchannel-test
go run . --license /path/to/license.mattermost-license --server-dir ../../server
# External mode (connect to already-running instances)
go run . --license /path/to/license.mattermost-license --manage=false \
--server-a http://localhost:9065 --server-b http://localhost:9066