Mapa de uso
Qué peso tiene este paquete dentro del runtime
Flujo del paquete
Cómo atraviesa este paquete las fases del runtime de xtaskjs
Antes del arranque
Registra locales, formatters, ajustes de fallback y resolvers de locale opcionales para que las reglas de traducción se conozcan antes de que empiece el manejo de peticiones.
Durante CreateApplication()
Internationalization inicializa servicios de locale dependientes de la petición antes de que se resuelvan controladores y vistas, habilitando traducciones y formatos inyectados desde la primera petición.
Durante app.close()
El gestor del ciclo de vida libera el estado de traducción en tiempo de ejecución junto con el resto de servicios de la aplicación.
Superficie API
Exports representativos del paquete original
Configuración y locales
- configureInternationalization
- Internationalization
- registerInternationalizationLocale
- InternationalizationLocale
- InternationalizationResolver
Runtime de traducción
- InternationalizationService
- InjectInternationalizationService
- InjectI18nService
- runWithInternationalizationContext
Formateo y ciclo de vida
- registerInternationalizationFormatter
- InjectInternationalizationLifecycleManager
- InjectI18nLifecycleManager
- initializeInternationalizationIntegration
- shutdownInternationalizationIntegration
Uso
Flujo típico de adopción
1. Configura locales y fallbacks
Registra tus catálogos de locale, el locale por defecto, el fallback y cualquier formatter personalizado durante el arranque.
2. Resuelve el locale desde la petición
Usa parámetros de consulta, Accept-Language, cookies o resolvers personalizados para que el locale actual forme parte del contexto de la petición.
3. Inyecta traducciones en páginas y servicios
Llama al servicio inyectado dentro de controladores, vistas, presenters y helpers de dominio para que todo el formateo se mantenga consistente.
Ejemplo
Fragmento de referencia
import { Service } from "@xtaskjs/core";
import {
InjectInternationalizationService,
InternationalizationService,
configureInternationalization,
registerInternationalizationLocale,
} from "@xtaskjs/internationalization";
configureInternationalization({
defaultLocale: "en-US",
fallbackLocale: "en-US",
});
registerInternationalizationLocale({
locale: "en-US",
translations: { checkout: { total: "Total: {{amount, currency}}" } },
});
@Service()
export class CheckoutPresenter {
constructor(
@InjectInternationalizationService()
private readonly intl: InternationalizationService
) {}
presentTotal(amount: number) {
return this.intl.t("checkout.total", { params: { amount } });
}
}
Ejemplos
Ejemplos oficiales para revisar después
Ejemplos de referencia: 09-internationalization_app and 10-internationalization_express_app
Relacionados
Paquetes que suelen usarse junto a este