<a id="manage"></a>

# Management commands

#### NOTE
Running management commands under a different user than the one running your
webserver can result in files getting wrong permissions, please check
[Filesystem permissions](https://docs.weblate.org/en/latest/admin/install.md#file-permissions) for more details.

You will find basic management commands (available as `./manage.py` in the Django sources,
or as an extended set in a script called **weblate** installable atop Weblate).

<a id="invoke-manage"></a>

## Invoking management commands

As mentioned before, invocation depends on how you installed Weblate.

If using a Python environment for Weblate, you can either specify the full path to
**weblate**, or activate the Python environment prior to invoking it:

```sh
# Direct invocation
~/weblate-env/bin/weblate

# Activating Python environment adds it to search path
. ~/weblate-env/bin/activate
weblate
```

If you are using source code directly (either from a tarball or Git checkout), the
management script is `./manage.py` available in the Weblate sources.
To run it:

```sh
python ./manage.py list_versions
```

If you’ve installed Weblate using the pip installer, or by using the `./setup.py`
script, the **weblate** is installed to your path (or Python environment path),
from where you can use it to control Weblate:

```sh
weblate list_versions
```

For the Docker image, the script is installed like above, and you can run it
using **docker exec**:

```sh
docker exec --user weblate <container> weblate list_versions
```

For **docker-compose-plugin** the process is similar, you just have to use
**docker compose exec**:

```sh
docker compose exec --user weblate weblate weblate list_versions
```

In case you need to pass it a file, you can temporary add a volume:

```sh
docker compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json
```

#### SEE ALSO
* [Installing using Docker](https://docs.weblate.org/en/latest/admin/install/docker.md)
* [Installing on Debian and Ubuntu](https://docs.weblate.org/en/latest/admin/install/venv-debian.md)
* [Installing on SUSE and openSUSE](https://docs.weblate.org/en/latest/admin/install/venv-suse.md)
* [Installing on RedHat, Fedora and CentOS](https://docs.weblate.org/en/latest/admin/install/venv-redhat.md)
* [Installing from sources](https://docs.weblate.org/en/latest/admin/install/source.md)

## add_suggestions

### weblate add_suggestions <project> <component> <language> <file>

Imports a translation from the file to use as a suggestion for the given translation.
It skips duplicated translations; only different ones are added.

### --author USER@EXAMPLE.COM

E-mail of author for the suggestions. This user has to exist prior to importing
(you can create one in the admin interface if needed).

Example:

```sh
weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po
```

## analyze_translator_work

### weblate analyze_translator_work

Analyzes change history to estimate realistic translator throughput per day.
The command includes only active human users and unit-backed manual translation
changes, and applies daily minimum and maximum thresholds to skip obvious outliers,
bots, bulk imports, uploads, and other events that would pollute the result.

### --days DAYS

Number of recent days to analyze when `--since` is not specified.

### --since YYYY-MM-DD

Start date for the analysis.

### --until YYYY-MM-DD

End date for the analysis.

### --project PROJECT

Limit the analysis to a project slug.

### --component PROJECT/COMPONENT

Limit the analysis to a component.

### --language LANGUAGE

Limit the analysis to a language code.

### --min-changes COUNT

Minimum translated strings per user day to include.

### --max-changes COUNT

Maximum translated strings per user day to include.

### --max-words COUNT

Maximum translated source words per user day to include.

Example:

```sh
weblate analyze_translator_work --project weblate --since 2026-01-01
```

## auto_translate

### weblate auto_translate <project> <component> <language>

#### Versionchanged
Changed in version 4.6: Added parameter for translation mode.

Performs automatic translation based on other component translations.

### --source PROJECT/COMPONENT

Specifies the component to use as source available for translation.
If not specified all components in the project are used.

### --user USERNAME

Specify username listed as author of the translations.
“Anonymous user” is used if not specified.

### --overwrite

Whether to overwrite existing translations.

### --inconsistent

Whether to overwrite existing translations that are inconsistent (see
[Inconsistent](https://docs.weblate.org/en/latest/user/checks.md#check-inconsistent)).

### --add

Automatically add language if a given translation does not exist.

### --mt MT

Use machine translation instead of other components as machine translations.

### --threshold THRESHOLD

Similarity threshold for machine translation, defaults to 80.

### --mode MODE

Specify translation mode, default is `translate` but `fuzzy` or `suggest`
can be used.

Example:

```sh
weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs
```

#### SEE ALSO
[Automatic translation](https://docs.weblate.org/en/latest/user/translating.md#auto-translation)

<a id="backup-management-command"></a>

## backup

### weblate backup

Runs configured backups synchronously, without using Celery. It first updates
the settings and database backup dumps in [`DATA_DIR`](https://docs.weblate.org/en/latest/admin/config.md#std-setting-DATA_DIR), then runs the
selected Borg backup service or services.

### --list

Lists configured backup service IDs.

### --service ID

Runs one backup service by ID.

### --all

Runs all enabled backup services.

Use Django’s standard `--verbosity 2` option to show backup service output.
Failed backup service output is shown even without increased verbosity.

Examples:

```sh
weblate backup --list
weblate backup --service 1 --verbosity 2
weblate backup --all
```

For Docker Compose deployments, you can stop the regular Weblate container and
run the command in a one-off container using **docker compose run**. The
database and configured backup storage still need to be available.

```sh
docker compose stop weblate
docker compose run --rm --user weblate weblate weblate backup --list
docker compose run --rm --user weblate weblate weblate backup --service 1 --verbosity 2
```

#### SEE ALSO
[Automated backup using BorgBackup](https://docs.weblate.org/en/latest/admin/backup.md#automated-backup)

## benchmark

### weblate benchmark

Imports given content into Weblate, useful for benchmarking.

```sh
# Run benchmark with a profiling
python -m cProfile -o benchmark.prof ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Convert to SVG for visualization
uvx gprof2dot -f pstats benchmark.prof | dot -Tsvg -o benchmark.svg

# Display SVG
firefox ./benchmark.svg
```

```sh
# Run benchmark under memray
uvx memray run ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Render the profile
uvx memray flamegraph ./memray-manage.py.2554179.bin

# Display it
fixefox memray-flamegraph-manage.py.2554179.html
```

## billing_demo

### weblate billing_demo

#### Versionadded
Added in version 5.15.

Creates a demo billing project. Can be executed multiple times to add
additional invoices and billing events.

This can be useful when developing Weblate. Needs [Billing](https://docs.weblate.org/en/latest/admin/optionals.md#billing) installed.

#### SEE ALSO
* [`import_demo`](#weblate-admin-import_demo)
* [Bootstrapping your devel instance](https://docs.weblate.org/en/latest/contributing/start.md#devel-demo)

## celery_queues

### weblate celery_queues

Displays length of Celery task queues.

#### SEE ALSO
[Background tasks internals](https://docs.weblate.org/en/latest/contributing/internals.md#background-tasks-internals)

## checkgit

### weblate checkgit <project|project/component>

Prints current state of the back-end Git repository.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

## commitgit

### weblate commitgit <project|project/component>

Commits any possible pending changes to the back-end Git repository.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components,
or use `--file-format` to filter based on the file format.

## commit_pending

### weblate commit_pending <project|project/component>

Commits pending changes older than a given age.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

### --age HOURS

Age in hours for committing. If not specified the value configured in
[Component configuration](https://docs.weblate.org/en/latest/admin/projects.md#component) is used.

#### NOTE
This is automatically performed in the background by Weblate, so there no
real need to invoke this manually, besides forcing an earlier commit than
specified by [Component configuration](https://docs.weblate.org/en/latest/admin/projects.md#component).

#### SEE ALSO
* [Running maintenance tasks](https://docs.weblate.org/en/latest/admin/install.md#production-cron)
* [`COMMIT_PENDING_HOURS`](https://docs.weblate.org/en/latest/admin/config.md#std-setting-COMMIT_PENDING_HOURS)

## cleanuptrans

### weblate cleanuptrans

Cleans up orphaned checks and translation suggestions. There is normally no need to run this
manually, as the cleanups happen automatically in the background.

#### SEE ALSO
[Running maintenance tasks](https://docs.weblate.org/en/latest/admin/install.md#production-cron)

## cleanup_memory

### weblate cleanup_memory

#### Versionadded
Added in version 5.13.

Removes all obsolete entries with pending status from the translation memory.

## cleanup_ssh_keys

### weblate cleanup_ssh_keys

#### Versionadded
Added in version 4.9.1.

Performs cleanup of stored SSH host keys:

* Removes deprecated RSA keys for GitHub which might cause issues connecting to GitHub.
* Removes duplicate entries in host keys.

#### SEE ALSO
[SSH repositories](https://docs.weblate.org/en/latest/vcs.md#ssh-repos)

## createadmin

### weblate createadmin

Creates an `admin` account with a random password, unless it is specified.

### --password PASSWORD

Provides a password on the command-line, to not generate a random one.

### --no-password

Do not set password, this can be useful with –update.

### --username USERNAME

Use the given name instead of `admin`.

### --email USER@EXAMPLE.COM

Specify the admin e-mail address.

### --name

Specify the admin name (visible).

### --update

Update the existing user (you can use this to change passwords).

## dump_memory

### weblate dump_memory

Export a JSON file containing Weblate Translation Memory content.

#### SEE ALSO
* [Translation Memory](https://docs.weblate.org/en/latest/admin/memory.md#translation-memory)
* [Weblate Translation Memory Schema](https://docs.weblate.org/en/latest/contributing/schemas.md#schema-memory)

## dumpuserdata

### weblate dumpuserdata <file.json>

Dumps userdata to a file for later use by [`importuserdata`](#weblate-admin-importuserdata).

#### HINT
This comes in handy when migrating or merging Weblate instances.

## import_demo

### weblate import_demo

#### Versionadded
Added in version 4.1.

Creates a demo project with components based on <[https://github.com/WeblateOrg/demo](https://github.com/WeblateOrg/demo)>.
Make sure the celery tasks are running before running this command.

This can be useful when developing Weblate.

### --delete

Removes existing demo project.

#### SEE ALSO
* [`billing_demo`](#weblate-admin-billing_demo)
* [Bootstrapping your devel instance](https://docs.weblate.org/en/latest/contributing/start.md#devel-demo)

## import_json

### weblate import_json <json-file>

Batch import of components based on JSON data.

The imported JSON file structure pretty much corresponds to the component
object (see [`GET /api/components/(string:project)/(string:component)/`](https://docs.weblate.org/en/latest/api.md#get--api-components-(string-project)-(string-component)-)).
You have to include the `name` and `filemask` fields.

### --project PROJECT

Specifies where the components will be imported from.

### --main-component COMPONENT

Use the given VCS repository from this component for all of them.

### --ignore

Skip (already) imported components.

### --update

Update (already) imported components.

Example of JSON file:

```json
[
  {
    "slug": "po",
    "name": "Gettext PO",
    "file_format": "po",
    "filemask": "po/*.po",
    "new_lang": "none"
  },
  {
    "name": "Android",
    "filemask": "android/values-*/strings.xml",
    "template": "android/values/strings.xml",
    "repo": "weblate://test/test",
    "file_format": "aresource"
  }
]
```

#### SEE ALSO
[`import_memory`](#weblate-admin-import_memory)

## import_memory

### weblate import_memory <file>

Imports a file into the Weblate translation memory.

Supported file formats are TMX, JSON, XLIFF, PO, CSV.

Specifying a source and a target languages might be necessary
for formats other than JSON and TMX.

### --language-map LANGMAP

Allows mapping languages in the TMX to the Weblate translation memory.
The language codes are mapped after normalization usually done by Weblate.

`--language-map en_US:en` will for example import all `en_US` strings
as `en` ones.

This can be useful in case your TMX file locales happen not to match what you
use in Weblate.

### --source-language SOURCE_LANG

Specifies the source language for imported translations. Typically needed for formats
where the languages cannot be determined from the file itself.

### --target-language TARGET_LANG

Specifies the target language for imported translations. Typically needed for formats
where the languages cannot be determined from the file itself.

#### SEE ALSO
* [Translation Memory](https://docs.weblate.org/en/latest/admin/memory.md#translation-memory)
* [Weblate Translation Memory Schema](https://docs.weblate.org/en/latest/contributing/schemas.md#schema-memory)

## import_project

### weblate import_project <project> <gitrepo> <branch> <filemask>

Batch imports components into project based on the file mask. It is based on
the [Component discovery](https://docs.weblate.org/en/latest/admin/addons.md#addon-weblate-discovery-discovery) add-on, so you might want to use
that instead.

<project> names an existing project, into which the components are to
be imported.

The <gitrepo> defines the Git repository URL to use, and <branch> signifies the
Git branch.
To import additional translation components from an existing Weblate component,
use a weblate://<project>/<component> URL for the <gitrepo>.

The <filemask> defines file discovery for the repository. It can be either
be made simple using wildcards, or it can use the full power of regular expressions.

The simple matching uses `**` for component name and `*` for language, for
example: `**/*.po`

The regular expression has to contain groups named component and language,
for example: `(?P<language>[^/]*)/(?P<component>[^-/]*)\.po`.

The import matches existing components based on files and adds the ones that
do not exist. It does not change already existing ones.

### --name-template TEMPLATE

Customize the name of a component using Django template syntax.

For example: `Documentation: {{ component }}`

### --base-file-template TEMPLATE

Customize the base file for monolingual translations.

For example: `{{ component }}/res/values/string.xml`

### --new-base-template TEMPLATE

Customize the base file for addition of new translations.

For example: `{{ component }}/ts/en.ts`

### --file-format FORMAT

You can also specify the file format to use (see [Localization file formats](https://docs.weblate.org/en/latest/formats.md#formats)), the default
is auto-detection.

### --language-regex REGEX

You can specify language filtering (see [Component configuration](https://docs.weblate.org/en/latest/admin/projects.md#component)) with this
parameter. It has to be a valid regular expression.

### --main-component

You can specify which component will be chosen as the main one—the one actually
containing the VCS repository.

### --license NAME

Specify the overall, project or component translation license.

### --license-url URL

Specify the URL where the translation license is to be found.

### --vcs NAME

In case you need to specify which version control system to use, you can do it
here. The default version control is Git.

To give you some examples, let’s try importing two projects.

First The Debian Handbook translations, where each language has
separate a folder with the translations of each chapter:

```sh
weblate import_project \
    debian-handbook \
    https://salsa.debian.org/hertzog/debian-handbook.git \
    bullseye/main \
    '*/**.po'
```

Then the Tanaguru tool, where the file format needs be specified,
along with the base file template, and how all components and translations
are located in single folder:

```sh
weblate import_project \
    --file-format=properties \
    --base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
    tanaguru \
    https://github.com/Tanaguru/Tanaguru \
    master \
    web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties
```

More complex example of parsing of filenames to get the correct component and
language out of a filename like
`src/security/Numerous_security_holes_in_0.10.1.de.po`:

```sh
weblate import_project \
    tails \
    git://git.tails.boum.org/tails master \
    'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'
```

Filtering only translations in a chosen language:

```sh
./manage import_project \
    --language-regex '^(cs|sk)$' \
    weblate \
    https://github.com/WeblateOrg/weblate.git \
    'weblate/locale/*/LC_MESSAGES/**.po'
```

Importing Sphinx documentation split to multiple files:

```console
$ weblate import_project --name-template 'Documentation: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/**.po'
```

Importing Sphinx documentation split to multiple files and directories:

```console
$ weblate import_project --name-template 'Directory 1: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir2/**.po'
```

#### SEE ALSO
More detailed examples can be found in the [Starting with internationalization](https://docs.weblate.org/en/latest/devel/starting.md#starting) chapter,
alternatively you might want to use [`import_json`](#weblate-admin-import_json).

## import_projectbackup

### weblate import_projectbackup <project_name> <project_slug> <username> <filename>

#### Versionadded
Added in version 5.10.

Imports [Project level backups](https://docs.weblate.org/en/latest/admin/backup.md#projectbackup).

#### HINT
Usually it is more comfortable to import project when [Adding translation projects and components](https://docs.weblate.org/en/latest/admin/projects.md#adding-projects).

## importuserdata

### weblate importuserdata <file.json>

Imports user data from a file created by [`dumpuserdata`](#weblate-admin-dumpuserdata).

## importusers

### weblate importusers --check <file.json>

Imports users from JSON dump of the Django auth_users database.

### --check

With this option it will just check whether a given file can be imported and
report possible conflicts arising from usernames or e-mails.

You can dump users from the existing Django site using:

```sh
./manage.py dumpdata auth.User > users.json
```

#### HINT
Use [`dumpuserdata`](#weblate-admin-dumpuserdata) for dumping data from other Weblate server as that includes user settings as well.

#### SEE ALSO
[Migrating from Pootle](https://docs.weblate.org/en/latest/admin/upgrade.md#pootle-migration)

## install_addon

### weblate install_addon --addon ADDON <project|project/component>

Installs an add-on to a set of components.

### --addon ADDON

Name of the add-on to install. For example `weblate.gettext.customize`.

### --configuration CONFIG

JSON encoded configuration of an add-on.

### --update

Update the existing add-on configuration.

You can either define which project or component to install the add-on in (for example
`weblate/application`), or use `--all` to include all existing components.

To install [Generate MO files](https://docs.weblate.org/en/latest/admin/addons.md#addon-weblate-gettext-mo) for all components:

```shell
weblate install_addon --addon weblate.gettext.mo --configuration '{"fuzzy": true}' --update --all
```

#### SEE ALSO
[Add-ons](https://docs.weblate.org/en/latest/admin/addons.md)

## install_machinery

#### Versionadded
Added in version 4.18.

### weblate install_machinery --service SERVICE

Installs a site-wide automatic suggestion service.

### --service SERVICE

Name of the service to install. For example `deepl`.

### --configuration CONFIG

JSON encoded configuration of a service.

### --update

Update the existing service configuration.

To install [DeepL](https://docs.weblate.org/en/latest/admin/machine.md#mt-deepl):

```shell
weblate install_machinery --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/"}' --update
```

#### SEE ALSO
[Automatic suggestions](https://docs.weblate.org/en/latest/admin/machine.md)

## list_addons

### weblate list_addons

Lists add-ons in reStructuredText as a template for [Add-ons](https://docs.weblate.org/en/latest/admin/addons.md).

### --sections {events,addons,parameters}

Filter the generated output to just the add-on event sections, the built-in
add-on sections, or the shared add-on parameter sections. If omitted, all
generated sections are shown.

#### SEE ALSO
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md)

## list_automation

### weblate list_automation

Generates the [automation reference](https://docs.weblate.org/en/latest/admin/automation.md) from the workflow
JSON Schema, including action names, parameters, and introduction versions.
With `--output`, replaces generated blocks while preserving manual descriptions
and cookbook examples outside those blocks.

## list_permissions

### weblate list_permissions

Lists permissions in reStructuredText as a template for [Access control](https://docs.weblate.org/en/latest/admin/access.md).

#### SEE ALSO
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md)

## list_checks

### weblate list_checks

Lists quality checks in reStructuredText as a template for [Checks and fixups](https://docs.weblate.org/en/latest/admin/checks.md) and [Checks and fixups](https://docs.weblate.org/en/latest/user/checks.md).

### --sections {checks,flags}

Filter the generated output to just the quality check sections or the
shared check flag sections. If omitted, all generated sections are shown.

#### NOTE
Using `--output` requires selecting exactly one value in `--sections` so
each generated snippet is written to its own file. This matches the
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md) workflow and the `make -C docs
update-docs` targets.

#### SEE ALSO
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md)

## list_languages

### weblate list_languages <locale>

Lists supported languages in MediaWiki markup - language codes, English names
and localized names.

This is used to generate <[https://www.l10n.cz/wiki/Slovn%C3%ADky/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF/](https://www.l10n.cz/wiki/Slovn%C3%ADky/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF/)>.

## list_machinery

### weblate list_machinery

Lists automatic suggestions services in reStructuredText as a template for [Automatic suggestions](https://docs.weblate.org/en/latest/admin/machine.md).

#### SEE ALSO
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md)

## list_notification_config

### weblate list_notification_config

Lists notification scopes, frequencies and handlers in reStructuredText as a template for [Configuration](https://docs.weblate.org/en/latest/admin/config.md).

#### SEE ALSO
[Contribute to Weblate documentation](https://docs.weblate.org/en/latest/contributing/documentation.md)

## list_translators

### weblate list_translators <project|project/component>

Lists translators by contributed language for the given project:

```text
[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
```

### --language-code

List names by language code instead of language name.

You can either define which project or component to use (for example
`weblate/application`), or use `--all` to list translators from all existing
components.

## list_versions

### weblate list_versions

Lists all Weblate dependencies and their versions.

## list_file_format_params

### weblate list_file_format_params

Lists File format parameters.

## list_change_events

### weblate list_change_events

Lists all possible change event types.

## list_format_features

### weblate list_format_features

Generates RST documentation snippets describing the supported features for every file format.

The command generates one file for every format, that can be found in the specified output directory.

### --output PATH

Directory where the format feature snippets will be written.

#### NOTE
The generated documentation files are meant to be included in documentation sources such as [Localization file formats](https://docs.weblate.org/en/latest/formats.md). See also `weblate/formats/management/commands/list_format_features.py` for customization and merging logic.

## loadpo

### weblate loadpo <project|project/component>

Reloads translations from disk (for example in case you have done some updates in the VCS
repository).

### --force

Force update, even if the files should be up-to-date.

### --lang LANGUAGE

Limit processing to a single language.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### NOTE
You seldom need to invoke this, Weblate will automatically load changed
files for every VCS update. This is needed in case you manually changed an
underlying Weblate VCS repository or in some special cases following an upgrade.

## lock_translation

### weblate lock_translation <project|project/component>

Prevents further translation of a component.

#### HINT
Useful in case you want to do some maintenance on the underlying repository.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### SEE ALSO
[`unlock_translation`](#weblate-admin-unlock_translation)

## metrics

### weblate metrics

Outputs the server metrics exposed by [`GET /api/metrics/`](https://docs.weblate.org/en/latest/api.md#get--api-metrics-).

### --format FORMAT

Selects the output format. Supported formats are `json`, `csv`, and
`openmetrics`. The default is `json`.

## migrate

### weblate migrate

Migrates database to current Weblate schema. The command line options are
described at Django [`migrate`](https://docs.djangoproject.com/en/stable/ref/django-admin/#django-admin-migrate).

#### HINT
In case you want to run an installation non interactively, you can use
`weblate migrate --noinput`, and then create an admin user using
[`createadmin`](#weblate-admin-createadmin) command.

#### SEE ALSO
* [`migrate`](https://docs.djangoproject.com/en/stable/ref/django-admin/#django-admin-migrate)
* [Filling up the database](https://docs.weblate.org/en/latest/admin/install.md#tables-setup)

## move_language

### weblate move_language source target

Allows you to merge language content. This is useful when updating to a new
version which contains aliases for previously unknown languages that have been
created with the `(generated)` suffix. It moves all content from the source
language to the target one.

If both languages have a translation in the same component, or different
workflow settings or font overrides for the same scope, the move is skipped
without changing either language. Resolve the reported conflict before retrying.
Identical workflow settings and font overrides are consolidated. Automatic
language updates use the same checks and continue with other languages when a
move is skipped.

Example:

```sh
weblate move_language cze cs
```

After moving the content, you should check whether there is anything left (this is
subject to race conditions when somebody updates the repository meanwhile) and
remove the `(generated)` language.

## pushgit

### weblate pushgit <project|project/component>

Pushes committed changes to the upstream VCS repository.

### --force-commit

Force commits any pending changes, prior to pushing.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### NOTE
Weblate pushes changes automatically if [Push on commit](https://docs.weblate.org/en/latest/admin/projects.md#component-push-on-commit) in
[Component configuration](https://docs.weblate.org/en/latest/admin/projects.md#component) is turned on, which is the default.

## refresh_github_repositories

### weblate refresh_github_repositories

#### Versionadded
Added in version 2026.10.1.

Refreshes the repository list of all connected GitHub accounts and retargets
components whose repository was renamed or transferred on GitHub.

#### SEE ALSO
[App webhook URL](https://docs.weblate.org/en/latest/admin/code-hosting.md#code-hosting-github-app-webhook)

## unlock_translation

### weblate unlock_translation <project|project/component>

Unlocks a given component, making it available for translation.

#### HINT
Useful in case you want to do some maintenance on the underlying repository.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### SEE ALSO
[`lock_translation`](#weblate-admin-lock_translation)

## setupgroups

### weblate setupgroups

Configures default groups and optionally assigns all users to that default group.

### --no-privs-update

Turns off automatic updating of existing groups (only adds new ones).

### --no-projects-update

Prevents automatic updates of groups for existing projects. This allows adding newly
added groups to existing projects, see [Project access control](https://docs.weblate.org/en/latest/admin/access.md#acl).

#### SEE ALSO
[List of privileges](https://docs.weblate.org/en/latest/admin/access.md#privileges)

## setuplang

### weblate setuplang

Updates list of defined languages in Weblate.

### --no-update

Turns off automatic updates of existing languages (only adds new ones).

## updatechecks

### weblate updatechecks <project|project/component>

Updates all checks for all strings.

#### HINT
Useful for upgrades which do major changes to checks.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### NOTE
Checks are recalculated regularly by Weblate in the background, the frequency
can be configured via [`BACKGROUND_TASKS`](https://docs.weblate.org/en/latest/admin/config.md#std-setting-BACKGROUND_TASKS).

## updategit

### weblate updategit <project|project/component>

Fetches remote VCS repositories and updates the internal cache.

You can either define which project or component to update (for example
`weblate/application`), or use `--all` to update all existing components.

#### NOTE
Usually it is better to configure hooks in the repository to trigger
[Notification hooks](https://docs.weblate.org/en/latest/api.md#hooks), instead of regular triggering the updates by [`updategit`](#weblate-admin-updategit).
