commit:     ccb1377a18ce8addb21000b0009e360c2641aa8c
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Fri Nov 13 21:50:22 2015 +0000
Commit:     Arfrever Frehtes Taifersar Arahesis <arfrever <AT> apache <DOT> org>
CommitDate: Fri Nov 13 21:50:22 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=ccb1377a

_emerge.main.emerge_main(): Make locale variables from configuration files 
affect locale of emerge process.

 pym/_emerge/main.py | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index e75bb0a..5a8b93c 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -1072,7 +1072,7 @@ def emerge_main(args=None):
 
        # Use system locale.
        try:
-               locale.setlocale(locale.LC_ALL, '')
+               locale.setlocale(locale.LC_ALL, "")
        except locale.Error as e:
                writemsg_level("setlocale: %s\n" % e, level=logging.WARN)
 
@@ -1144,6 +1144,19 @@ def emerge_main(args=None):
        os.umask(0o22)
        emerge_config = load_emerge_config(
                action=myaction, args=myfiles, opts=myopts)
+
+       # Make locale variables from configuration files (make.defaults, 
make.conf) affect locale of emerge process.
+       for locale_var_name in ("LANGUAGE", "LC_ALL", "LC_ADDRESS", 
"LC_COLLATE", "LC_CTYPE",
+               "LC_IDENTIFICATION", "LC_MEASUREMENT", "LC_MESSAGES", 
"LC_MONETARY",
+               "LC_NAME", "LC_NUMERIC", "LC_PAPER", "LC_TELEPHONE", "LC_TIME", 
"LANG"):
+               locale_var_value = 
emerge_config.running_config.settings.get(locale_var_name)
+               if locale_var_value is not None:
+                       os.environ.setdefault(locale_var_name, locale_var_value)
+       try:
+               locale.setlocale(locale.LC_ALL, "")
+       except locale.Error as e:
+               writemsg_level("setlocale: %s\n" % e, level=logging.WARN)
+
        rval = profile_check(emerge_config.trees, emerge_config.action)
        if rval != os.EX_OK:
                return rval

Reply via email to