@smdv/localization
v1.2.90
Published
<div align="center">
Downloads
115
Readme
@smdv/localization
Librería Angular para localización dinámica, sesión, permisos y auditoría.
✨ Características
- Carga remota de recursos de idioma (multi-módulo)
- Manejo de sesión y permisos (guards + interceptor HTTP)
- Registro de eventos (event log)
- Tipos e interfaces reutilizables
✅ Requisitos
- Angular >= 14 (recomendado 16+)
- HttpClientModule disponible
📦 Instalación
npm install @smdv/localization⚙️ Configuración del módulo
Usar forRoot para inyectar la configuración (environment de la librería):
import { LocalizationModule } from '@smdv/localization';
@NgModule({
imports: [
LocalizationModule.forRoot({
msLocalizationApiUrl: 'https://api.example.com/localization',
msConfigurationsApiUrl: 'https://api.example.com/config',
application: 'my-app'
})
]
})
export class AppModule {}🧪 Uso del servicio de localización
import { LocalizationService } from '@smdv/localization';
constructor(private loc: LocalizationService) {}
ngOnInit() {
this.loc.loadLocales(['general', 'dashboard']);
const mensaje = this.loc.getLocalization('welcome');
}🔐 Sesión y permisos
Guard de activación (ejemplo conceptual):
// SessionCanActiveService protege rutas según sesión válida
{
path: 'panel',
canActivate: [SessionCanActiveService],
loadChildren: () => import('./panel/panel.module').then(m => m.PanelModule)
}Interceptor HTTP: Se registra automáticamente al importar el módulo (si está configurado en providers en el futuro). Asegúrate de no duplicar interceptores globales.
🧱 Interfaces clave
Ubicadas en services/interfaces/ (posible futura carpeta models/):
AuthSessionPermitsEventLogPaginatedData<T>ResponseApi<T>
🌐 Carga de recursos
El método loadLocales(modulos: string[]) obtiene y cachea recursos por módulo. Luego getLocalization(key: string) retorna el texto asociado.
🛠 Scripts útiles
| Acción | Comando |
|--------|---------|
| Build | ng build localization |
| Tests | ng test localization |
| Producción | ng build localization --configuration production |
| Publicar | npm publish (desde dist/localization) |
🧬 Publicación
- Incrementar versión en
projects/localization/package.json(semver). ng build localization.cd dist/localization.npm publish(usar--access publicsi es necesario / registro privado si aplica).
🧹 Limpieza local
rm -rf node_modules dist .angular
npm ci
ng build localization🗺 Roadmap sugerido
- Refactor de
enviromentaenvironment - Módulo separado para auditoría si crece
- Migrar interfaces a
models/ - Añadir tests de integración (módulo + interceptor + guard)
🤝 Contribuir
- Rama:
feature/nombre - Commits claros
- PR con descripción funcional / breaking changes
📄 Licencia
Privado / Interno (definir si se publica públicamente más adelante)
Mantén este README actualizado conforme evolucione la API.
