File tree Expand file tree Collapse file tree 3 files changed +110
-2
lines changed
Expand file tree Collapse file tree 3 files changed +110
-2
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
77## [ Unreleased]
8+ ### Added
9+ - Added new language constants from January 2026 API release of 81 new languages.
810
911## [ 1.28.0] - 2026-02-05
1012### Changed
Original file line number Diff line number Diff line change @@ -250,42 +250,133 @@ def __str__(self):
250250 @staticmethod
251251 def remove_regional_variant (language : Union [str , "Language" ]) -> str :
252252 """Removes the regional variant from a language, e.g. EN-US gives EN"""
253- return str (language ).upper ()[0 :2 ]
254-
253+ dash_index = str (language ).find ("-" )
254+ if dash_index != - 1 :
255+ return str (language ).upper ()[0 :dash_index ]
256+ else :
257+ return str (language ).upper ()
258+
259+ ACEHNESE = "ace"
260+ AFRIKAANS = "af"
261+ ARAGONESE = "an"
255262 ARABIC = "ar"
263+ ASSAMESE = "as"
264+ AYMARA = "ay"
265+ AZERBAIJANI = "az"
266+ BASHKIR = "ba"
267+ BELARUSIAN = "be"
256268 BULGARIAN = "bg"
269+ BHOJPURI = "bho"
270+ BENGALI = "bn"
271+ BRETON = "br"
272+ BOSNIAN = "bs"
273+ CATALAN = "ca"
274+ CEBUANO = "ceb"
275+ KURDISH_SORANI = "ckb"
257276 CZECH = "cs"
277+ WELSH = "cy"
258278 DANISH = "da"
259279 GERMAN = "de"
260280 GREEK = "el"
261281 ENGLISH = "en" # Only usable as a source language
262282 ENGLISH_BRITISH = "en-GB" # Only usable as a target language
263283 ENGLISH_AMERICAN = "en-US" # Only usable as a target language
284+ ESPERANTO = "eo"
264285 SPANISH = "es"
286+ SPANISH_LATIN_AMERICAN = "es-419" # Only usable as a target language
265287 ESTONIAN = "et"
288+ BASQUE = "eu"
289+ PERSIAN = "fa"
266290 FINNISH = "fi"
267291 FRENCH = "fr"
292+ IRISH = "ga"
293+ GALICIAN = "gl"
294+ GUARANI = "gn"
295+ KONKANI = "gom"
296+ GUJARATI = "gu"
297+ HAUSA = "ha"
298+ HEBREW = "he"
299+ HINDI = "hi"
300+ CROATIAN = "hr"
301+ HAITIAN_CREOLE = "ht"
268302 HUNGARIAN = "hu"
303+ ARMENIAN = "hy"
269304 INDONESIAN = "id"
305+ IGBO = "ig"
306+ ICELANDIC = "is"
270307 ITALIAN = "it"
271308 JAPANESE = "ja"
309+ JAVANESE = "jv"
310+ GEORGIAN = "ka"
311+ KAZAKH = "kk"
312+ KURDISH_KURMANJI = "kmr"
272313 KOREAN = "ko"
314+ KYRGYZ = "ky"
315+ LATIN = "la"
316+ LUXEMBOURGISH = "lb"
317+ LOMBARD = "lmo"
318+ LINGALA = "ln"
273319 LITHUANIAN = "lt"
274320 LATVIAN = "lv"
321+ MAITHILI = "mai"
322+ MALAGASY = "mg"
323+ MAORI = "mi"
324+ MACEDONIAN = "mk"
325+ MALAYALAM = "ml"
326+ MONGOLIAN = "mn"
327+ MARATHI = "mr"
328+ MALAY = "ms"
329+ MALTESE = "mt"
330+ BURMESE = "my"
275331 NORWEGIAN = "nb"
332+ NEPALI = "ne"
276333 DUTCH = "nl"
334+ OCCITAN = "oc"
335+ OROMO = "om"
336+ PUNJABI = "pa"
337+ PANGASINAN = "pag"
338+ KAPAMPANGAN = "pam"
277339 POLISH = "pl"
340+ DARI = "prs"
341+ PASHTO = "ps"
278342 PORTUGUESE = "pt" # Only usable as a source language
279343 PORTUGUESE_BRAZILIAN = "pt-BR" # Only usable as a target language
280344 PORTUGUESE_EUROPEAN = "pt-PT" # Only usable as a target language
345+ QUECHUA = "qu"
281346 ROMANIAN = "ro"
282347 RUSSIAN = "ru"
348+ SANSKRIT = "sa"
349+ SICILIAN = "scn"
283350 SLOVAK = "sk"
284351 SLOVENIAN = "sl"
352+ ALBANIAN = "sq"
353+ SERBIAN = "sr"
354+ SESOTHO = "st"
355+ SUNDANESE = "su"
285356 SWEDISH = "sv"
357+ SWAHILI = "sw"
358+ TAMIL = "ta"
359+ TELUGU = "te"
360+ TAJIK = "tg"
361+ THAI = "th"
362+ TURKMEN = "tk"
363+ TAGALOG = "tl"
364+ TSWANA = "tn"
286365 TURKISH = "tr"
366+ TSONGA = "ts"
367+ TATAR = "tt"
287368 UKRAINIAN = "uk"
369+ URDU = "ur"
370+ UZBEK = "uz"
371+ VIETNAMESE = "vi"
372+ WOLOF = "wo"
373+ XHOSA = "xh"
374+ YIDDISH = "yi"
375+ CANTONESE = "yue"
288376 CHINESE = "zh"
377+ CHINESE_SIMPLIFIED = "zh-Hans" # Only usable as a target language
378+ CHINESE_TRADITIONAL = "zh-Hant" # Only usable as a target language
379+ ZULU = "zu"
289380
290381
291382class GlossaryLanguagePair :
Original file line number Diff line number Diff line change @@ -20,6 +20,21 @@ def test_version():
2020 assert "1.28.0" == deepl .__version__
2121
2222
23+ def test_remove_regional_variant ():
24+ for lang , expected in [
25+ ("EN-US" , "EN" ),
26+ ("en-GB" , "EN" ),
27+ ("de-AT" , "DE" ),
28+ (deepl .Language .ENGLISH_AMERICAN , "EN" ),
29+ (deepl .Language .ENGLISH_BRITISH , "EN" ),
30+ (deepl .Language .GERMAN , "DE" ),
31+ (deepl .Language .ACEHNESE , "ACE" ),
32+ (deepl .Language .KURDISH_KURMANJI , "KMR" ),
33+ (deepl .Language .SPANISH_LATIN_AMERICAN , "ES" ),
34+ ]:
35+ assert deepl .Language .remove_regional_variant (lang ) == expected
36+
37+
2338@pytest .mark .parametrize (
2439 "lang" ,
2540 [k for k in example_text .keys ()],
You can’t perform that action at this time.
0 commit comments