Administrador de Localización
PowerPortalsPro incluye un LocalizationAdmin componente — un panel llave en mano, controlado por SystemAdmin, para operar la tubería de localización de cadenas en tiempo de ejecución. Entra <LocalizationAdmin /> en una página con control de roles y un administrador puede ver cómo se configura y construye la caché de localización, reconstruirla sin reiniciar el host, traducir automáticamente los archivos de localización y descargar una instantánea fusionada por cultura. El componente de estructura hace el trabajo pesado; Tu portal proporciona la página, la puerta de rol y el enlace de navegación — la misma división que usa la página de administrador del sitio.
Lo que muestra el panel
LocalizationAdmin Muestra varias secciones, cada una respaldada por los servicios de localización del framework:
- Configuración — Un resumen de solo lectura de cómo está cableado el calentamiento: si todas las tablas disponibles están localizadas o solo son un conjunto configurado, las tablas a localizar, el patrón de ruta de recursos web, los directorios y archivos de localización registrados, y la cultura predeterminada. Estos reflejan los
LocalizationOptionsregistros de tu anfitrión. - Traducir un archivo — Un embebido
LocalizationTranslatorque traduce automáticamente un archivo de localización a otra cultura. Se auto-controla en disponibilidad — no muestra nada cuando no hay ningún proveedor de traducción configurado, ni aparece un prompt de instalación cuando falta la solución gestionada. La página de documentación de Traducción lo cubre por completo. - Inspeccionar y descargar claves fusionadas — Por cada cultura que tenga claves en la caché obtienes dos acciones. Inspect abre un diálogo que lista cada clave fusionada con su valor resuelto y la fuente que la suministró — una cuadrícula redimensionable y ordenable que puedes filtrar por clave, valor o fuente, lo que facilita detectar exactamente de dónde proviene una cadena y qué fuente está sobrescribiendo otra. Download guarda el JSON de localización fusionado para esa cultura — la unión de todos los archivos fuente (metadatos de Dataverse, recursos web y archivos de carpetas) resueltos en un solo archivo — y también está disponible desde el cuadro de diálogo de inspección.
- Fuentes — Una cuadrícula con los registros de carga por fuente del calentamiento más reciente, en orden de carga — incluyendo cuántas claves aportó cada fuente y cuántas de ellas anularon un valor anterior. La forma más rápida de ver por qué una cuerda se resolvía así.
- Recarga — Reconstruye la caché de localización de cadenas desde cada fuente configurada sin reiniciar el host. La reconstrucción es atómica, así que los lectores siguen viendo los valores anteriores hasta que el nuevo diccionario esté listo.
Conectándolo
Al igual que la página de Administrador del Sitio, LocalizationAdmin está bloqueada en la verificación de administrador del portal — [AuthorizeSystemAdmin] y <SystemAdminView>, que solo admite que un usuario interno con uno de los roles SystemAdminClaimsTransformer de Dataverse lo lee — la página de documentación de Administrador del Sitio explica cómo se configura esa reclamación. Suelta el componente dentro de una página restringida por rol:
@attribute [Route("admin/localization")]
@attribute [AuthorizeSystemAdmin]
@using PowerPortalsPro.Web.Blazor.FluentUI.Components
<SystemAdminView>
<Authorized>
<LocalizationAdmin />
</Authorized>
</SystemAdminView>
Ponlo a la superficie en la navegación
Envuelven la entrada de navegación para <SystemAdminView> que los no administradores no vean un enlace que no puedan seguir:
<SystemAdminView>
<Authorized>
<FluentNavCategory Title="Administración" IconRest="@(new Size20.WrenchSettings())">
<FluentNavItem Href="admin/localization">
<FluentIcon Value="@(new Size20.LocalLanguage())" />
Localización
</FluentNavItem>
</FluentNavCategory>
</Authorized>
</SystemAdminView>
Controlar lo que se localiza
El panel de Configuración refleja los LocalizationOptions registros de tu anfitrión. Las tablas y los prefijos del editor indican lo que se localiza a partir de los metadatos de Dataverse; los ajustes de directorios, archivos y recursos web indican al calentamiento dónde encontrar las fuentes de localización basadas en carpetas y recursos web. El conjunto completo de perillas está en la referencia de la API a continuación.
Relacionado: la página de Traducción
El panel de traducción de archivos incrustado aquí es el
LocalizationTranslatormismo documentado en la página de Traducción, que explica cómo configurar un proveedor de traducción (por ejemplo, Azure AI Translator) e instalar la solución gestionada que lo respalda.
Referencia de API
LocalizationOptions determina lo que el panel de configuración muestra y de dónde extrae el calentamiento. Sus miembros se resumen a continuación.
LocalizationOptions Clase
Propiedades
Nombre | Tipo | Default | Descripción |
|---|---|---|---|
DefaultCulture | CultureInfo | La cultura predeterminada usada cuando no se solicita ninguna cultura específica. | |
LocalizationDirectories | IReadOnlyList<string> | La lista de rutas de directorio a escanear en busca de archivos de localización. | |
LocalizationFiles | IReadOnlyList<string> | La lista de rutas de archivo individuales desde las que cargar cadenas de localización. | |
TablePublisherPrefixesToLocalize | IReadOnlyList<string> | Los prefijos del editor (por ejemplo LocalizationOptions.TablesToLocalize. Cada uno se compara con nombres lógicos de tabla cuando las cadenas localizadas carga, de modo que una tabla añadida al entorno más tarde se recoge la próxima vez que se recarga la caché. | |
TablesToLocalize | IReadOnlyList<string> | Los nombres de las tablas de Dataverse cuyos metadatos (etiquetas, elecciones, vistas) deben exportarse como cadenas localizadas. Siempre incluye Tables.PowerPortalsProTables, que muestran las propias páginas del framework. Regístrate cada otra tabla cuyas etiquetas aparecen en la interfaz (cuadrículas, formularios, subcuadros, gráficos), porque una tabla mostrada que no es localizado, renderiza sus claves en bruto en lugar de etiquetas. Options.Tables contiene listas listas listas listas de las tablas más usadas. | |
UrlCultureStrategy | UrlCultureStrategy | PathPrefix | Controla si (y cómo) la cultura activa se refleja en la URL de la solicitud. Por defecto ( UrlCultureStrategy.PathPrefix por defecto cultura desnuda, otras culturas bajo el prefijo Options.UrlCultureStrategy para los modos disponibles. Solo afecta a sitios multiculturales. |
DefaultCultureLocalizationDirectoriesLocalizationFilesTablePublisherPrefixesToLocalizeLocalizationOptions.TablesToLocalize. Cada uno se compara con nombres lógicos de tabla cuando las cadenas localizadas carga, de modo que una tabla añadida al entorno más tarde se recoge la próxima vez que se recarga la caché.TablesToLocalizeTables.PowerPortalsProTables, que muestran las propias páginas del framework. Regístrate cada otra tabla cuyas etiquetas aparecen en la interfaz (cuadrículas, formularios, subcuadros, gráficos), porque una tabla mostrada que no es localizado, renderiza sus claves en bruto en lugar de etiquetas. Options.Tables contiene listas listas listas listas de las tablas más usadas.UrlCultureStrategyUrlCultureStrategy.PathPrefix por defecto cultura desnuda, otras culturas bajo el prefijo Options.UrlCultureStrategy para los modos disponibles. Solo afecta a sitios multiculturales.Métodos
Nombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
AddLocalizationDirectory | string relativeDirectoryPath | void | Añade una ruta de directorio para escanear archivos de localización. |
AddLocalizationFile | string relativeFilePath | void | Añade una única ruta de archivo de localización a la lista. |
AddTablesToLocalize | IEnumerable<string> tables | void | Añade una colección de nombres de tablas de Dataverse para localizar, como una de las listas en Options.Tables. |
AddTablesToLocalizeByPublisherPrefix | string publisherPrefix | void | Localiza cada tabla de Dataverse cuyo nombre lógico empieza con el prefijo de editor dado — normalmente El prefijo del editor bajo el que se crean tus propias tablas. |
AddTableToLocalize | string tableName | void | Añade un único nombre de tabla de Dataverse para localizar. |
AddLocalizationDirectoryAddLocalizationFileAddTablesToLocalizeOptions.Tables.AddTablesToLocalizeByPublisherPrefixAddTableToLocalize