@taon-dev/i18n 0.0.1
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.
- package/VERIFIED-BUILD-DATA.jsonc +5 -0
- package/assets/shared/shared_folder_info.txt +7 -0
- package/bin/i18n +5 -0
- package/bin/i18n-debug +5 -0
- package/bin/i18n-debug-brk +4 -0
- package/bin/start.js +38 -0
- package/browser/README.md +24 -0
- package/browser/fesm2022/i18n-browser.mjs +521 -0
- package/browser/fesm2022/i18n-browser.mjs.map +1 -0
- package/browser/package.json +23 -0
- package/browser/types/i18n-browser.d.ts +353 -0
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/i18n-browser-prod.mjs +521 -0
- package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -0
- package/browser-prod/package.json +23 -0
- package/browser-prod/types/i18n-browser-prod.d.ts +353 -0
- package/browser-prod.re-export.json +1 -0
- package/browser-prod.split-namespaces.json +4 -0
- package/cli.d.ts +1 -0
- package/cli.js +8 -0
- package/cli.js.map +1 -0
- package/html/assets/generated/pwa/html-pwa.html +60 -0
- package/html/imports.html +3 -0
- package/index.d.ts +3 -0
- package/index.js +20 -0
- package/index.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +24 -0
- package/lib/build-info._auto-generated_.js +30 -0
- package/lib/build-info._auto-generated_.js.map +1 -0
- package/lib/env/env.angular-node-app.d.ts +67 -0
- package/lib/env/env.angular-node-app.js +141 -0
- package/lib/env/env.angular-node-app.js.map +1 -0
- package/lib/env/env.docs-webapp.d.ts +67 -0
- package/lib/env/env.docs-webapp.js +141 -0
- package/lib/env/env.docs-webapp.js.map +1 -0
- package/lib/env/env.electron-app.d.ts +67 -0
- package/lib/env/env.electron-app.js +141 -0
- package/lib/env/env.electron-app.js.map +1 -0
- package/lib/env/env.mobile-app.d.ts +67 -0
- package/lib/env/env.mobile-app.js +141 -0
- package/lib/env/env.mobile-app.js.map +1 -0
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib/env/env.npm-lib-and-cli-tool.js +141 -0
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib/env/env.vscode-plugin.d.ts +67 -0
- package/lib/env/env.vscode-plugin.js +141 -0
- package/lib/env/env.vscode-plugin.js.map +1 -0
- package/lib/env/index.d.ts +6 -0
- package/lib/env/index.js +23 -0
- package/lib/env/index.js.map +1 -0
- package/lib/features/index.d.ts +4 -0
- package/lib/features/index.js +21 -0
- package/lib/features/index.js.map +1 -0
- package/lib/features/types.d.ts +4 -0
- package/lib/features/types.js +3 -0
- package/lib/features/types.js.map +1 -0
- package/lib/features/withLanguageLocalStorageSync.d.ts +9 -0
- package/lib/features/withLanguageLocalStorageSync.js +39 -0
- package/lib/features/withLanguageLocalStorageSync.js.map +1 -0
- package/lib/features/withNavigatorLanguage.d.ts +6 -0
- package/lib/features/withNavigatorLanguage.js +29 -0
- package/lib/features/withNavigatorLanguage.js.map +1 -0
- package/lib/features/withPreloadScopes.d.ts +8 -0
- package/lib/features/withPreloadScopes.js +25 -0
- package/lib/features/withPreloadScopes.js.map +1 -0
- package/lib/features/withServerSideLanguage.d.ts +6 -0
- package/lib/features/withServerSideLanguage.js +29 -0
- package/lib/features/withServerSideLanguage.js.map +1 -0
- package/lib/features/withTranslatedTitle.d.ts +34 -0
- package/lib/features/withTranslatedTitle.js +69 -0
- package/lib/features/withTranslatedTitle.js.map +1 -0
- package/lib/index._auto-generated_.d.ts +16 -0
- package/lib/index._auto-generated_.js +38 -0
- package/lib/index._auto-generated_.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +20 -0
- package/lib/index.js.map +1 -0
- package/lib/internals.d.ts +2 -0
- package/lib/internals.js +6 -0
- package/lib/internals.js.map +1 -0
- package/lib/package.json +4 -0
- package/lib/start-cli.d.ts +7 -0
- package/lib/start-cli.js +46 -0
- package/lib/start-cli.js.map +1 -0
- package/lib/transignal-config.d.ts +34 -0
- package/lib/transignal-config.js +42 -0
- package/lib/transignal-config.js.map +1 -0
- package/lib/transignal-param-handlers.d.ts +11 -0
- package/lib/transignal-param-handlers.js +31 -0
- package/lib/transignal-param-handlers.js.map +1 -0
- package/lib/transignal-service.d.ts +32 -0
- package/lib/transignal-service.js +206 -0
- package/lib/transignal-service.js.map +1 -0
- package/lib/transignal-testing.d.ts +8 -0
- package/lib/transignal-testing.js +14 -0
- package/lib/transignal-testing.js.map +1 -0
- package/lib/types.d.ts +124 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utility-types.d.ts +29 -0
- package/lib/utility-types.js +3 -0
- package/lib/utility-types.js.map +1 -0
- package/lib/utils.d.ts +15 -0
- package/lib/utils.js +20 -0
- package/lib/utils.js.map +1 -0
- package/lib-esm/app.d.ts +3 -0
- package/lib-esm/app.electron.d.ts +1 -0
- package/lib-esm/app.electron.js +2 -0
- package/lib-esm/app.electron.js.map +1 -0
- package/lib-esm/app.hosts.d.ts +95 -0
- package/lib-esm/app.hosts.js +157 -0
- package/lib-esm/app.hosts.js.map +1 -0
- package/lib-esm/app.js +460 -0
- package/lib-esm/app.js.map +1 -0
- package/lib-esm/app.vscode.d.ts +9 -0
- package/lib-esm/app.vscode.js +37 -0
- package/lib-esm/app.vscode.js.map +1 -0
- package/lib-esm/cli.d.ts +1 -0
- package/lib-esm/cli.js +4 -0
- package/lib-esm/cli.js.map +1 -0
- package/lib-esm/index.d.ts +3 -0
- package/lib-esm/index.js +4 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
- package/lib-esm/lib/build-info._auto-generated_.js +27 -0
- package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
- package/lib-esm/lib/env/env.angular-node-app.d.ts +67 -0
- package/lib-esm/lib/env/env.angular-node-app.js +137 -0
- package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
- package/lib-esm/lib/env/env.docs-webapp.d.ts +67 -0
- package/lib-esm/lib/env/env.docs-webapp.js +137 -0
- package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
- package/lib-esm/lib/env/env.electron-app.d.ts +67 -0
- package/lib-esm/lib/env/env.electron-app.js +137 -0
- package/lib-esm/lib/env/env.electron-app.js.map +1 -0
- package/lib-esm/lib/env/env.mobile-app.d.ts +67 -0
- package/lib-esm/lib/env/env.mobile-app.js +137 -0
- package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +137 -0
- package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-esm/lib/env/env.vscode-plugin.d.ts +67 -0
- package/lib-esm/lib/env/env.vscode-plugin.js +137 -0
- package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
- package/lib-esm/lib/env/index.d.ts +6 -0
- package/lib-esm/lib/env/index.js +7 -0
- package/lib-esm/lib/env/index.js.map +1 -0
- package/lib-esm/lib/features/index.d.ts +4 -0
- package/lib-esm/lib/features/index.js +5 -0
- package/lib-esm/lib/features/index.js.map +1 -0
- package/lib-esm/lib/features/types.d.ts +4 -0
- package/lib-esm/lib/features/types.js +2 -0
- package/lib-esm/lib/features/types.js.map +1 -0
- package/lib-esm/lib/features/withLanguageLocalStorageSync.d.ts +9 -0
- package/lib-esm/lib/features/withLanguageLocalStorageSync.js +35 -0
- package/lib-esm/lib/features/withLanguageLocalStorageSync.js.map +1 -0
- package/lib-esm/lib/features/withNavigatorLanguage.d.ts +6 -0
- package/lib-esm/lib/features/withNavigatorLanguage.js +25 -0
- package/lib-esm/lib/features/withNavigatorLanguage.js.map +1 -0
- package/lib-esm/lib/features/withPreloadScopes.d.ts +8 -0
- package/lib-esm/lib/features/withPreloadScopes.js +21 -0
- package/lib-esm/lib/features/withPreloadScopes.js.map +1 -0
- package/lib-esm/lib/features/withServerSideLanguage.d.ts +6 -0
- package/lib-esm/lib/features/withServerSideLanguage.js +25 -0
- package/lib-esm/lib/features/withServerSideLanguage.js.map +1 -0
- package/lib-esm/lib/features/withTranslatedTitle.d.ts +34 -0
- package/lib-esm/lib/features/withTranslatedTitle.js +65 -0
- package/lib-esm/lib/features/withTranslatedTitle.js.map +1 -0
- package/lib-esm/lib/index._auto-generated_.d.ts +16 -0
- package/lib-esm/lib/index._auto-generated_.js +22 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -0
- package/lib-esm/lib/index.d.ts +4 -0
- package/lib-esm/lib/index.js +4 -0
- package/lib-esm/lib/index.js.map +1 -0
- package/lib-esm/lib/internals.d.ts +2 -0
- package/lib-esm/lib/internals.js +3 -0
- package/lib-esm/lib/internals.js.map +1 -0
- package/lib-esm/lib/start-cli.d.ts +7 -0
- package/lib-esm/lib/start-cli.js +43 -0
- package/lib-esm/lib/start-cli.js.map +1 -0
- package/lib-esm/lib/transignal-config.d.ts +34 -0
- package/lib-esm/lib/transignal-config.js +36 -0
- package/lib-esm/lib/transignal-config.js.map +1 -0
- package/lib-esm/lib/transignal-param-handlers.d.ts +11 -0
- package/lib-esm/lib/transignal-param-handlers.js +25 -0
- package/lib-esm/lib/transignal-param-handlers.js.map +1 -0
- package/lib-esm/lib/transignal-service.d.ts +32 -0
- package/lib-esm/lib/transignal-service.js +197 -0
- package/lib-esm/lib/transignal-service.js.map +1 -0
- package/lib-esm/lib/transignal-testing.d.ts +8 -0
- package/lib-esm/lib/transignal-testing.js +10 -0
- package/lib-esm/lib/transignal-testing.js.map +1 -0
- package/lib-esm/lib/types.d.ts +124 -0
- package/lib-esm/lib/types.js +2 -0
- package/lib-esm/lib/types.js.map +1 -0
- package/lib-esm/lib/utility-types.d.ts +29 -0
- package/lib-esm/lib/utility-types.js +2 -0
- package/lib-esm/lib/utility-types.js.map +1 -0
- package/lib-esm/lib/utils.d.ts +15 -0
- package/lib-esm/lib/utils.js +15 -0
- package/lib-esm/lib/utils.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +27 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +67 -0
- package/lib-prod/env/env.angular-node-app.js +137 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +67 -0
- package/lib-prod/env/env.docs-webapp.js +137 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +67 -0
- package/lib-prod/env/env.electron-app.js +137 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +67 -0
- package/lib-prod/env/env.mobile-app.js +137 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +67 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +137 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +67 -0
- package/lib-prod/env/env.vscode-plugin.js +137 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +7 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/features/index.d.ts +4 -0
- package/lib-prod/features/index.js +5 -0
- package/lib-prod/features/index.js.map +1 -0
- package/lib-prod/features/types.d.ts +4 -0
- package/lib-prod/features/types.js +2 -0
- package/lib-prod/features/types.js.map +1 -0
- package/lib-prod/features/withLanguageLocalStorageSync.d.ts +9 -0
- package/lib-prod/features/withLanguageLocalStorageSync.js +35 -0
- package/lib-prod/features/withLanguageLocalStorageSync.js.map +1 -0
- package/lib-prod/features/withNavigatorLanguage.d.ts +6 -0
- package/lib-prod/features/withNavigatorLanguage.js +25 -0
- package/lib-prod/features/withNavigatorLanguage.js.map +1 -0
- package/lib-prod/features/withPreloadScopes.d.ts +8 -0
- package/lib-prod/features/withPreloadScopes.js +21 -0
- package/lib-prod/features/withPreloadScopes.js.map +1 -0
- package/lib-prod/features/withServerSideLanguage.d.ts +6 -0
- package/lib-prod/features/withServerSideLanguage.js +25 -0
- package/lib-prod/features/withServerSideLanguage.js.map +1 -0
- package/lib-prod/features/withTranslatedTitle.d.ts +34 -0
- package/lib-prod/features/withTranslatedTitle.js +65 -0
- package/lib-prod/features/withTranslatedTitle.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +16 -0
- package/lib-prod/index._auto-generated_.js +22 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +4 -0
- package/lib-prod/index.js +4 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/internals.d.ts +2 -0
- package/lib-prod/internals.js +3 -0
- package/lib-prod/internals.js.map +1 -0
- package/lib-prod/package.json +4 -0
- package/lib-prod/start-cli.d.ts +7 -0
- package/lib-prod/start-cli.js +43 -0
- package/lib-prod/start-cli.js.map +1 -0
- package/lib-prod/transignal-config.d.ts +34 -0
- package/lib-prod/transignal-config.js +36 -0
- package/lib-prod/transignal-config.js.map +1 -0
- package/lib-prod/transignal-param-handlers.d.ts +11 -0
- package/lib-prod/transignal-param-handlers.js +25 -0
- package/lib-prod/transignal-param-handlers.js.map +1 -0
- package/lib-prod/transignal-service.d.ts +32 -0
- package/lib-prod/transignal-service.js +197 -0
- package/lib-prod/transignal-service.js.map +1 -0
- package/lib-prod/transignal-testing.d.ts +8 -0
- package/lib-prod/transignal-testing.js +10 -0
- package/lib-prod/transignal-testing.js.map +1 -0
- package/lib-prod/types.d.ts +124 -0
- package/lib-prod/types.js +2 -0
- package/lib-prod/types.js.map +1 -0
- package/lib-prod/utility-types.d.ts +29 -0
- package/lib-prod/utility-types.js +2 -0
- package/lib-prod/utility-types.js.map +1 -0
- package/lib-prod/utils.d.ts +15 -0
- package/lib-prod/utils.js +15 -0
- package/lib-prod/utils.js.map +1 -0
- package/lib-prod.re-export.json +1 -0
- package/lib-prod.split-namespaces.json +4 -0
- package/package.json +39 -0
- package/scss/global.scss +94 -0
- package/scss/index.scss +2 -0
- package/scss/lib/index.scss +2 -0
- package/scss/vars.scss +7 -0
- package/src.d.ts +6 -0
- package/src.js +4 -0
- package/websql/README.md +24 -0
- package/websql/fesm2022/i18n-websql.mjs +521 -0
- package/websql/fesm2022/i18n-websql.mjs.map +1 -0
- package/websql/package.json +23 -0
- package/websql/types/i18n-websql.d.ts +353 -0
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/i18n-websql-prod.mjs +521 -0
- package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -0
- package/websql-prod/package.json +23 -0
- package/websql-prod/types/i18n-websql-prod.d.ts +353 -0
- package/websql-prod.re-export.json +1 -0
- package/websql-prod.split-namespaces.json +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-browser.mjs","sources":["../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/internals.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/transignal-param-handlers.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/transignal-service.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/transignal-config.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/transignal-testing.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/features/withLanguageLocalStorageSync.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/features/withNavigatorLanguage.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/features/withPreloadScopes.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/features/withServerSideLanguage.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/features/withTranslatedTitle.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/i18n-browser.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 = '0.0.1';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","export const INTERNAL_TRANSIGNAL_CONFIG = Symbol('INTERNAL_TRANSIGNAL_CONFIG');\nexport const TREE_SHAKED_TRANSLATIONS = Symbol('TREE_SHAKED_TRANSLATIONS');","//#region tnp-helpers cli template\n// import { Helpers, BaseCommandLineFeature } from 'tnp-helpers/src';\n// import { BaseProject, BaseStartConfig } from 'tnp-helpers/src'; // @backend\n\n// class $Version extends BaseCommandLineFeature<{}> {\n// public _() {\n// console.log(`Hello world from cli`);\n// this._exit();\n// }\n// }\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(argsv: string[], filename: string): Promise<void> {\n/* */\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\nexport default startCli;","import { TranslateParams } from './types';\n\nexport type ParamHandler = (translation: string, params?: TranslateParams) => string;\n\n/**\n * Param handler which allows for specification of basic params: `{name}`\n *\n * @param translation Translated text\n * @param params Params provided to translation function\n */\nexport const simpleParamsHandler: ParamHandler = (translation, params) => {\n if (!params) return translation;\n for (const [key, value] of Object.entries(params)) {\n translation = translation.replaceAll(`{${key}}`, simpleParamValueStringify(value));\n }\n return translation;\n};\n\nexport const noParamsHandler: ParamHandler = translation => translation;\n\nexport const simpleParamValueStringify = (paramValue: unknown) => {\n if (typeof paramValue === 'string') {\n return paramValue;\n }\n if (paramValue == null) {\n return '';\n }\n return (paramValue as any).toString();\n};","import {\n computed,\n EnvironmentInjector,\n inject,\n Injectable,\n resource,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { TREE_SHAKED_TRANSLATIONS } from './internals';\nimport { injectTransignalConfig } from './transignal-config';\nimport { simpleParamsHandler } from './transignal-param-handlers';\nimport {\n PluralTranslation,\n SelectTranslation,\n TranslateFn,\n TranslateObj,\n TranslateParams,\n TranslationFile,\n} from './types';\nimport { ResourceRefLike, StringKeys } from './utility-types';\n\n/**\n * Main transignal service, used to process and cache translations\n * Can be injected directly or with use of transignal object created with {@link prepareTransignal} function (recommended)\n */\n@Injectable()\nexport class TransignalService<\n Languages extends string,\n Translations extends Record<string, Record<string, any>>,\n Scopes extends StringKeys<Translations>,\n> {\n private readonly injector = inject(EnvironmentInjector);\n private readonly config = injectTransignalConfig<Languages, Translations>();\n private readonly paramsHandler = this.config.paramHandler ?? simpleParamsHandler;\n private readonly loadingFn = this.config.loadingFn ?? (() => '...');\n // eslint-disable-next-line no-console\n private readonly errorHandler = this.config.errorHandler ?? console.error; // TODO maybe add a link to error page in docs\n private readonly loadingCount = signal<number>(0);\n private readonly scopeMap = new Map<string, TranslateObj<Translations[Scopes]>>();\n private readonly languageMap = new Map<string, ResourceRefLike<TranslationFile | undefined>>();\n\n /**\n * Use to set or get active language\n */\n readonly activeLang = signal<Languages>(this.config.defaultLang);\n /**\n * Use to determine whether service is currently loading translation files\n */\n readonly isLoading = computed(() => this.loadingCount() > 0);\n\n t<Scope extends Scopes>(scope: Scope): TranslateObj<Translations[Scope]> {\n const existing = this.scopeMap.get(scope);\n if (existing) {\n return existing as unknown as TranslateObj<Translations[Scope]>;\n }\n const scopeObj = this.initT<Translations[Scope]>(scope);\n\n this.scopeMap.set(scope, scopeObj as unknown as TranslateObj<Translations[Scopes]>);\n return scopeObj;\n }\n\n private initT<Context extends Record<string, any>>(scope: Scopes): TranslateObj<Context> {\n const cache = new Map<string, unknown>();\n const t: TranslateObj<Context> = ((key, params) => {\n const lang = this.activeLang();\n const baseKey = `${lang}/${key as string}`;\n const memoKey = params ? `${baseKey}_${JSON.stringify(params)}` : baseKey;\n const alreadyComputed = cache.get(memoKey);\n if (alreadyComputed) {\n return alreadyComputed;\n }\n const { isLoading, error, value } = this.fetchLanguage(scope, lang);\n if (isLoading()) {\n return this.loadingFn?.(key);\n }\n if (error() || !value()) {\n this.errorHandler('missing_file', error());\n return '';\n }\n\n const result = this.replaceParams(this.resolveObjectPath(value(), key), params);\n cache.set(memoKey, result);\n return result;\n }) as TranslateObj<Context>; // needed as other props are assigned below\n\n t.arr = t as any;\n t.obj = t as any;\n t.prefix = this.preparePrefixFn(t, 1);\n t.plural = this.preparePluralFn(t);\n t.select = this.prepareSelectFn(t);\n return t;\n }\n\n private preparePrefixFn(t: TranslateFn<any, any>, depth: number) {\n return (prefix: string) => {\n const prefixedT = (key: string, params?: TranslateParams) => t(`${prefix}.${key}`, params);\n prefixedT.arr = prefixedT;\n prefixedT.obj = prefixedT;\n prefixedT.plural = this.preparePluralFn(prefixedT);\n prefixedT.select = this.prepareSelectFn(prefixedT);\n prefixedT.prefix =\n this.config.maxPrefixDepth || 3 >= depth\n ? this.preparePrefixFn(prefixedT, depth + 1)\n : () => {\n this.errorHandler('prefix_too_deep');\n const t = () => '';\n t.arr = () => [];\n t.obj = () => ({});\n t.plural = () => '';\n return t;\n };\n return prefixedT as any;\n };\n }\n\n private preparePluralFn(t: TranslateFn<any, any>) {\n return (key: string, count: number, params?: TranslateParams) => {\n const plurals = t(key, { count, ...params }) as PluralTranslation | string;\n if (typeof plurals === 'string') {\n if (plurals === this.loadingFn(key)) {\n return plurals;\n }\n this.errorHandler('invalid_plural', key, plurals);\n return plurals as string;\n }\n if (plurals[count]) {\n return plurals[count];\n }\n const valueLastDigit = +count.toFixed(0).at(-1)!;\n if (plurals.one && valueLastDigit === 1) {\n return plurals.one;\n }\n if (plurals.many && valueLastDigit >= 5) {\n return plurals.many;\n }\n if (plurals.few && valueLastDigit > 1 && valueLastDigit < 5) {\n return plurals.few;\n }\n if (plurals.other) {\n return plurals.other;\n }\n this.errorHandler('missing_plural', key, plurals, count);\n return '';\n };\n }\n\n private prepareSelectFn(t: TranslateFn<any, any>) {\n return (key: string, value: string | number | null, params?: TranslateParams) => {\n const selects = t(key, { value, ...params }) as SelectTranslation | string;\n if (typeof selects === 'string') {\n if (selects === this.loadingFn(key)) {\n return selects;\n }\n this.errorHandler('invalid_select', key, selects);\n return selects as string;\n }\n if (value !== null) {\n if (selects[value]) {\n return selects[value];\n }\n } else if (selects['null']) {\n return selects['null'];\n }\n this.errorHandler('missing_select', key, selects, value);\n return '';\n };\n }\n\n protected replaceParams<T>(translation: T, params?: TranslateParams): T {\n if (!translation) return translation;\n if (typeof translation === 'string') {\n return this.paramsHandler(translation, params) as T;\n }\n if (Array.isArray(translation)) {\n return translation.map(val => this.replaceParams(val as T, params)) as T;\n }\n if (typeof translation === 'object') {\n return Object.entries(translation).reduce(\n (prev, [objKey, objVal]) => {\n prev[objKey] = this.replaceParams(objVal, params);\n return prev;\n },\n {} as Record<string, unknown>\n ) as T;\n }\n return translation;\n }\n\n private fetchLanguage(\n scope: Scopes,\n lang: Languages\n ): ResourceRefLike<TranslationFile | undefined> {\n const cacheKey = `${scope}/${lang}`;\n const existing = this.languageMap.get(cacheKey);\n if (existing) return existing;\n const { translations, loader } = this.config;\n\n const translation = runInInjectionContext(this.injector, () =>\n (translations as Translations | typeof TREE_SHAKED_TRANSLATIONS) === TREE_SHAKED_TRANSLATIONS\n ? untracked(() =>\n resource({\n loader: async () => {\n this.loadingCount.update(count => ++count);\n const file = await runInInjectionContext(this.injector, () => loader(scope, lang));\n this.loadingCount.update(count => --count);\n return file;\n },\n })\n )\n : {\n value: signal(translations[scope]),\n isLoading: signal(false),\n error: signal(undefined),\n }\n );\n this.languageMap.set(cacheKey, translation);\n return translation;\n }\n\n private resolveObjectPath(obj: Record<string, any> | undefined, path: string): unknown {\n const keys = path.split('.');\n let current: unknown = obj;\n for (const key of keys) {\n if (current && typeof current === 'object') {\n current = (current as Record<string, unknown>)[key];\n } else {\n this.errorHandler('missing_key', { obj, path });\n return undefined;\n }\n }\n return current;\n }\n}","import { inject, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport { TransignalFeature } from './features/types';\nimport { INTERNAL_TRANSIGNAL_CONFIG, TREE_SHAKED_TRANSLATIONS } from './internals';\nimport { TransignalService } from './transignal-service';\nimport { TransignalConfig } from './types';\nimport { StringKeys } from './utility-types';\n\n/**\n * Utility function to define a type of translations for type inference\n */\nexport const treeShakedTranslations = <\n Translations extends Record<string, Record<string, unknown>>,\n>() => TREE_SHAKED_TRANSLATIONS as unknown as Translations;\n\nexport const TRANSIGNAL_CONFIG = new InjectionToken('TRANSIGNAL_CONFIG');\n\n/**\n * Use to inject transignal config\n */\nexport const injectTransignalConfig = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>() => inject<TransignalConfig<Languages, Translations>>(TRANSIGNAL_CONFIG);\n\n/**\n * Prepares type-safe transignal object\n * @param config Transignal configruation {@link TransignalConfig}\n * @param features Extra tree-shakeable features\n * - {@link withPreloadScopes} - preloads selected scopes\n * - {@link withServerSideLanguage} - sets language based on `document.lang` in SSR environment\n * - {@link withNavigatorLanguage} - sets language based on `navigator.language` in browser environment\n * - {@link withLanguageLocalStorageSync} - syncs language with localStorage\n * - {@link withTranslatedTitle} - enables translation of page title\n */\nexport const prepareTransignal = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(\n config: TransignalConfig<Languages, Translations>,\n ...features: NoInfer<TransignalFeature<Languages, Translations>[]>\n) => {\n const service = () =>\n inject<TransignalService<Languages, Translations, StringKeys<Translations>>>(TransignalService);\n return {\n [INTERNAL_TRANSIGNAL_CONFIG]: { config, features },\n provide: () =>\n makeEnvironmentProviders([\n { provide: TRANSIGNAL_CONFIG, useValue: config },\n TransignalService,\n features.map(feature => feature.providers),\n ]),\n service,\n t: <Scope extends StringKeys<Translations>>(scope: Scope) => service().t(scope),\n };\n};","import { INTERNAL_TRANSIGNAL_CONFIG } from './internals';\nimport { prepareTransignal } from './transignal-config';\n\n/**\n * Provides unit-test version of transignal that loads translation instantly without loading\n *\n * @param transignal existing transignal instance\n * @param translations real translations in a selected language\n */\nexport const provideTransignalTesting = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(\n transignal: ReturnType<typeof prepareTransignal<Languages, Translations>>,\n translations: Translations\n) =>\n prepareTransignal(\n { ...transignal[INTERNAL_TRANSIGNAL_CONFIG].config, translations },\n ...transignal[INTERNAL_TRANSIGNAL_CONFIG].features\n ).provide();","import {\n BasePluralTranslation,\n BaseSelectTranslation,\n MarkedAsSelect,\n PluralTranslation,\n} from './types';\n\n/**\n * Utility to create a plural translation that can differ between languages and includes variants of translations for different plurals\n * Can be used with {@link TranslateObj.plural}\n * Translations may use automatic param: `{count}`\n * @param translation plural translation object\n */\nexport const plural = (translation: BasePluralTranslation): PluralTranslation =>\n translation as PluralTranslation;\n\n/**\n * Utility to create a select translation\n * Can be used with {@link TranslateObj.select}\n * Translations may use automatic param: `{value}`\n * @param translation select translation object\n */\nexport const select = <T extends BaseSelectTranslation>(translation: T) =>\n translation as MarkedAsSelect<T>;","import { isPlatformBrowser } from '@angular/common';\nimport { effect, inject, PLATFORM_ID, provideAppInitializer } from '@angular/core';\n\nimport { TransignalFeature } from './types';\nimport { injectTransignalConfig } from '../transignal-config';\nimport { TransignalService } from '../transignal-service';\n\n/**\n * Saves user selected language in selected storage e.g. localStorage\n * Works only in browser environment\n *\n * @param key Key under which it should save the language in storage\n * @param storage Storage to be used e.g. localStorage or sessionStorage\n */\nexport const withLanguageLocalStorageSync = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(\n key: string = 'LANG',\n storage: 'localStorage' | 'sessionStorage' = 'localStorage'\n): TransignalFeature<Languages, Translations> => {\n return {\n providers: [\n provideAppInitializer(() => {\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n const transignalService = inject(TransignalService);\n const store = window[storage];\n\n const savedLanguage = store.getItem(key);\n if (savedLanguage) {\n const { availableLangs } = injectTransignalConfig();\n if (availableLangs.includes(savedLanguage)) {\n transignalService.activeLang.set(savedLanguage);\n }\n }\n effect(() => {\n const updatedLang = transignalService.activeLang();\n store.setItem(key, updatedLang);\n });\n }\n }),\n ],\n };\n};","import { isPlatformBrowser } from '@angular/common';\nimport { inject, PLATFORM_ID, provideAppInitializer } from '@angular/core';\n\nimport { TransignalFeature } from './types';\nimport { injectTransignalConfig } from '../transignal-config';\nimport { TransignalService } from '../transignal-service';\n\n/**\n * Sets active language depending on `navigator.language`, which represents user defined browser settings\n * Works only in browser environment\n */\nexport const withNavigatorLanguage = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(): TransignalFeature<Languages, Translations> => {\n return {\n providers: [\n provideAppInitializer(() => {\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n const transignalService = inject(TransignalService);\n const { availableLangs } = injectTransignalConfig();\n const preferredLanguage = (\n navigator.languages.map(language => language.split('-')[0].toLowerCase()) as Languages[]\n ).find(language => availableLangs.includes(language));\n if (preferredLanguage) {\n transignalService.activeLang.set(preferredLanguage);\n }\n }\n }),\n ],\n };\n};","import { effect, inject, provideAppInitializer } from '@angular/core';\n\nimport { TransignalFeature } from './types';\nimport { TransignalService } from '../transignal-service';\nimport { StringKeys } from '../utility-types';\n\n/**\n * Preloads selected scopes in default language\n * Use after language init by {@link withServerSideLanguage} or {@link withNavigatorLanguage}\n * @param scopes Scopes which should be preloaded\n */\nexport const withPreloadScopes = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(\n scopes: StringKeys<Translations>[]\n): TransignalFeature<Languages, Translations> => {\n return {\n providers: [\n provideAppInitializer(() => {\n const transignalService = inject(TransignalService);\n effect(() => {\n const _activeLang = transignalService.activeLang();\n scopes.forEach(scope => transignalService.t(scope)(''));\n });\n }),\n ],\n };\n};","import { isPlatformServer } from '@angular/common';\nimport { DOCUMENT, inject, PLATFORM_ID, provideAppInitializer } from '@angular/core';\n\nimport { TransignalFeature } from './types';\nimport { injectTransignalConfig } from '../transignal-config';\nimport { TransignalService } from '../transignal-service';\n\n/**\n * Sets active language depending on `document.lang` attribute which should be set by the server.ts depending on `Accept-language` header\n * Works only in SSR environment\n */\nexport const withServerSideLanguage = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(): TransignalFeature<Languages, Translations> => {\n return {\n providers: [\n provideAppInitializer(() => {\n if (isPlatformServer(inject(PLATFORM_ID))) {\n const transignalService = inject(TransignalService);\n const { documentElement } = inject(DOCUMENT);\n const { availableLangs } = injectTransignalConfig();\n if (availableLangs.includes(documentElement.lang)) {\n transignalService.activeLang.set(documentElement.lang);\n }\n }\n }),\n ],\n };\n};","import {\n computed,\n effect,\n EffectRef,\n EnvironmentInjector,\n inject,\n makeEnvironmentProviders,\n runInInjectionContext,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Router, RouterStateSnapshot, TitleStrategy } from '@angular/router';\n\nimport { TransignalFeature } from './types';\nimport { TransignalService } from '../transignal-service';\nimport { TranslateObj } from '../types';\nimport { StringKeys } from '../utility-types';\n\nclass TransignalTitleStrategy extends TitleStrategy {\n private readonly title = inject(Title);\n private readonly injector = inject(EnvironmentInjector);\n\n private effectRef: EffectRef | undefined;\n\n constructor(private readonly t: TranslateObj<Record<string, string>>) {\n super();\n }\n\n updateTitle(routerState: RouterStateSnapshot): void {\n this.effectRef?.destroy();\n const router = this.injector.get(Router);\n const title = this.buildTitle(routerState) || 'default';\n const translation = computed(() => this.t(title, router.getCurrentNavigation()?.extras.state));\n\n this.effectRef = runInInjectionContext(this.injector, () =>\n effect(() => this.title.setTitle(translation()), { manualCleanup: true })\n );\n }\n}\n\n/**\n * Enables translation of title param in route definition with use of prepared {@link TitleStrategy}\n * Automatically translates `title` param form route definition, sets website title and updates on language changes\n * Also it is possible to use parameters from `navigation.extras.state`\n *\n * @example\n * ```typescript\n * // src/app/app.routes.ts\n * export const routes = [\n * { path: 'base', title: 'base', children: [\n * { path: 'child', title: 'child' },\n * ],\n * { path: 'aux', outlet: 'popup', title: 'popupTitle' }\n * ];\n *\n * // src/app/transignal.ts\n * export const transignal = prepareTransignal(<config>, withTranslatedTitle('global'));\n *\n * // src/app/i18n/global/en.ts\n * export default {\n * title: {\n * base: 'Base title',\n * child: 'Child title'\n * popupTitle: 'Popup title'\n * }\n * };\n * ```\n *\n * @param scope scope under which there are title translations\n * @param translationKey translation key under which there are translations, `title` by default\n */\nexport const withTranslatedTitle = <\n Languages extends string,\n Translations extends Record<string, Record<string, unknown>>,\n>(\n scope: StringKeys<Translations>,\n translationKey = 'title'\n): TransignalFeature<Languages, Translations> => {\n return {\n providers: [\n makeEnvironmentProviders([\n {\n provide: TitleStrategy,\n useFactory: (service = inject(TransignalService)) =>\n new TransignalTitleStrategy(service.t(scope).prefix(translationKey)),\n },\n ]),\n ],\n };\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 './internals'; \nexport * from './start-cli'; \nexport * from './transignal-config'; \nexport * from './transignal-param-handlers'; \nexport * from './transignal-service'; \nexport * from './transignal-testing'; \nexport * from './types'; \nexport * from './utility-types'; \nexport * from './utils'; \nexport * from './features/types'; \nexport * from './features/withLanguageLocalStorageSync'; \nexport * from './features/withNavigatorLanguage'; \nexport * from './features/withPreloadScopes'; \nexport * from './features/withServerSideLanguage'; \nexport * from './features/withTranslatedTitle'; ","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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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "i18n/browser",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^21.0.0",
|
|
6
|
+
"@angular/core": "^21.0.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"module": "fesm2022/i18n-browser.mjs",
|
|
13
|
+
"typings": "types/i18n-browser.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/i18n-browser.d.ts",
|
|
20
|
+
"default": "./fesm2022/i18n-browser.mjs"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import * as i18n_browser from 'i18n/browser';
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
|
+
import { EnvironmentProviders, Signal, InjectionToken } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Autogenerated by current cli tool
|
|
8
|
+
*/
|
|
9
|
+
declare const BUILD_FRAMEWORK_CLI_NAME = "tnp";
|
|
10
|
+
/**
|
|
11
|
+
* This value can be change in taon.jsonc (appId)
|
|
12
|
+
*/
|
|
13
|
+
declare const APP_ID = "com.domain.example.i18n";
|
|
14
|
+
/**
|
|
15
|
+
* Autogenerated by current cli tool
|
|
16
|
+
*/
|
|
17
|
+
declare const BUILD_BASE_HREF = "";
|
|
18
|
+
/**
|
|
19
|
+
* This value can be change in taon.jsonc (overrideNpmName)
|
|
20
|
+
*/
|
|
21
|
+
declare const PROJECT_NPM_NAME = "@taon-dev/i18n";
|
|
22
|
+
/**
|
|
23
|
+
* Taon version from you project taon.json
|
|
24
|
+
*/
|
|
25
|
+
declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
|
|
26
|
+
/**
|
|
27
|
+
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
28
|
+
*/
|
|
29
|
+
declare const CURRENT_PACKAGE_VERSION = "0.0.1";
|
|
30
|
+
|
|
31
|
+
declare const INTERNAL_TRANSIGNAL_CONFIG: unique symbol;
|
|
32
|
+
declare const TREE_SHAKED_TRANSLATIONS: unique symbol;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @param argsv process.argsv
|
|
37
|
+
* @param filename needed if you want ipc communicaiton
|
|
38
|
+
*/
|
|
39
|
+
declare function startCli(argsv: string[], filename: string): Promise<void>;
|
|
40
|
+
|
|
41
|
+
type TransignalFeature<Languages extends string, Translations extends Record<string, Record<string, unknown>>> = {
|
|
42
|
+
providers: EnvironmentProviders[];
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
type ParamHandler = (translation: string, params?: TranslateParams) => string;
|
|
46
|
+
/**
|
|
47
|
+
* Param handler which allows for specification of basic params: `{name}`
|
|
48
|
+
*
|
|
49
|
+
* @param translation Translated text
|
|
50
|
+
* @param params Params provided to translation function
|
|
51
|
+
*/
|
|
52
|
+
declare const simpleParamsHandler: ParamHandler;
|
|
53
|
+
declare const noParamsHandler: ParamHandler;
|
|
54
|
+
declare const simpleParamValueStringify: (paramValue: unknown) => any;
|
|
55
|
+
|
|
56
|
+
type GetNestedType<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? GetNestedType<T[Key], Rest> : never : P extends keyof T ? NonNullable<T[P]> : never;
|
|
57
|
+
type DotPrefix<T extends string> = T extends '' ? '' : `.${T}`;
|
|
58
|
+
type Paths<T> = T extends object ? T extends Array<infer U> ? `${number}${'' | DotPrefix<Paths<U>>}` : {
|
|
59
|
+
[K in keyof T]-?: K extends string | number ? `${K}${'' | DotPrefix<Paths<T[K]>>}` : never;
|
|
60
|
+
}[keyof T] : '';
|
|
61
|
+
type ArrayPaths<T> = {
|
|
62
|
+
[P in Paths<T>]: GetNestedType<T, P> extends Array<unknown> ? P : never;
|
|
63
|
+
}[Paths<T>];
|
|
64
|
+
type ObjectPaths<T> = {
|
|
65
|
+
[P in Paths<T>]: GetNestedType<T, P> extends Record<any, unknown> ? P : never;
|
|
66
|
+
}[Paths<T>];
|
|
67
|
+
type PluralPaths<T> = {
|
|
68
|
+
[P in Paths<T>]: GetNestedType<T, P> extends PluralTranslation ? P : never;
|
|
69
|
+
}[Paths<T>];
|
|
70
|
+
type SelectPaths<T> = {
|
|
71
|
+
[P in Paths<T>]: GetNestedType<T, P> extends SelectTranslation ? P : never;
|
|
72
|
+
}[Paths<T>];
|
|
73
|
+
type StringPaths<T> = {
|
|
74
|
+
[P in Paths<T>]: GetNestedType<T, P> extends string ? P : never;
|
|
75
|
+
}[Paths<T>];
|
|
76
|
+
type StringKeys<T> = Extract<keyof T, string>;
|
|
77
|
+
type ResourceRefLike<T> = {
|
|
78
|
+
value: Signal<T | undefined>;
|
|
79
|
+
isLoading: Signal<boolean>;
|
|
80
|
+
error: Signal<Error | undefined>;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
type TransignalError =
|
|
84
|
+
/** Error when key is not found in translations */
|
|
85
|
+
'missing_key'
|
|
86
|
+
/** Error when translation file for scope and lang has not been found */
|
|
87
|
+
| 'missing_file'
|
|
88
|
+
/** Error plural for a value is not defined for a language */
|
|
89
|
+
| 'missing_plural'
|
|
90
|
+
/** Error when plural used on a non-plural translation */
|
|
91
|
+
| 'invalid_plural'
|
|
92
|
+
/** Error select for a value is not defined for a language */
|
|
93
|
+
| 'missing_select'
|
|
94
|
+
/** Error when select used on a non-select translation */
|
|
95
|
+
| 'invalid_select'
|
|
96
|
+
/** Error when prefix chain is called more then {@link TransignalConfig.maxPrefixDepth} */
|
|
97
|
+
| 'prefix_too_deep';
|
|
98
|
+
type TranslateParams = Record<string, unknown>;
|
|
99
|
+
type Marked<K, T> = K & {
|
|
100
|
+
__marker: T;
|
|
101
|
+
};
|
|
102
|
+
type BasePluralTranslation = Partial<Record<number | 'one' | 'few' | 'many' | 'other', string>>;
|
|
103
|
+
type PluralTranslation = Marked<BasePluralTranslation, 'plural'>;
|
|
104
|
+
type BaseSelectTranslation = Partial<Record<string | number | 'null', string>>;
|
|
105
|
+
type MarkedAsSelect<T extends BaseSelectTranslation> = Marked<T, 'select'>;
|
|
106
|
+
type SelectTranslation = MarkedAsSelect<BaseSelectTranslation>;
|
|
107
|
+
type TranslateFn<Keys extends string, Result> = (key: Keys, params?: TranslateParams) => Result;
|
|
108
|
+
type TranslateObj<Context extends Record<string, any>> = TranslateFn<StringPaths<Context>, string> & {
|
|
109
|
+
/**
|
|
110
|
+
* Returns translating function that returns an array of translations
|
|
111
|
+
* @param key path of translation
|
|
112
|
+
* @param params parameters of translation in syntax defined by {@link TransignalConfig.paramHandler}
|
|
113
|
+
*/
|
|
114
|
+
arr: <ArrKey extends ArrayPaths<Context>>(key: ArrKey, params?: TranslateParams) => GetNestedType<Context, ArrKey>;
|
|
115
|
+
/**
|
|
116
|
+
* Returns translating function that returns an object of translations
|
|
117
|
+
* @param key path of translation
|
|
118
|
+
* @param params parameters of translation in syntax defined by {@link TransignalConfig.paramHandler}
|
|
119
|
+
*/
|
|
120
|
+
obj: <ObjKey extends ObjectPaths<Context>>(key: ObjKey, params?: TranslateParams) => GetNestedType<Context, ObjKey>;
|
|
121
|
+
/**
|
|
122
|
+
* Returns translating function that returns a string translation depending on a correct plural form
|
|
123
|
+
* @param key path of translation
|
|
124
|
+
* @param count count to determine correct plural form
|
|
125
|
+
* @param params parameters of translation in syntax defined by {@link TransignalConfig.paramHandler}
|
|
126
|
+
*/
|
|
127
|
+
plural: <ObjKey extends PluralPaths<Context>>(key: ObjKey, count: number, params?: TranslateParams) => string;
|
|
128
|
+
/**
|
|
129
|
+
* Returns translating function that returns a string translation depending on a selected value
|
|
130
|
+
* @param key path of translation
|
|
131
|
+
* @param value value to determine selected translation
|
|
132
|
+
* @param params parameters of translation in syntax defined by {@link TransignalConfig.paramHandler}
|
|
133
|
+
*/
|
|
134
|
+
select: <ObjKey extends SelectPaths<Context>>(key: ObjKey, value: keyof SelectTranslation | null, params?: TranslateParams) => string;
|
|
135
|
+
/**
|
|
136
|
+
* Returns translating function that is encapsulated in a selected prefix
|
|
137
|
+
* @param prefix path of new root translation
|
|
138
|
+
*/
|
|
139
|
+
prefix: <T extends ObjectPaths<Context>>(prefix: T) => TranslateObj<GetNestedType<Context, T>>;
|
|
140
|
+
};
|
|
141
|
+
type TranslationFile = Record<string, unknown>;
|
|
142
|
+
type TransignalConfig<Languages extends string, Translations extends Record<string, Record<string, unknown>>> = {
|
|
143
|
+
/**
|
|
144
|
+
* Default language code
|
|
145
|
+
*/
|
|
146
|
+
defaultLang: NoInfer<Languages>;
|
|
147
|
+
/**
|
|
148
|
+
* An array of available languages that your application supports.
|
|
149
|
+
* These should be unique string identifiers for each language (e.g., ['en', 'fr', 'es']).
|
|
150
|
+
*/
|
|
151
|
+
availableLangs: Languages[];
|
|
152
|
+
/**
|
|
153
|
+
* Defines the type of translations.
|
|
154
|
+
* Please use helper function {@link treeShakedTranslations()}
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* import type translations from './i18n/translations';
|
|
158
|
+
* ...
|
|
159
|
+
* translations: treeShakedTranslations<typeof translations>(),
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
translations: Translations;
|
|
163
|
+
/**
|
|
164
|
+
* A function responsible for dynamically loading translation files.
|
|
165
|
+
* This function is called when a specific translation scope and language is requested
|
|
166
|
+
* It runs in TransignalService injection context so {@link inject()} can be used to e.g. use HttpClient
|
|
167
|
+
*
|
|
168
|
+
* @param scope The string key representing the translation scope (e.g., 'common', 'auth').
|
|
169
|
+
* @param lang The language identifier for which to load translations (e.g., 'en', 'fr').
|
|
170
|
+
* @returns A Promise that resolves to a `TranslationFile` object, which is
|
|
171
|
+
* a record of string keys to unknown values representing the translations for
|
|
172
|
+
* the given scope and language.
|
|
173
|
+
*/
|
|
174
|
+
loader: (scope: StringKeys<Translations>, lang: Languages) => Promise<TranslationFile>;
|
|
175
|
+
/**
|
|
176
|
+
* An optional function that defines how a loading message should be displayed
|
|
177
|
+
* while translations are being loaded.
|
|
178
|
+
*
|
|
179
|
+
* @param key The translation key that is currently being loaded.
|
|
180
|
+
* @returns A string representing the loading message.
|
|
181
|
+
*/
|
|
182
|
+
loadingFn?: (key: string) => string;
|
|
183
|
+
/**
|
|
184
|
+
* An optional function that defines how params should be processed
|
|
185
|
+
* Defaults to {@link simpleParamsHandler}
|
|
186
|
+
* Use {@link noParamsHandler} if you don't want to use params
|
|
187
|
+
* If you want to handle message format then you can install TODO
|
|
188
|
+
*/
|
|
189
|
+
paramHandler?: ParamHandler;
|
|
190
|
+
/**
|
|
191
|
+
* An optional error handler function that will be called when a `TransignalError` occurs.
|
|
192
|
+
* This allows you to implement custom error reporting or logging.
|
|
193
|
+
*
|
|
194
|
+
* @param errorCode Code of an error {@link TransignalError} code that occurred.
|
|
195
|
+
* @param args Any additional arguments relevant to the error.
|
|
196
|
+
*/
|
|
197
|
+
errorHandler?: (errorCode: TransignalError, ...args: unknown[]) => void;
|
|
198
|
+
/**
|
|
199
|
+
* Defines max depth of prefix functions in {@link TranslateObj}
|
|
200
|
+
* Defaults to 3, this means that if prefix function is used more than 3 time on the same t then it will fail
|
|
201
|
+
* Required for performance reasons
|
|
202
|
+
*/
|
|
203
|
+
maxPrefixDepth?: number;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Main transignal service, used to process and cache translations
|
|
208
|
+
* Can be injected directly or with use of transignal object created with {@link prepareTransignal} function (recommended)
|
|
209
|
+
*/
|
|
210
|
+
declare class TransignalService<Languages extends string, Translations extends Record<string, Record<string, any>>, Scopes extends StringKeys<Translations>> {
|
|
211
|
+
private readonly injector;
|
|
212
|
+
private readonly config;
|
|
213
|
+
private readonly paramsHandler;
|
|
214
|
+
private readonly loadingFn;
|
|
215
|
+
private readonly errorHandler;
|
|
216
|
+
private readonly loadingCount;
|
|
217
|
+
private readonly scopeMap;
|
|
218
|
+
private readonly languageMap;
|
|
219
|
+
/**
|
|
220
|
+
* Use to set or get active language
|
|
221
|
+
*/
|
|
222
|
+
readonly activeLang: _angular_core.WritableSignal<Languages>;
|
|
223
|
+
/**
|
|
224
|
+
* Use to determine whether service is currently loading translation files
|
|
225
|
+
*/
|
|
226
|
+
readonly isLoading: _angular_core.Signal<boolean>;
|
|
227
|
+
t<Scope extends Scopes>(scope: Scope): TranslateObj<Translations[Scope]>;
|
|
228
|
+
private initT;
|
|
229
|
+
private preparePrefixFn;
|
|
230
|
+
private preparePluralFn;
|
|
231
|
+
private prepareSelectFn;
|
|
232
|
+
protected replaceParams<T>(translation: T, params?: TranslateParams): T;
|
|
233
|
+
private fetchLanguage;
|
|
234
|
+
private resolveObjectPath;
|
|
235
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransignalService<any, any, any>, never>;
|
|
236
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TransignalService<any, any, any>>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Utility function to define a type of translations for type inference
|
|
241
|
+
*/
|
|
242
|
+
declare const treeShakedTranslations: <Translations extends Record<string, Record<string, unknown>>>() => Translations;
|
|
243
|
+
declare const TRANSIGNAL_CONFIG: InjectionToken<unknown>;
|
|
244
|
+
/**
|
|
245
|
+
* Use to inject transignal config
|
|
246
|
+
*/
|
|
247
|
+
declare const injectTransignalConfig: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>() => TransignalConfig<Languages, Translations>;
|
|
248
|
+
/**
|
|
249
|
+
* Prepares type-safe transignal object
|
|
250
|
+
* @param config Transignal configruation {@link TransignalConfig}
|
|
251
|
+
* @param features Extra tree-shakeable features
|
|
252
|
+
* - {@link withPreloadScopes} - preloads selected scopes
|
|
253
|
+
* - {@link withServerSideLanguage} - sets language based on `document.lang` in SSR environment
|
|
254
|
+
* - {@link withNavigatorLanguage} - sets language based on `navigator.language` in browser environment
|
|
255
|
+
* - {@link withLanguageLocalStorageSync} - syncs language with localStorage
|
|
256
|
+
* - {@link withTranslatedTitle} - enables translation of page title
|
|
257
|
+
*/
|
|
258
|
+
declare const prepareTransignal: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(config: TransignalConfig<Languages, Translations>, ...features: NoInfer<TransignalFeature<Languages, Translations>[]>) => {
|
|
259
|
+
[INTERNAL_TRANSIGNAL_CONFIG]: {
|
|
260
|
+
config: TransignalConfig<Languages, Translations>;
|
|
261
|
+
features: TransignalFeature<Languages, Translations>[];
|
|
262
|
+
};
|
|
263
|
+
provide: () => _angular_core.EnvironmentProviders;
|
|
264
|
+
service: () => TransignalService<Languages, Translations, StringKeys<Translations>>;
|
|
265
|
+
t: <Scope extends StringKeys<Translations>>(scope: Scope) => i18n_browser.TranslateObj<Translations[Scope]>;
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Provides unit-test version of transignal that loads translation instantly without loading
|
|
270
|
+
*
|
|
271
|
+
* @param transignal existing transignal instance
|
|
272
|
+
* @param translations real translations in a selected language
|
|
273
|
+
*/
|
|
274
|
+
declare const provideTransignalTesting: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(transignal: ReturnType<typeof prepareTransignal<Languages, Translations>>, translations: Translations) => _angular_core.EnvironmentProviders;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Utility to create a plural translation that can differ between languages and includes variants of translations for different plurals
|
|
278
|
+
* Can be used with {@link TranslateObj.plural}
|
|
279
|
+
* Translations may use automatic param: `{count}`
|
|
280
|
+
* @param translation plural translation object
|
|
281
|
+
*/
|
|
282
|
+
declare const plural: (translation: BasePluralTranslation) => PluralTranslation;
|
|
283
|
+
/**
|
|
284
|
+
* Utility to create a select translation
|
|
285
|
+
* Can be used with {@link TranslateObj.select}
|
|
286
|
+
* Translations may use automatic param: `{value}`
|
|
287
|
+
* @param translation select translation object
|
|
288
|
+
*/
|
|
289
|
+
declare const select: <T extends BaseSelectTranslation>(translation: T) => MarkedAsSelect<T>;
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Saves user selected language in selected storage e.g. localStorage
|
|
293
|
+
* Works only in browser environment
|
|
294
|
+
*
|
|
295
|
+
* @param key Key under which it should save the language in storage
|
|
296
|
+
* @param storage Storage to be used e.g. localStorage or sessionStorage
|
|
297
|
+
*/
|
|
298
|
+
declare const withLanguageLocalStorageSync: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(key?: string, storage?: "localStorage" | "sessionStorage") => TransignalFeature<Languages, Translations>;
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Sets active language depending on `navigator.language`, which represents user defined browser settings
|
|
302
|
+
* Works only in browser environment
|
|
303
|
+
*/
|
|
304
|
+
declare const withNavigatorLanguage: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>() => TransignalFeature<Languages, Translations>;
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Preloads selected scopes in default language
|
|
308
|
+
* Use after language init by {@link withServerSideLanguage} or {@link withNavigatorLanguage}
|
|
309
|
+
* @param scopes Scopes which should be preloaded
|
|
310
|
+
*/
|
|
311
|
+
declare const withPreloadScopes: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(scopes: StringKeys<Translations>[]) => TransignalFeature<Languages, Translations>;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Sets active language depending on `document.lang` attribute which should be set by the server.ts depending on `Accept-language` header
|
|
315
|
+
* Works only in SSR environment
|
|
316
|
+
*/
|
|
317
|
+
declare const withServerSideLanguage: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>() => TransignalFeature<Languages, Translations>;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Enables translation of title param in route definition with use of prepared {@link TitleStrategy}
|
|
321
|
+
* Automatically translates `title` param form route definition, sets website title and updates on language changes
|
|
322
|
+
* Also it is possible to use parameters from `navigation.extras.state`
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```typescript
|
|
326
|
+
* // src/app/app.routes.ts
|
|
327
|
+
* export const routes = [
|
|
328
|
+
* { path: 'base', title: 'base', children: [
|
|
329
|
+
* { path: 'child', title: 'child' },
|
|
330
|
+
* ],
|
|
331
|
+
* { path: 'aux', outlet: 'popup', title: 'popupTitle' }
|
|
332
|
+
* ];
|
|
333
|
+
*
|
|
334
|
+
* // src/app/transignal.ts
|
|
335
|
+
* export const transignal = prepareTransignal(<config>, withTranslatedTitle('global'));
|
|
336
|
+
*
|
|
337
|
+
* // src/app/i18n/global/en.ts
|
|
338
|
+
* export default {
|
|
339
|
+
* title: {
|
|
340
|
+
* base: 'Base title',
|
|
341
|
+
* child: 'Child title'
|
|
342
|
+
* popupTitle: 'Popup title'
|
|
343
|
+
* }
|
|
344
|
+
* };
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* @param scope scope under which there are title translations
|
|
348
|
+
* @param translationKey translation key under which there are translations, `title` by default
|
|
349
|
+
*/
|
|
350
|
+
declare const withTranslatedTitle: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(scope: StringKeys<Translations>, translationKey?: string) => TransignalFeature<Languages, Translations>;
|
|
351
|
+
|
|
352
|
+
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, INTERNAL_TRANSIGNAL_CONFIG, PROJECT_NPM_NAME, TRANSIGNAL_CONFIG, TREE_SHAKED_TRANSLATIONS, TransignalService, injectTransignalConfig, noParamsHandler, plural, prepareTransignal, provideTransignalTesting, select, simpleParamValueStringify, simpleParamsHandler, startCli, treeShakedTranslations, withLanguageLocalStorageSync, withNavigatorLanguage, withPreloadScopes, withServerSideLanguage, withTranslatedTitle };
|
|
353
|
+
export type { ArrayPaths, BasePluralTranslation, BaseSelectTranslation, GetNestedType, Marked, MarkedAsSelect, ObjectPaths, ParamHandler, Paths, PluralPaths, PluralTranslation, ResourceRefLike, SelectPaths, SelectTranslation, StringKeys, StringPaths, TransignalConfig, TransignalError, TransignalFeature, TranslateFn, TranslateObj, TranslateParams, TranslationFile };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|