Fuentes y anulaciones de localización
Power Portals Pro compone cadenas localizadas a partir de tres fuentes, en orden: metadatos de tablas Dataverse (los paquetes de lenguaje instalados en tu entorno), recursos web de PowerPortalsPro y archivos JSON en disco. Las fuentes posteriores sobrescriben a las anteriores — por lo que cualquier etiqueta, tooltip, opción de elección o nombre de vista que proporcione Dataverse puede ser reemplazado por una entrada JSON en tu proyecto, sin necesidad de ir y venir de ida y vuelta a la solución gestionada. Los mismos archivos JSON también te permiten traducir a culturas; Dataverse no ofrece ningún paquete de idiomas.
Pruébalo en esta web
Esta demo está completamente localizada con estos mismos mecanismos. Utiliza el selector de idioma en el encabezado del sitio para cambiar de cultura y observa las etiquetas, elecciones, fechas y mensajes en directo en toda la página — incluida esta página.
Lo que puedes localizar
Cada superficie traducible en el framework fluye a través de la misma tubería de código, por lo que el mismo archivo JSON puede suministrar, sobrescribir o rellenar huecos para cualquiera de:
- Tablas — nombres de visualización, nombres de colecciones y descripciones
- Columnas — nombres de visualización y descripciones (usados como etiquetas de campos y descripciones emergentes)
- Elecciones — etiquetas y descripciones de opciones tanto para conjuntos de opciones con alcance de tabla como globales
- Columnas booleanas (Sí/No ) — las etiquetas verdadero/falso se localizan igual que las elecciones de conjunto de opciones, por lo que pueden traducirse o anularse por cultura
- Vistas — mostrar nombres y descripciones para las vistas del sistema y personales
- Cadenas de la interfaz de Framework — etiquetas de botones, mensajes de validación, texto de diálogo, grid Chrome y texto de componentes de FluentUI
- Las cadenas de tu aplicación — títulos de página, copias, etiquetas de navegación, cualquier cosa a la que accedas a través
IStringLocalizerde las de ReactuseT()
Consulta la página del localizador de cadenas para la forma del archivo JSON que respalda cada uno de estos casos.
Precedencia de fuentes
En el momento de calentamiento de la caché, el localizador carga desde cada fuente por turno, y el valor no vacío de una fuente posterior reemplaza lo que una fuente anterior proporcionó para la misma clave. El orden es:
- Metadatos de tablas Dataverse : etiquetas, descripciones, elecciones y vistas de los packs de lenguaje que estén instalados en tu entorno. Tiré con una
RetrieveAllEntitiesllamada por calentamiento. - Recursos web de Dataverse — Archivos JSON almacenados en Dataverse bajo el
/PowerPortalsPro/Localization/prefijo. Útil cuando prefieres enviar traducciones junto a tu solución que junto con el código de tu app. - Archivos JSON en disco — todos los directorios registrados a través
options.AddLocalizationDirectory(...)de . Estos cargan al final, así que ganan.
La consecuencia práctica: suelta un tables.en.json or app.fr.json en tu proyecto, registra la carpeta y cualquier tecla correspondiente anula cualquier valor que Dataverse o el framework proporcione. Se ignora un valor entrante vacío, por lo que un archivo parcial no puede borrar una etiqueta de Dataverse perfectamente válida por omisión.
Cualquier cultura, con o sin paquete de idiomas
El segmento de cultura de un nombre de archivo JSON (app.{culture}.json, tables.{culture}.json, etc.) es autoritativo: el loader no comprueba si Dataverse tiene un paquete de lenguaje para esa cultura antes de respetar el archivo. Nave app.kk.json y el portal servirán al kazajo cuando el usuario lo elija, aunque Dataverse no tenga metadatos kazajos en absoluto. La lista de culturas que anuncia un portal está controlada por ASP.NET Core RequestLocalizationOptions.SupportedCultures, independientemente de lo que ofrezca Dataverse.
Cadenas de interfaz predeterminadas que proporciona el framework
ppp-server.defaults.en.jsonPowerPortalsPro.Web.Server incluye y define las cadenas de corte app.* transversal utilizadas por todo consumidor de frameworks — títulos de páginas, etiquetas de botones, mensajes de validación, diálogos de confirmación, grid chrome, texto de componentes de FluentUI Blazor y similares. Cargado automáticamente por AddPowerPortalsProWebServer(). Si sobrescribes cualquier clave en tu propia app.en.json (o en variantes específicas de cultura como app.fr.json) el cargador preferirá tu valor sobre el predeterminado. El archivo de abajo se refleja en directo desde su proyecto fuente en cada versión de este sitio, por lo que el contenido siempre coincide con la versión del paquete que estás consumiendo.
