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

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4from __future__ import annotations 

5 

6from typing import TYPE_CHECKING 

7 

8from django.utils.translation import activate, gettext 

9 

10from weblate.lang.models import Language 

11from weblate.utils.management.base import BaseCommand 

12 

13if TYPE_CHECKING: 

14 from django.core.management.base import CommandParser 

15 

16 

17class Command(BaseCommand): 

18 help = "List language definitions" 

19 

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

25 

26 def handle(self, *args, **options) -> None: 

27 """ 

28 Create default set of languages. 

29 

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("|-")