UNPKG

@sixbell-telco/sdk

Version:

A collection of reusable components designed for use in Sixbell Telco Angular projects

59 lines (58 loc) 1.88 kB
/** * Translation Models and Types * Core types and interfaces for the translation system */ import { DEFAULT_LANGUAGE_CODES } from '../constants'; /** * Language definition interface * Represents a language with its code and display name */ export interface LanguageDefinition { /** Language code (ISO 639-1 format recommended) */ code: string; /** Display name for the language */ name: string; } /** * Main translation configuration interface */ export interface TranslationConfig { /** * Runtime metadata used for cache and update detection */ meta: { version?: string; updatedAt?: string; hash: string; schemaVersion: string; }; /** * Additional languages to make available beyond the default base languages (en, es, pt) * When you add languages here, they become available in defaultLang and excludeLanguages * @example [{ code: 'de', name: 'Deutsch' }, { code: 'fr', name: 'Français' }] */ additionalLanguages?: readonly LanguageDefinition[]; /** * Languages to exclude from the available set * IntelliSense includes: base languages (en, es, pt) + any additionalLanguages you specified above * @example ['pt'] to exclude Portuguese */ excludeLanguages?: readonly string[]; /** * Default language code * IntelliSense includes: base languages (en, es, pt) + any additionalLanguages you specified above * @example 'en' */ defaultLang?: string; /** Translation file paths */ translationPaths?: string[]; } /** * Internal state configuration for translation service * Represents the resolved configuration */ export interface TranslationStateConfig { availableLanguages: LanguageDefinition[]; defaultLanguage: string; } export type DefaultLanguageCode = (typeof DEFAULT_LANGUAGE_CODES)[number];