forked from CEN-RA/Plugin_QGIS
50 lines
1.4 KiB
Python
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)
|