feat(project-editor): add Languages tab with generic locale sync

This commit is contained in:
sdarbinyan
2026-07-13 08:10:00 +04:00
parent 74e5099b04
commit b166920ad7
12 changed files with 237 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import { BootstrapConfig, DEFAULT_CATALOG_CONFIG, DEFAULT_HEADER_CONFIG, DEFAULT
import { ConfigService } from '../../../core/config/config.service';
import { ProjectEditorIoService } from '../services/project-editor-io.service';
import { ProjectEditorPreviewService } from '../services/project-editor-preview.service';
import { LocaleSyncService } from '../services/locale-sync.service';
import { ProjectEditorState } from '../models/project-editor.model';
@Injectable({ providedIn: 'root' })
@@ -11,6 +12,7 @@ export class ProjectEditorFacade {
private readonly configService = inject(ConfigService);
private readonly ioService = inject(ProjectEditorIoService);
private readonly previewService = inject(ProjectEditorPreviewService);
private readonly localeSync = inject(LocaleSyncService);
private readonly state = signal<ProjectEditorState>({
bootstrap: null,
@@ -70,6 +72,22 @@ export class ProjectEditorFacade {
this.state.update(current => ({ ...current, activeSection }));
}
addLocale(locale: string): void {
this.updateBootstrap(current => this.localeSync.addLocale(current, locale));
}
removeLocale(locale: string): void {
this.updateBootstrap(current => this.localeSync.removeLocale(current, locale));
}
setDefaultLocale(locale: string): void {
this.updateBootstrap(current => ({
...current,
tenant: { ...current.tenant, defaultLocale: locale },
localization: { ...current.localization, defaultLocale: locale },
}));
}
private normalize(config: BootstrapConfig): BootstrapConfig {
return {
...config,