Operational Dashboard Traducción Customisation

Traducciones Predeterminadas

Las traducciones predeterminadas se suministran en el momento de la construcción.

Cada módulo tiene su propio archivo de traducción con alcance, por ejemplo:`i18n/htm/en.json`

Además, existe un archivo de traducción global para términos compartidos o reutilizados con frecuencia:`i18n/en.json`

En tiempo de ejecución, las traducciones globales se fusionan con las traducciones específicas. Todas las claves del archivo global son accesibles bajo el espacio de nombres específico. Si la misma clave existe tanto en el archivo específico como en el global, la traducción específica tiene prioridad.

Las traducciones predeterminadas se pueden encontrar a continuación:

Custom Traducciones

Custom las traducciones pueden ser suministradas en el momento del lanzamiento añadiendo un HOCON archivo en la siguiente ubicación:`config/bizops/i18n/{scope}/{lang}.conf`

Por ejemplo:`config/bizops/i18n/htm/en.conf`

Este archivo puede incluir todas o solo algunas de las traducciones definidas. No es obligatorio proporcionar ninguna.custom traducciones-si el archivo falta, la aplicación utilizará los valores predeterminados.

Nota: para anular un valor de las traducciones globales en un solo módulo, se puede proporcionar en el ámbito. HOCON archivo.

Prácticas recomendadas de traducción

Principio Razón Ejemplo

Utilice camelCase para las claves

El uso consistente de mayúsculas y minúsculas mejora la legibilidad y reduce los errores tipográficos.

Asocie la clave con el valor donde sea posible.

Esto mejora la legibilidad para desarrolladores y traductores, facilita la búsqueda de claves y reduce la posibilidad de valores duplicados no intencionados.

Evite:

title.bankFilteringHomeTitle = "Bank Filtering Rule Settings"

Uso:

title.bankFilteringRuleSettings = "Bank Filtering Rule Settings"

Si el valor es largo o descriptivo, utilice una clave clara y semántica, por ejemplo:

text.noBankFilteringRulesFound ="No bank filtering rules were found for the search criteria"

Evite acrónimos en las claves.

Esto mejora la claridad para los desarrolladores y traductores y previene la duplicación involuntaria de valores.

Evite:

formField.uowId

Uso:

formField.unitOfWorkId

Extraiga los términos compartidos al archivo global.

Evita la duplicación; previene hojas de traducción infladas; mantiene la consistencia entre módulos.

Si un término se utiliza en múltiples módulos, defínalo en el archivo de traducción global. Si en un módulo se necesita un valor diferente, puede ser anulado en una hoja específica.

Evite:

htm.button.confirm = "Confirm"

ods.button.confirm = "Confirm"

processingSettings.button.confirmExcited = "Confirm!"

Uso:

button.confirm = "Confirm"

processingSettings.button.confirm = "Confirm!"

Repita los valores para diferentes contextos

Aclara la intención para los desarrolladores y es esencial para los traductores, ya que, incluso si el mismo valor se repite en inglés, el contexto puede cambiar la gramática o el tono requerido en otro idioma.

Uso:

formField.agentAddress = "Agent Address"

columnHeader.agentAddress = "Agent Address"

heading.agentAddress = "Agent Address"

Evite claves profundamente anidadas

El anidamiento excesivo vincula las claves demasiado estrechamente a la estructura del módulo o componente, lo que hace que la refactorización sea más frágil, limita la reutilización y aumenta el tamaño de los archivos de traducción. En el IPF Operational Dashboard, las claves profundamente anidadas también impiden que las traducciones globales se utilicen de manera efectiva.

Si anidar parece necesario para gestionar la complejidad, generalmente es una señal de que las traducciones deben trasladarse a un ámbito separado.

Evite:

settings.form.agentSettings.user.accountName

Uso:

formField.accountName

Evite fragmentos de oración como valores.

Asegura oraciones gramaticalmente correctas en todos los idiomas.

Evite:

noUserExistsWithThisName = "No user exists with this name"

wouldYouLikeToCreateOne = "would you like to create one?"

Usado en conjunto:

{{ t('noUserExistsWithThisName') }}, {{ t('wouldYouLikeToCreateOne') }}

Uso:

userNotFound = "No user exists with this name, would you like to create one?"

Utilice la interpolación en lugar de la concatenación.

Asegura oraciones gramaticalmente correctas en todos los idiomas.

Evite:

welcome = "Welcome "

toHomePage = "to the home page!"

Uso:

welcomeMessage = "Welcome to the {{page}}!"

Evite acoplar claves a modelos o estructuras de componentes.

Previene dependencias frágiles y difíciles de mantener.

Las claves de traducción deben ser semánticas y agnósticas.- no derivan directamente de la estructura del modelo interno del código. Los campos del modelo pueden cambiar o ser inconsistentes entre módulos, no asuma que son seguros o significativos para i18n.

Evite:

t(model.key)

No utilice claves de traducción para impulsar el diseño o la estructura.

Las traducciones están destinadas únicamente para el contenido textual — no para el diseño o la configuración. Confiar en ellas para la estructura crea un acoplamiento estrecho, lo que puede llevar a un código frágil y a problemas difíciles de diagnosticar cuando ya sea la interfaz de usuario o las traducciones cambian.

Evite:

@for (column of t('versionInfo.versionColumns'); track column) {
    <ng-container matColumnDef="{{ column.name }}">
        <th scope="col" mat-header-cell *matHeaderCellDef>
            {{ column.label }}
        </th>
}

Categorías de Traducción

Todas las traducciones (alcanzadas y globales) se agrupan en las siguientes categorías:

  • navigationItem

  • título

  • encabezado

  • texto

  • columnHeader

  • rowHeader

  • formField

  • tooltip

  • tab

  • botón

  • advertencia

  • error

  • campoDeMetadatos