Skip to content
Gerrit Uitslag edited this page Apr 26, 2023 · 4 revisions
  1. Add new plugin [testdomain]/plugin
    • state: waiting
  2. Get activation url from sent mail and use
    • state: initialProcessing
  3. use dokuwiki:updateGit command
    • it creates/update folder for the new repository:
      • if dir not exists, create [datafolder]/<type>/<name>
      • create remote fork (if github) in the account https://github.com/dokuwiki-translate or the test account
      • create local clone in [datafolder]/<type>/<name>/repository
      • if success:
        • reset error count and last update time
        • if initialProcessing it set repository state to active and sent extension ready mail
      • if repository exists, pull changes and push to fork
    • it updates the serialized language data
      • search the respectively language folders
      • retrieve en/ and others
      • process .php and .txt files
      • remove and recreate stats
      • store serialized language data in [datafolder]/<type>/<name>/lang/<langcode>.ser
  4. Ready for translating. Submit a translation.
    • stores TranslationUpdateEntity with id, state:undone, etc
    • stores file with serialized array of LocalText objects in [datafolder]/<type>/<name>/updates/<id>.update
  5. use againdokuwiki:updateGit command, to 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
    • if failed:
      • set error and sent error mail
    • always remove [datafolder]/<type>/<name>/tmp folder
    • always remove the TranslationUpdateEntity with id, etc
    • note: [datafolder]/<type>/<name>/updates/<id>.update is not removed.

Read more!

Process

Files

Maintenance/development

Documentation

Clone this wiki locally