diff options
Diffstat (limited to 'raphodo/__init__.py')
-rw-r--r-- | raphodo/__init__.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/raphodo/__init__.py b/raphodo/__init__.py new file mode 100644 index 0000000..5c224e9 --- /dev/null +++ b/raphodo/__init__.py @@ -0,0 +1,59 @@ +# Copyright (C) 2016 Damon Lynch <damonlynch@gmail.com> + +# This file is part of Rapid Photo Downloader. +# +# Rapid Photo Downloader is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Rapid Photo Downloader is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Rapid Photo Downloader. If not, +# see <http://www.gnu.org/licenses/>. + +""" +Initialize gettext translations. +""" + +__author__ = 'Damon Lynch' +__copyright__ = "Copyright 2016, Damon Lynch" + +from typing import Optional +import os +import gettext +from xdg import BaseDirectory + + +def locale_directory() -> Optional[str]: + """ + Locate locale directory. Prioritizes whatever is newer, comparing the locale + directory at xdg_data_home and the one in /usr/share/ + + :return: the locale directory with the most recent messages for Rapid Photo + Downloader, if found, else None. + """ + + mo_file = '{}.mo'.format(i18n_domain) + # Test the Spanish file + sample_lang_path = os.path.join('es', 'LC_MESSAGES', mo_file) + locale_mtime = 0.0 + locale_dir = None + + for path in (BaseDirectory.xdg_data_home, '/usr/share'): + locale_path = os.path.join(path, 'locale') + sample_path = os.path.join(locale_path, sample_lang_path) + if os.path.isfile(sample_path) and os.access(sample_path, os.R_OK): + if os.path.getmtime(sample_path) > locale_mtime: + locale_dir = locale_path + return locale_dir + +i18n_domain = 'rapid-photo-downloader' +localedir = locale_directory() + +gettext.bindtextdomain(i18n_domain, localedir=localedir) +gettext.textdomain(i18n_domain)
\ No newline at end of file |