Difference between revisions of "Crowdsourcing Translations/Developer Documentation"

From GeeklogWiki
Jump to: navigation, search
(Created page with "== 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 i...")
 
Line 15: Line 15:
  
 
==PHP Documentation==
 
==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 <var>
 +
=====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==
 
==JavaScript Documentation==

Revision as of 00:32, 20 September 2013

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: