Force an addon translation to be in a given language(s)

svn: r15718
This commit is contained in:
Doug Blank 2010-08-13 03:55:54 +00:00
parent 534fac7b93
commit 99101d2166

View File

@ -197,15 +197,19 @@ def get_localedomain():
"""
return LOCALEDOMAIN
def get_addon_translator(filename=None, domain="addon"):
def get_addon_translator(filename=None, domain="addon", languages=None):
"""
Get a translator for an addon.
filename - filename of a file in directory with full path, or
None to get from running code
domain - the name of the .mo file under the LANG/LC_MESSAGES dir
languages - a list of languages to force
returns - a gettext.translation object
Example:
_ = get_addon_translator(languages=["fr_BE.utf8"]).gettext
The return object has the following properties and methods:
.gettext
.info
@ -226,8 +230,13 @@ def get_addon_translator(filename=None, domain="addon"):
gramps_translator = gettext.translation(LOCALEDOMAIN, LOCALEDIR,
fallback=True)
path = os.path.dirname(os.path.abspath(filename))
addon_translator = gettext.translation(domain, os.path.join(path,"locale"),
fallback=True)
if languages:
addon_translator = gettext.translation(domain, os.path.join(path,"locale"),
languages=languages,
fallback=True)
else:
addon_translator = gettext.translation(domain, os.path.join(path,"locale"),
fallback=True)
gramps_translator.add_fallback(addon_translator)
return gramps_translator # with a language fallback