Administration

Administration of Weblate is done through standard Django admin interface, which is available under /admin/ URL.

Adding new resources

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:

  • GNU Gettext
  • XLIFF
  • Java properties
  • Windows RC files
  • Qt Linguist .ts
  • Symbian localization files
  • CSV
  • INI

Project

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

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.

Updating repositories

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):

*.po merge=merge-gettext-po

Примечание

This merge driver assumes the changes in POT files always are done in brach we’re trying to merge.

Interacting with others

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

Access control

Weblate uses privileges system based on Django. It defines following extra privileges:

  • Can upload translation
  • Can overwrite with translation upload
  • Can save translation
  • Can accept suggestion
  • Can accept suggestion

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.