Administration of Weblate is done through standard Django admin interface, which is available under /admin/ URL.
All translation resources need to be available as Git repositories and are organized as project/subproject structure.
Weblate supports wide range of translation formats supported by translate toolkit, for example:
To add new resource to translate, you need to create translation project first. The project is sort of shelf, in which real translations are folded. All subprojects in same project share suggestions and dictionary, also the translations are automatically propagated through the all subproject in single project.
Subproject is real resource for translating. You enter Git repository location and file mask which files to translate and Weblate automatically fetches the Git and finds all translated files.
As setup of translation project includes fetching Git repositories, you might want to preseed these, repos are stored in path defined by GIT_ROOT in settings.py in <project>/<subproject> directories.
You should set up some way how backend repositories are updated from their source. You can either use hooks (see Interacting with others) or just regularly run ./manage.py updategit –all.
With Gettext po files, you might be often bitten by conflict in PO file headers. To avoid it, you can use shipped merge driver (scripts/git-merge-gettext-po). To use it just put following configuration to your .gitconfig:
[merge "merge-gettext-po"] name = merge driver for gettext po files driver = /path/to/weblate/scripts/git-merge-gettext-po %O %A %B
And enable it’s use by defining proper attributes in given repository (eg. in .git/info/attribute):
This merge driver assumes the changes in POT files always are done in brach we’re trying to merge.
You can trigger update of underlaying git repository for every subproject by accessing URL /hooks/p/project/subproject/update/.
For GitHub, there is a special URL /hooks/github/, which parses GitHub notifications and updates related projects automatically.
The GitHub notification relies on Git urls you use to be in form git://github.com/owner/repo.git
Weblate uses privileges system based on Django. It defines following extra privileges:
The default setup (after you run ./manage.py setupgroups) consists of single group Users which has all above privileges and all users are automatically added to this group.
To customize this setup, it is recommended to remove privileges from Users group and create additional groups with finer privileges (eg. Translators group, which will be allowed to save translations and manage suggestions) and add selected users to this group. You can do all this from Django admin interface.