{"_id":"@breadstone/ziegel-platform-localization","_rev":"9-ea6cacdfb747533d1ff012f50e90d76f","name":"@breadstone/ziegel-platform-localization","dist-tags":{"latest":"0.0.9"},"versions":{"0.0.1":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.1","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.1","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"3785bf38eb359de74a2db946c84fec9ef144648b","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.1.tgz","fileCount":135,"integrity":"sha512-p58zGSi+nTUlkvu5ciN/Zn/0hTPix4AQWgaSnR32hfIJEjIWLF6DHWB1D1zXLWlvgQJ+htODPq2xVqVon4z2Kg==","signatures":[{"sig":"MEYCIQDdsAC7ou9fnMD4YnOHEAaJFNuUDlhEzOTGqhyQ8jA33gIhAKKwnQ0yCiMVKv1kEA3pA+n5wddRAKoxshdPWH0VmoJ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355462},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"6e85e7a52b57c3f29013f4fd6383076cd22dc9a0","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"realsancezz@gmail.com"},"email":"realsancezz@gmail.com"},"commonjs":"./Index.js","repository":{"url":"https://breadstone.visualstudio.com/ziegel/_git/ziegel","type":"git"},"_npmVersion":"11.3.0","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.1","@breadstone/ziegel-platform":"0.0.1","@breadstone/ziegel-platform-http":"0.0.1","@breadstone/ziegel-platform-logging":"0.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.1_1750993756352_0.9910467347824052","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.2","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.2","maintainers":[{"name":"ruederennes","email":"realsancezz@gmail.com"}],"bugs":{"url":"https://breadstone.visualstudio.com/ziegel/_workitems/create/Bug"},"dist":{"shasum":"f90892686d35b34138c057d017af9a5edd1102c4","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.2.tgz","fileCount":136,"integrity":"sha512-rf7DV2hayKPXxDPLue/TjiAr2pOxQEGRTDE9v+T21KNleuts8e86zS8jkYrVSe9AG3Ugz7T6aqYwJeOam4zqhw==","signatures":[{"sig":"MEYCIQCDHvcu588pWicejjjBvaptJOAq8DL53m3nKsFEyaV5UgIhAMVbRq3+q0+DMJ2zAvaA+diXqTtDNsGxaBl7PHvkqW4e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355925},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"810d476703d4a1544150277fa8510b8110622415","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"realsancezz@gmail.com"},"email":"realsancezz@gmail.com"},"commonjs":"./Index.js","repository":{"url":"https://breadstone.visualstudio.com/ziegel/_git/ziegel","type":"git"},"_npmVersion":"11.3.0","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.2","@breadstone/ziegel-platform":"0.0.2","@breadstone/ziegel-platform-http":"0.0.2","@breadstone/ziegel-platform-logging":"0.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.2_1750994536136_0.3769066297730568","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.3","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.3","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"cf742d25fb93cd46163540d1981b3359e11b9091","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.3.tgz","fileCount":132,"integrity":"sha512-gB0A8HoHUUEYNhHuoB0enn3z28KPaAHh4QcbXMrdYONXdcuSAnzCx0NN1IW1RPlHwZyT3Tc6ORi5ouVip5sqVw==","signatures":[{"sig":"MEYCIQDR/tSRzj33g7I/NJMwHxSeTLhZk8B8UPpobyuKbq7OYwIhAN9vcCKKUhqBDw2ti6zkAqUD9FaScWH6nXVvL25zeygS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115552},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"b4d03ca0908154138403f2a27ca8efb54bee6e80","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"10.9.2","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.3","@breadstone/ziegel-platform":"0.0.3","@breadstone/ziegel-platform-http":"0.0.3","@breadstone/ziegel-platform-logging":"0.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.3_1751575615986_0.08994053491708076","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.4","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.4","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"571f0846c68d6f5d643c64ba2ec5e5a16119e6fa","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.4.tgz","fileCount":132,"integrity":"sha512-vkAipWp75FD4dFLkT0L0BVUQ6atgoZVH0S+B0u+dZgUPtgksmuA+BTtm/xmX8er0EP1FFpJPTmWw6fpGi01Ung==","signatures":[{"sig":"MEYCIQCkYSFCrd7VQoDq3ibKO+aQFkU60RL0oD6qY9hYN+DTdAIhAMHDLvok4s8Dq2OINbfs2sLGTgeP/DW/bR5bJgwAUc/z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115552},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"87efb239ae0aa6121dc170cd110bc9be7bb0c622","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"10.9.2","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.4","@breadstone/ziegel-platform":"0.0.4","@breadstone/ziegel-platform-http":"0.0.4","@breadstone/ziegel-platform-logging":"0.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.4_1751576131929_0.7281546973415012","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.5","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.5","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"02a9633be50a1bcb955a44c77eeda766bae12f41","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.5.tgz","fileCount":132,"integrity":"sha512-zCaQvKrRdS7adGG4rmDwhlSRAp7KQN/wAj1FApwYR00w/l0+D4cjazBdQVRQenaRrITVIQdIG9OvwdNYlb5Yxw==","signatures":[{"sig":"MEUCIBay7aTkEXORR+uMzftvQri+WawewXD4MYUSy2Fll7yIAiEA06gO6dhOEOyCEWm/zgu8fRmehStHKq4JQdlodolZPIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119110},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"7eb0efd9f6fa2d25da83ba6a3bd737a0da028bf7","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","actor":{"name":"ruederennes","type":"user","email":"npm@breadstone.de"},"email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"9.8.1","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.5","@breadstone/ziegel-platform":"0.0.5","@breadstone/ziegel-platform-http":"0.0.5","@breadstone/ziegel-platform-logging":"0.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.5_1751699299672_0.389611467954627","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.6","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.6","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"621f630b9833f1615db8b986092706ffb3c190d3","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.6.tgz","fileCount":132,"integrity":"sha512-V86OGjuU70ArcbPDPmyHFf1azzzY1TrGYFcZTO+NnFUCN/CugqfLjxQwn33+UoqS6e0InSrYVkoick6CFosPlA==","signatures":[{"sig":"MEYCIQD+H3+yHiceHL1uohXlV2Q32OTDdBLkBCHlU81eetiJEwIhAOXBfxAMdoB2uOo4MEuATj8AgA+YGHZUS3/ZGL2A7JKr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123764},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"2513477b6a87dede7a429076b048197086e267b2","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.6","@breadstone/ziegel-platform":"0.0.6","@breadstone/ziegel-platform-http":"0.0.6","@breadstone/ziegel-platform-logging":"0.0.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.6_1754467877247_0.7020486431576749","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.7","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.7","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"a7fa9c527503c031fe4330f963baea20137e0600","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.7.tgz","fileCount":132,"integrity":"sha512-4nmv1vzsVNXNkoSZZzBZRboaXMuyeqfLwRkc56CPlPH5n7aErBVhuKPhSTBFdbzkBs69CXYEVQexRxDWXFVEKQ==","signatures":[{"sig":"MEQCIG0iMIdUHwjU4FH6sPx+qcpKtuTl5jSGCUAuHY31pOivAiA0AGKPBOevfRDtmvOlVfV8VreCNhtZ/4TqYTV4cp6syQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123764},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"7647e351d85d9dfbae9e9e9d84095559a75822d3","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.7","@breadstone/ziegel-platform":"0.0.7","@breadstone/ziegel-platform-http":"0.0.7","@breadstone/ziegel-platform-logging":"0.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.7_1754468281889_0.19267250724717022","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.8","author":{"url":"https://www.breadstone.de","name":"andre.wehlert","email":"awehlert@breadstone.de"},"license":"MIT","_id":"@breadstone/ziegel-platform-localization@0.0.8","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"homepage":"https://github.com/RueDeRennes/ziegel#readme","bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dist":{"shasum":"7f494bdb0b039eb4b708f3c44338be92b97ef14d","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.8.tgz","fileCount":132,"integrity":"sha512-8ls8dFgv+WrUH+Wed/8lMqKMiakq8lTKBX+AbxzQxlSsk2n9j7lcvWn8yRfdAI1cj3Ug+HTv5uQac/psCbngpQ==","signatures":[{"sig":"MEUCIE3Y0QePOPs12Yfwaq1KT7IiB7Qg+eSmRw5qUWTspTHJAiEA3b+yS/JvV7s1ZIzEHnVN7IKMo2FsUrhhPFq2bV5dapY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121702},"main":"./Index.js","types":"./Index.d.ts","module":"./Index.js","gitHead":"e3ad0a5eb92747c06f8642ef6b1b2e012ef6cb77","typings":"./Index.d.ts","_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"commonjs":"./Index.js","repository":{"url":"git+https://github.com/RueDeRennes/ziegel.git","type":"git"},"_npmVersion":"11.4.2","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rxjs":"^7.8.2","tslib":"^2.8.1","@breadstone/ziegel-core":"0.0.8","@breadstone/ziegel-platform":"0.0.8","@breadstone/ziegel-platform-http":"0.0.8","@breadstone/ziegel-platform-logging":"0.0.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ziegel-platform-localization_0.0.8_1754745304463_0.873744537122096","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@breadstone/ziegel-platform-localization","version":"0.0.9","description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","license":"MIT","author":{"name":"andre.wehlert","email":"awehlert@breadstone.de","url":"https://www.breadstone.de"},"main":"./Index.js","module":"./Index.js","commonjs":"./Index.js","typings":"./Index.d.ts","types":"./Index.d.ts","repository":{"type":"git","url":"git+https://github.com/RueDeRennes/ziegel.git"},"bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"dependencies":{"@breadstone/ziegel-core":"0.0.9","@breadstone/ziegel-platform":"0.0.9","@breadstone/ziegel-platform-http":"0.0.9","@breadstone/ziegel-platform-logging":"0.0.9","rxjs":"^7.8.2","tslib":"^2.8.1"},"_id":"@breadstone/ziegel-platform-localization@0.0.9","gitHead":"efc417cb60db843da253c8b83aa7ea54fe94ed5f","homepage":"https://github.com/RueDeRennes/ziegel#readme","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-IRonBEMocPHHBYcM4q/55uSCe2+CY/4oeHZiNwt/ggT20MK3RN/gsdgZnE7OXq6su0puKJmI3OlPHTAi+Up9pg==","shasum":"89b5390567b3b824893cdc83fde97ceb21ec2084","tarball":"https://registry.npmjs.org/@breadstone/ziegel-platform-localization/-/ziegel-platform-localization-0.0.9.tgz","fileCount":132,"unpackedSize":121702,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICAx44HZ4C4vgChLeq1k/T4/6nymGFKE/l+ffhVrA0NnAiA449LglPKofJODwozLG3XrukR9DE9rlhTrh1yDPq4D3g=="}]},"_npmUser":{"name":"ruederennes","email":"npm@breadstone.de"},"directories":{},"maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ziegel-platform-localization_0.0.9_1756450334123_0.2662005530271301"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-27T03:09:16.269Z","modified":"2025-08-29T06:52:14.552Z","0.0.1":"2025-06-27T03:09:16.522Z","0.0.2":"2025-06-27T03:22:16.321Z","0.0.3":"2025-07-03T20:46:56.170Z","0.0.4":"2025-07-03T20:55:32.103Z","0.0.5":"2025-07-05T07:08:19.851Z","0.0.6":"2025-08-06T08:11:17.466Z","0.0.7":"2025-08-06T08:18:02.094Z","0.0.8":"2025-08-09T13:15:04.691Z","0.0.9":"2025-08-29T06:52:14.326Z"},"bugs":{"url":"https://github.com/RueDeRennes/ziegel/issues"},"author":{"name":"andre.wehlert","email":"awehlert@breadstone.de","url":"https://www.breadstone.de"},"license":"MIT","homepage":"https://github.com/RueDeRennes/ziegel#readme","repository":{"type":"git","url":"git+https://github.com/RueDeRennes/ziegel.git"},"description":"Includes a localization manager for switch between diferent languages and manage multiple languages in your application.","maintainers":[{"name":"ruederennes","email":"npm@breadstone.de"}],"readme":"# @breadstone/ziegel-platform-localization\r\n\r\nA comprehensive localization management system for TypeScript applications that provides multi-language support, flexible content providers, and powerful text formatting capabilities.\r\n\r\n## Features\r\n\r\n- **Localization Manager**: Central management of localized strings with culture-aware retrieval\r\n- **Multiple Providers**: Support for map-based, HTTP-based, and composite localization sources\r\n- **Key Resolvers**: Flexible key transformation with CamelCase, PascalCase, Snake_case, and kebab-case support\r\n- **Value Parsers**: Format and reference parsing for dynamic content substitution\r\n- **Caching System**: Intelligent caching for improved performance and reduced network calls\r\n- **Missing Handlers**: Configurable fallback strategies for missing translations\r\n- **RxJS Integration**: Reactive localization updates with observable patterns\r\n- **Builder Pattern**: Fluent API for easy setup and configuration\r\n\r\n## Architecture\r\n\r\nThe localization system is built on several key components:\r\n\r\n- **LocalizationManager**: Core service for retrieving and managing localized content\r\n- **ILocalizationProvider**: Interface for content sources (HTTP, static maps, composite)\r\n- **IKeyResolver**: Transforms keys between different naming conventions\r\n- **ILocalizationValueParser**: Processes values for formatting and references\r\n- **ILocalizationCache**: Manages cached translations for performance\r\n- **ICultureProvider**: Provides current culture information and change notifications\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @breadstone/ziegel-platform-localization\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Setup\r\n\r\n```typescript\r\nimport {\r\n    LocalizationManagerBuilder,\r\n    MapLocalizationProvider,\r\n    CamelCaseKeyResolver\r\n} from '@breadstone/ziegel-platform-localization';\r\n\r\n// Create a localization provider with translations\r\nconst provider = new MapLocalizationProvider(new Map([\r\n    ['en-US', new Map([\r\n        ['welcome_message', 'Welcome to our application!'],\r\n        ['user_count', 'We have {0} active users']\r\n    ])],\r\n    ['de-DE', new Map([\r\n        ['welcome_message', 'Willkommen in unserer Anwendung!'],\r\n        ['user_count', 'Wir haben {0} aktive Benutzer']\r\n    ])]\r\n]));\r\n\r\n// Build the localization manager\r\nconst manager = new LocalizationManagerBuilder()\r\n    .withProvider(provider)\r\n    .withKeyResolver(new CamelCaseKeyResolver())\r\n    .build();\r\n```\r\n\r\n### Retrieving Localized Strings\r\n\r\n```typescript\r\n// Simple localization\r\nconst welcomeMessage = await manager.getLocalizedString('welcomeMessage');\r\nconsole.log(welcomeMessage); // \"Welcome to our application!\"\r\n\r\n// Formatted localization with parameters\r\nconst userMessage = await manager.getLocalizedString('userCount', 150);\r\nconsole.log(userMessage); // \"We have 150 active users\"\r\n```\r\n\r\n### HTTP-Based Localization\r\n\r\n```typescript\r\nimport {\r\n    LocalizationManagerBuilder,\r\n    LoaderLocalizationProvider,\r\n    HttpLocalizationLoader\r\n} from '@breadstone/ziegel-platform-localization';\r\n\r\nconst httpLoader = new HttpLocalizationLoader('/api/localization/{culture}.json');\r\nconst provider = new LoaderLocalizationProvider(httpLoader);\r\n\r\nconst manager = new LocalizationManagerBuilder()\r\n    .withProvider(provider)\r\n    .withCaching(true)\r\n    .build();\r\n```\r\n\r\n### Reactive Localization with RxJS\r\n\r\n```typescript\r\nimport { fromLocalizable } from '@breadstone/ziegel-platform-localization';\r\nimport { of } from 'rxjs';\r\n\r\n// Create reactive localizable content\r\nconst localizable = {\r\n    key: 'welcomeMessage',\r\n    fallback: 'Welcome!',\r\n    manager: manager\r\n};\r\n\r\n// Convert to observable\r\nconst localizedString$ = of(localizable).pipe(\r\n    fromLocalizable()\r\n);\r\n\r\nlocalizedString$.subscribe(text => {\r\n    console.log(text); // Localized string\r\n});\r\n```\r\n\r\n### Culture Changes\r\n\r\n```typescript\r\nimport { CultureProvider } from '@breadstone/ziegel-platform';\r\n\r\nconst cultureProvider = new CultureProvider();\r\n\r\n// Listen for culture changes\r\ncultureProvider.cultureChanged.add((newCulture) => {\r\n    console.log(`Culture changed to: ${newCulture}`);\r\n});\r\n\r\n// Change culture\r\ncultureProvider.setCulture('de-DE');\r\n```\r\n\r\n### Composite Providers\r\n\r\n```typescript\r\nimport {\r\n    CompositeLocalizationProvider,\r\n    MapLocalizationProvider,\r\n    LoaderLocalizationProvider\r\n} from '@breadstone/ziegel-platform-localization';\r\n\r\n// Combine multiple providers with fallback\r\nconst primaryProvider = new LoaderLocalizationProvider(httpLoader);\r\nconst fallbackProvider = new MapLocalizationProvider(fallbackTranslations);\r\n\r\nconst compositeProvider = new CompositeLocalizationProvider([\r\n    primaryProvider,\r\n    fallbackProvider\r\n]);\r\n```\r\n\r\n### Custom Missing Handlers\r\n\r\n```typescript\r\nimport {\r\n    LocalizationManagerBuilder,\r\n    IMissingLocalizationHandlerFunc\r\n} from '@breadstone/ziegel-platform-localization';\r\n\r\nconst customMissingHandler: IMissingLocalizationHandlerFunc = (key, culture) => {\r\n    console.warn(`Missing translation for key: ${key} in culture: ${culture}`);\r\n    return `[${key}]`; // Return key in brackets as fallback\r\n};\r\n\r\nconst manager = new LocalizationManagerBuilder()\r\n    .withProvider(provider)\r\n    .withMissingHandler(customMissingHandler)\r\n    .build();\r\n```\r\n\r\n## Package import points\r\n\r\n```typescript\r\nimport {\r\n    // Core interfaces\r\n    ILocalizationManager,\r\n    ILocalizable,\r\n    ILocalizationProvider,\r\n    IKeyResolver,\r\n\r\n    // Main classes\r\n    LocalizationManager,\r\n    LocalizationManagerBuilder,\r\n    LocalizationCache,\r\n\r\n    // Providers\r\n    MapLocalizationProvider,\r\n    LoaderLocalizationProvider,\r\n    CompositeLocalizationProvider,\r\n    HttpLocalizationLoader,\r\n\r\n    // Key resolvers\r\n    CamelCaseKeyResolver,\r\n    PascalCaseKeyResolver,\r\n    SnakeCaseKeyResolver,\r\n    KebabCaseKeyResolver,\r\n\r\n    // Value parsers\r\n    FormatLocalizationValueParser,\r\n    RefLocalizationValueParser,\r\n\r\n    // RxJS extensions\r\n    fromLocalizable,\r\n    loc,\r\n    localize\r\n} from '@breadstone/ziegel-platform-localization';\r\n```\r\n\r\n## API Documentation\r\n\r\nFor detailed API documentation, visit: [API Docs](./../../.docs/api/ziegel-platform-localization/index.md)\r\n\r\n## Related Packages\r\n\r\n- **@breadstone/ziegel-platform**: Core platform services and culture management\r\n- **@breadstone/ziegel-platform-http**: HTTP client functionality for remote localization\r\n- **@breadstone/ziegel-core**: Fundamental utilities and string manipulation\r\n- **@breadstone/ziegel-platform-logging**: Logging infrastructure for debug information\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Issues\r\n\r\nReport issues at: [GitHub Issues](https://github.com/RueDeRennes/ziegel/issues)","readmeFilename":"README.md"}