Skip to content
Browse files
Guess locale using locale.getdefaultlocale() (#2795)
* Guess locale using locale.getdefaultlocale()

Signed-off-by: Chris Warrick <>

* Use locale guess only if it’s the same language

* Use default string type for py2/3 compatibility

Signed-off-by: Chris Warrick <>

* Add credit to changelog

[ci skip]

Signed-off-by: Chris Warrick <>
  • Loading branch information
Kwpolska authored and ralsina committed May 24, 2017
1 parent fb06046 commit 938d1052d4f18fa6fb43ec947cd1cb855c77eef0
Showing 2 changed files with 15 additions and 2 deletions.
@@ -16,8 +16,10 @@ Features

* Save dependencies for template hooks properly (using .__doc__ or
.template_registry_identifier for callables)
* Use ``locale.getdefaultlocale()`` for better locale guessing
(credit: @madduck)
* Save dependencies for template hooks properly (using ``.__doc__`` or
``.template_registry_identifier`` for callables)
* Enable larger panorama thumbnails (Issue #2780)
* Disable ``archive_rss`` link handler, which was useless because no
such RSS was ever generated (Issue #2783)
@@ -2817,6 +2817,17 @@ def guess_locale_from_lang_posix(lang):
if is_valid_locale(str(lang)):
locale_n = str(lang)
# Guess using locale.getdefaultlocale()
# str() is the default string type: bytes on py2, unicode on py3
# only that type is accepted by the locale module
locale_n = str('.'.join(locale.getdefaultlocale()))
except (ValueError, TypeError):
# Use guess only if it’s the same language
if not locale_n.startswith(lang.lower()):
locale_n = str()
if not locale_n or not is_valid_locale(locale_n):
# this works in Travis when locale support set by Travis suggestion
locale_n = str((locale.normalize(lang).split('.')[0]) + '.UTF-8')
if not is_valid_locale(locale_n):

0 comments on commit 938d105

Please sign in to comment.