Service/Weblate

< Service
Revision as of 12:55, 4 April 2024 by Chimosky (talk | contribs) (Add weblate workflow script)

Hostnames

Hosted on

Machine/weblate

Administrative contact

  • admin AT weblate DOT sugarlabs DOT org

Sysadmins

For non-emergency calls, preferably send email to the administrative contact.

Notes

User weblate
Home /home/weblate/weblate-docker
Daemon

/etc/init.d/nginx
/etc/init.d/docker

Logs

/var/log/nginx
docker logs weblate-docker-weblate-1

Config

/etc/nginx/sites-enabled/weblate
/home/weblate/weblate-docker/docker-compose.yml

Ports

443 HTTP server
8080 weblate docker container port

Volumes

/var/lib/docker/volumes/weblate-docker_postgres-data
/var/lib/docker/volumes/weblate-docker_redis-data
/var/lib/docker/volumes/weblate-docker_weblate-cache
/var/lib/docker/volumes/weblate-docker_weblate-data

Upgrade Notes

Weblate has upgrade notes on upgrading the docker container.

Maintenance Notes

Weblate is maintained. (ibiam has step-up to be maintainer)

After a restart, make sure to run saslauthd to enable authentication for postfix; saslauthd -a shadow

Files

Important files and directories in the root directory, /home/weblate/weblate-docker.


docker-compose.yml
Contains definitions for all the services and volumes used by weblate, which includes weblate, database and cache with volumes weblate-cache, weblate-data, postgres-data, redis-data. .

environment
Contains environment variables used by container.

Tips

Create new Weblate translation component

  • Create new translation component in Weblate admin menu, Add new translation component;
  • Select Project, we currently have core-sugar and Sugar-Activities, core-sugar contains sugar core APIs.
  • Set version control system to GitHub pull request.
  • Set source code repository link - using https -.
  • Set repository branch.
  • Set File format gettext PO file, File mask po/*.po
  • Set Repository push URL to enable autoupdate of changes to Github from weblate.
  • Set Push branch to weblate-sync which would be used to create a PR.
  • On Github, add hook https://weblate.sugarlabs.org/hooks/github/ to activity repo as it's used for automated flow of updates to weblate.
  • Check license in activity repo matches Translation license selected by weblate or set to the right license.
  • Add all needed langs; when adding from Github, weblate automatically adds all the PO files and you'll only need to do this if the only PO file the activity has is the template PO file.


If an upload is incomplete, return to translation component, then Manage->Repository maintenance->Rescan, this will re-scan the repo and add all the po files.

Synchronization

Weblate automatically pushes changes to Github when there's a change on weblate because of the Github pull request version control above and the Github configuration can be found in the environment file, the hooks configured in the repos make it easy for weblate to pull changes from Github.

Add this workflow to .github/workflows/webalte-sync.yaml in the Github repo;

 name: Weblate - Create PR when weblate pushes changes
 on:
 push:
   branches:
     - weblate-sync
 jobs:
 weblateSync:
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v4
     - name: Create Pull Request
       run: gh pr create --base main --head weblate-sync -t "Weblate Synchronization" --body ""
       env:
         GH_TOKEN: ${\{ github.token }}

This will automatically open a pull-request whenever weblate pushes changes to Github, be sure to drop the \ in GH_TOKEN

References

https://docs.weblate.org/en/latest/admin/install/docker.html#upgrading-the-docker-container