This repository has been archived by the owner on Mar 13, 2024. It is now read-only.
MM-14860 Localization for client plugins. #2621
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This is a functional, ready to merge, proposal on how webapp side plugin translation could work.
The basic process from the plugin side is to use the new
PluginRegistery.registerTranslations
function to register a callback of the formgetTranslations(locale)
that delivers translations on demand. The plugin is then responsible for providing translations for English, and every language it supports. How to get those translations and if Mattermost the company gets involved is out of the scope of this PR, but it assumes the translation files will live with the plugins.One consequence of not of this method is to avoid the translations causing a "screen flash" when they load in, webapp plugin loading has been made synchronous with the rendering of the root component. ie. The root component will not render until all plugins have performed their initialization. This both solves the problem for translations and prevents plugins from popping in later. However it does raise the possibility of long plugin initialization slowing down the initial load of the webapp.
Ticket Link
https://mattermost.atlassian.net/browse/MM-14860
Related Pull Requests
Demo plugin using this: mattermost/mattermost-plugin-demo#25