Importante

La traducción es un esfuerzo comunitario puede unirse. Esta página está actualmente traducida en |progreso de traducción|.

5. Localización

La interfaz de usuario de QGIS está disponible en varios idiomas.

Una opción global en la configuración permite anular el idioma de la interfaz de usuario que se detectó automáticamente desde el sistema operativo.

The representation of numbers, currency and dates varies according to the country and it is also overridable in the settings.

Otra opción en la configuración permite definir si se debe usar el separador numérico de miles.

All these features are implemented through the QLocale QT class which provides a very complete support for numeric and date types representation.

Para que este sistema funcione, se deben seguir cuidadosamente algunas reglas al mostrar valores numéricos en la interfaz de usuario de QGIS y al convertir la entrada del usuario en variables integrales o de punto flotante.

5.1. Convertir números en cadenas

Para las cadenas que se imprimen en la pantalla y son visibles para los usuarios, no use QString::number() porque no tiene en cuenta las opciones de configuración regional y siempre usa la configuración regional C.

Also do not use string interpolation unless you use the L suffix as explained in QString documentation.

Utilice QLocale().toString() en su lugar.

Ejemplo:

const QString localizedNumber = QLocale().toString( 1234.56 );
// localizedNumber will be:  1,234.56 using english or "C" locale
//                           1.234,56 using italian locale
//                            1234.56 using english or "C" locale without thousands separator
//                            1234,56 using italian locale without thousands separator

Advertencia

Una notable excepción a esta regla es la generación de cadenas que se pasarán a aplicaciones externas o secuencias de comandos que esperan representación de números C (punto como separador decimal y sin separador de miles). QString::number() debe usarse en esta situación.

5.2. Conversión de cadenas de entrada del usuario en números

Cuando conviertas cadenas de entrada del usuario a números no utilices QVariant::toDouble(), QString::toDouble() u otros métodos ::toDouble() disponibles en las clases QT porque estos métodos ignoran la configuración regional. La misma consideración se aplica a los tipos integrales y a los métodos ::toInt() o ::toLongLong().

En esta situación se pueden utilizar QLocale().toDouble() o QLocale().toInt() y los demás métodos de conversión QLocale().

Como una mejor alternativa, la API de QGIS proporciona algunas clases que deben usarse para la entrada de usuario numérica de coma flotante:

QgsDoubleSpinBox displays the number according to user locale and settings and it validates the user input using QgsDoubleValidator.

La clase del validador es tolerante e intentará interpretar la entrada comprobando primero la configuración regional del usuario y recurriendo a la configuración regional C si no hay ninguna coincidencia.

La recomendación general es utilizar QgsDoubleSpinBox para todas las E/S de tipos de coma flotante siempre que sea posible porque está muy bien probado y valida la entrada correctamente. Como alternativa es posible utilizar la clase QgsDoubleValidator independientemente sobre una cadena obtenida de otro widget (por ejemplo, un simple widget QLineEdit).