Coverage for app/venv/lib/python3.14/site-packages/weblate/lang/management/commands/list_languages.py: 0%
20 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
4from __future__ import annotations
6from typing import TYPE_CHECKING
8from django.utils.translation import activate, gettext
10from weblate.lang.models import Language
11from weblate.utils.management.base import BaseCommand
13if TYPE_CHECKING:
14 from django.core.management.base import CommandParser
17class Command(BaseCommand):
18 help = "List language definitions"
20 def add_arguments(self, parser: CommandParser) -> None:
21 parser.add_argument(
22 "--lower", action="store_true", help="Lowercase translated name"
23 )
24 parser.add_argument("locale", help="Locale for printing")
26 def handle(self, *args, **options) -> None:
27 """
28 Create default set of languages.
30 Optionally updating them to match current shipped definitions.
31 """
32 activate(options["locale"])
33 for language in Language.objects.order():
34 name = gettext(language.name)
35 if options["lower"]:
36 name = name[0].lower() + name[1:]
37 self.stdout.write(f"| {language.code} || {language.name} || {name}")
38 self.stdout.write("|-")