Skip to content

Commit f095448

Browse files
Always provide a translated name
1 parent 52bb1ff commit f095448

4 files changed

Lines changed: 19 additions & 2 deletions

File tree

generate.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ def get_project_data(
8484
core_change,
8585
change,
8686
built,
87-
translated_name=languages_built.get(language.code, ''),
87+
translated_name=languages_built.get(language.code)
88+
or translated_names._babel_autonym(language.code)
89+
or '',
8890
contribution_link=contribute.get_contrib_link(language.code, repo),
8991
)
9092

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
babel
12
gitpython
23
urllib3
34
potodo

tests/test_translated_names.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ def test_get_languages(self):
2020
self.assertIn('pl', result)
2121
self.assertIn('zh-cn', result)
2222

23-
self.assertEqual(result.get('en'), None)
2423
self.assertEqual(result.get('pl'), 'polski')
2524
self.assertEqual(result.get('zh-cn'), '简体中文')
2625

26+
def test__babel_autonym(self):
27+
self.assertEqual(translated_names._babel_autonym('en'), 'English')
28+
self.assertEqual(translated_names._babel_autonym('ga'), 'Gaeilge')
29+
2730

2831
if __name__ == '__main__':
2932
unittest.main()

translated_names.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,20 @@
77
import tomllib
88
from collections.abc import Iterator
99

10+
from babel import Locale
11+
from babel.core import UnknownLocaleError
1012
from urllib3 import PoolManager
1113

1214

15+
def _babel_autonym(code: str) -> str | None:
16+
"""Get the translated name for a language code with Babel"""
17+
try:
18+
locale = Locale.parse(code.replace('-', '_'))
19+
return locale.get_display_name(locale)
20+
except (UnknownLocaleError, ValueError):
21+
return None
22+
23+
1324
def get_languages(http: PoolManager) -> Iterator[tuple[str, str]]:
1425
data = http.request(
1526
'GET',

0 commit comments

Comments
 (0)