@sixbell-telco/sdk
Version:
A collection of reusable components designed for use in Sixbell Telco Angular projects
59 lines (58 loc) • 1.88 kB
TypeScript
/**
* 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];