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:
Uso:
Si el valor es largo o descriptivo, utilice una clave clara y semántica, por ejemplo:
|
Evite acrónimos en las claves. |
Esto mejora la claridad para los desarrolladores y traductores y previene la duplicación involuntaria de valores. |
Evite:
Uso:
|
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:
Uso:
|
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:
|
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:
Uso:
|
Evite fragmentos de oración como valores. |
Asegura oraciones gramaticalmente correctas en todos los idiomas. |
Evite:
Usado en conjunto:
Uso:
|
Utilice la interpolación en lugar de la concatenación. |
Asegura oraciones gramaticalmente correctas en todos los idiomas. |
Evite:
Uso:
|
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:
|
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>
}
|