I18NManager.sentences
Esta constante es la encargada de almacenar todos los idiomas y sus respectivos textos a partir de dos diccionarios anidados de tal forma que el primer nivel determina la clave del idioma y el segundo almacena las claves con cada uno de los textos en dicho idioma.
- typejson
- characters582
- lines20
{ "english" : { "text_a" : "This is the text A.", "text_b" : "This is the text B.", "text_c" : "This is the text C.", "text_n" : "This is the text N." }, "espanol" : { "text_a" : "Este es el texto A.", "text_b" : "Este es el texto B.", "text_c" : "Este es el texto C.", "text_n" : "Este es el texto N." }, "galego" : { "text_a" : "Iste é o texto A.", "text_b" : "Iste é o texto B.", "text_c" : "Iste é o texto C.", "text_n" : "Iste é o texto N." } }
Con esta estructura podemos hacer uso de esta constante a partir de la clave que determine el idioma y la clave que determine el texto.
A la hora de crear un JSON con textos para su carga sobre la aplicación AnP, éstos pueden dividir los textos en bloques a partir de claves que empiecen por el nombre de la aplicación o cualquier otra clave la cual los desarrolladores hagan uso, seguido de un guión bajo; y acabar con un guión bajo acompañado de un start si éste se iniciar o bien de un end si éste se cierra o se termina.
- typejson
- characters932
- lines27
{ "espanol" : { "AnP_grupo_a_start" : null, "text_a_1" : "Este es el texto 1 del grupo A.", "text_a_2" : "Este es el texto 2 del grupo A.", "text_a_3" : "Este es el texto 3 del grupo A.", "text_a_n" : "Este es el texto N del grupo A.", "AnP_grupo_a_end" : null, "AnP_grupo_b_start" : null, "text_b_1" : "Este es el texto 1 del grupo B.", "text_b_2" : "Este es el texto 2 del grupo B.", "text_b_3" : "Este es el texto 3 del grupo B.", "text_b_n" : "Este es el texto N del grupo B.", "AnP_grupo_b_end" : null, "AnP_grupo_c_start" : null, "text_c_1" : "Este es el texto 1 del grupo C.", "text_c_2" : "Este es el texto 2 del grupo C.", "text_c_3" : "Este es el texto 3 del grupo C.", "text_c_n" : "Este es el texto N del grupo C.", "AnP_grupo_c_end" : null } }
de esta forma, a la hora de agregar los nuevos textos, los bloques son ignorados para renderizar el diccionario que los almacena. Esta práctica sólo es para permitir una mejor visualización de los textos.
Los textos pueden ser Array de Strings por el hecho de que éstos pueden estar fragmentados en Arrays dentro de un JSON por facilidad de visualización cara el o los desarrolladores. También pueden ser valores nulos cuando éstos no quieren ser especificados o bien, para hacer uso de claves de bloque.
I18NManager.data
Esta constante contiene la información necesaria para poder trabajar los idiomas interactuables desde el propio GUI pues estos parámetros no pueden ser aplicados en sentences puesto que si cambia el idioma, éstos cambiarían en el propio GUI por dicha referencia, por lo que se establece esta nueva constante para dicho fin. Su estructura son dos dicciomarios anidados donde el primer nivel establece el idioma y el segundo los datos pertinentes del mismo.
- typejson
- characters1474
- lines52
{ "english" : { "flag" : [ "{anp_root}/images/flags/english.svg", "https://cdn.k3y.pw/data/images/flags/english.svg" ], "language" : "English", "country" : "Unated Kingdom", "language_code" : "en", "country_code" : "UK" }, "espanol" : { "flag" : [ "{anp_root}/images/flags/espanol.svg", "https://cdn.k3y.pw/data/images/flags/espanol.svg" ], "language" : "Español", "country" : "España", "language_code" : "es", "country_code" : "ES" }, "galego" : { "flag" : [ "{anp_root}/images/flags/galego.svg", "https://cdn.k3y.pw/data/images/flags/galego.svg" ], "language" : "Galego", "country" : "España", "language_code" : "gl", "country_code" : "ES" }, "nihongo" : { "flag" : [ "{anp_root}/images/flags/nihongo.svg", "https://cdn.k3y.pw/data/images/flags/nihongo.svg" ], "language" : "日本語", "country" : "日本", "language_code" : "jp", "country_code" : "JP" }, "russkiy" : { "flag" : [ "{anp_root}/images/flags/russkiy.svg", "https://cdn.k3y.pw/data/images/flags/russkiy.svg" ], "language" : "Pусский", "country" : "Россия", "language_code" : "ru", "country_code" : "RU" } }
Los campos que implementan cada idioma son los siguientes:
- flag: URL (String) o conjunto de URLs Array alternativas donde las primeras tienen prioridad sobre las segundas para garantizar que alguna de las URL cargue correctamente la bandera.
- language: Nombre del idioma en el idioma que represente.
- country: Nombre del país del idioma en el idioma que represente.
- language_code: Determina el código del lenguaje en ISO 3166-1.
- country_code: Determina el código del país en ISO 3166-1.
I18NManager.selected
Esta variable determina la clave del idioma que está seleccionada actualmente en la aplicación AnP, ya sea seleccionada por el usuario o que ésta venga configurada por defecto.
En caso de ser un valor nulo nos indica que éste no está configurado ni seleccionado lo que cuando se va a coger un texto, éste irá con otros parámetros para determinar el idioma o bien, dependerá del orden en el que se constituyan los idiomas dentro del diccionario sentences.
I18NManager.default_language
Esta variable determina la clave del idioma por defecto configurada por el desarrollador.
En caso de ser un valor nulo nos indica que éste no está configurado ni seleccionado lo que cuando se va a coger un texto, éste irá con otros parámetros para determinar el idioma o bien, dependerá del orden en el que se constituyan los idiomas dentro del diccionario sentences.
I18NManager.default_overwrite
Esta variable determina si cuando se añade una nueva clave de texto a un idioma determinado y éste ya existe, si éste es sobreescrito (true) o no (false)
I18NManager.default_overwrite_data
Esta variable determina si cuando se añade una nueva clave de información de idioma orientado al GUI determinado y éste ya existe, si éste es sobreescrito (true) o no (false)
I18NManager.default_text
Esta variable determina el texto por defecto para los casos donde se quiera recoger un texto concreto y éste no se encuentre y no se le halla determinado un texto de respuesta por defecto.