Skip to content

Commit

Permalink
Guess locale using locale.getdefaultlocale() (#2795)
Browse files Browse the repository at this point in the history
* Guess locale using locale.getdefaultlocale()

Signed-off-by: Chris Warrick <kwpolska@gmail.com>

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

* Use default string type for py2/3 compatibility

Signed-off-by: Chris Warrick <kwpolska@gmail.com>

* Add credit to changelog

[ci skip]

Signed-off-by: Chris Warrick <kwpolska@gmail.com>
  • Loading branch information
Kwpolska authored and ralsina committed May 24, 2017
1 parent fb06046 commit 938d105
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
6 changes: 4 additions & 2 deletions CHANGES.txt
Expand Up @@ -16,8 +16,10 @@ Features
Bugfixes
--------

* 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)
Expand Down
11 changes: 11 additions & 0 deletions nikola/nikola.py
Expand Up @@ -2817,6 +2817,17 @@ def guess_locale_from_lang_posix(lang):
if is_valid_locale(str(lang)):
locale_n = str(lang)
else:
# Guess using locale.getdefaultlocale()
try:
# 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):
pass
# 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):
Expand Down

0 comments on commit 938d105

Please sign in to comment.