@taon-dev/i18n 21.0.33 → 21.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -5
  2. package/bin/start.js +1 -1
  3. package/browser/fesm2022/i18n-browser.mjs +26 -6
  4. package/browser/fesm2022/i18n-browser.mjs.map +1 -1
  5. package/browser/package.json +1 -1
  6. package/browser/types/i18n-browser.d.ts +1 -1
  7. package/browser-prod/fesm2022/i18n-browser-prod.mjs +26 -6
  8. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/browser-prod/types/i18n-browser-prod.d.ts +1 -1
  11. package/html/assets/generated/pwa/html-pwa.html +53 -53
  12. package/lib/build-info._auto-generated_.d.ts +1 -1
  13. package/lib/build-info._auto-generated_.js +1 -1
  14. package/lib/local-translation.js +4 -4
  15. package/lib/local-translation.js.map +1 -1
  16. package/lib/package.json +1 -1
  17. package/lib/utils-i18n-extract-gettext-translate-from-html.js +10 -1
  18. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  19. package/lib/utils-i18n-html.js +13 -2
  20. package/lib/utils-i18n-html.js.map +1 -1
  21. package/lib/utils-po-file.js +4 -5
  22. package/lib/utils-po-file.js.map +1 -1
  23. package/lib-esm/app/main-page/main-page.active.context.d.ts +1 -0
  24. package/lib-esm/app.electron.d.ts +1 -1
  25. package/lib-esm/app.electron.js +1 -1
  26. package/lib-esm/app.hosts.d.ts +3 -3
  27. package/lib-esm/app.hosts.js +8 -8
  28. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  29. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  30. package/lib-esm/lib/local-translation.js +3 -19
  31. package/lib-esm/lib/local-translation.js.map +1 -1
  32. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +1 -103
  33. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  34. package/lib-esm/lib/utils-i18n-html.js +20 -158
  35. package/lib-esm/lib/utils-i18n-html.js.map +1 -1
  36. package/lib-esm/lib/utils-po-file.js +4 -5
  37. package/lib-esm/lib/utils-po-file.js.map +1 -1
  38. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  39. package/lib-prod/build-info._auto-generated_.js +1 -1
  40. package/lib-prod/local-translation.js +5 -5
  41. package/lib-prod/local-translation.js.map +1 -1
  42. package/lib-prod/package.json +1 -1
  43. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +10 -1
  44. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +1 -1
  45. package/lib-prod/utils-i18n-html.js +13 -2
  46. package/lib-prod/utils-i18n-html.js.map +1 -1
  47. package/lib-prod/utils-po-file.js +4 -5
  48. package/lib-prod/utils-po-file.js.map +1 -1
  49. package/package.json +1 -1
  50. package/websql/fesm2022/i18n-websql.mjs +26 -6
  51. package/websql/fesm2022/i18n-websql.mjs.map +1 -1
  52. package/websql/package.json +1 -1
  53. package/websql/types/i18n-websql.d.ts +1 -1
  54. package/websql-prod/fesm2022/i18n-websql-prod.mjs +26 -6
  55. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -1
  56. package/websql-prod/package.json +1 -1
  57. package/websql-prod/types/i18n-websql-prod.d.ts +1 -1
  58. package/lib-esm/app.cloudflare.d.ts +0 -0
  59. package/lib-esm/app.cloudflare.js +0 -4
  60. package/lib-esm/app.cloudflare.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/i18n-websql.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.33';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { mkdirSync } from 'node:fs';\n\nimport {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n} from 'tnp-core/websql';\n\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text.\n */\n context?: string;\n\n glossary?: Record<string, string>;\n}\n\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<\n Record<UtilsI18n.CommonLocaleCode, string>\n> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nexport class LocalTranslationService {\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<\n (progress: AiDownloadProgress) => void\n >();\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n isAiReady(): boolean {\n return this.aiReady;\n }\n\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(\n sourceValue,\n placeholder,\n );\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n mkdirSync(cachePath, {\n recursive: true,\n });\n\n return cachePath;\n }\n}","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/websql';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/websql';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from './translate.service';\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements OnInit, OnDestroy, OnChanges {\n private static readonly selector = '[translate]';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngOnInit(): void {\n this.originalText = this.element.nativeElement.textContent?.trim() ?? '';\n this.initialized = true;\n this.render();\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // this.t.debug && console.log(`Rerender \"${this.originalText}\"`)\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) return;\n // this.t.debug && console.log(`On Chnags for \"${this.originalText}\"`)\n this.render();\n }\n\n ngOnDestroy(): void {}\n\n private render(): void {\n // console.log('render', this);\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `wihtout implemented Translatable interface`\n );\n }\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n //#region @browser\n // this.t.cdr?.markForCheck();\n //#endregion\n }\n}","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/websql';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs';\nimport { UtilsI18n } from 'tnp-core/websql';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs';\nimport { UtilsI18n } from 'tnp-core/websql';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript';\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","/* */ \nimport { join } from 'path';\n\nimport { UtilsI18n } from 'tnp-core/websql';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/websql';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibTranslationTs } from './translation.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibTranslationTs } from './translation.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibTranslationTs \n| PlPlTraslationOverrideSrcLibTranslationTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; \nexport * from './i18n/lib.translation'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist-websql/i18n/projects/i18n/src/i18n-websql.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.35';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n Helpers,\n} from 'tnp-core/websql';\n\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text.\n */\n context?: string;\n\n glossary?: Record<string, string>;\n}\n\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<\n Record<UtilsI18n.CommonLocaleCode, string>\n> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nexport class LocalTranslationService {\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<\n (progress: AiDownloadProgress) => void\n >();\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n isAiReady(): boolean {\n return this.aiReady;\n }\n\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(\n sourceValue,\n placeholder,\n );\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n Helpers.mkdirp(cachePath);\n\n return cachePath;\n }\n}","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/websql';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/websql';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TranslateService } from './translate.service';\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements OnInit, OnDestroy, OnChanges {\n private static readonly selector = '[translate]';\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngOnInit(): void {\n this.originalText = this.element.nativeElement.textContent?.trim() ?? '';\n this.initialized = true;\n this.render();\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // this.t.debug && console.log(`Rerender \"${this.originalText}\"`)\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) return;\n // this.t.debug && console.log(`On Chnags for \"${this.originalText}\"`)\n this.render();\n }\n\n ngOnDestroy(): void {}\n\n private render(): void {\n // console.log('render', this);\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `wihtout implemented Translatable interface`\n );\n }\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n //#region @browser\n // this.t.cdr?.markForCheck();\n //#endregion\n }\n}","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/websql';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/websql';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/websql';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript'; // @esmRemove\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n //#region @esmRemove\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { crossPlatformPath, UtilsI18n, fse } from 'tnp-core/websql';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/websql';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibTranslationTs } from './translation.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibTranslationTs } from './translation.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibTranslationTs \n| PlPlTraslationOverrideSrcLibTranslationTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; \nexport * from './i18n/lib.translation'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18n/websql",
3
- "version": "21.0.33",
3
+ "version": "21.0.35",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -28,7 +28,7 @@ declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
28
28
  /**
29
29
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
30
30
  */
31
- declare const CURRENT_PACKAGE_VERSION = "21.0.33";
31
+ declare const CURRENT_PACKAGE_VERSION = "21.0.35";
32
32
 
33
33
  interface TranslationOptions {
34
34
  text: string;
@@ -1,5 +1,4 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { crossPlatformPath, dotTaonFolder, UtilsOs__NS__getRealHomeDir, GlobalStorage, ___NS__isNil, UtilsI18n__NS__detectLocale, UtilsI18n__NS__defaultLangLocale, ___NS__cloneDeep, UtilsI18n__NS__LangOptionArr, ___NS__isObject } from 'tnp-core/websql-prod';
1
+ import { crossPlatformPath, dotTaonFolder, UtilsOs__NS__getRealHomeDir, Helpers__NS__mkdirp, GlobalStorage, ___NS__isNil, UtilsI18n__NS__detectLocale, UtilsI18n__NS__defaultLangLocale, ___NS__cloneDeep, UtilsI18n__NS__LangOptionArr, ___NS__isObject } from 'tnp-core/websql-prod';
3
2
  import * as i0 from '@angular/core';
4
3
  import { inject, ChangeDetectorRef, signal, ElementRef, DestroyRef, Input, Directive, Pipe, Injectable } from '@angular/core';
5
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -29,7 +28,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
29
28
  /**
30
29
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
31
30
  */
32
- const CURRENT_PACKAGE_VERSION = '21.0.33';
31
+ const CURRENT_PACKAGE_VERSION = '21.0.35';
33
32
  // THIS FILE IS GENERATED - DO NOT MODIFY
34
33
 
35
34
  const MODEL_ID = 'Xenova/nllb-200-distilled-600M';
@@ -109,7 +108,10 @@ class LocalTranslationService {
109
108
  /* */
110
109
  /* */
111
110
  /* */
111
+ /* */
112
+ /* */
112
113
  return (void 0);
114
+ return void 0;
113
115
  }
114
116
  emitProgress(progress) {
115
117
  for (const listener of this.progressListeners) {
@@ -217,9 +219,7 @@ class LocalTranslationService {
217
219
  dotTaonFolder,
218
220
  'ai-models-cache',
219
221
  ]);
220
- mkdirSync(cachePath, {
221
- recursive: true,
222
- });
222
+ Helpers__NS__mkdirp(cachePath);
223
223
  return cachePath;
224
224
  }
225
225
  }
@@ -803,7 +803,10 @@ function UtilsI18nExtractGettextTranslateFromHtml__NS__extractGettextTranslateFr
803
803
  /* */
804
804
  /* */
805
805
  /* */
806
+ /* */
807
+ /* */
806
808
  return (void 0);
809
+ return void 0;
807
810
  }
808
811
  function extractGettextCallsFromSource(html) {
809
812
  /* */
@@ -1067,6 +1070,7 @@ function getNodeAttributes(node) {
1067
1070
  /* */
1068
1071
  return (void 0);
1069
1072
  }
1073
+ //#region @esmRemove
1070
1074
  function getNodeInputs(node) {
1071
1075
  /* */
1072
1076
  /* */
@@ -1075,6 +1079,7 @@ function getNodeInputs(node) {
1075
1079
  /* */
1076
1080
  return (void 0);
1077
1081
  }
1082
+ //#endregion
1078
1083
  function isText(node) {
1079
1084
  /* */
1080
1085
  /* */
@@ -1146,6 +1151,7 @@ function stripHtml(html) {
1146
1151
  /* */
1147
1152
  return (void 0);
1148
1153
  }
1154
+ //#region @esmRemove
1149
1155
  function extractTranslateParams(inputs) {
1150
1156
  /* */
1151
1157
  /* */
@@ -1157,6 +1163,7 @@ function extractTranslateParams(inputs) {
1157
1163
  /* */
1158
1164
  return (void 0);
1159
1165
  }
1166
+ //#endregion
1160
1167
  function extractObjectLiteralFromAst(ast) {
1161
1168
  /* */
1162
1169
  /* */
@@ -1175,6 +1182,7 @@ function extractObjectLiteralFromAst(ast) {
1175
1182
  /* */
1176
1183
  return (void 0);
1177
1184
  }
1185
+ //#region @esmRemove
1178
1186
  function extractTranslatePipeStrings(ast) {
1179
1187
  /* */
1180
1188
  /* */
@@ -1204,6 +1212,7 @@ function extractTranslatePipeStrings(ast) {
1204
1212
  /* */
1205
1213
  return (void 0);
1206
1214
  }
1215
+ //#endregion
1207
1216
  function extractStaticStringsFromExpression(ast) {
1208
1217
  /* */
1209
1218
  /* */
@@ -1293,7 +1302,10 @@ function UtilsI18nHtml__NS__replaceTranslatePipieDirectiveTContext(html, options
1293
1302
  /* */
1294
1303
  /* */
1295
1304
  /* */
1305
+ /* */
1306
+ /* */
1296
1307
  return (void 0);
1308
+ return void 0;
1297
1309
  }
1298
1310
  function UtilsI18nHtml__NS__isAngularTsWithInlineHtml(content) {
1299
1311
  /* */
@@ -1306,8 +1318,12 @@ function UtilsI18nHtml__NS__isAngularTsWithInlineHtml(content) {
1306
1318
  /* */
1307
1319
  /* */
1308
1320
  /* */
1321
+ /* */
1322
+ /* */
1309
1323
  return (void 0);
1324
+ return void 0;
1310
1325
  }
1326
+ //#region @esmRemove
1311
1327
  function replaceInAngularInlineTemplates(content) {
1312
1328
  /* */
1313
1329
  /* */
@@ -1449,6 +1465,7 @@ function getStringLikeInnerRange(content, node) {
1449
1465
  /* */
1450
1466
  return (void 0);
1451
1467
  }
1468
+ //#endregion
1452
1469
  function UtilsI18nHtml__NS__replaceTranslatePipieDirectiveTContextInHtml(html) {
1453
1470
  /* */
1454
1471
  /* */
@@ -1512,7 +1529,10 @@ function UtilsI18nHtml__NS__replaceTranslatePipieDirectiveTContextInHtml(html) {
1512
1529
  /* */
1513
1530
  /* */
1514
1531
  /* */
1532
+ /* */
1533
+ /* */
1515
1534
  return (void 0);
1535
+ return void 0;
1516
1536
  }
1517
1537
  function findTranslateDirectiveEditsFromSource(html) {
1518
1538
  /* */