{"_id":"@allakando/allakando-i18n","_rev":"2-0d5172c05f5e661ccd1c0785aa9de22f","name":"@allakando/allakando-i18n","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.2":{"name":"@allakando/allakando-i18n","version":"0.0.2","description":"Allakando's internationalization library","private":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"./dist/index.bundle.umd.cjs","module":"./dist/index.bundle.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.bundle.js","require":"./dist/index.bundle.umd.cjs"}},"scripts":{"dev":"vite","build":"tsc && rimraf dist && vite build && rimraf src/*.js src/**/*.js","test":"vitest run --reporter verbose --coverage","lint:fix":"prettier \"src/**/*.ts\" --write && eslint \"src/**/*.ts\" --fix && prettier \"__tests__/i18n/*.tsx\" --write && eslint \"__tests__/i18n/*.tsx\" --fix","version":"echo $npm_package_version"},"keywords":["Allakando","i18n","library"],"author":{"name":"Allakando"},"license":"MIT","dependencies":{"react":"^18.2.0","react-dom":"^18.2.0"},"devDependencies":{"@types/node":"^20.8.2","@types/react":"^18.2.25","@typescript-eslint/eslint-plugin":"^6.7.4","@typescript-eslint/parser":"^6.7.4","@vitest/coverage-v8":"^0.34.6","eslint":"^8.50.0","eslint-config-prettier":"^9.0.0","prettier":"^3.0.3","typescript":"^5.2.2","vite":"^4.4.11","vite-plugin-dts":"^3.6.0","vitest":"^0.34.6"},"gitHead":"fd78869eb26a375f580b6390e0c9094023db5ffe","_id":"@allakando/allakando-i18n@0.0.2","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-CoWDdHfTdV+rFBqovEv3u5LJ8y0v0ut3nN7mWxa/dgtbiD24N9ZHfkSAIRsyTBvjVi1ejeMRfE0MSlYGP5W0/A==","shasum":"afbda1066eef0b121a037188c25ab0daff19969b","tarball":"https://registry.npmjs.org/@allakando/allakando-i18n/-/allakando-i18n-0.0.2.tgz","fileCount":6,"unpackedSize":5818,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPNGtyXjD1xyBmF6kkgce4o4O0XBWh7zJlyQX1J8tgygIhAPd88W135cV3soWFSSbXlde7k1mAzsxfeXTF5wB8FmeQ"}]},"_npmUser":{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},"directories":{},"maintainers":[{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},{"name":"saikat.ghosh","email":"saikat.ghosh@allakando.se"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/allakando-i18n_0.0.2_1696627707831_0.540940026965633"},"_hasShrinkwrap":false},"0.0.3":{"name":"@allakando/allakando-i18n","version":"0.0.3","description":"Allakando's internationalization library","private":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"./dist/index.bundle.umd.js","module":"./dist/index.bundle.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.bundle.mjs","require":"./dist/index.bundle.umd.js"}},"scripts":{"dev":"vite","build":"tsc && rimraf dist && vite build && rimraf src/*.js src/**/*.js src/*.d.ts src/**/*.d.ts","test":"vitest run --reporter verbose --coverage","lint:fix":"prettier \"src/**/*.ts\" --write && eslint \"src/**/*.ts\" --fix && prettier \"__tests__/i18n/*.tsx\" --write && eslint \"__tests__/i18n/*.tsx\" --fix","version":"echo $npm_package_version"},"keywords":["Allakando","i18n","library"],"author":{"name":"Allakando"},"license":"MIT","dependencies":{"react":"^18.2.0","react-dom":"^18.2.0"},"devDependencies":{"@types/node":"^20.8.2","@types/react":"^18.2.25","@typescript-eslint/eslint-plugin":"^6.7.4","@typescript-eslint/parser":"^6.7.4","@vitest/coverage-v8":"^0.34.6","eslint":"^8.50.0","eslint-config-prettier":"^9.0.0","prettier":"^3.0.3","typescript":"^5.2.2","vite":"^4.4.11","vite-plugin-dts":"^3.6.0","vitest":"^0.34.6"},"gitHead":"12396a7d54c970e5019b963534dc8c651099ea95","_id":"@allakando/allakando-i18n@0.0.3","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ZWy7YcJk0b1rbQMTlQZkOn/EDSmOqQXAZCnND3q/ha3q5epfWC/NrF86ovMQIQUzPai4F4brpvozNwRzTDnozw==","shasum":"af25eee0b0f2616e53b14ff503347b4b9b7ea07f","tarball":"https://registry.npmjs.org/@allakando/allakando-i18n/-/allakando-i18n-0.0.3.tgz","fileCount":6,"unpackedSize":5932,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiF8hHgCpUsfwRO62vN1Wz1ohkKHO0D8+6jupo9kFg9wIhAO0chmKKUb1o2tmRyEogDw8klHHPWq6FEnKdVLm98l8K"}]},"_npmUser":{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},"directories":{},"maintainers":[{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},{"name":"saikat.ghosh","email":"saikat.ghosh@allakando.se"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/allakando-i18n_0.0.3_1696773233703_0.5657623933754792"},"_hasShrinkwrap":false},"0.0.4":{"name":"@allakando/allakando-i18n","version":"0.0.4","description":"Allakando's internationalization library","private":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"./dist/index.bundle.umd.js","module":"./dist/index.bundle.mjs","types":"./dist/types/index.d.ts","exports":{".":{"import":"./dist/index.bundle.mjs","require":"./dist/index.bundle.umd.js"}},"scripts":{"dev":"vite","build:types":"tsc --declaration --emitDeclarationOnly --outDir ./dist/types","build":"npm run lint:fix && rimraf dist && npm run test && vite build && npm run build:types && rimraf src/*.js src/**/*.js src/*.d.ts src/**/*.d.ts","test":"vitest run --reporter verbose --coverage","lint:fix":"prettier \"{src, __tests__}/**/*.ts\" --write && eslint \"{src, __tests__}/**/*.ts\" --fix","version":"echo $npm_package_version"},"keywords":["Allakando","i18n","library"],"author":{"name":"Allakando"},"license":"MIT","devDependencies":{"@types/node":"^20.8.2","@typescript-eslint/eslint-plugin":"^6.7.4","@typescript-eslint/parser":"^6.7.4","@vitest/coverage-v8":"^0.34.6","eslint":"^8.50.0","eslint-config-prettier":"^9.0.0","prettier":"^3.0.3","typescript":"^5.2.2","vite":"^4.4.11","vitest":"^0.34.6"},"gitHead":"c08662a90a1197e141049acfe3d325b6d118cc4e","_id":"@allakando/allakando-i18n@0.0.4","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-cvGsBizFJ+DuZ19RFKmxF0EozeDDpJc8t/D+9gu5nDMza4K030BgbJkd05oaUfHzIJsmSO+5LkphtFrK8YeeQg==","shasum":"b5ccd2702ff9832ad477c0116eb2758ede744570","tarball":"https://registry.npmjs.org/@allakando/allakando-i18n/-/allakando-i18n-0.0.4.tgz","fileCount":7,"unpackedSize":8655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfvcASfnf0+o4zqnaVl4gz0R9fmDDMy5wpA3H2v5yRgQIhAI2AK/zE9I0LiHgAPd1gYdkZZwmRHqLUL6ea6SHnlWFO"}]},"_npmUser":{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},"directories":{},"maintainers":[{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},{"name":"saikat.ghosh","email":"saikat.ghosh@allakando.se"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/allakando-i18n_0.0.4_1697535769441_0.12070737085984296"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-06T21:28:27.718Z","0.0.2":"2023-10-06T21:28:28.007Z","modified":"2023-10-17T09:42:49.835Z","0.0.3":"2023-10-08T13:53:53.875Z","0.0.4":"2023-10-17T09:42:49.607Z"},"maintainers":[{"name":"allakandoserviceaccount","email":"serviceaccount@allakando.se"},{"name":"saikat.ghosh","email":"saikat.ghosh@allakando.se"}],"description":"Allakando's internationalization library","keywords":["Allakando","i18n","library"],"author":{"name":"Allakando"},"license":"MIT","readme":"# Allakando i18n\n\nThis library contains aims at making internationalization easy and straight forward while also mainting type safety in projects.\n\n## Translator\n\nThe translatorAPI allows for creating translations files for different languages that are type safe. The translator can be used with pure JS, but in that case it will not provide the same level of rigidity. It is recommended to implement it using TS.\n\nIn order to create a translator instance you first need to define what locales are available, as well as what a translations map should look like. You can then write implementations for each locale that matches the translations map template and provide these to the translator class constructor.\n\n```javascript\nimport { TranslatorAPI, TBaseTranslationsMap } from \"@allakando/allakando-i18n\";\n\ntype TAvailableLocales = \"en\" | \"sv\"\ninterface MyTranslationsMap extends TBaseTranslationsMap {\n\tHELLO: () => string,\n    THANK_YOU_WE_WILL_BE_IN_TOUCH: (name: string) => string\n}\n\nconst translationMappings = {\n    \"en\": {\n\t    HELLO: () => \"Hello World!\",\n        THANK_YOU_WE_WILL_BE_IN_TOUCH: (name: string) => `Thank you ${name}, we will be in touch shortly!`\n    },\n    \"sv\": {\n        HELLO: () => \"Hej Värld!\",\n        THANK_YOU_WE_WILL_BE_IN_TOUCH: (name: string) => `Tack ${name}, vi kommer att ta höra av oss i närtid!`\n    },\n}\n\nconst translator = new Translator<MyTranslationsMap, TAvailableLocales>(translationMappings, \"en\") //The second argument is the default locale\ntranslator.translate(\"HELLO\")() // -> \"Hello World!\"\ntranslator.setLanguage(\"sv\")\ntranslator.translate(\"THANK_YOU_WE_WILL_BE_IN_TOUCH\")(\"Chris\") // -> \"Tack Chris, vi kommer att ta höra av oss i närtid!\"\n```\n\n### API \n\n- setLanguage(locale: string) -> Sets the active language of the the translator\n- getTranslations() -> Returns a (type safe) object literal of all translations for the current locale\n- enableDebugMode() -> Enables debug mode where the translator will always return the key for the translation rather than the value\n- disableDebugMode() -> Disables debug mode\n","readmeFilename":"readme.md"}