From my experience with testing Message bundles, one of the biggest inconveniences was creating the bundle page, setting its content model, and naming it.
The content model has to be "Translatable message bundle". As far as I can see, there is no way to create a page that has this content model by default. Any page that is created as wikitext can be changed to "Translatable message bundle", although if the page is blank or if the JSON syntax is invalid, changing the content model will fail with the error "Invalid message bundle: Error while parsing the JSON: Syntax error". It's good that this validation exists, but it would be even better if editors could create it as JSON from the start and then use the JSON editor's own validation.
Furthermore, there is the issue of naming the page. The best naming practice I can think of at the moment, with the current configuration, is to put the message bundle in the Module namespace and to append a standardized suffix. I've been using "/i18n" till now, but it can be something else. However, if a page is created in the Module namespace, its initial content model is "Scribunto module", so the page cannot even be published because valid JSON is not valid Lua, and the Lua editor doesn't allow publishing pages with Lua syntax errors.
The workaround I've been using till now is to create the page in my user space, change its content model, and then move it to the Module namespace. This workaround is quite cumbersome, however,
The solutions I can think of are:
- Automatically set the "Translatable message bundle" content model on new pages in the Module namespace if they have a certain suffix (can be "/i18n" or something else).
- Create a new namespace for message bundles and set new pages in it to "Translatable message bundle" by default.
I'm open to other suggestions.