50 lines
1.4 KiB
Python

"""I18n tools."""
from os.path import join
from qgis.PyQt.QtCore import QLocale, QFileInfo
from qgis.PyQt.QtWidgets import QApplication
from qgis.core import QgsSettings
from .resources import resources_path
__copyright__ = "Copyright 2019, 3Liz"
__license__ = "GPL version 3"
__email__ = "info@3liz.org"
__revision__ = "$Format:%H$"
def setup_translation(file_pattern="{}.qm", folder=None):
"""Find the translation file according to locale.
:param file_pattern: Custom file pattern to use to find QM files.
:type file_pattern: basestring
:param folder: Optional folder to look in if it's not the default.
:type folder: basestring
:return: The locale and the file path to the QM file, or None.
:rtype: (basestring, basestring)
"""
locale = QgsSettings().value("locale/userLocale", QLocale().name())
if folder:
ts_file = QFileInfo(join(folder, file_pattern.format(locale)))
else:
ts_file = QFileInfo(resources_path("i18n", file_pattern.format(locale)))
if ts_file.exists():
return locale, ts_file.absoluteFilePath()
if folder:
ts_file = QFileInfo(join(folder, file_pattern.format(locale[0:2])))
else:
ts_file = QFileInfo(resources_path("i18n", file_pattern.format(locale[0:2])))
if ts_file.exists():
return locale, ts_file.absoluteFilePath()
return locale, None
def tr(text, context="@default"):
return QApplication.translate(context, text)