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:

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:

  1. Metadatos de tablas Dataverse : etiquetas, descripciones, elecciones y vistas de los packs de lenguaje que estén instalados en tu entorno. Tiré con una RetrieveAllEntities llamada por calentamiento.
  2. 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.
  3. 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.