Crowdsourcing Translations/Developer Documentation
From GeeklogWiki
Contents
What is it?
This is a plugin that allows "crowdsourcing" the translation of Geeklog, i.e. once installed, it allows users to contribute translations of Geeklog's user interface texts for other languages.
This is a being developed by Benjamin Talic as a project during the Google Summer of Code 2013.
Major Design Decisions
- Any logged-in user should be able to contribute a translation
- Users can be blocked from contributing by the Admin
- Ideally, the plugin should also allow translations of plugins (bundled and 3rd party). We'll start with core texts but try to keep things generic, adding plugin support later when possible.
- To be able to find translations on a page at plugin installation pages are mapped into the database, data on which phrases on which pages is saved along with which pages are included in it
- Remote contribution is allowed via a form
- Gamification is added to the plugin
- The plugin is placed on the left side block - the left side block is shown on more pages
PHP Documentation
plugins/crowdtranslator
sql
translations table
Saves the submitted translations
originals table
Saves the original phrase values, changing HTML and PHP code with <tag> and
votes table
Saves data on votes for translations
gems table
'List' of available gems
awarded_gems table
Data on which user got which gem awarded
language_map table
Saves data on which phrases are used on which page and which page is included on it
blocked_users table
A list of users blocked from submitting
remote_credentials table
List of sites allowed to submit translations
JavaScript Documentation
Considerations
- Ideally, translators should be able to see the text strings in context to help with the translation. - implemented
- If that turns out not to be possible, we'll show them without context.
- It's acceptable if the translation option slows things down. If it slows down things noticably, add a "translation mode", so users can decide between using the site normally or helping with the translation. - not necessary
More Resources
Read more about this: