[UI] Add gettext.ngettext to __builtin__.__dict__

Handle plurality with getttext using ngettext. Added to
__builtin__.__dict__ as _n
This commit is contained in:
bendikro 2016-01-17 17:13:45 +01:00 committed by Calum Lind
parent 891209d925
commit 1e183a3258
4 changed files with 13 additions and 5 deletions

View File

@ -254,7 +254,7 @@ dummy-variables-rgx=_$|dummy
# List of additional names supposed to be defined in builtins. Remember that # List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible. # you should avoid to define new builtins when possible.
additional-builtins=_,__request__ additional-builtins=_,_n,__request__
# List of strings which can identify a callback function by name. A callback # List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings. # name must start or end with one of those strings.

View File

@ -22,11 +22,12 @@ log.addHandler(logging.NullHandler()) # Silence: No handlers could be found for
def set_dummy_trans(warn_msg=None): def set_dummy_trans(warn_msg=None):
import __builtin__ import __builtin__
def _func(txt): def _func(*txt):
if warn_msg: if warn_msg:
log.warn("'%s' has been marked for translation, but translation is unavailable.", txt) log.warn("'%s' has been marked for translation, but translation is unavailable.", txt[0])
return txt return txt[0]
__builtin__.__dict__["_"] = _func __builtin__.__dict__["_"] = _func
__builtin__.__dict__["_n"] = _func
def get_translations_path(): def get_translations_path():
@ -111,6 +112,8 @@ def setup_translations(setup_gettext=True, setup_pygtk=False):
gettext.bind_textdomain_codeset(domain, 'UTF-8') gettext.bind_textdomain_codeset(domain, 'UTF-8')
gettext.textdomain(domain) gettext.textdomain(domain)
gettext.install(domain, translations_path, unicode=True) gettext.install(domain, translations_path, unicode=True)
import __builtin__
__builtin__.__dict__["_n"] = gettext.ngettext
except Exception as ex: except Exception as ex:
log.error("Unable to initialize gettext/locale!") log.error("Unable to initialize gettext/locale!")
log.exception(ex) log.exception(ex)

View File

@ -10,6 +10,7 @@
# All configuration values have a default value; values that are commented out # All configuration values have a default value; values that are commented out
# serve to show the default value. # serve to show the default value.
import __builtin__
import os import os
import sys import sys
from datetime import date from datetime import date
@ -21,6 +22,10 @@ try:
except ImportError: except ImportError:
get_version = None get_version = None
# Must add these for autodoc to import packages successully
__builtin__.__dict__["_"] = lambda x: x
__builtin__.__dict__["_n"] = lambda s, p, n: s if n == 1 else p
# If your extensions are in another directory, add it here. If the directory # If your extensions are in another directory, add it here. If the directory
# is relative to the documentation root, use os.path.abspath to make it # is relative to the documentation root, use os.path.abspath to make it
# absolute, like shown here. # absolute, like shown here.

View File

@ -5,7 +5,7 @@
[flake8] [flake8]
max-line-length = 120 max-line-length = 120
builtins = _,__request__ builtins = _,_n,__request__
exclude = .git,.tox,dist,build exclude = .git,.tox,dist,build
[pep8] [pep8]