Skip to content

Commit ff7d10a

Browse files
Clean up confusion
1 parent 7e2a564 commit ff7d10a

2 files changed

Lines changed: 10 additions & 14 deletions

File tree

Lib/gettext.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,8 +493,8 @@ def find(domain, localedir=None, languages=None, all=False):
493493
languages = []
494494
if val := os.environ.get('LANGUAGE'):
495495
languages = val.split(':')
496-
elif os.name == 'posix' and (loc := locale.setlocale(locale.LC_MESSAGES)):
497-
languages = loc.split(':')
496+
elif (loc := locale.getlocale()) != (None, None):
497+
languages = [".".join(filter(None, loc))]
498498
else:
499499
for envar in ('LC_ALL', 'LC_MESSAGES', 'LANG'):
500500
val = os.environ.get(envar)

Lib/test/test_gettext.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@ def _for_all_vars(self, mo_file, locale, expected=True):
747747
self.assertIsNone(result)
748748
self.env.unset(var)
749749

750-
@unittest.mock.patch("locale.setlocale", return_value='')
750+
@unittest.mock.patch("locale.getlocale", return_value=(None, None))
751751
def test_find_with_env_vars(self, patch_getlocale):
752752
# test that find correctly finds the environment variables
753753
# when languages are not supplied
@@ -769,30 +769,26 @@ def test_encoding_not_ignored(self, patch_expand_lang):
769769
patch_expand_lang.assert_any_call('ga_IE.UTF-8')
770770
self.env.unset('LANGUAGE')
771771

772-
@unittest.skipIf(os.name != "posix", "LC_MESSAGES is posix only")
773772
def test_find_LANGUAGE_priority(self):
774773
self.env.set('LANGUAGE', 'ga_IE')
775774
self.env.set('LC_ALL', 'pt_BR')
776-
if os.name != "posix":
777-
orig = locale.setlocale(locale.LC_MESSAGES)
778-
self.addCleanup(lambda: locale.setlocale(locale.LC_MESSAGES, orig))
779-
locale.setlocale(locale.LC_MESSAGES, 'pt_BR')
775+
orig = locale.setlocale(locale.LC_ALL)
776+
self.addCleanup(lambda: locale.setlocale(locale.LC_ALL, orig))
777+
locale.setlocale(locale.LC_ALL, 'pt_BR')
780778
mo_file = self.create_mo_file("ga_IE")
781-
782779
result = gettext.find("mofile", localedir=os.path.join(self.tempdir, "locale"))
783780
self.assertEqual(result, mo_file)
784781

785-
@unittest.skipIf(os.name != "posix", "LC_MESSAGES is posix only")
786782
def test_process_vars_override(self):
787-
orig = locale.setlocale(locale.LC_MESSAGES)
788-
self.addCleanup(lambda: locale.setlocale(locale.LC_MESSAGES, orig))
783+
orig = locale.setlocale(locale.LC_ALL)
784+
self.addCleanup(lambda: locale.setlocale(locale.LC_ALL, orig))
789785
mo_file = self.create_mo_file("ca_ES")
790786
for loc in ("ca_ES", "ca_ES.UTF-8", "ca_ES@euro", "ca_ES@valencia"):
791-
locale.setlocale(locale.LC_MESSAGES, loc)
787+
locale.setlocale(locale.LC_ALL, loc)
792788
result = gettext.find("mofile", localedir=os.path.join(self.tempdir, "locale"))
793789
self.assertEqual(mo_file, result)
794790
for loc in ("C", "C.UTF-8"):
795-
locale.setlocale(locale.LC_MESSAGES, loc)
791+
locale.setlocale(locale.LC_ALL, loc)
796792
result = gettext.find("mofile", localedir=os.path.join(self.tempdir, "locale"))
797793
self.assertIsNone(result)
798794

0 commit comments

Comments
 (0)