Localización de metadatos

Antes de GeoNode 5, las etiquetas para el editor de metadatos se localizaban estáticamente usando archivos gettext() e i18n .po.

Dado que jsonschema tiene un comportamiento mucho más dinámico y permite un esquema personalizado, se necesitaban otras formas de localizar las etiquetas de los campos del esquema.

La idea propuesta/implementada es utilizar una lista de códigos, implementada como un diccionario de sinónimos con un identificador bien conocido labels_i18n donde:

  • Tesauro:
    • identificador = «labels_i18n» (corregido)

    • fecha = última actualización

  • Palabra clave del diccionario de sinónimos:
    • acerca de = anotación explícita de «título», de lo contrario nombre del campo

    • alt_label = Etiqueta predeterminada

  • Etiqueta de palabra clave del diccionario de sinónimos:
    • etiqueta: etiqueta localizada

    • idioma: código de idioma de 2 letras

Para evitar conflictos, las claves de los campos del esquema deben tener el prefijo id del controlador de metadatos («inspire_», «myproject_», …)

La implementación buscará traducciones en el diccionario de sinónimos y luego obtendrá el texto como respaldo.

Procedimiento

El esquema JSON proporciona las anotaciones opcionales «título» y «descripción» para documentar el propósito de un campo.

El editor de metadatos mostrará el «título» como etiqueta del campo y la «descripción», si está presente, como información sobre herramientas.Si el campo título no existe en el esquema, el editor normalmente mostrará el nombre del campo como etiqueta.

SparseHandler buscará las anotaciones título y descripción en el subesquema fuente e intentará localizarlas, utilizando el contenido como clave para los procedimientos de localización.

Como ejemplo, si hay una propiedad llamada pname con un title definido con el contenido tstring:

"pname": {
    "title": "tstring",
    "description": "dstring",
    "type": "...",
    ...
}

El procedimiento de localización del título buscará, en orden,:

  • una palabra clave del diccionario de sinónimos con about = "pname__ovr" con el idioma correspondiente

  • una palabra clave del diccionario de sinónimos con about = "tstring"

  • una entrada getText con la clave tstring

y el primer resultado devuelto se utiliza como reemplazo de la anotación «título».El valor getText se utiliza como alternativa de todos modos, ya que devuelve la clave buscada si no se encuentra ninguna entrada.

Para la localización de la descripción, se realizarán pasos similares;Aunque la clave principal será ligeramente diferente;estos son los pasos:

  • una palabra clave del diccionario de sinónimos con about = "pname__descr__ovr" con el idioma correspondiente

  • una palabra clave del diccionario de sinónimos con about = "dstring"

  • una entrada getText con la clave dstring

Anulación de etiquetas

El mecanismo __ovr se ha agregado como una forma de personalizar localmente las etiquetas de los campos estándar.

Al no tener elementos __ovr en el tesauro de etiqueta oficial, no habrá conflictos clave cuando se cambie el contenido del tesauro oficial, por lo que una actualización de GeoNode y sus vocabularios dejará intacta la personalización local.También tenga en cuenta que los tesauros se pueden volcar parcialmente, para poder volcar solo claves con un prefijo o sufijo determinado.

La clave ThesaurusKeyword (about) se basa en el nombre de la propiedad (con el sufijo __ovr), de modo que simplemente inspeccionando el jsonschema de salida el administrador podrá crear la etiqueta primordial relacionada.

Tenga en cuenta que las anulaciones se basan en el idioma, por lo que puede anular la etiqueta de un idioma específico y dejar el otro idioma sin modificar.Esto también significa que nunca se utilizará la etiqueta predeterminada ni la palabra clave del diccionario de sinónimos anulada.

Localización simple

La localización estándar prevé el uso de una palabra clave de sinónimos con about = "tstring".Si no se encuentra la traducción en el idioma solicitado, se utilizará la etiqueta predeterminada.

Retroceder

getText se utiliza como alternativa para los campos base para los cuales ya se proporcionó la localización.De esta manera, la instalación principal de GeoNode no requiere el diccionario de sinónimos labels_i18n, lo que permite una transición fluida hacia este nuevo procedimiento de localización.

Título y descripción implícitos

Si la anotación título no está presente en el subesquema, el motor de metadatos de GeoNode buscará una cadena localizada que tenga una clave igual al nombre de la propiedad.Si se encuentra, la anotación título se agregará automáticamente.

"pname": {
    "type": "...",
    ...
}

De manera similar al procedimiento anterior, se buscan estas claves:

  • una palabra clave del diccionario de sinónimos con about = "pname__ovr" con el idioma correspondiente

  • una palabra clave del diccionario de sinónimos con about = "pname"

Si se encuentra alguno de estos dos valores, la anotación título se agregará automáticamente con el contenido encontrado.

De la misma forma, si no se declara la anotación descripción, se buscarán estas claves:

  • una palabra clave del diccionario de sinónimos con about = "pname__descr__ovr" con el idioma correspondiente

  • una palabra clave del diccionario de sinónimos con about = "pname__descr"