Volunteer:Development
From Gospel Translations
The scoop on what we use, and projects we need help tackling.
Software
Gospel Translations relies on a few basic pieces of software to run smoothly.
MediaWiki is our wiki engine, and is the same software used by Wikipedia. It was chosen for it's proven scalability, excellent support for multiple languages, and it's easy extensibility. The fact that it has such excellent community support was also a big factor when we chose it. MediaWiki runs on PHP and MySQL.
DabbleDB is our online database provider, helping us keep information about all of our publishers, articles, volunteers, and translations organized in one central place. Better still, it has good API support, so we've been able to tie the data their directly into wiki articles--when you visit a page and see the blue box listing Author, Translator, and so forth (see example), you are seeing MediaWiki and DabbleDB work together.
Project: Multiple wiki automation
Goal: to have a separate wiki for every language we support
Requirements:
- Code base written in PHP
- For each language X, copy over every X article from this English wiki to a target wiki, http://X.gospeltranslations.org
Technical process
This is the basic process that could be used to accomplish the multi-wiki setup and updates. There are some underlying techniques not spelled out here, so feel free to ask questions if something isn't connecting for you.
- [working] Cronjob imports up-to-date info DabbleDB database and stores it in local PHP array (see structure)
- [unassigned] Automating bot (how to make one)
- reads local PHP array to find all entries for language X
- for each entry, gets translated title off of the English wiki (i.e., for Gospel_Implications/es, it finds the title Consecuencias del evangelio)
- for each entry, creates a page on the target wiki, i.e., http://fr.gospeltranslations.org/wiki/ENTRY_TRANSLATED_TITLE
- on each page created, writes in transclusion code:
{{:gt_en:ENTRY_ENGLISH_NAME}}
- [working] Non-English wiki uses transclusion code to pull article text from English wiki. For example, the code
{{:gt_en:Gospel_Implications/es}}
will grab the entire article text from Gospel_Implications/es
Obviously, what is missing from the functionality right now is a working automation bot.