{"_id":"@canonical/i18n-core","_rev":"17-b355e139e80260f92f68886a0f88a05c","name":"@canonical/i18n-core","dist-tags":{"latest":"0.43.0"},"versions":{"0.29.0":{"name":"@canonical/i18n-core","version":"0.29.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.29.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"e59edecc809439cda7ea811c8e309bb0e0f81b35","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.29.0.tgz","fileCount":58,"integrity":"sha512-947SJyqxJkwSIiTVpqWa8O05C2k+IxJzTKG9Fon34Wc30M9Kwj4aPCHdiGauoA+un8dMnsEPVJ2WkBX6SYvf5Q==","signatures":[{"sig":"MEYCIQDS5HRzAdTFQtx1DlKSHQYddUkmApG02do3abAnAvbtWQIhAN0YGaLZ0deDVWwpTmCmWHj3vcvh7jYoUHKik8FOXEeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48341},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"ace65ef42cd0ce72830614b2d61687550ef0ba00","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"11.6.2","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.29.0_1783981807363_0.5595870950311499","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@canonical/i18n-core","version":"0.30.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.30.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"ba863d67890e0444f265e2bdc37ad3517b9afc3b","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.30.0.tgz","fileCount":59,"integrity":"sha512-OJVEwYcJOVzqkttf9UNz8ZB4H8iyeyuAL+XCtVixj8bq/VVdQwzYUIovPW7RaroBbRavajJsYniekk7NohNFXg==","signatures":[{"sig":"MEUCIQC2sL3g6rAfS4fVzmozxca1cUau6j1j6BMwsb9NUHrMLAIgUAw28wgw/6GLGE+XUqgQEhrotecEekTGK1Jn0xH1MO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56031},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"40fe86ac955473536ac14f074812a9821f5b65c0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.30.0_1783988075377_0.395105172933345","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@canonical/i18n-core","version":"0.31.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.31.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"1852c038fc834936b84df639c7f5a89b79f35d08","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.31.0.tgz","fileCount":59,"integrity":"sha512-XxN9Z9cUE4eP094Gu7sgrqc9u6mueac106AiKcppcOt1DpZ4YE370wDfX9WV8uUU8qbCXdeTHg+x8SYKLzuAuQ==","signatures":[{"sig":"MEQCID+pJe0X1uMRpWtFrl6JZRLG1RrkFxHx4sYYdooDF9OGAiBWyr0jUw2fb1gmM+dBdhb+7acxWoxoaKnWKf1QhwDl6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56031},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"d4a67ebe42e62b8cf3de77f42f537309ca88d672","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.31.0_1784323722392_0.7089015446399201","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@canonical/i18n-core","version":"0.32.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.32.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"6cbe40982bc2d1ea1cc23755d6bc46a3a1ae1dfc","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.32.0.tgz","fileCount":59,"integrity":"sha512-pe44VbFGi4OtG12wZNJrZTp/Uf4WCeainQ80AUoCaWg5Jo95HJAEF3Mnm2vAYDjzW5LAZmrr0H0dbggR1rWzww==","signatures":[{"sig":"MEUCIG9V1cQ3zHlYzZxUyDOBL+2IV00CJWWPHyy0GeXdM1HpAiEAiRxu24PSOC7Ywb317l9gvnt+DlGog+2wu90HBySvgbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56031},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5b279d8150e3988c68c6c2a741046bcd425624ca","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.32.0_1784542916453_0.728317489984931","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@canonical/i18n-core","version":"0.33.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.33.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"200f1741cdfc0c4bb30a84380cc05c4f7c9efd91","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.33.0.tgz","fileCount":59,"integrity":"sha512-hZh4Pm85xmFFhcQZk678iecjd5Q3T6dDalrpq7cYkeNdaOhMlGFbseLW1LJGuMBSPrKADkgRf2uqsrT6q+c2Ng==","signatures":[{"sig":"MEYCIQDFb8ktVl1M8/PB84xxD2PYZSjaZPUzERM9llH4M9R0wAIhANAbuRPWonlgJ4IQFTVfxb85MvIVNJZqMQ8WjgA17l1t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56031},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"fca2bc4440fff2d511fc8db6686f9b19222fdbc7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.33.0_1784914642959_0.31895718131126416","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@canonical/i18n-core","version":"0.34.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.34.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"355dec5f7bb5f97c024b91e260817e44c626104e","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.34.0.tgz","fileCount":59,"integrity":"sha512-5O34cv5auJoWwCtuMfdCFaJipkGOy/Vi31/X3sONoYzkXMXpFGoqRudnyiomEmUX/Ah/YpKfd/P04wKGf/ChSA==","signatures":[{"sig":"MEUCIQClq0DIpA4oVuhGx10jK3IRBpSqMMWFcFRPZ4fXYyTn4gIgRky84puFVDNq8sTX7aA9vuNOzKaBx5lDoiWv1Lqfyp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56031},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"e8d25fecbe6e70edfc4cb300bad65f691dbbd26e","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.34.0_1787317056856_0.6347691514020142","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@canonical/i18n-core","version":"0.35.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.35.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"ff21e9686e1fb7c858f8ab6c06b4b47135b3c653","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.35.0.tgz","fileCount":59,"integrity":"sha512-Vf/dwBozOXo1F+siVAs2Fe6oZGgKahigOycf5jcZoufTUJWnNpbyLLCxj59hq+8UL2RqhJ3Pu2TEL7TX8PfFwA==","signatures":[{"sig":"MEYCIQDta/o5fHMiRP88ox0Ior/wRGDwBGAPjsrDPZ/aQnAJ8QIhAIr60Zc8SbOwHK3DH8zW3cPsGQ7TQBkc/apUkoyNmdoP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56030},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5198c5399ef657959272c0e35924391573d81146","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.35.0_1787877230024_0.23862606916091678","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@canonical/i18n-core","version":"0.36.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.36.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"4e60d0ad828aeb76fc4997735588b29d501a497e","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.36.0.tgz","fileCount":59,"integrity":"sha512-ME7BeaQ4WS5NIjkJ3iY04jmxKU2klHdhDPqeeyAZ+OfsMqda3+7btBogQYQ5bKKo2GsoIrXGkXmEAmAuyN1coQ==","signatures":[{"sig":"MEYCIQDK5pu7WbfPOdkcJgXmCiKlvt8PFSXA0mYzH89Cdbl45AIhAJ4vOu0DyW+XcdCVrfCE7gqP+7GfXqX3mjHfYv37BOOY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56000},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"78eb47ac10104e914eeacd331795e14b832703d4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.36.0","@canonical/webarchitect":"^0.36.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.36.0_1788012098490_0.08537711990151964","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@canonical/i18n-core","version":"0.37.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.37.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"638d048e1bb7e59d5acd96e615da441319180c8a","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.37.0.tgz","fileCount":59,"integrity":"sha512-R2YI7s6Dji5ALhdkkerz1p6nkmp/Wn5mDGgplcSvKZpCr5OBsCeBtk2z3/FTapcuqFTi780yEp+1aL5YJBfTAg==","signatures":[{"sig":"MEYCIQCv1jtIH0VeRjEcKR3lYAzkwz6JeIf2pNhuRvymZtaYxQIhALYyPtvSy8Aip1vfyo6PiOgcmgRvDOHRIbdgylw/CnW+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56000},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"ac8383bdb4be1bcd6fa6c4960a1e3d78c0279688","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.37.0","@canonical/webarchitect":"^0.37.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.37.0_1788345299970_0.2986827511795138","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@canonical/i18n-core","version":"0.38.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.38.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"3a0abcb23e6da3c68180cd6f834361cb9846d898","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.38.0.tgz","fileCount":59,"integrity":"sha512-ptkJmxBfW7DCGiKJzzMeQtxaAwaIhDBoIpqKM8XbslWORvrWQXy2uYgvhiN1aP5MDkgg2eqOztUs7JPtxhe/SA==","signatures":[{"sig":"MEQCIFY2BRnSky0NlTBqu7cU/T+vhzQfDXtNL/1QBZ16TZ5+AiA83DOxHk6sSnprG8HngbxjXSMnTwSArS+Wxk/Azjuoig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56001},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"4d10a68a9b299af6fe3d1d7d053e54ca128944ad","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.38.0","@canonical/webarchitect":"^0.38.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.38.0_1789572944109_0.7832388619677073","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@canonical/i18n-core","version":"0.40.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.40.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"428f8e368de05a76f91e087fcaedb2b8d8874981","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.40.0.tgz","fileCount":59,"integrity":"sha512-B0I3X3SgDJAxKdY+N5I5AskN0iyCCji2MBkBZGCXQ3wsZWh8qDGoG4zM++88HrKITsov8tJLt3hysPDEmmBwaw==","signatures":[{"sig":"MEUCID++beY+QwG9oz6W40WT29+bwcIzkiFijRP2thnpKitQAiEA7cb4iesKA7RiJg/xLcL3DdJqH/rVYRtnUB1xhBL7Ies=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFNvP8FskGH7h9ewFQGzYQBTOHQbb1v1Blf1cyTEKxPOAiBdoXx1X/PWA3erehc3HJ9x8V0aJbGp/yhqI1YECKAgaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56001},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"9136b71518260c5f33e7619da087198c931e4c13","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.40.0","@canonical/webarchitect":"^0.40.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.40.0_1789941845297_0.8290360359704576","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@canonical/i18n-core","version":"0.42.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-core@0.42.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"7b80a859195c9e6d6e66d8a9596696e7fb1a4c0c","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.42.0.tgz","fileCount":59,"integrity":"sha512-ql9qde9S9EQZ5Ta8U8WF9M747pLT/vCX7kEJPbh/4FmuOUzqUEPnnVvwoWbNTXInDuPw2A9mS/YgxD7bdQSyKQ==","signatures":[{"sig":"MEQCIDcfxxENkFxpZs9ySHSTuruSzymn+IqOawiPIfLqq5pbAiAsBwHgq0OyxJjoK6bxpednjVRoAwz6GzfXWfraEn5eVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA/4NK5Z3bzORhsaujjWZ8nxTDD/bdbylSqa4g/NRwgqAiBGetXY8tyea+rUZ7f8stJrP3rS8Y0gGvxl6zwONWlsoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56011},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"75c2b17029ba899be3fa645be28290ac6fcb83a9","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eb97e67-8afc-4df9-aa0e-89e0bd563cdc"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.42.0","@canonical/webarchitect":"^0.42.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-core_0.42.0_1790561067603_0.5173978832299329","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"@canonical/i18n-core@0.43.0","bugs":{"url":"https://github.com/canonical/pragma-web/issues"},"dist":{"shasum":"2f5d0bc32ef76770550a2fc75b41146249412b40","tarball":"https://registry.npmjs.org/@canonical/i18n-core/-/i18n-core-0.43.0.tgz","fileCount":59,"integrity":"sha512-BY8bXFQiCITNb7SQJcBXLk5ctpGHdOnPALerqHWNdgEcxRzom1EZcjEMPAGkGfEBIMTCsjQRlY/ThxWFIxmCLQ==","signatures":[{"sig":"MEQCIH1LQF2oMorhtglbOIfSQwUdfW5POjvirJwCfHnVVmh6AiBzddidT7m8+s1v7+ZFyU1ldsRt1diGP5Ixc+rJnocopw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGO9hgrFVm4by0VIkXZ1+zpdUD0N+DyTzrUp0hIWajmAAiAlzwGMX/V3rTKtjSluVVrC7y+ReiVUJcrWBz3OoveJGw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-core@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56066},"name":"@canonical/i18n-core","type":"module","types":"dist/types/index.d.ts","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"581682464ef71de3f77dc2dc8bbe2b7e493bb05e","license":"LGPL-3.0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"version":"0.43.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c211b9ec-fb12-4184-a4c6-83f574a47192"}},"homepage":"https://github.com/canonical/pragma-web#readme","repository":{"url":"git+https://github.com/canonical/pragma-web.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","directories":{},"maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"0.43.0","@canonical/webarchitect":"0.43.0","@canonical/typescript-config":"0.43.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n-core_0.43.0_1790802150033_0.7700015551951789"}}},"time":{"created":"2026-07-13T22:30:07.163Z","modified":"2026-09-30T21:02:30.883Z","0.29.0":"2026-07-13T22:30:07.570Z","0.30.0":"2026-07-14T00:14:35.519Z","0.31.0":"2026-07-17T21:28:42.514Z","0.32.0":"2026-07-20T10:21:56.577Z","0.33.0":"2026-07-24T17:37:23.101Z","0.34.0":"2026-08-21T12:57:37.034Z","0.35.0":"2026-08-28T00:33:50.278Z","0.36.0":"2026-08-29T14:01:38.621Z","0.37.0":"2026-09-02T10:35:00.107Z","0.38.0":"2026-09-16T15:35:44.275Z","0.40.0":"2026-09-20T22:04:05.373Z","0.42.0":"2026-09-28T02:04:27.713Z","0.43.0":"2026-09-30T21:02:30.125Z"},"bugs":{"url":"https://github.com/canonical/pragma-web/issues"},"author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","homepage":"https://github.com/canonical/pragma-web#readme","repository":{"url":"git+https://github.com/canonical/pragma-web.git","type":"git"},"description":"Framework-agnostic internationalization core (native Intl): locale negotiation, message catalogs, translators, memoized formatters, and a reactive locale source.","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"readme":"# @canonical/i18n-core\n\nFramework-agnostic internationalization for the Pragma design system, built on\nthe native [`Intl`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl)\nAPI. Zero runtime dependencies.\n\n`i18n-core` owns everything that is not framework reactivity — locale\nnegotiation, message catalogs and translation, memoized formatters, and a live\nlocale source. React, Svelte, and Lit bindings stay thin and share this one\nengine.\n\n## Installation\n\n```bash\nbun add @canonical/i18n-core\n```\n\n## Configuration\n\nLocales are declared explicitly as plain data — no magic discovery.\n\n```ts\nimport type { I18nConfig } from \"@canonical/i18n-core\";\n\nconst config: I18nConfig = {\n  locales: [\"en\", \"fr\", \"ar\"],\n  defaultLocale: \"en\",\n  rtlLocales: [\"ar\"],\n};\n```\n\n## Locale negotiation (pure, SSR-safe)\n\n```ts\nimport { directionOf, negotiateLocale } from \"@canonical/i18n-core\";\n\nconst locale = negotiateLocale(config, {\n  cookieHeader: request.headers.get(\"cookie\"),\n  acceptLanguage: request.headers.get(\"accept-language\"),\n});\nconst dir = directionOf(config, locale); // \"ltr\" | \"rtl\"\n```\n\nAn explicit cookie wins, then `Accept-Language` negotiation, then the default\nlocale. It takes raw header strings and returns a tag, so it behaves the same\non the server and the client.\n\n## Messages\n\n```ts\nimport { createTranslator, mergeCatalogs } from \"@canonical/i18n-core\";\n\nconst t = createTranslator(\"en\", {\n  \"nav.home\": \"Home\",\n  greeting: \"Hello, {name}!\",\n  items: { one: \"{count} item\", other: \"{count} items\" },\n});\n\nt(\"greeting\", { name: \"Ada\" }); // \"Hello, Ada!\"\nt(\"items\", { count: 3 }); // \"3 items\" — via Intl.PluralRules\n```\n\n`mergeCatalogs(base, overrides)` layers app messages over a component's\nbuilt-in defaults. Resolution never throws: a missing key returns the key\nitself, an absent placeholder is left verbatim.\n\n## Formatting\n\n```ts\nimport { createFormatters } from \"@canonical/i18n-core\";\n\nconst f = createFormatters(\"en-US\");\nf.number(1234.5); // \"1,234.5\"\nf.currency(1234.5, \"USD\"); // \"$1,234.50\"\nf.relativeTime(-3, \"day\", { numeric: \"auto\" }); // \"3 days ago\"\nf.list([\"A\", \"B\", \"C\"]); // \"A, B, and C\"\n```\n\nFormatters memoize their `Intl` instances by options, since constructing them\nis comparatively expensive.\n\n## Reactive locale source\n\nThe cross-framework runtime channel. `subscribe` follows the Svelte store\ncontract — it calls back immediately and on every change — which also satisfies\nReact's `useSyncExternalStore` and a Lit reactive controller. One object drives\nevery framework. In the browser it persists the choice to a cookie and reflects\n`<html lang dir>`; on the server those effects are inert.\n\n```ts\nimport { createLocaleSource } from \"@canonical/i18n-core\";\n\nconst source = createLocaleSource(config, { initial: locale });\nconst unsubscribe = source.subscribe((next) => render(next));\nsource.set(\"ar\"); // notifies subscribers; persists + reflects dir=\"rtl\"\n```\n\nOn the server, create one source **per request** — the React/Svelte/Lit\nbindings already do this. A module-level singleton shared across concurrent\nrequests leaks locale state between them.\n\n## Server-side rendering\n\nThe source can only set `<html lang dir>` from the client. For a correct first\npaint and assistive technology, render `<html lang dir>` on the server from the\nnegotiated locale with `documentAttrs`:\n\n```ts\nimport { documentAttrs, negotiateLocale } from \"@canonical/i18n-core\";\n\nconst locale = negotiateLocale(config, {\n  cookieHeader: request.headers.get(\"cookie\"),\n  acceptLanguage: request.headers.get(\"accept-language\"),\n});\nconst { lang, dir } = documentAttrs(config, locale);\n// render: <html lang={lang} dir={dir}> … </html>\n```\n\nPass the same `locale` to the client (`createLocaleSource({ initial: locale })`)\nso the server and first client render agree.\n\n## Right-to-left & accessibility\n\n`directionOf` resolves writing direction from `rtlLocales` (base languages); a\nsensible default set is `[\"ar\", \"he\", \"fa\", \"ur\"]`. Flipping `dir` is necessary\nbut not sufficient — author UI with CSS **logical properties**\n(`margin-inline-start`, `inset-inline`, `text-align: start`) and mirror\ndirectional icons so RTL is structural, not decorative.\n\nValues in `config.locales` must be valid BCP-47 tags — they are reflected to\n`<html lang>` and passed to `Intl`. A missing message key is returned verbatim\n(`\"nav.home\"`), which is visible *and* read aloud, so treat catalog completeness\nas an accessibility concern. `t()` returns plain strings that the framework\nescapes on render; never pipe its output into `dangerouslySetInnerHTML` /\n`unsafeHTML` / `{@html}`.\n\n## License\n\nLGPL-3.0\n","readmeFilename":"README.md"}