-
Notifications
You must be signed in to change notification settings - Fork 4
Translation process
The translation process is divided with the following steps:
- An author add plugin to the tool (
/plugin) (repository state: waiting) - See Add New Plugin Form - a. The author confirms the activation mail (
/plugin/{name}/activate/{key}) (repository state: initialProcessing)
b. *alternative*: server admin adds plugin directly using `dokuwiki:add` command (repository state: initialProcessing)
-
Get the extension from a Git repository
-
Process the translation files to a local format
-
User creates a new translation (
/translate/plugin/<name>) - See Translation FormResults in TranslationUpdateEntity added with an id and state 'undone' and the translation stored in
[datafolder]/<type>/<name>/updates/<id>.update -
A 5 min cronjob will pick up the pending updates. In that process the translation is transformed to language file and send to the extension author.
Regulary Cronjobs:
-
Every 5 min:
For repositories(>agetoupdate,max updateperrun and <max errors ) perform: Repository->update()
- basepath:
[datafolder]/<type>/<name>e.g.[datafolder]/plugin/indexmenu - create dir if not existing, set lock
- update from remote:
- if repository exists, pull changes and push to fork, else:
- create remote fork (if github)
- create local clone in
[datafolder]/<type>/<name>/repository - if fork or clone fails, delete whole
[datafolder]/<type>/<name>/folder
- if success:
- reset error count and last update time
- if 'initialProcessing' it set repository state to 'active' and sent extension ready mail
- if failed:
- set error and sent error mail
For all TranslationUpdateEntities with state 'undone' perform:
- get its Repository
- create patch and sent it
- make folder
[datafolder]/<type>/<name>/tmp - create local clone in
[datafolder]/<type>/<name>/tmp - get array with LocalText objects from
[datafolder]/<type>/<name>/updates/<id>.update - add for each LocalText a language file to local git
- commit the additions to local git
- remoteadd 'github', branch 'lang_update_', checkout, push to 'github'
- create pull request
- make folder
- if failed:
- set error and set error mail
- remove temporary folder
Finalize by sending all the mail in the spool.
- basepath:
-
At start of every day:
Update info from pluginrepo
Process
- Translation process
- CronJob overview triggers some commands.
- Commands for regular tasks and occasional maintenance
Files
Maintenance/development
- Deploying to Production is done from GitHub
- Development setup
- Maintenance
- Alternative Git interaction when setting up development setup
- Test steps for checking working of the tool
Documentation
- Components of Symphony used for the Tool
- More detail about using Doctrine
- Description working of the Forms