En QGIS 3 en Proyecto|Propiedades del proyecto|Variables encontrará un Global llamado qgis_locale
que puede utilizar para determinar automáticamente la columna utilizada para el etiquetado. Para ello, utilice la siguiente expresión:
eval('"name_' || @qgis_locale || '"')
En @
hace referencia a una variable, la concatenación de cadenas "name_' || @qgis_locale || '"
le dará la columna (aquí: "name_el"
) y eval()
evalúa el nombre de la columna a su valor.
Puesto que en QGIS 2 no existe tal variable, por lo que se podría definir una función personalizada para obtener las dos primeras letras de la configuración regional del usuario ( en
, de
) y utilícela para la expresión que selecciona automáticamente la columna de la que obtener las etiquetas:
"""
Define new functions using @qgsfunction. feature and parent must always be the
last args. Use args=-1 to pass a list of values as arguments
"""
from qgis.core import *
from qgis.gui import *
from PyQt4.QtCore import QSettings
@qgsfunction(args='auto', group='Locale')
def getLocale(feature, parent):
return QSettings().value("locale/userLocale")[0:2]
La expresión cambia entonces a
eval('"name_' || getLocale() || '"')
De este modo, el idioma de las etiquetas del mapa dependerá directamente de la configuración regional del usuario.