neocotic/template — Issue #80: Internationalization submission system
Author: neocotic
Created: 2012-03-06 13:26:45+00:00
State: open

Create a system that will allow anyone to submit translations of the i18n messages.

To simplify the translation for potential authors, descriptions should be added to messages and examples should be added to placeholders (where appropriate).

Key points;

* Any technology and/or service can be used to achieve this
* Preferably, create a framework that could be used for other extensions
* Will probably need an area for authors (translate and submit), users (review), and developers (review and manage)
* Could possibly implement voting/veto system to allow collaboration

Information to be captured:

* Author name & email address (which should be added to list of contributors and used when updates are required)
* Both should be validated
* Locale code (selected from a dropdown containing [all support languages](http://code.google.com/chrome/webstore/docs/i18n.html#localeTable).
* Version of the extension that the translation is based on
* Should be [validated](http://code.google.com/chrome/extensions/manifest.html#version)
* JSON generated for all of the translated messages
* Invalid messages (i.e. blank) are excluded from results
* Message descriptions and all placeholders are taken from the source translation and thus should always be in the original language
* Messages and placeholders are sorted alphabetically

Additionally, another system (or feature of this system) is recommended to diff' translations in order to detect what - if any -messages are missing from a submission and that any placeholders that are omitted are highlighted.

A recommended final step for the process is to roughly translate (e.g. using [Google Translate](http://translate.google.com)) for quick-scan checks for malicious submissions. If a single malicious is found the whole translation is rejected and the author is then informed.

Finally, the CSS for the options page and desktop notifications will need to be changed to support different text directions. For example;

``` css
body {
direction: __MSG_@@bidi_dir__;
}
```