L10n Roadmap for MeeGo
Localization is vital for MeeGo. Both Moblin and Maemo have identified this by running processes, where feedback was collected on what's needed to establish a good Localization workflow which will ensure that the software and devices will be shipped in as many languages and as high of quality as possible. To do this, a vibrant community needs to be built with the necessary tools to work efficiently and effectively.
Both projects have decided to use Transifex for translations, which gives us the base to make some assumptions and see what we need to improve. What follows is an aggregated, combined list of the requests collected from both projects about what they'd like to see to ensure the above.
This list is intended to serve as a starting point for a discussion on what needs to be done in a timeframe of, for example, 8-10 months.
Establish a hosting platform for MeeGo Translations
- If MeeGo L10n will be hosted on Transifex.net, we need to develop support for Project Hubs, subdomain redirection (meego.transifex.net), theming, and a Hub dashboard (see qt.gitorious.org for an example).
- Make sure we connected with all necessary backend systems (gitorious, vcs.meego.com, etc.).
- Migrate projects from translate.moblin.org, users, and registered what's missing. Same for Maemo projects.
Technical features needed
- Support for QT files (.ts) v3.0 which introduces multiple variants of translations for different screen sizes. The support should go from statistics to Lotte itself.
- PO files using logical IDs used in Fremantle. Logical IDs are used by Nokia internal software like, for example, the media player. Transifex needs to preserve these and make sure they work properly.
- Better backend support (API improvements) to hook-up with build services, etc. This will help issue automatic builds e.g. right after the translator deadline is finished, or 2 days before it (to review translations, whether they look OK on the screen and in the context).
- Needs to support 1:n translations (needs more discussion). They will be used in Maemo 6 to provided strings with different length (e.g. portrait/landscape orientation). The number of variants may vary from language to language. Not sure exactly what's needed here.
- Split distribution specific strings from upstream PO files.
Translator workflow improvements
- Better reviews: The Reviews should happen on a string-level and not on file-level. A reviewer needs to see what has changed, be able to comment on specific strings etc. Right now the reviewing is pretty naive (you just upload a file similar to a bug report).
- Ability to start a new language (copy the POT file or an existing PO to a new one) from the UI, i.e. avoid to download it and re-upload it. Very useful for e.g. translate Brazilian Portuguese by cloning Portuguese.
- UI improvements (lots of them): Improve usability, predictability, speed. Sounds like a nice GsoC project as well.
- Translation prioritization: What is important? What is urgent? If I have two hours, what should I translate? This is very important – every translator is asking for this, although we rarely push its priority high enough.
- Inline aspell-like spell checking in web editor. It's a pity to not do this automatically since there are tools to do it.
- Release “string-freezes” and “translation deadlines”. Provide a nice calender with the collected release dates (important for translators to prioritize their work).
- Ability to report problems on strings to the developer, add comments on the string for other translators etc. If a translator gets an answer about what the string means, he should be able to annotate in Transifex and let everyone know.
- Auto-modify the PO file headers with the name of the translator, the last-translated field, copyright notice etc. Translators could properly be credited in the package/application.
- Uploads should be able to also merge with the file on the server: either with the existing file or with other stable branches. If it.po exists on Component1 but not on Component2, take c2.it = msgmerge(c1.it, c2.pot).
- Translate Offline with Lotte OR integration with an offline tool (eg. Poedit). So many people could translate on the train or in their free time. Also, since we're on it: Create a mobile version of the site, optimized for mobile devices?
- Translation memory, suggestions, fuzzy matching. Pre-load other BSD-licensed projects and pre-fill the memory.
- Glossary/Terminology: Ensure consistency. Generate a glossary for your language from existing translations.
- Allow searching of existing translations. Now it's done in the same PO File. We need to search across the whole Project.
- Translate from inside an emulator UI. Requires API changes and building the necessary SDK/IDE UI. Max-length for strings and other attributes could also be defined to have an easier implementation.
- Catch common translation errors between source and translated string, like punctuation, quotes, both strings start with capital letter, etc.
- Lock selected languages for certain projects (requested by Maemo, for example because this language for this project is being handled by another entity).
- Good documentation for everyone: Developers: How to write good strings, What to avoid when writing strings (positional arguments, ...). Translators: Translation best practices / common pitfalls, How to test your translations on the device, how to translate package names.
- OpenID support to authenticate using meego.com
- Signing a CLA: Show a license page, which translators have to agree to commit there translations.
- User-to-user messaging: It is vital to have a communication system inside the L10n platform, to comment in-line and in-context and avoid having mailing lists.
- Maintainer features to “thank” the translators before a release (collect their names, the number of strings they translated and languages). Useful to create a THANKS or CONTRIBUTORS file.
- Allow a translator to define what he likes translating (tags) and automatically notify him when new projects show up which could use his help.
- Kudos to translators. Something like a karma system maybe?
Add your own ponies here.