{"_id":"@psyycker/react-translation","_rev":"33-caa4e9583916abdca475fd4355ca9e15","name":"@psyycker/react-translation","dist-tags":{"latest":"0.8.0","alpha":"0.6.0-alpha5"},"versions":{"0.1.0":{"name":"@psyycker/react-translation","version":"0.1.0","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","_id":"@psyycker/react-translation@0.1.0","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-EiJhzxqP5oHrqZ4tyQfRziAU1uodteGWlOTTFvlNEAyoHqfCTnjNMfIg5/01IRv68wHU4FP3bT2D7XAJmI8Ogw==","shasum":"c55572f1f7efaceb234d10fc821c98d0292f4b30","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.1.0.tgz","fileCount":48,"unpackedSize":1116893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbg9hCRA9TVsSAnZWagAAzaMP/2+YBXPgul6jIKsH2/kR\nyKdpbgLw8x+Z7vMJGEIaMwCkuQ/29doaoHfyVEivh1juKkEtGb7BDV/kFCuS\n6bQws+C84q4wMddtRvGjtcqT/0uB8jYrmALQeir2mKFmSlE4OSyN3y5Op+wO\ntpQYyVwpaG/PtvRXS7BikEnD8Baz58sODbBELlx+w8R5uy/mIFxPIynh9IjF\n2XFz193avZR+OpZ0L76PvBuAjLakW2E1iS/IS7JMxTC/rjbaZfxhu8sejzzQ\nbtryxC96FDBJ+ZClXPvPcO0sxavy2CIH+EWkZxy4FP1pa/z9b55I4iZ7leJd\nVwqvuPSoJtYZoPXSwLzgxFa6LbwpCM3FdRVsqSMsxZNDL9IXWGytySRdrgRo\nRzQhcDVUAm1N1MukZnM+TH8PIB4zVhnS2mDMl3FU9eO0FVMFmNU+O3NRUzBd\n88aK7ORm42S8EGI3HfGnJUc8/UqB3K140sg6fVmBJgxqs9YR3UjjXke08Nz3\nsMQMrW17YLg3cHojFWAXo9bDj2qCwY0SUjx8a8IDoSB9MWYmLQ9SuaL9cmNo\n6pASrVemcFIG8bkf7LN9ChJ7KhfAtEmW1Qe6EoGzVRLyfs9wvf+ZnvcaMq1T\nL/hrWwffhbbSg4jSeopLMNNERCeUvpxUNo3rHbnqgD0N5bwFQepR10DA57vC\nGJ2h\r\n=zA0c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYjoAYdhggCAR5e0x78PYF9iI2WgRx25GngdQI5hILUQIgelrLj9gN+vfZnaq/C1G0UOHGNUwHSE3zgw9qejmrjvc="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.1.0_1601048416706_0.0685161478934837"},"_hasShrinkwrap":false},"0.1.1":{"name":"@psyycker/react-translation","version":"0.1.1","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","_id":"@psyycker/react-translation@0.1.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-kHURI+LiDBZLND80L8SFYbeu5xt/1cn9v7o8EX/r7+8TR3A0U692RG+e4ZZy3slUA/PcTj9peiSDJ/biDLTJ3w==","shasum":"ab9846a82be73ecd4fb737fee6d67bffce00151e","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.1.1.tgz","fileCount":13,"unpackedSize":16450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbg/VCRA9TVsSAnZWagAANTEP/i3uGdAUe9HqGCAQKp5z\nV4SDwqLt5X73BIBh9giKRCxnM6JtG+f4lWgmCAb+r75Zsb/8YeM++2nyMPP1\n6D9dQL3qLOoPHc5RgmFko+Z+OEs1oBsNcL9jr+sVCecs8OOSNYYn4n8xO5y2\nxn77kWsz4mBI4ZB17xCU3pCCi5AdKx/cUhHdZcSYCuS7trN33bO8CepehL9H\nUDn0CemgAJITYrCMmXA07ts+MIWei+oBXJnAxH8breaW5VYZ9CHwsf4YPeOc\nSsYGKblJf9QYah40+1e+S41uAuJpGEn6TL1XFVxglah6R/VcmtSQ3SsLJRYL\nwXLCSnq1KAAlSKS2d49xb/BE/r9sYb13mH8chmv+vqIiAHqy1QISLAyLfCjC\n3206RBtfN6eGTicomCle+TKHwGY8hGPsjc45p3OD39QtHDVnLBpAUQrutmRt\nAGN9gQ6DTfNKBWX0kDUBOY2faaFc/q8QrVBqe/wWHZZ6d515F+rEOEq7xhA6\n4DelBkaYK0vuMdUxSfh6z4wXe4MEQKRVumVq5Ons1Z0Qj5flvPwM8ixICNhw\n0xmFnkJYhIz3WzMF2tZaDYs/R3GWGzIere4NA2PYkU3guwIiqDDN81/Dnsh1\ns15arl9xmlUpkcOpY3dpsUbaGcHsckWk3qnHfx1O/TPwCOdaKi+kMCgCmgfV\nF3tv\r\n=/IRS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtqboEffA0WYtKdup5M/1yKM1UQZ5TlYIPv1WU8zK0jAiBi+C4bYP8z278iC6IzBOG9O9He3AVd/lSvQ2bmKjIPUQ=="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.1.1_1601048532627_0.8234982600900846"},"_hasShrinkwrap":false},"0.1.2":{"name":"@psyycker/react-translation","version":"0.1.2","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","_id":"@psyycker/react-translation@0.1.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-OvfQ4F7cS8/Pgq288Z4nVetEqOicwB2V9rpICHGJXvhudGUJauX0zg12WIrSlJMF8DH1JoqNDJ2Xt5g8dtUyYA==","shasum":"3c0bf43565360e701d0a55c4d555bffdd1090216","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.1.2.tgz","fileCount":13,"unpackedSize":16467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbhAYCRA9TVsSAnZWagAAWiYP/A67mUieWeCbMkv33yHP\n/KQ6B2OWJ3ew51QdhWJRcVpMJkrEhDHmgHYcb86AP4lVz3tzgMI+p/AN4P8T\nI3kf0YqMiXv1i61MkQgfth/luVescxUICFFv4zbkDJ99aGHNz4o6wBYMQcUy\noyW7T6o3oh+ovVuW/xV8LEx9NwzzQZRWOnlshtjpidGzTHmHP0rqBzwkbu55\nSOL5wqIYMCEfLreNtMcm2Tmg8+Juuy6x7pkCKC18p6T5DGFekmCf96SnAdoG\nbI3zLdL6yylzedG0LtlbkfRDkX8chceOCE2P7hm656SVJHITFl1eEgIRhdkV\n9JxoN3CelvoOG2qThsnYMp2FUMFYgvKvD68PanQfOpnKcEFJv6vv2kyJjwx2\nD/Vy/DDo72+Wmck+LUlLj5kMJDpJN3rdIGIxw/Uc8ptl1Kb7NfaMwAWDcwxf\nLiTt2ZcAEJ/bnjWgDXJv6ZC4dX6GLXO9RQwZQen/wgCXDijsCOXcKe6gUdFe\nn/ak79dpOoe/rWo27a0QDwD2bSXwYn0DQU1lO3TZDCZ14FX7U5YFbdWjIP5b\nP/6KWGuRYhvWXgYPxj1mMmqn2M12juHcdwRJ9TFpvI5Jv6AMku8rxLNjAaI2\nvxJ9tBXihswgMx0fYg/b++Kih8FLNWlqhmrs3w8q3s5t0JLAl8gR48XqMmk2\nUHrN\r\n=zogl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZDrBU7tiWO6d1LbfQKk6CENyxD16JHQtrG9rHR8l7swIhAKyqh2DoLIvdX1ghPhbnOjELv1zykUlp1dPvuskEzvAE"}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.1.2_1601048600153_0.9152280152343903"},"_hasShrinkwrap":false},"0.2.0-beta.1":{"name":"@psyycker/react-translation","version":"0.2.0-beta.1","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"230f41fcb52281373b8558baae84a36ff5e297ee","_id":"@psyycker/react-translation@0.2.0-beta.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Gtk7LASSSa1eCPlWgX0uhUiBIZ8douaduCZfpwA0pLv2f1ePNAD9cS8pvCyTK4NMb9gIQ17ShfJm74dLzPfeOg==","shasum":"0b81c575e4841356b25c95ebe6561bbd93f6d2d5","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.0-beta.1.tgz","fileCount":21,"unpackedSize":44930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfclZECRA9TVsSAnZWagAAOx0QAKRrclvJF+vFyPEZUh33\n62DKCwt+G64w4WIPamd0DfhUKq//9wEguR1y4Z9TAy76pb5tlJp1TGqPxjgE\nSoquEEUbaTIMWaP6J4f8tYyGY1B9/8ktayYGmALknMZGlQpz967XrtTbjqA1\nB5BvsuAdCVJ1QgdYoawxNMylff4mN1j0G2+hMuV9nq/SW8M1WfQNbM79Vcqb\nntSTaD/7BOZDhKnr9GxKWJ8dHYmfm+ewpcoz0tKAxUc0dURZin8PJcDdnzQr\n4owfnjOTEC81MG5byHWXaLYRvCqKjX5+T6+48POOJQbQVX1/Ug7SGnu1OzG6\n0PixsnzzEwgpgFxCOfwSrFUSXoKWBv+Ynqb7aiL5rgcstR49bcGCkSgnoq9a\nKJTi1sUeLsRxRGwpqJqC2VYR8V+dvvaIeNiLt4it+Da5eS8OGvYjCIrbuOq0\noxLmSWcCzydavQcViLsh1b4TdWpMKtMyuHb6aiA7rSUbVoTiF4FHmdnIKZrV\npE40hRlqpT8RV1gkHUF1jYARVIAqJYdalGWd2ThYQNf9gKMzbjPNrol82gf1\n6yd3/5A+ckInSlSOe6745tUtHIBcc7bm3xU1Ne91pJejQm5oWlpv2E3ol6nN\n141Iy2x6zznbZvjSB2jm/8tL43G5uqNKw0F0cKJXO13Rl8nzNq2wInyXs8YR\ndAsg\r\n=Y93d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVV1m55Q8dS8uTbYvJbv2vnHmklFMaXcREK1hfPjVf4AiB0Mv0VLjmpx/l/MKxzUFR9brsH1ELtGNeCjcdk34JC6w=="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.0-beta.1_1601328707869_0.30910128639213474"},"_hasShrinkwrap":false},"0.2.0-beta.2":{"name":"@psyycker/react-translation","version":"0.2.0-beta.2","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"230f41fcb52281373b8558baae84a36ff5e297ee","_id":"@psyycker/react-translation@0.2.0-beta.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-wO+FYLS5bs5kKZUdqx36HzgxczsDjfAxwqDxa6qvptZYng/xqQTi/TOkery26jLINsJY+t3Z9mMPv8h7NSMwzQ==","shasum":"8a32194a23dd402aa79c3444719791b326a8a2dd","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.0-beta.2.tgz","fileCount":21,"unpackedSize":46804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcvKSCRA9TVsSAnZWagAAOhoP/2RvAddCFsqe/A35Lb3d\nsATT/YhLLDPXDgVhuMsSQ+upjPJhcwIwulozxWRu/9t621F8PY61xDB++MWH\n4JBPXpbY24RnVyBvbAoqUJD50NtfrV+rtJs3/yidrvNeIluXUFYzc1IMD3Q1\nV3IJrtnxf4TV2VcJq2BidRvITXy50Rhe6w13J2syAAYT4TETuEzbF/2mu7Mj\nw2ArnnpbLED/AqVac+BmY+I9unbNocZbpAdfOhNcFFSL3uCMKuNKHhoYshiR\n/wkJiLpPFTrSbUfLVYMN9tHWWSoD1zajVO+D5SRGBK0xKKVZlw4YcWXJkseu\n/R0X2L/CB6XZ50fnsrvIhpP+ijwsv6wsWcCLUS3Y6EW+lHcdyhyYZRJmdhmY\nsiX2FdA3o21RxmNNJkTznKHTNuZ7nu0axkNrU5OmRt+mKYtzviJySvFThVf9\nLsd38260jtxKJ1vDitQsNqagIDXaDmSD/sEpj6VC2hjOJI00dzPv7g0Lgi6A\n6kPYSlNCowgXLvK19hJBAQoc05kFIZn6QwkFnSJpH1LqWbf9IHlaXzfbxx7N\nvzaeB3BO1kpvTlidrSbyNfQaH55r8YgRaRKyxNcEdsSGVedz/EYSDQmzdSRg\naDxtjGGDXsQNe67zEdzax78nBs8vymvvX5d0YSyMq3ME7cadCMCogld5cp4d\ndQe7\r\n=qqNT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdU/TCbpsJeme9eLopXs/7B2M90iQRMTWqrraiuSg5oAiBDE9wFmg3Y9zZS7YlDY3td34bctdSZb/sNiUl/ebl3jw=="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.0-beta.2_1601368722397_0.48768886886792817"},"_hasShrinkwrap":false},"0.2.0-beta.3":{"name":"@psyycker/react-translation","version":"0.2.0-beta.3","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"230f41fcb52281373b8558baae84a36ff5e297ee","_id":"@psyycker/react-translation@0.2.0-beta.3","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-BSLOfXOOuPoTo+YFTQgaarageEANpD7kT7BV8Nk+JdvVcyegV9ZEaYPZTROK/lfGYu9DE+9Pixf51gcjdvMWzQ==","shasum":"df846682ee3cf2ffd7cf69593767cd92fd7d62dc","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.0-beta.3.tgz","fileCount":21,"unpackedSize":46909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcvbpCRA9TVsSAnZWagAAwvAP/R/E2nty3ZyUcjLvj2sr\nuzog746yq7VRAO7TilPDFbQW2ReLK/ZewceGyAL8CaXkpGz6ZIEWmL+9567/\nfLHGRTK4+kBGCDNkl22smcXjpcIhwM/I/pN4+hVVZfByYGbNch1RvT8XT04K\nOoz/I/CwvYPMSpQgLis7wowdS0EZcOSMRgnslBRE37KmnjOJsERAgW4Fw8R8\nVi9/voz/MfyEXhREksXU8fur5aac+D0bsl06ZV593rIYGGnzUd1vk6vhYNaX\nzTZM60g++uJvJXwOQ9Cigf8df1F5Bpwubay4uo4sYGuxEVJ7q2OsVC02W4fp\n9WtXaOEjmvvsgu4Ncl3Kl+hPIsxyY5dvUq76FNopQ58mhKEmZ3os2X695+E+\nAqL9WCpdZ4roWVitvlqwjhKroyAMcTAjtI+5rgIrtvCAULpUB2PqYaf+sl/K\nAQCIRpSMRvrKVC71nxf8L8cCf1dYavHdTSli5kG5auZ8fwylPhxaUUcrzpqf\nEfLMSeruoePloXnscw2G9aSBdmD49PhScCovNVHAjMjjreg83hIvnl8C77gj\npzODGhoCu6ErjEnJCZk10RHL2hhuv1AB4+kVFX03YK+gEopS/Ctm9LmVJF5q\noPqaZ2cT84U9AcrWxgLaFAN3HTYXBgZjS2mjxVoyImoFqxk6WlrTPBDl61RN\n4FV4\r\n=OAIK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2aPaOOLr7dvCHop1zLeFGl2MjkGirZVRWONjEjY7SzgIgatoWxDCYCvkOEn9zD4eLDxvLwJ9duwjUtS8Xna5ztzQ="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.0-beta.3_1601369832616_0.8322641307893628"},"_hasShrinkwrap":false},"0.2.0":{"name":"@psyycker/react-translation","version":"0.2.0","description":"A modern translation library for React","main":"./build/index.js","module":"./build/index.es.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"230f41fcb52281373b8558baae84a36ff5e297ee","_id":"@psyycker/react-translation@0.2.0","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-xSPqM78BTrmqXI571wcIOAXHRVHNz4GuQGYi80jxd6Hn0pnqp+tmRmYE8rQLA6aqw+ArvqTDtV1LwaldrazARQ==","shasum":"ea40a0a81e17deabcf623b18123c90103bf4c5ff","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.0.tgz","fileCount":21,"unpackedSize":46902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcvqQCRA9TVsSAnZWagAAdecP/jpKpNI9uFBUUfeTbaqL\nmhXY42S1f4aJaRFfs8c29oPxPmrpv++uP++y2v/WUoxg4oPMzgUAG3xoHqiL\nPcESbqxi1axCrqwGuw2nvqvehjW6bjZFGdWzrmoyKTcjCJS3LzK8uzFQ3umg\n35nGqp+XwqKMIRiLnmpEpJ2nc2kLy+MPO+uWM6Y03eMeftjczVhdPIrw+L/r\nH+uuUcUUcgUhLjbdtB+7h5T96/6Y5Qs6M13zvKPmVpBZZ4XpGCoxqh241pAD\nDsZvmwskiYb4j/We+L2G26nF12N4F058Js0M+auw/AAApuNsdedjUOt/pxyx\nabccu9HCLzymubn/7yQWIjHPO7p6Acu2HSTWKczR1b0Ez2b/Nl9qzObfEwXS\n66TgFi2EVSSk/pl/7ugpC7WEXE5n0v6giJMnDHEj42uXJUQKEd/AugfwJfNJ\n8Hq671R5FCGvC/aMpeNamUGcYaxYoxmfOxM4EeDY7/s8FtRZDr+FrQDwED9a\nvBmwW7A/OPbO4ZDLnTXn0GdXgrbR4ODtLuT0/p36b8dSDc+fvdcQQhWnF9xN\nZwxeq1hzNhKenErDhcqBt6fOc4QzLfsavhUXMkSyzevGwMmmbHkhwAyevg36\nOexUVmDdsS/jvzB8VBjOWm458NU+228LCSgilQA1yu79z+WUaStkNonR/9lZ\nvXa/\r\n=Y99p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrv2dVp5TnzL3Bd6HgXc6/pZia+znhs4g22ZrO7ANS5AIgf3cCj8LfmUBncBcmte7dRXNteESmd64JgEWGqlGSybs="}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.0_1601370768020_0.11547134638272238"},"_hasShrinkwrap":false},"0.2.1":{"name":"@psyycker/react-translation","version":"0.2.1","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"935a8297a673197002aaa8cbda3c9d9f511772a5","_id":"@psyycker/react-translation@0.2.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Bg61iZKbBhubOkI4cxPtyRzYuVNR+7k+fmn1g7L6T3ZZcZbfdpSy8cx1g7H5KjSY1gOAG1Rf0mPJTiO3ssr3Nw==","shasum":"adbba9b00d53f8ebad2ba60ace986619bc1d1dc8","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.1.tgz","fileCount":21,"unpackedSize":49468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcwA8CRA9TVsSAnZWagAAlqYP/jOg92R+AWFHaWB4r2uL\nwtsVkNnxCwSTEUykDWBlSNYINBvTbB4P/El0V0wsscnAqx6vOS3FPK7+fnB7\nvDWFcU7C7ZaZnDtKcYMsAU0DhyhjF95S7+RyZ30/p41FPRxExbNSdPT0/j+r\nca5Tj/3MghlI2gKNYSGGf9bFSLTvD/lZVduQEtHW6ER3z/L2PH9nOOfnKvas\nncNAPz3pnNDca2LoQfnsbEjHwV7Ki4zKYvFVJOX553GGC2L/O8oXwCrBuCiK\niFp2DJTwYoemYKaU08S97VrmVBeVNChes5UCOz0bs7iGiy/au8Bu5luTy7i+\nGyh96n6ox8MxytKNwff80MpPUG30IMWZ2mrd+TcnGUivWqsHYq4NfSf+psw2\ngHwhcHPJPtMXOG+7gbHk8TjlfjJNISsIcAzRLSCL9OedrmaHys2Pc4FdDbGM\nIOYnUCWescmVOD0cr2VcaV0HU1tw7gVeJykUdndR8AWCUj6AY6Db59yddpRc\nzObrSawhbi1sjcuj7EIuHdB20tngPMBX95xWLszjvNyezZo7b8sPFzV0DPtn\nBthnrYL3uneGdLLr9zIlt7CYhZvvXRv2TqPwd2cr5/u4TSESPr9EXlGy1SeZ\nf9sLu7d5lQgcKbSZL3Wj6wO6TI/0/Q7YXMVq3wOIWK2nhlmg50yYV5p/T61k\nhXeR\r\n=jkm5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyp/KivYV4qaSiyNSGyRhwQ9FQtC6XJGlZTVDc42QjcQIhAPY4DZJmDFByiX076Tv5ug3ab+E6hT5BydHqtMc1wRWW"}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.1_1601372220227_0.3541222034627822"},"_hasShrinkwrap":false},"0.2.2-beta.1":{"name":"@psyycker/react-translation","version":"0.2.2-beta.1","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"d2ce3ff11b19a7ac0c8a2b4ad2f900a450735bbc","_id":"@psyycker/react-translation@0.2.2-beta.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-gBylVArm4su0YulJMq9r+8U2pMa3oNqSOUQWw/ylDBh1DlltTXbzc2Xd+u9gnf7svSKG9w16HqbI9QlNpFycHA==","shasum":"8d5b58dac1b1fed113fa7e0cda6a0066857e52f1","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.2-beta.1.tgz","fileCount":21,"unpackedSize":41447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcxxiCRA9TVsSAnZWagAAoasQAIJScA3ufyVru3nlwuBa\nucToVifjiiUuD4zoj0mQWLVXlDoOrQGtSEI6WR6xD9skf0VkzBYi8kWGdUMl\nuPV7rhVJp8vAsSpyNFybSCsozogptJGHHklESyP4bkoANFeagGOwxp6zhJCG\njR9zDtcnKYVkWwCYWXKNNttNCB3QCcNe9GtIOPLbAwKffs7/WfaYffzxRq6a\njfDziuXeG6j7q7cBa/I5/QJzYXlM81xIXzKGR9/k68MCBG6sz0U+GISd/Qio\nBHV58P1oBz/4SbS7oSIl6Mi8IiRnHLknD4psk1XYdJwo4bD/Hm7vVtoHBeIm\n3I1HEGFH4ajOgqNVsJqVmrjyC7UlDQ5M8ERq8uNbnxEWZIZdnKCS1n4zrxAh\ns7G9Euj5VhZoT6rNzQM7cvZ8b/XYuA6I4nWOgQpwylR1TitTgMHI2gQyMXDE\nEbiCdqWwkgJopJDdCjP6OVZgEI2N57m2ejz2MvwyzEmi0ft3sG0sXeftlGZo\nUil5bXjGPgB/YUZ1SgonHbCr28o2X/1Ozx7sNi2Ow7O5z1+Ts8VbzC0k9mbM\nTmU3CTJdH4QGKGRAtyZy8LtHVxWRBCV58M4ocpeypcTHAK6JQiIsSjj8SHnp\nMhjm6QPtXdy9EZgmrenewwjmgTaHGjixCD/1H8LrzKcpd3JOJHxqqvL0raaG\nkuFf\r\n=FV6u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1oOfYWOE116wAwH/q4FpzwpQBZufYrdQmrGQT7ZJmDQIhAIaJoCEOYm+WEfsX+1yg78keESe+Z50vMlr9FeKf2kR8"}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.2-beta.1_1601379426363_0.17067253935316162"},"_hasShrinkwrap":false},"0.2.2":{"name":"@psyycker/react-translation","version":"0.2.2","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublish":"npm run build"},"devDependencies":{"@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","@types/react":"^16.9.49","@types/react-native":"^0.63.23","rollup":"^2.28.2","rollup-plugin-peer-deps-external":"^2.2.3","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.27.2","typescript":"^4.0.3"},"peerDependencies":{"react":">=16.8.0"},"author":{"name":"Remy Villulles"},"license":"MIT","gitHead":"d2ce3ff11b19a7ac0c8a2b4ad2f900a450735bbc","_id":"@psyycker/react-translation@0.2.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Kn9AB7dkauv9vz2WLX8JFKo3TGGvnMKDIYMb2ZOg3IFcbxI7avD8p4pkCnL1u6YcuSfTTMOMBnFBBA82fyMI9Q==","shasum":"85c1893b2fa130e8dc4120bf639faa6030ffe9a7","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.2.2.tgz","fileCount":21,"unpackedSize":41440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcxz8CRA9TVsSAnZWagAAT1AP/RlwbSUZE14f8POUetun\nQEGV/eC+BisSD+vtb1hJdCw03/78O0A+UOa3E9E51MG3AMOfzWF1TBEPwdFG\noP+uI3dr6uWDbwrmwCYbvyvdesHwK+/lgiU9ZaLOnR9vUV5FeFgorNV5KP59\nS5o8bGzBhlBSM6jIGVhd7lRc4q2QMAiuxRp5K7oKLZXLctYeMidhoAbzwW1T\n5X5jspX3yBRc6iTiaV+usZzbuGCrbcY1dATizVrGBaoCrDIrLML4bVBN4uxJ\nA+VgCr1uO26qi8+IK3M73RFNz5QZIkQHT7p+SDkeLfneezawbMLALmO96r6u\n5JEibnNztYarBumT6mUn7xnsfwgXsFIiVc5g/LdHCY3VvqmMhrvRUchVzMnV\nhMZGzozXD8D9piMwDHDMVyjV/g3IgYNt+LDetU83utzwsGlF2IaGWwCHUKzt\nXamSyjdv4lSSwgk6iYXM0pWfNbm81O/GBvBrKYhxXxx0yyMvyKc/4JFnjdnu\nteswHdpPXvuvecOKV+ASc4ayLpU/hRhq57UUb/LXAgUJC2Bjs6UKxJsRMnpP\n2AuiFFubl1Eo7mC47uc5VMUf7rgM6ZqZrk+F3yTnQP3iMO36nVZZIUo67HV+\nPxYou/Cb00gFAna71wBzFNQHhQy/3tYEZDyNtiwCel+aFkHkrvyQ+N2Y4rN0\nPCnX\r\n=reOy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/ZJgAst+4mbzqtZiRBUU/wbxJ+6NhsBrYURxghm27MQIhAIhlJjGynt+eClKooWCvA95X7xluIF9q9e3ggv7WPfP5"}]},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.2.2_1601379580468_0.6779640300208241"},"_hasShrinkwrap":false},"0.3.0-beta.1":{"name":"@psyycker/react-translation","version":"0.3.0-beta.1","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"497192944a3234925d287d56566b0d0e9c4b89c3","_id":"@psyycker/react-translation@0.3.0-beta.1","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-6bqr08fMQhPVFSSnkJ/JBf+VHWwtjKOhQLBvQdFWxyVGJ+BvkA1WgN66FsE52tYHLSQ4xbTxXwshPp56TVJs8A==","shasum":"c402a2212ca4164751e68933743d96d6f25a60d2","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.3.0-beta.1.tgz","fileCount":24,"unpackedSize":1578187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfynKCRA9TVsSAnZWagAA1qkQAKNIYJ+lWoRREG3UU6CS\nYkzuuBJptyfoLSqm9AkjsIQZl2E1YdqmvZtcirce81KAkHIR97T9vnPumSt+\ntaCl+XG2lAuMRW8jXkRUAH31asnqVbfWCSywMGb7lbXIe/ndG5+q+z7zjyNw\nx9wWh47RuO5wWIox8zvsZ6xhsyGrx/sSgkrji/za7dLiW5Ie/KFffZ2bgKWX\nfvGe1fCa4Yo/SztYqHC0M57JQCudBu3eqJnLRAkv66jZHXGzPe6ga3Izj6H3\ntyHm01afuky2hh66F8MfdTWOQHYUj9FgQgQk8HJ0TGhYq0rMY9ylb3u/DGW2\nuxrrLMDVXe4IiZyt1ySuZMVbrvq8sR+U70KUXifADhEHZ8leI5+eScPVfRmJ\nXO7iyo1JwT998z7pDD8GZ3N1IscygmnZ6erh4mqV7Jg73KR9g0XIKcQaQErT\nopXZpzY/Z82RVCO6IgCllbmzMyuNGMB+TREV21KOvHa+ebmrGO/2pBkisbFt\n9aOUTipPRC0b5hpdguDCUcl3wNU/GTPKkvThluwbX7TqA0nj50mwJ64o5Qqo\npFtOEPS8fOzURD23yBn06O8nUWlgu84twF8zuOzqYbXLoaP837CkmZ3ye3eT\nS1le/DSoufjK2eDhD/hqhDOXcokDzJwSRhRWPh64Kxuk6dmNezg8+WqBrszB\niyrW\r\n=xmrb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWmVdTChPXo4gkcwAtI+r8PqXiVWGAoOrUsVHECJpilwIhAPSVeAQjA2tExC0YWdQsH5fnVISiyDjD4sBRVVJ04F3g"}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.3.0-beta.1_1618946505642_0.9474895267505066"},"_hasShrinkwrap":false},"0.3.0":{"name":"@psyycker/react-translation","version":"0.3.0","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"497192944a3234925d287d56566b0d0e9c4b89c3","_id":"@psyycker/react-translation@0.3.0","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-DO2kgGyo20asFORtY4ZFgHwf38t9I3OQy7SqxPsp5OO4hfvOSx3+5OZiKJxNTne83Ta4kVW6CX9bSTZRkh9dyQ==","shasum":"f2690c55f9e3a6226649f3949b543a43b60cb6cf","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.3.0.tgz","fileCount":24,"unpackedSize":1578180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfys4CRA9TVsSAnZWagAAIxwP/0K0ulAIqYAT5TGf/CYb\nVP9NWTHRYEdES6GWbS27TVJu99wULj6QIQ25i/7pMFvmppZOxMIDut6JZLmY\ndBuNz5e/t2zfRdPgmM/W3pAl3DgoIVYXsBCBIB2BZWfEJT2ipWwWz0UIV1Cm\nw/jC6JfRmFLVaICCDgf750a/kcGKKb7aawlmj4wImha6rf6Jj1o/r6vpcuio\nz04hON20nvl9xxwzqhwpU22h7Oeh3S8iWZzKuPie3yYcDYT17fBQ5VKIx/DF\nYCmRDsIvc64+5eO+Jsf5MvXCHNLX7Bax0do5gnE80kjxMx2rCX1Hz/69H4OO\nvnE08+YRBjeDuITMMe0PSPDwkt5KutS9mOv8ATIrRWQkjaY3OMSiDjp6wHcZ\nksr8386e4iAKG0uFKzWBYEKcF6fC+syNVd58wUbbLzNSvOTtpdJ2u+l8Rjrf\nI7oPH849QmsV8mjtp12upqSNEZEy1JgdfpMiK8gA1iyu24sJuxbZ8PZsjsp3\nexdcZaxIOdxZ18U6O8VQWKpA+UmN2R0QW8InC0FMTvIW7CQKN7w8Gv2Uh1D1\nx+2JZOJ/6ebxmsGdXUaYHp7KRmSMxFxC5bH6Qu9b2jM3PmJIrzNRd5FZRBIC\nvXNG1YpAvP3a5So7eQEDoIDpt11IEX8W+GV/t6A/h/hmdR7sIROnzOjRNnOS\nAsQZ\r\n=Ui7I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDvD71gnX1tkUjTfq8vGqyS/H9ABK9jMMC6UAaj7fQAvAiEAtMOt6Uol2UcSppc1UW+DpT+ATEkpC6BYMiLfEtgNkj0="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.3.0_1618946872367_0.5180719017681386"},"_hasShrinkwrap":false},"0.3.1":{"name":"@psyycker/react-translation","version":"0.3.1","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"927f918b48288c352d6d94833bac91e8ba77c583","_id":"@psyycker/react-translation@0.3.1","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-ESwLZ30XV0DWnSbPvngIRiHSpUh1hAdastU/yOfiXZUt7SrgXTxPJXa98ev8GaVCZSPRo+zD/3NG/a9fr9TBpg==","shasum":"91de4fd50e281b978b121e0088e9318deecf7628","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.3.1.tgz","fileCount":20,"unpackedSize":163268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggpuRCRA9TVsSAnZWagAATLkP/jDgONlxlZHOJP5iA/oV\nAREAqfMWTNJLyW73BilETzFY/QirawGWzOjGUymGsz1JHZ+mdBQiBF3ssOxT\nYrMa/G8twlDnchVvp1qa8s3XQ1UZxpjNQIw+SFfPJx9+W8ePA73IH9TB6Z8o\nS7SWd02fQRimRQfTjLDO9yMcLgage3yGEZXwg8JYD1oxqPubaI2/1Ue8Na1x\n32d8SiO1Ww13N+BwghRBDrPKUxTI2w3hiNUywWlcwqVyca3wVSWqjOyPsABq\nV4UTeWlqYGEtwB6urekAQD3ge5PtjRWC+sJIzc6cfUR036GSSiNyUweE50TS\nPwG3KvkkfDRNpvqsC/m8yiNXr3UVSbAj69kA1OpGTSQArgEWpBEU+k4TI5iM\n7FDyWI3plRA7c7P3qK0AQ/iigM6O3STN9TawZTAY/pF0380Zw+f/ltv1DUiM\nXwiYoehx16LeneFh0fl/Ldif3wYoKOZMoeyhF51rsA7XE8JMNLNprpfBndOC\nxJ1Z6BVOgaELFvhcvYlD4w0v2rvRlgfzSCkWI/ExiuH90YYWDj3e27mZlhnZ\ngUdRQFTE6F2naawCD9YHhjhue0MkIfwtbbj5qckHORun9B+hwMsJFkmOBHjE\n0rN+p5ZciJrfix+c34B/pN6kpQ6YNg7tkRaWnTZD5HyLtzSyvvMavUlt6o78\nOz/v\r\n=C9a6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPHw1fqE7DbPtviNKWd7bFj+IXe+0aUSImt0N/V7ps5AIgWDZwII5UZ7hh9O0MReT/y50T307cbeA7++u9SD6fnFA="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.3.1_1619172241410_0.2619320558647349"},"_hasShrinkwrap":false},"0.3.2":{"name":"@psyycker/react-translation","version":"0.3.2","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.3.2","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-9IiMp/W7cfbjb9GfHQ536PrdIme0kkBnOU7ZZ4TPcVImh3tW7jjdCmiMwGUtUVTJHieDpKIRmikxk2XJlwIscg==","shasum":"2508f499a0e46830a3a8ef35ba324eda3b65a0bd","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.3.2.tgz","fileCount":22,"unpackedSize":163792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghcxECRA9TVsSAnZWagAAoewQAIu/362ENedmBbYc2yIm\nzFYYLi5tgdMLd8uNCctLbwkvdHqXXitg7JpMMBsXRgC1jgt8Kdx2bT7AN9f4\nIjld1WUb5czwUJvaQPlDUCmHWv+5fKx23YJ5D2uSS1hK0wmIZO5x4oA3ywf5\nFizM+rdOUpXUJ9xsVTGpn48Nj8TQNnpc9+FQ+1HujxyV/rYYhdBwJcOO71YC\nPAko+TESgtAf3ADPMZFh/g6TNnAbvYQxWRI4pXv2tGAaGD32utteI+UB7YP6\n8feyj5hIUtZp2U1AEaPI7R8RjuIc0t1+HkF+1iYn13b0UT4EWL/gX0UzRfbb\nqAsalQBtIEogmxdQt8l8nyKSMXpVg7fka2sO9jG8lWwKEc202nNHHAcOa6n7\nc05VM/qmHW4JjATMun9oy4Gd4xcqJDXN+UUdIYGvM73+jYONpJuW5aoF42Bo\ngEbg4k6A17OC2+nU8t6+P2ADLzDDXTfUqRi30L7pKefArkkhw+5t480nyuRk\nAqLIO9Qk4xOVvr4QWkSAmII5N+wzpWUSyp6CfqukY+KeC5W/xCV+Qd40+HqA\nEOPtsmZK+Y96CWxPQhFAbWiaCo4ybrMqYlhdxwSPJxI9ApbAPRC/kTcalQ4O\npADM/OQORYCO/tJ6yYDOc14fROYxxCxGcpgwhEdMIvHK68GcUQYqpquUiRwj\n8/pA\r\n=eqg4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmqbKh5qx7t4uYmiP1Spkl9WlKV2ZWdDPnkrFjTyEDSAiEAzJGXBBsNr6eZymsL//zzyGmbjVXEQ1EE8kQWcX3hUgI="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.3.2_1619381315921_0.0942859774622935"},"_hasShrinkwrap":false},"0.4.0-alpha.1":{"name":"@psyycker/react-translation","version":"0.4.0-alpha.1","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.4.0-alpha.1","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-nc5FamBBIGGbZwc+XarKftT/5LDa3WopxR8WaqAb1wgN4ONUw43ATvFxugCWBqfm1z5onkJFwkySBH17wH34Eg==","shasum":"d4c7d90a5846bc22cb21896e50c37c5bcc189429","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.4.0-alpha.1.tgz","fileCount":24,"unpackedSize":164370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghdPpCRA9TVsSAnZWagAAzlAQAI1GEVThFg/uUMnMgDtE\nljV8Hq2JBOX47KAzgX23SIuMlLedhU2uSL4m+M+o2zHQhPaNjEX90CI2EZJG\nZBDM0BTM/bPINi58FRc7w5UC6nRwRDfU6L9uWvYWKDp91peV5puAW/zvu109\nTelVTQcBnLp4DDyZLH4V1tifGBkJ0JTx4f7t232pEchwaLYisGoZGcBN7TTX\nfBHfk2Rhftn5k771UX/+a0CzjlvPgjuH/SBpwbEVPEAX2GqBUFKQZkc80ne5\nBU2EipAjJVQcQE4PX667UT6fNJwdOMAwMK34k4L4HFuVCIpI3OLl8L0HRTdJ\nJ7h8IavlJn0jWY9YPox2j2ZR4PyaLpAf8NNncK2UcfxXkoWf1BZr9/aQ9DaU\nmV29QuRBzc2UU+3X2XtEQBvErOZ7mC2AC+ox0YEb+gQvjw2ZeP3X9fMdO8n+\nNST0v4irIYYJjtloPB6cRXWTyuNqhldLL8bo4TLdZqGknV79b3rJNdXf5dCQ\nAA0VwFc0g4ELyLhHbQs4nvz+kuYsLc0FSWlMldbBh9ITj+f7OnDOrdCeXSKm\nYLIiNP05SV5j1x80E3GtUnVJj1aaR7goJqxOwAxC2duBEzkQm1I+c3DWPmKw\no7v7SLkZozDyxOP/jczEHUKizz7bC3pdTZcPP9Nz+tnbts3eH9QlBamTSqjv\n2Z31\r\n=nVnI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBLmB7S7K3wyTJzAZBthzdU6m7a6Ft7girpCeo3qyPfDAiBjJsFLXvb6ero74/wUc9F+nxVJvZ1XFfSugliW/ZBYPA=="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.4.0-alpha.1_1619383272610_0.8347013701228707"},"_hasShrinkwrap":false},"0.4.0-alpha.2":{"name":"@psyycker/react-translation","version":"0.4.0-alpha.2","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## Disclaimers\nEven is React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# TODO\n- Support value override on default value\n- Write better examples\n- Mocking service for a better targeting of labels when writing unit tests\n- Handle escaped {\n- Eslint config for better code\n- Warning in case of duplicate translations\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.4.0-alpha.2","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-eXOgFw1jbzqkJGAw98x3zdwrJOXhlDlFxTa+VWGG+TZw2B5lvkEASCdc9y0Yyi1WjjVCiygSgZ37UqovUIJf6w==","shasum":"df2d0f76672cd76ac736a50be907a2abd207fbe8","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.4.0-alpha.2.tgz","fileCount":25,"unpackedSize":164449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghde1CRA9TVsSAnZWagAAZPMP/3AU68idVk1L3X9nWzrA\neefJs4ib5telWfEcvHrgJIiLBAicLwjdQdzDafYCWvl6KrWvkgdGmx4fSuDw\no59CWyJ2VTJqGRSQgLTm6fOnVHNRhLJDYxIkt2IaZu7F3Ko1nUYrQnrLT/68\nAP61y2NTzwOINDtsHIk6zjNEvML7zNqBY6CxLvppANXm/iN2Cim0TmHIBwVT\nJ5KBdJt0KB/yUS8fG+rw6dGaOOUDYTlMY13+VG0uHJ/qmEesUHK2ZZPrr8It\nSSx7uMr4Ci75WLnuCsmot2iTg+zbTucvtodQhiZ+rR6WK5cEV7LV0XryJ26i\nHqNNmbI1EZkixR2j7YDn357U69OLdcKAJSxiF1a3slMUfu/wy8s9ohLgToit\nufs/Mr6fLY5BiNEL4FGKO6p2f6yGYtKwtos2NRmQGitSC0DTc3MwUdVH/AVu\nRBOgCzZLrgLqQWzLSQP1aUBhcA1f79fWETxwh7HIMd/irMU02QfogWcXBNer\n26n7DIGQ+djwdVaNzdQciZ98zY3FI0mjnurBslSTTOuHmgh9qzaD92NuQpjD\nXo+5n9C4ZMyJyMLKGXP3KGRX3iqF9fNN/Ewqy5xV56YJ/wCR1Wb1RvLHWH0t\nqxBfqoHe/yhoVfYot6vjOuIEXjFEzGAal7u4viY47s9j8kDQp841LfuBkZe6\najNq\r\n=tDNs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD95bF+o7REXi/k/JXwk4CEd1+DlCifav494lBn8vz0WQIhAJn+gnqXKh9sBh0U0wSKY0ZXv1Q7tlorUE9ERSK0YEXy"}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.4.0-alpha.2_1619384244881_0.045160422139283396"},"_hasShrinkwrap":false},"0.4.0-alpha.3":{"name":"@psyycker/react-translation","version":"0.4.0-alpha.3","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## Disclaimers\nEven is React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# TODO\n- Support value override on default value\n- Write better examples\n- Mocking service for a better targeting of labels when writing unit tests\n- Handle escaped {\n- Eslint config for better code\n- Warning in case of duplicate translations\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.4.0-alpha.3","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-JMWzQFYOq+funjV0TYPh2LYgU78putmK1a3pi4DyjK5Lm+6vD8EpyYN1VARuTeQwPtqCQ8xvovCHYGWrzJcJ8Q==","shasum":"339b9be89ad957450b16ddb81fdce0259c87277e","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.4.0-alpha.3.tgz","fileCount":25,"unpackedSize":164442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghdjOCRA9TVsSAnZWagAA/ysP/3FbM3c/iYZn0gUce5Y/\nAX83sVzkoJ4xnOKGrHRFnCs5K9o0ffy/uI9ckXVob2TbdsJCx1b9xXBBX8E9\naicoYAY6udpnnWzgyBz5a1IER6YjyIVSa2C8ps0qiKzlAWHP5VLQAD2OYAQs\np+7X5k6qC47RhKUQjgkXAS6QFu7AzONrEzZ+uWqcVsRBjtfRoItKe5EEwrqr\nfUNbuqKe5MvlNMC37ntwTonHV0ymarOVpLHrUUQVVS6o/aOCwUolDiI4f2lH\nZsVh3g7fyXLK9HXzVLj/hOVllRCmzzgPYCiFOlVBor4WAZjsjbjxSBlB416f\n87/uSMKlpJwql0LxboBE6cYsmNG6KM78HZC5hn9rKn8Sw/pFQgLEAHWo/saP\ngdK6gcp5VOmv32uhCHck2LDrihjxb2ERCV9KGCuqiOzXJvQ8VmEIDGMjkySj\n3rLUUTLqm8Mg1E0V3QiXkhk1bpciABPDycI2iaMDZb4lWlShxh0grcoGZ15W\nwGEoRXprsQH4U0EgeVTYkG2eDeS6t4N83iOYXC8DNJptQCCfgAR+7xLWjLpJ\nJaCa9PFVB0gUoz/5Ev9TuDSxg2qDrk5z5x3fF1hJmNUtEmy1TPn5N0zVIGKj\nXT3wZQaaDzPaL0VlVZcFTpJufRqw6Y9YPEkV2ydWAuYTugpTydMNh2zlDH/e\n0QYl\r\n=U1hB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUaa68UVS4Q/ntpk3tXEIYDQP9DsSiTgo1jEZJo+G3LAiAdHwbW8Ll9W1bwnjkLstEca07/c+MOSdmb/WBUq31QuQ=="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.4.0-alpha.3_1619384525875_0.014493664657215799"},"_hasShrinkwrap":false},"0.4.0-alpha.4":{"name":"@psyycker/react-translation","version":"0.4.0-alpha.4","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## Disclaimers\nEven is React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# TODO\n- Support value override on default value\n- Write better examples\n- Mocking service for a better targeting of labels when writing unit tests\n- Handle escaped {\n- Eslint config for better code\n- Warning in case of duplicate translations\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.4.0-alpha.4","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-tO2gXpWrbWpZZIIbJrBqyiEIBEK5Wxh2gAdv2glgqUv3v7XW+uopZER6k1izqOzUfe57uJScVm05CLsWXbza9Q==","shasum":"df827e61352208d82f067212841ba1141a64b8ee","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.4.0-alpha.4.tgz","fileCount":25,"unpackedSize":164765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghdpbCRA9TVsSAnZWagAAbpQP/0ReQculji4rKg22hmgu\n0trlpwdQy9RCI8ajIYvBZJBILmhV+D4qCl5PI2L7QQ16OspSOK5SFI3lSFYc\npBdczSO6S/Hn/2QYEQh50G0rAyRHEdJzgHqFjkSSIKa4BCImmdxowVc+LT1T\nChtv4fg2QJ2l4E+5QRVWr+AcFH8eVJSf0c1n9lPoURKP1u6zE2pkVlVl/K8H\n1TfMfQKrwXnMX/bjhPoLUQBc1icG8pBQPdePVa9m03saTlALFo6/YsTgtVxl\niJtVv6MdtS8Br3fwhZHOeAtWwZZWgvmL9oCtBcfwiKJU2cCcTwLPwZsNlvtF\nqCAUJVUM9z5XYcKSJT7si2kua0nL+7sCTOGJYeBVzAaMrELU2wxNadIULh7j\nRMZlDXgIc5dl4mpq/m9eVT5p99bQQ6Ogrz/k5ZaEXKalHU6juEivtpSNaF3Q\n7DiStVJUaLocUYq2nn2qEMXMSWIKx4AHU/40uJO5CdHpmuCsBjQXIlBBuwS/\nRzfqc2RtYHUjDmZO9DMYNhqrG9ePaRcVcC/UVAEBZ0j8oVURTGkmiT1MDwdh\n3XOWXjBYOXI14jnlAK4fCRzIeD732twll7pgADDwkt5og7MbgzE/e7GkLqFG\n+USGQbwaDR2tbLP3FNMDWf0+NSgvc33Sa/Ka6bez5z22YXvyeN5epENnHt+2\neBaY\r\n=xW4j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHtRxDKgBvHcART2RirbZ8SQs62QrIxA0AGYm6MyJ0vVAiEAi7kTa+edQgPU/ChjHKsK7bNgwbNQJRk9jT2yIm0UrVI="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.4.0-alpha.4_1619384923338_0.6817026530359958"},"_hasShrinkwrap":false},"0.4.0":{"name":"@psyycker/react-translation","version":"0.4.0","description":"A modern translation library for React and React Native!","main":"./build/index.js","module":"./build/index.es.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rollup -c --environment NODE_ENV:production","build:dev":"rollup -c --watch","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-native":"^0.64.0","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1","react-native":">=0.64.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"gitHead":"0a31cc7eff8999d8b3f4d97d509933bb28831aa2","_id":"@psyycker/react-translation@0.4.0","_nodeVersion":"14.15.1","_npmVersion":"7.7.5","dist":{"integrity":"sha512-b5s9PiuqQXiXHvXSZZm7bbsRCgPIv/5Vr6AYYt1hE2MqKUjDHPiaI6JwwM+ElWiIvShCy2Z5OJlViPkr5bBJlA==","shasum":"0c2e9793cf6c6e70365c6dabeb1ab6e12eb84107","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.4.0.tgz","fileCount":27,"unpackedSize":164784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghd4wCRA9TVsSAnZWagAAJ5gP/10m304gg9gpusAtat8e\nWQ5hI8qvFJC6LilQsFtLWLYnU6dSS6QV8f1mddLaXr3LydxzLB18ozG7jIb7\nBfZQBWvxNHKx/dZ7k2epZf1RUTC2y4fmryTIPejZYDKCfYqxYSL+0Gy67eC5\nPaedC109Imn9/5MYSQM2v232TcAb4KnWjQ7+B4z6rvhvA7WzKZ/BhYlpWi5x\nV5ZBRO/DGjVtNYYoqDUbq+3cLd+UiQ6c7SVtg3IIcoyM6SGTewJliTRIbIc9\nh/bkASagKXnJqdP7wq2m8ZkR3GMQ0HiUKFRDnSrbEisvdlyMAU0YkQcy/+B3\n84j+Lp0MpU1JSkeeNHG7tEHKGRkjbR+6ZwBypssGvFOh/B7wdO8tLmtqln/B\ntKYKFSq9X8T+cysRPIGXM20GnKZZCWRe1eBPP+QoPV1WcNGuBRYHbdDkxn54\nfRZyeV9nhTmk3sR7pTeJ67PTQUxE69pp9ujmQTgHOzk1raMdWZHjHNJPdPz5\nB6D5zxZ6E07cwR+w0nvBrvvb0DN7UGwQCNw/vmQp6mTuvUiQu/HRV+18359H\nKAs9BMu5YRINXDVRDr8rBrUyWNKyck37aY9DLdFSYB+CpxsALJZRi8jWZyYL\n1nf6KoPNmvcYl7JWxqPRAGIKgQvn5lik8vX1SLzeFvW3XagCrUkCGCv56F51\noNZy\r\n=m+Vx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhKM6VKJpAFT2uoxPc3Ao0zDRZu/eSw81zI9N9G1iMQAIhANcwuNb2k9hVh1iJhFCYNjGm5ruaw7+deJ3Jtr/nryXT"}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.4.0_1619385904387_0.7527118101350148"},"_hasShrinkwrap":false},"0.5.0-alpha1":{"name":"@psyycker/react-translation","version":"0.5.0-alpha1","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"tsc","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-multi-entry":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-copy":"^3.4.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\r\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\r\n# React Translation\r\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\r\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\r\n\r\n## Disclaimers\r\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\r\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\r\ntranslations are being declared.\r\n<br/>\r\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\r\nand are planned for later\r\n<br/>\r\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\r\n\r\n## Documentation\r\n\r\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\r\n\r\n## Installation\r\n```\r\nnpm install --save @psyycker/react-translation\r\n```\r\n\r\n## Usage\r\n\r\n### Initialise the library\r\n\r\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\r\nImport directly the library to initialise the events:\r\n```js\r\nimport \"@psyycker/react-translation\"\r\n```\r\n\r\n### Set default config\r\n\r\nBy default, no locale is set, you can define it by calling the function\r\n\r\n```js\r\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\r\n// Always call first before initialising the config\r\nimport \"@psyycker/react-translation\"\r\n\r\n// Do not call inside a component\r\nsetTranslationConfig({\r\n  defaultLocale: \"en-US\"\r\n})\r\n\r\n```\r\n\r\n### Translation Files\r\nFirst, you'll need to define your translation files. <br/>\r\nBoth JSON and JS objects are supported <br/>\r\nYou can nest properties to make it more readable\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"My Value\"\r\n  }\r\n}\r\n```\r\n\r\n### Register your translation files\r\nLet's say you have 2 files. One for English (US) and one for French <br/>\r\n\r\n```\r\ntranslations\r\n    |-- french.json\r\n    |-- english-us.json\r\n```\r\n\r\n```js\r\nimport { registerTranslations } from \"@psyycker/react-translation\";\r\nimport french from \"./translations/french.json\";\r\nimport englishUS from \"./translations/english-us.json\";\r\n\r\nregisterTranslations({\r\n  \"en-US\": englishUS,\r\n  \"fr-FR\": french\r\n})\r\n```\r\nYou can split your translation files and register them at different places. They will be merged\r\n\r\n### Translate\r\n\r\n#### With React\r\n\r\n##### Using Hooks\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <div>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</div>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <div>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </div>\r\n  )\r\n}\r\n```\r\n\r\n#### With React Native\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <Text>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</Text>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\nimport { StyleSheet } from \"react-native\"\r\n\r\nconst styles = StyleSheet.create({\r\n  textStyle: {\r\n    ...\r\n  }\r\n})\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <View>\r\n          <Translation \r\n            // If you want to apply a react native style on Text Component\r\n            style={styles.textStyle}\r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </View>\r\n  )\r\n}\r\n```\r\n\r\n##### API of Translation Component\r\n\r\n| Property       | Type   | Optional | Description                                                                  |\r\n|----------------|--------|----------|------------------------------------------------------------------------------|\r\n| translationKey | String |          | The key defined in the JSON file                                             |\r\n| defaultValue   | String |          | The default value if the key is not found                                    |\r\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\r\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\r\n\r\n#### Using parameters\r\n\r\nYou might want to inject parameters in your translations.\r\n<br/>\r\nYou can do so by using `{<yourVariableName>}` format (See below)\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"Hello {input}\"\r\n  }\r\n}\r\n```\r\n\r\nAnd then, you can inject it using the parameters property\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \r\nimport {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n            parameters={{\r\n              input: \"My custom input\"\r\n            }}\r\n         />\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\nYou can also do it by calling:\r\n\r\n```js\r\n    getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\",\r\n      parameters: { input: \"My Custom Input\" }\r\n})\r\n```\r\n\r\n### Change the locale\r\nYou can easily change the locale by doing:\r\n\r\n```js\r\nimport { changeLocale } from \"@psyycker/react-translations\";\r\n\r\n    ...\r\n\r\n    function onLocaleChange(newLocale){\r\n      changeLocale(newLocale)\r\n    }\r\n\r\n    ... // Probably some ui to change the locale!\r\n    \r\n```\r\n\r\n# ROADMAP\r\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\r\n\r\n# License\r\nMIT\r\n","readmeFilename":"README.md","gitHead":"7e3ead3884d8ea5a98f5d8d3ff7edd373e6f43c8","_id":"@psyycker/react-translation@0.5.0-alpha1","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-bTv1Yho15OlnB5S2DvQhyiSz0WrP/z4N8Hcy1QMEoVAKhN5uLgEEwE5CBor30yDVyfbAYJUXQYEEmZ2KKDfw2A==","shasum":"8da33a53942c5f8bb1be41c7f2ca6fd2c1512b79","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0-alpha1.tgz","fileCount":84,"unpackedSize":99887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+W0mCRA9TVsSAnZWagAAgAQP/2VyfZROZDi//TuQ5Blc\nhoz9gN15qgFjcP46X3ltGmuzy4a3xtFZlOKGSxxJRDUe/n2QpgsWPrr1pMJC\npoNfM3cibHrFagwCdLShHUOazmec90RIIOqdC/8Z3nSoN0Il+Pz535sXOVo4\n7shzLnJs+VHCq7esrqjBaETEUnxIl6+C1NAp5MytWbP5EEaa3XmFHbRohVXn\nQf44i3c80FByyHGc4G6n2n90JqjZN98XSKHo8roYsKPmLSqsHDQe7zg6aeHF\nmQFKANTPkWXYvEJNjH4g5Qiw8b69uZOE3g7SGdXqoH0hH9UxVc9tYuLVbgq1\n8CZgYcsKagkp87CJw1csDavDpUAcZJF3ZVrrJDxjDvk9RW3cBckzEHdp0qXq\n8Ut1lZa2aAg/OhOtGX/8QptAUALPqHBoQMs9EnnftGvk9R05EsHetUPJxQyM\nVC8Y5DqNOsvp7frirUsufTfSv+rgRr1Z98lBcjgRwVKlfVB3eY7A7s4hqW2w\n9se+h2nls192SkK0iHFMP0Zmh7EXq+UfHnUkCL+16Ya9OJuuUe1xUCxl2stB\nWw9Ol3/AENbaoxjXbICabeO5YaGjrNOzkEow71l1APTvNVAs6mlt5lYCwlV3\nw2fuu778VHzJCxSJn891PdpDjLDvasZZdwMmBtmuR33yrRmparuR4GiScKXd\nOx9H\r\n=81o/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4yxgIcqK8J8k1IQem5acdK3pG7AlENjpZL9Jz8KgpNAIhAO+jBTIQjAvxgqkhl6DNWlqZVkMyStJo160C0eGueXCg"}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0-alpha1_1643736358687_0.2214194860484009"},"_hasShrinkwrap":false},"0.5.0-alpha2":{"name":"@psyycker/react-translation","version":"0.5.0-alpha2","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"tsc","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-multi-entry":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","rollup":"^2.45.2","rollup-plugin-copy":"^3.4.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"17.0.1"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\r\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\r\n# React Translation\r\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\r\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\r\n\r\n## Disclaimers\r\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\r\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\r\ntranslations are being declared.\r\n<br/>\r\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\r\nand are planned for later\r\n<br/>\r\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\r\n\r\n## Documentation\r\n\r\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\r\n\r\n## Installation\r\n```\r\nnpm install --save @psyycker/react-translation\r\n```\r\n\r\n## Usage\r\n\r\n### Initialise the library\r\n\r\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\r\nImport directly the library to initialise the events:\r\n```js\r\nimport \"@psyycker/react-translation\"\r\n```\r\n\r\n### Set default config\r\n\r\nBy default, no locale is set, you can define it by calling the function\r\n\r\n```js\r\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\r\n// Always call first before initialising the config\r\nimport \"@psyycker/react-translation\"\r\n\r\n// Do not call inside a component\r\nsetTranslationConfig({\r\n  defaultLocale: \"en-US\"\r\n})\r\n\r\n```\r\n\r\n### Translation Files\r\nFirst, you'll need to define your translation files. <br/>\r\nBoth JSON and JS objects are supported <br/>\r\nYou can nest properties to make it more readable\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"My Value\"\r\n  }\r\n}\r\n```\r\n\r\n### Register your translation files\r\nLet's say you have 2 files. One for English (US) and one for French <br/>\r\n\r\n```\r\ntranslations\r\n    |-- french.json\r\n    |-- english-us.json\r\n```\r\n\r\n```js\r\nimport { registerTranslations } from \"@psyycker/react-translation\";\r\nimport french from \"./translations/french.json\";\r\nimport englishUS from \"./translations/english-us.json\";\r\n\r\nregisterTranslations({\r\n  \"en-US\": englishUS,\r\n  \"fr-FR\": french\r\n})\r\n```\r\nYou can split your translation files and register them at different places. They will be merged\r\n\r\n### Translate\r\n\r\n#### With React\r\n\r\n##### Using Hooks\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <div>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</div>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <div>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </div>\r\n  )\r\n}\r\n```\r\n\r\n#### With React Native\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <Text>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</Text>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\nimport { StyleSheet } from \"react-native\"\r\n\r\nconst styles = StyleSheet.create({\r\n  textStyle: {\r\n    ...\r\n  }\r\n})\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <View>\r\n          <Translation \r\n            // If you want to apply a react native style on Text Component\r\n            style={styles.textStyle}\r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </View>\r\n  )\r\n}\r\n```\r\n\r\n##### API of Translation Component\r\n\r\n| Property       | Type   | Optional | Description                                                                  |\r\n|----------------|--------|----------|------------------------------------------------------------------------------|\r\n| translationKey | String |          | The key defined in the JSON file                                             |\r\n| defaultValue   | String |          | The default value if the key is not found                                    |\r\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\r\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\r\n\r\n#### Using parameters\r\n\r\nYou might want to inject parameters in your translations.\r\n<br/>\r\nYou can do so by using `{<yourVariableName>}` format (See below)\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"Hello {input}\"\r\n  }\r\n}\r\n```\r\n\r\nAnd then, you can inject it using the parameters property\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \r\nimport {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n            parameters={{\r\n              input: \"My custom input\"\r\n            }}\r\n         />\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\nYou can also do it by calling:\r\n\r\n```js\r\n    getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\",\r\n      parameters: { input: \"My Custom Input\" }\r\n})\r\n```\r\n\r\n### Change the locale\r\nYou can easily change the locale by doing:\r\n\r\n```js\r\nimport { changeLocale } from \"@psyycker/react-translations\";\r\n\r\n    ...\r\n\r\n    function onLocaleChange(newLocale){\r\n      changeLocale(newLocale)\r\n    }\r\n\r\n    ... // Probably some ui to change the locale!\r\n    \r\n```\r\n\r\n# ROADMAP\r\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\r\n\r\n# License\r\nMIT\r\n","readmeFilename":"README.md","gitHead":"7e3ead3884d8ea5a98f5d8d3ff7edd373e6f43c8","_id":"@psyycker/react-translation@0.5.0-alpha2","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-HhNALHKsQQYZGhivJaC0i0hUUuhvN0JaQkojDz2MaOBk2BjZYjDIpPUJWO2/lF0lshfna7UPIeWdRX4zcM/v3w==","shasum":"a51d4fe59d21343260e64a9675e146519c1e365a","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0-alpha2.tgz","fileCount":84,"unpackedSize":101173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+XLOCRA9TVsSAnZWagAAgXYP/2kGgozLxdrSntGcirBf\n5Ws4WGRzo985xF21lr0cNqS1i/B8TVbkFh7lA2EmrhPlphqsFg3Cdx3If4HX\nJnTIpR1l4Pv7jnJV9pgFdoBFN2orPofYD2EU7y3ctVCXe5sqyiiZkNSpNvP7\nkP07p/1uLGbE4u/NbzRBCPw+IJSccpZrllYxq2q75nIZFId2bGWopLRFQNfU\nOnXf/9RvJazxtKGIwActnjbu6DrLwaKA5nbrxL78XfIJldmunvd0lidCKwVh\n5YAUkDXXQoxD/DFkNUXLslXxab+8rPHRO8nNUk7plzdQdTtQQxjj9eTU+k1u\nl0osz7V0tdqQch2PBxU6pVtvmM4HNqv5u1lVTfW7LO2XqLiX+SlcUnt5SyFm\nzDt//ONMKNvIznkUEWe3PaIHfO9anIp3kB0FqWFiedG3xgb3TakZKgVnsxtl\nQOwfh0lOp5v+TzelJJvJQFbykblJbKfkcjedB+aOZY/fmuEXOohw9l/WTNRZ\nrkGHFlimscKF6mMZc5q64m8+cLiwysmxXp9vtf4fZcdO7tLP8ZbFOd9XnyeB\n8fNffWQ7YNfY17GzPWINyAk0pGzoqqAiJqxYbBVygsuYgUviK7w2FPP5lSv2\nxMci2pHyPiK2L4lfQVXPuNNV3iMZi2t0feOxTHzVzDHc/4rR+rRsgJTkhM3r\nL/Ze\r\n=vwXd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDXDdBIuKMLkjT8Vib2t3kuImlanr6F/sOIg6hw22LH0AiBNH4CLsPfj3cWeIjd4UY5FU1zj5GEV++MCyrVh6OdntQ=="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0-alpha2_1643737805900_0.8672322032272772"},"_hasShrinkwrap":false},"0.5.0-alpha3":{"name":"@psyycker/react-translation","version":"0.5.0-alpha3","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","ts-jest":"^26.5.4","typescript":"^4.2.4","rimraf":"^3.0.2"},"peerDependencies":{"react":"17.0.1"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\r\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\r\n# React Translation\r\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\r\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\r\n\r\n## Disclaimers\r\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\r\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\r\ntranslations are being declared.\r\n<br/>\r\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\r\nand are planned for later\r\n<br/>\r\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\r\n\r\n## Documentation\r\n\r\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\r\n\r\n## Installation\r\n```\r\nnpm install --save @psyycker/react-translation\r\n```\r\n\r\n## Usage\r\n\r\n### Initialise the library\r\n\r\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\r\nImport directly the library to initialise the events:\r\n```js\r\nimport \"@psyycker/react-translation\"\r\n```\r\n\r\n### Set default config\r\n\r\nBy default, no locale is set, you can define it by calling the function\r\n\r\n```js\r\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\r\n// Always call first before initialising the config\r\nimport \"@psyycker/react-translation\"\r\n\r\n// Do not call inside a component\r\nsetTranslationConfig({\r\n  defaultLocale: \"en-US\"\r\n})\r\n\r\n```\r\n\r\n### Translation Files\r\nFirst, you'll need to define your translation files. <br/>\r\nBoth JSON and JS objects are supported <br/>\r\nYou can nest properties to make it more readable\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"My Value\"\r\n  }\r\n}\r\n```\r\n\r\n### Register your translation files\r\nLet's say you have 2 files. One for English (US) and one for French <br/>\r\n\r\n```\r\ntranslations\r\n    |-- french.json\r\n    |-- english-us.json\r\n```\r\n\r\n```js\r\nimport { registerTranslations } from \"@psyycker/react-translation\";\r\nimport french from \"./translations/french.json\";\r\nimport englishUS from \"./translations/english-us.json\";\r\n\r\nregisterTranslations({\r\n  \"en-US\": englishUS,\r\n  \"fr-FR\": french\r\n})\r\n```\r\nYou can split your translation files and register them at different places. They will be merged\r\n\r\n### Translate\r\n\r\n#### With React\r\n\r\n##### Using Hooks\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <div>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</div>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <div>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </div>\r\n  )\r\n}\r\n```\r\n\r\n#### With React Native\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <Text>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</Text>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\nimport { StyleSheet } from \"react-native\"\r\n\r\nconst styles = StyleSheet.create({\r\n  textStyle: {\r\n    ...\r\n  }\r\n})\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <View>\r\n          <Translation \r\n            // If you want to apply a react native style on Text Component\r\n            style={styles.textStyle}\r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </View>\r\n  )\r\n}\r\n```\r\n\r\n##### API of Translation Component\r\n\r\n| Property       | Type   | Optional | Description                                                                  |\r\n|----------------|--------|----------|------------------------------------------------------------------------------|\r\n| translationKey | String |          | The key defined in the JSON file                                             |\r\n| defaultValue   | String |          | The default value if the key is not found                                    |\r\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\r\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\r\n\r\n#### Using parameters\r\n\r\nYou might want to inject parameters in your translations.\r\n<br/>\r\nYou can do so by using `{<yourVariableName>}` format (See below)\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"Hello {input}\"\r\n  }\r\n}\r\n```\r\n\r\nAnd then, you can inject it using the parameters property\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \r\nimport {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n            parameters={{\r\n              input: \"My custom input\"\r\n            }}\r\n         />\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\nYou can also do it by calling:\r\n\r\n```js\r\n    getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\",\r\n      parameters: { input: \"My Custom Input\" }\r\n})\r\n```\r\n\r\n### Change the locale\r\nYou can easily change the locale by doing:\r\n\r\n```js\r\nimport { changeLocale } from \"@psyycker/react-translations\";\r\n\r\n    ...\r\n\r\n    function onLocaleChange(newLocale){\r\n      changeLocale(newLocale)\r\n    }\r\n\r\n    ... // Probably some ui to change the locale!\r\n    \r\n```\r\n\r\n# ROADMAP\r\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\r\n\r\n# License\r\nMIT\r\n","readmeFilename":"README.md","gitHead":"7e3ead3884d8ea5a98f5d8d3ff7edd373e6f43c8","_id":"@psyycker/react-translation@0.5.0-alpha3","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-gffkss3VrymDNJ+69L3fQl6kCmpQw4qSHRYUKGHP8GV/Xpm5Gb38U7CdVWAwPK7bhPiu3Cdjo4BPOD5wQMYGpg==","shasum":"4a571eaeb8a68e3cf8df67766cb3b4ebb583b714","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0-alpha3.tgz","fileCount":66,"unpackedSize":78538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+XQvCRA9TVsSAnZWagAATpIP/0jKWIbUTI2nKKLsKg0j\nS0qdVnvujaUSDVSaOMukHYp+LAF2zoOn4bjXmAuqBQz1SMIkyGQSH2Zo8Svx\nXm9o3t6TIiHqWxuRN8rhnHVcoRfSS70JEADmcNDjQN8Fw927/FFhFiOdV9m5\njlXIZV+ocvwNiGub3fks4Bg4tpimMbGs4kzt13iegujeMDgVcC9bCYYqvYJ4\n/xYQePMrPwaGKh5/bnxas1in8i6yz76XQKWP0ffZmffu/k5j6fy7HMUyun4B\nhQD15EsZKOQtrRGUZ0hsCNXMq/pBfUmANhTACBkQfKvaE9oSGBkweSpbOC41\nsUjRt0ldgkB1xeSyBqgpLyitUPZ5yXVcRBsdX/pB4qLiOlSmTtrFn194wOW5\nuvfNKG6Ic7jNgn++HIsvU7JnpMg3p5h5jIfGrT1twZhnO9cOHY3P7Yz9JAar\nYFc6/y09uogrWj/8EEcr9mrFvHvyQ5yFv7ZTPK8HntIJ8b/a4f+A/dYsPzd7\n4AWuSwUJ7j77LJLcyqBCGn948LD/ELSuV1xfjvcNdVeNnvzosIWgXeecpwVH\nGpCWCYA4YnSJ5ILQBoYGJ7XOvZCGUFzjBO7sn24IDVcWITRdioh4p4rzsDWS\nOYwdisB/PYaLr6kovjPggUf5O+22sMPjQLw06UcJvUV4+7PpKS2dDBpq16GX\n94cQ\r\n=juUy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpf4GY6sVfIj/e8ALjgUJe9vSrTunR7dEig/hkFG1TsAIgHCBDSYsE4saN086yA07/MKe25+PCiE3Q+UHObHCI8UU="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0-alpha3_1643738159580_0.554854371800187"},"_hasShrinkwrap":false},"0.5.0-alpha4":{"name":"@psyycker/react-translation","version":"0.5.0-alpha4","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","ts-jest":"^26.5.4","typescript":"^4.2.4","rimraf":"^3.0.2"},"peerDependencies":{"react":"^17.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\r\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\r\n# React Translation\r\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\r\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\r\n\r\n## Disclaimers\r\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\r\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\r\ntranslations are being declared.\r\n<br/>\r\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\r\nand are planned for later\r\n<br/>\r\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\r\n\r\n## Documentation\r\n\r\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\r\n\r\n## Installation\r\n```\r\nnpm install --save @psyycker/react-translation\r\n```\r\n\r\n## Usage\r\n\r\n### Initialise the library\r\n\r\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\r\nImport directly the library to initialise the events:\r\n```js\r\nimport \"@psyycker/react-translation\"\r\n```\r\n\r\n### Set default config\r\n\r\nBy default, no locale is set, you can define it by calling the function\r\n\r\n```js\r\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\r\n// Always call first before initialising the config\r\nimport \"@psyycker/react-translation\"\r\n\r\n// Do not call inside a component\r\nsetTranslationConfig({\r\n  defaultLocale: \"en-US\"\r\n})\r\n\r\n```\r\n\r\n### Translation Files\r\nFirst, you'll need to define your translation files. <br/>\r\nBoth JSON and JS objects are supported <br/>\r\nYou can nest properties to make it more readable\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"My Value\"\r\n  }\r\n}\r\n```\r\n\r\n### Register your translation files\r\nLet's say you have 2 files. One for English (US) and one for French <br/>\r\n\r\n```\r\ntranslations\r\n    |-- french.json\r\n    |-- english-us.json\r\n```\r\n\r\n```js\r\nimport { registerTranslations } from \"@psyycker/react-translation\";\r\nimport french from \"./translations/french.json\";\r\nimport englishUS from \"./translations/english-us.json\";\r\n\r\nregisterTranslations({\r\n  \"en-US\": englishUS,\r\n  \"fr-FR\": french\r\n})\r\n```\r\nYou can split your translation files and register them at different places. They will be merged\r\n\r\n### Translate\r\n\r\n#### With React\r\n\r\n##### Using Hooks\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <div>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</div>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <div>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </div>\r\n  )\r\n}\r\n```\r\n\r\n#### With React Native\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <Text>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</Text>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\nimport { StyleSheet } from \"react-native\"\r\n\r\nconst styles = StyleSheet.create({\r\n  textStyle: {\r\n    ...\r\n  }\r\n})\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <View>\r\n          <Translation \r\n            // If you want to apply a react native style on Text Component\r\n            style={styles.textStyle}\r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </View>\r\n  )\r\n}\r\n```\r\n\r\n##### API of Translation Component\r\n\r\n| Property       | Type   | Optional | Description                                                                  |\r\n|----------------|--------|----------|------------------------------------------------------------------------------|\r\n| translationKey | String |          | The key defined in the JSON file                                             |\r\n| defaultValue   | String |          | The default value if the key is not found                                    |\r\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\r\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\r\n\r\n#### Using parameters\r\n\r\nYou might want to inject parameters in your translations.\r\n<br/>\r\nYou can do so by using `{<yourVariableName>}` format (See below)\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"Hello {input}\"\r\n  }\r\n}\r\n```\r\n\r\nAnd then, you can inject it using the parameters property\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \r\nimport {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n            parameters={{\r\n              input: \"My custom input\"\r\n            }}\r\n         />\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\nYou can also do it by calling:\r\n\r\n```js\r\n    getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\",\r\n      parameters: { input: \"My Custom Input\" }\r\n})\r\n```\r\n\r\n### Change the locale\r\nYou can easily change the locale by doing:\r\n\r\n```js\r\nimport { changeLocale } from \"@psyycker/react-translations\";\r\n\r\n    ...\r\n\r\n    function onLocaleChange(newLocale){\r\n      changeLocale(newLocale)\r\n    }\r\n\r\n    ... // Probably some ui to change the locale!\r\n    \r\n```\r\n\r\n# ROADMAP\r\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\r\n\r\n# License\r\nMIT\r\n","readmeFilename":"README.md","gitHead":"7e3ead3884d8ea5a98f5d8d3ff7edd373e6f43c8","_id":"@psyycker/react-translation@0.5.0-alpha4","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-YqyN86XrN+erCRah1fNkYw/JNwASZ7bVjddrc4G5SgP0XJURwYQmIlJj6RnyvyNycYjpMizurx1NLNte3BJY1A==","shasum":"8f68d6b4d2e1fa66b86e874dabbdaf3c1c797aee","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0-alpha4.tgz","fileCount":66,"unpackedSize":77059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+Z23CRA9TVsSAnZWagAAOS4P/07EIRKO9XJGrPUytemF\nR7gjgklKY2GGlPf1WJppiF2dIoAb3kJEb/kT2FlWDorCwWyTAec+SaDCEC2Z\nEGF33pXG3+vnewcgMtWfrJqcRj/kFsy3RlmE2Yc+BJOE/6Ou7I4CEx86Sos4\nI2obqu18ajr3+nu+Ip1Z88OXlYbQaFdB0BJkX9dHHPuK2XpPwXR+ZURBPs7Q\nnuSGGyHlI/ItnHVZ/FCo+rAseCzHyBsS/tJmGZG8Y8g8ZEZo9Xp8GjdDgTu/\nkP+CEqsGFcWKD0N2ycIL07tE0dzYZCrWdqL2Dj9WTOnY4vSratZG15FMq5yS\ncsz8d+na2ynzlG6gt6TtxbI5hvnLR2tuHLz26dmB3PUxExaxsO45B1FgQzNA\nvT8WDo2mndhbMfoseJ9L9kYe3OQ8cQuC5IvKIGpi7mMlM/VIB2b8OHo+379K\nhFgfGf63d8lKphi1Ytw+pJx/w1y1XARyWFsqR23NT3tIBq/rXBE89hFnU1iT\nBqpEQv+QDOGp/9brM6Cnh0YmNtpE5cUv6wkqTWB0bk/L/6pADA215Fn3ui96\n3DFQHVZcCC4jcKPfzIVzHC+SkwsXZAawydHFWyTNbvROXpxHaE4zqSlv4pqC\nbE1AaV70Q5aIrb5ARvbBSvdWr7YK2h62uAEja8Oe/QCmxk8rk2D27qd4tyxA\nIWH9\r\n=Nuhb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg65JU8nRZcEenrcpf2Qn/EfDq84x29xiOzD36e6QpdAIgcJO4oWoKU2aswb49NlKEu4QHg9lCONd3qpn/NAJZnI0="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0-alpha4_1643748791053_0.8204495724831353"},"_hasShrinkwrap":false},"0.5.0-alpha5":{"name":"@psyycker/react-translation","version":"0.5.0-alpha5","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run build","publish:alpha":"npm publish --tag alpha"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","ts-jest":"^26.5.4","typescript":"^4.2.4","rimraf":"^3.0.2"},"peerDependencies":{"react":"^17.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\r\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\r\n# React Translation\r\nReact Translation is an easy to use Translation Library for React and React Native! <br/>\r\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\r\n\r\n## Disclaimers\r\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\r\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\r\ntranslations are being declared.\r\n<br/>\r\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\r\nand are planned for later\r\n<br/>\r\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\r\n\r\n## Documentation\r\n\r\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\r\n\r\n## Installation\r\n```\r\nnpm install --save @psyycker/react-translation\r\n```\r\n\r\n## Usage\r\n\r\n### Initialise the library\r\n\r\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\r\nImport directly the library to initialise the events:\r\n```js\r\nimport \"@psyycker/react-translation\"\r\n```\r\n\r\n### Set default config\r\n\r\nBy default, no locale is set, you can define it by calling the function\r\n\r\n```js\r\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\r\n// Always call first before initialising the config\r\nimport \"@psyycker/react-translation\"\r\n\r\n// Do not call inside a component\r\nsetTranslationConfig({\r\n  defaultLocale: \"en-US\"\r\n})\r\n\r\n```\r\n\r\n### Translation Files\r\nFirst, you'll need to define your translation files. <br/>\r\nBoth JSON and JS objects are supported <br/>\r\nYou can nest properties to make it more readable\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"My Value\"\r\n  }\r\n}\r\n```\r\n\r\n### Register your translation files\r\nLet's say you have 2 files. One for English (US) and one for French <br/>\r\n\r\n```\r\ntranslations\r\n    |-- french.json\r\n    |-- english-us.json\r\n```\r\n\r\n```js\r\nimport { registerTranslations } from \"@psyycker/react-translation\";\r\nimport french from \"./translations/french.json\";\r\nimport englishUS from \"./translations/english-us.json\";\r\n\r\nregisterTranslations({\r\n  \"en-US\": englishUS,\r\n  \"fr-FR\": french\r\n})\r\n```\r\nYou can split your translation files and register them at different places. They will be merged\r\n\r\n### Translate\r\n\r\n#### With React\r\n\r\n##### Using Hooks\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <div>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</div>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <div>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </div>\r\n  )\r\n}\r\n```\r\n\r\n#### With React Native\r\n\r\n```jsx\r\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  const { getTranslation } = useTranslation();\r\n\r\n  return (\r\n    <Text>{getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\"\r\n    })}</Text>\r\n  )\r\n}\r\n```\r\n\r\n##### Using Component\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\r\nimport { StyleSheet } from \"react-native\"\r\n\r\nconst styles = StyleSheet.create({\r\n  textStyle: {\r\n    ...\r\n  }\r\n})\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <View>\r\n          <Translation \r\n            // If you want to apply a react native style on Text Component\r\n            style={styles.textStyle}\r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n         />\r\n    </View>\r\n  )\r\n}\r\n```\r\n\r\n##### API of Translation Component\r\n\r\n| Property       | Type   | Optional | Description                                                                  |\r\n|----------------|--------|----------|------------------------------------------------------------------------------|\r\n| translationKey | String |          | The key defined in the JSON file                                             |\r\n| defaultValue   | String |          | The default value if the key is not found                                    |\r\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\r\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\r\n\r\n#### Using parameters\r\n\r\nYou might want to inject parameters in your translations.\r\n<br/>\r\nYou can do so by using `{<yourVariableName>}` format (See below)\r\n```json\r\n{\r\n  \"component\": {\r\n    \"title\": \"Hello {input}\"\r\n  }\r\n}\r\n```\r\n\r\nAnd then, you can inject it using the parameters property\r\n\r\n```jsx\r\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \r\nimport {useEffect} from \"react\";\r\n\r\nfunction MyComponent() {\r\n\r\n  return (\r\n    <>\r\n          <Translation \r\n            translationKey=\"component.title\" \r\n            defaultValue=\"My default value\"\r\n            parameters={{\r\n              input: \"My custom input\"\r\n            }}\r\n         />\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\nYou can also do it by calling:\r\n\r\n```js\r\n    getTranslation({\r\n      translationKey: \"component.title\",\r\n      defaultValue: \"My Default Value\",\r\n      parameters: { input: \"My Custom Input\" }\r\n})\r\n```\r\n\r\n### Change the locale\r\nYou can easily change the locale by doing:\r\n\r\n```js\r\nimport { changeLocale } from \"@psyycker/react-translations\";\r\n\r\n    ...\r\n\r\n    function onLocaleChange(newLocale){\r\n      changeLocale(newLocale)\r\n    }\r\n\r\n    ... // Probably some ui to change the locale!\r\n    \r\n```\r\n\r\n# ROADMAP\r\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\r\n\r\n# License\r\nMIT\r\n","readmeFilename":"README.md","gitHead":"7e3ead3884d8ea5a98f5d8d3ff7edd373e6f43c8","_id":"@psyycker/react-translation@0.5.0-alpha5","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-hvYqnuY1eA/HozaVnzGucTY0p3x91ikqnkDlNIwI354xbpcrO6H/S62Fo8qDRI6n66un+CivZpK6C7cRzit7FQ==","shasum":"db6dbfec5b4acb65de96890013ec57cc87c71228","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0-alpha5.tgz","fileCount":60,"unpackedSize":75018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+aF6CRA9TVsSAnZWagAAO18P/3Os7J30FzwHP3DF17or\n3IiU1RZUM6l8eS7TAF3g+9OTqTvGs2ncvv++sN6XOoiVkYOjFqSDupLkknQm\nh4QAPpbymvnhfYEqIDIhIKe5J0CJDf3samwwCfStdSs9fZQWJkf00HpImhyV\nE4KA2lGGLOc98g78w8vIn9O0WzExOLAocpKs7AvepNmIJ0jALMhbMuVdTCjV\nVEQoyIy2a0L88zNxIKRJEtGYRt1zVD5UN1rnwvMaXR1bXPw3WZ1oS6MoHkZN\nkLiZu8HsOPvRAM5Yv+Rgst3woDD96VU9Vw84dv/+Q9egoSSTueuqMzjii6CG\ndp0zTkVehUpD1Wk7QOZFwLez93Uqgbq8kV36ecGUxc+P3D9j9Hse7BM5btp6\nmOaZp6ZAaLwHUYhje0i9mnuq22TBVwLFctFrf458tQ9O5rS7Y/b2K8hLxf2x\ntGthEgNi4Ts+a/niReznArCNTdN9OvliHorIqKEMGDCJVg/9iK2gyIM4Od+i\nwCYKCNYFRFD2LAphquwBOM+2pReBWju+FGbdvAPXI2hKHvKab2v1gqN6Ke2+\nOKiiVbk/dbemn7oQTYCVBiuTZJm4SyiD0aG1OBeY0RHu3TezV0q/eejZEpIk\nG4s1fA/+E2PDyiwJIzOEChAkphpIq/Wc1oPza+gSCWs3aUmJlIF5rBZTwLQM\nLkey\r\n=9Zq4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqcZFrk2RuNeYBKboHJUyAwkSzAL+ctYpkhxq6wd4aUQIhAL0CZGmAc2lkbQ3sV7JtuO4qjlhQMkVaku7QAetBgGjy"}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0-alpha5_1643749754760_0.9361830402728348"},"_hasShrinkwrap":false},"0.5.0":{"name":"@psyycker/react-translation","version":"0.5.0","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm test && npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.13.15","@babel/preset-typescript":"^7.13.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.1.1","@testing-library/react-native":"^7.2.0","@types/jest":"^26.0.22","@types/lodash":"^4.14.168","@types/react":"^16.9.56","@types/react-native":"^0.64.2","@typescript-eslint/eslint-plugin":"^5.10.2","@typescript-eslint/parser":"^5.10.2","eslint":"^8.8.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.25.4","eslint-plugin-jsx-a11y":"^6.5.1","eslint-plugin-react":"^7.28.0","eslint-plugin-react-hooks":"^4.3.0","jest":"^26.6.3","react":"17.0.1","react-dom":"17.0.1","react-test-renderer":"17.0.1","rimraf":"^3.0.2","ts-jest":"^26.5.4","typescript":"^4.2.4"},"peerDependencies":{"react":"^17.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build\\index.d.ts","gitHead":"d40364fdb802608b258e31f4fa8ec2873be1b819","_id":"@psyycker/react-translation@0.5.0","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-dqUspe5tTz3XHb1UjqTXSXfppDRKCf4MnmOq5/x9sEFT61vkGMogJt6hYLBdvjDKkkUmm8NkAlcILmxuZ2OGHQ==","shasum":"ec775761cfc716c342e5cbd4fe216eb67c80a6c7","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.0.tgz","fileCount":39,"unpackedSize":55140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+bdGCRA9TVsSAnZWagAAJTAP/1vw1mmz8dmIdjZSMSC4\n3QjiBOfBZ+gP9uH9o+jh/LV3gg1F52tKMlW5BOWtlYcWKfmiuhGfVbfylcrt\nwZwRr1kJtQfW4FBewGOlNCt4CgiikA5nSbzRpwuFQJDRgX5U0tfVrWe+D4ay\nJI0PoX6MnJt/9fm7Fz7d3ftxJPsCWC2KuuToaDtkofL3+DiRGliyNkftvSHd\nU9GVykXCtrTD2V4lDXb+S5GuGV3uNHcdkN3x1bEkOOSDVpdWeTyEzkz3p6gD\nuGRGqtY85D4q0GcGDE6cwwgq/9AgtovYT456b0ZB9zazpWo/dzOzlj5XOgBa\nwnBUhmwGSY+oCeS60ISSb4PFeL4NxZvWlpd6lnVaW3MtXAUGMH3jOzN3K+Yt\nxLx9lLaooZWIEKZ4sacDMmo8+oIhzqj5T9zFcEB94+ljc1HGZ1qO41+Qqfpm\n+sZbufG/DvSa9ZHl8/Z1A/ZetMuZOpvcMrgyAjMBlrOOiU4qVquoCoUdZ55t\nICOKg3H61NJn7igFI+/MCT0eR07YwmJwpSlxw3VwgvXPiwYGc6ISHgqTIGOA\nblbjRp8z6YXzMNHNU/fAWL9CV7cU9ZzUwhA5y/Uz6Iw8t8lUNZsccU/opSO5\nBI9MD7jXQ36u2Kjz0b/IlfWQ4uFdDNCKrSML8gvlRRxqNGGpRImUXIg9IlFs\nmDIM\r\n=ynQo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4/y0mX270cSfyNOm57JoeHZaLLCJXz/Rzhr02v/jrOAiBlDU99ReOW1JQXrbUS7Fwc02aCk7K6/+P+oFB/CVv+Hg=="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.0_1643755334402_0.9101775481683991"},"_hasShrinkwrap":false},"0.5.1":{"name":"@psyycker/react-translation","version":"0.5.1","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"^8.23.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","gitHead":"5658f5061a7a4148804df01627db9f87192f78ef","_id":"@psyycker/react-translation@0.5.1","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-u6NwW4zYu0XL9F2mIA73ChJN5nLTYkBqcBkHPr1imMcqnl4irT7J7FtBG0PbGKYXT6THjVKlmlsmSEfwndHXYQ==","shasum":"b256f7c84e02db1872c073903cffcc006f58c41a","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.5.1.tgz","fileCount":39,"unpackedSize":55517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEPI8LMJ53/N/dO3Hz1voi4hjbTzGjkwg/OqIUUiwA9gIgYPMMho8tjLoHw0M+qCs+0Gn9Cp/o/uXpK332zT4zJr8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjG13sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqbdw/+If/Gd+a2U6M5t63Pqzk0UQ8Z43l7nyMnnezmrYITxKx5Blo4\r\nt0g21NWbd6xLFQqo7RUCy/ENVfsEdin+wV/h+tmkwP28haJGsN1BTG44GKiP\r\nkPMwVZ+zliDimcdCA7zFonau34+S9Y8CEnGKxi11SOGuKElLwXeegyZLCu9Q\r\nzhD9h1YW2oXoKTyg3+5JRgFGH83PeV5+AMXixhwOdEjwwCnLjXleVqKHnKJp\r\nd+21WKOGk34tcXLMI1Bcq+9nmT4hYFwBSKtQFMV2+maoEtwnRGa6Li3yS7lu\r\nDe/SdJLLdBn9KunVwCq+Lr0RIStYGCrbzqE6EOwwvZSnJp+HUaR7quGOa4zf\r\niiXH/F5FPCGMmjtg6YdXkMgvSa0m7sXDj028+NrYlYI89SbD4LiwDXFshLLQ\r\nGpktDTO82QwkTc63Dlmk9xnrONNbjoHo5PcbChMQg3pLKWG98a5SginSzJBk\r\nInRknICoEGJAClxp68VmilQ8Qtefqct7Y9i0K6NhbhMCOSfJ6sjTXN0Y/Thm\r\nOxSswX7L0HAycuC926Ps+X51KKX9KmRrJ+KIUjInJ4TYPCViIACLstoxsCdH\r\nvsd36ot7eKpHX30CBu8zdXxxvRBxeYGYdrKgi3Bwkf9N7VoS7NPSDw/O7QaZ\r\nM95tWz41Siqf8d9WCBMVhdQXEgqCc/1xOd8=\r\n=O1Qf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.5.1_1662737899876_0.6285831015688654"},"_hasShrinkwrap":false},"0.6.0-alpha1":{"name":"@psyycker/react-translation","version":"0.6.0-alpha1","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"8.22.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy-to-use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## /!\\ Version 0.4 to 0.5 breaking change\nAs using the same component for React and React Native was too complex and hard to maintain, <br/>\ndecision have been taken to replace this generic component by 2 distinct components <br/>\nFor React, nothing changed, but for react native, here is the new method:\n```jsx\nimport TranslatedText from \"@psyycker/react-translation/build/react-native/translated-text\";\n\n...\n\nexport default function () {\n  return <View>\n    <TranslatedText translationKey=\"key\" defaultValue=\"toto\"/>\n  </View>\n}\n```\n\n## Disclaimers\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# ROADMAP\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"ccf5dab9d77da3abe1166ea9896d124667b23efc","_id":"@psyycker/react-translation@0.6.0-alpha1","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-cRhSuH0JhJ2teV/XMqJCGhqjiASy8lkS3jwsrGE1+ZeZ1PrF1bpMJXQaCEgNJnylzLc7SBKfH7qYYBivW0EOKQ==","shasum":"5e3d182d747f200271394fcc520d9e70032d3e9d","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.6.0-alpha1.tgz","fileCount":45,"unpackedSize":54181,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFshmGfSpaGQiHJbne2xVt0QOdW/QA7BbmNMMBsWV35MAiAGhp9v+r9tymZvU7vcGjxYoWzDrbz30K9LkReeRW/nvw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHK67ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqemw/8CmuurCgiGuqNQhIDNVzev72xvg/PFMvc5aRVAKri5v6NEYZZ\r\nQfI8QZquzfU2tLjs8hFLX3djnJ2hNl34BxF42q4MRTnGFiUDabyBm2zTYXmc\r\nnnIh9oNX4+Xso6Z0FMK/Pkw8Jin7oK8s7Bg2Dc4IWIkcVS/8BpZbfevzUjIf\r\nGQ634GfAI5QuOskvtasw43PstxBQVsrd+PTEhBKinbBYVJOiySHNFGtYmVkh\r\nzTeoBTCswuLCMAREOcack0BlpjHA3J3XEB+1r4qLGrd1CLqOOyPalEhuZVap\r\njHJh42uZLTEU+bvoIVfrhpEyK6HuSzxe3TbXc8HwmsDcQMuQqKD0Nrx0F+MZ\r\nQWj2Spx6fvWEnm7AJT7gjqrGWkAVSclUkYYGcZ4rIy0KxkpTKn6OKTnk3qhg\r\n4SFVmpjIz0XohIADSp6kx1f/G8+bhGXnZzcCwXUIG1COCnAvePQDGElzM6hP\r\nL2JPj355HqjKJqAX9xVBsbuOSokjPE1OQVNUPZmP2KdP4/Rqiol+IKtd2WkO\r\nOZst1X8Bogh3UtXkwHe3D5NMsBQf7u8UUCd1VrQxWDwX091VQmPQALQxI0IB\r\ng5GJgQ/DQlz/eqrFYrLq/pOu3iSzZMX7i/m42KdthprTKzA5mZ8v5G0tnnF4\r\n4eHZgLim3qezRdvnS6Y+Am3MDQGMd++ZOhw=\r\n=TvjN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.6.0-alpha1_1662824123470_0.5101069539922034"},"_hasShrinkwrap":false},"0.6.0-alpha2":{"name":"@psyycker/react-translation","version":"0.6.0-alpha2","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"8.22.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy-to-use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## /!\\ Version 0.4 to 0.5 breaking change\nAs using the same component for React and React Native was too complex and hard to maintain, <br/>\ndecision have been taken to replace this generic component by 2 distinct components <br/>\nFor React, nothing changed, but for react native, here is the new method:\n```jsx\nimport TranslatedText from \"@psyycker/react-translation/build/react-native/translated-text\";\n\n...\n\nexport default function () {\n  return <View>\n    <TranslatedText translationKey=\"key\" defaultValue=\"toto\"/>\n  </View>\n}\n```\n\n## Disclaimers\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# ROADMAP\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"ccf5dab9d77da3abe1166ea9896d124667b23efc","_id":"@psyycker/react-translation@0.6.0-alpha2","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-chwamVV0rTNEUlku9wQZJL/MACKIBwxy3R12rMpZ/xXjvzUSLWHBE+5ifFzmq334kriSfBghUU1AdB1un9m3Yw==","shasum":"6b30b01db94a1572f710f76554c6936a579e266f","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.6.0-alpha2.tgz","fileCount":47,"unpackedSize":54557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDK0bguoHH3Ojlj377lLZHYZuEiV1qbS8wJFfihsXOTiAiEAgYFmIB8yXcoIAAU9A5hSk3MmNwQtthUlLecECkqgEqg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHMMGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqL2Q/+PTacWRwc7LIYeyo46U3IjP7EdmPFzQNhvNiRbHPgfx7xFetg\r\ncQorPIO9k9bX/SWYhTXnprtWZrNEZUHRvE+/fhS8OA2wtovwWMEBdUdtuw+r\r\n8T/loNrgCpSU3fS/gYsC+nJBBC+kkifo+KvDYbNJmqjli51LlhafIX2SWLv/\r\nROPL+Rxu+zRWB3UvoZoPtdgit5goxjnvEdFqAPrnZXrUmji4hf5aZfiQbzzX\r\ntg3YlYLDVfwgQgjK7z+tuPN1m4OnNT2zOKifNArJ0SCGuSSMZetUbVjlUotN\r\ntSZuRcpVJ9l8VvROzp8qN3JkY6KwdLBLnvBokHEflw8Stui8SDpuW34oxc33\r\n9Et/MYE3R+vvTnZTBDs0kxgn9GuMGTPlxVBlBrvXx/YjSaxv6SdQ39wYzWLY\r\n71Jh208ftUkwQLtxI+7GjHZPDbxBrBmKfgkxzaxK+VyAFtOD5X0K8pFz6xdO\r\nuUcUbwanyemdKpFCv2Ptovyk6YgSlD4GuWj4XRYT6Hxy0oOxwiWy+7LyIkmA\r\nP5z58RusV6SXQiIJ6J6jVfxVkCbBeZtfETluq9kMgNHHj+f1v8z+s/j5BcsN\r\nYhG6BKQZnZrOm2/9CNJjrGU4W3a4bLxlyH0daJAZchuHayDlC21uy6AcBNLf\r\ntgp3mDsPvOLsY3I8U9WBMzHrYRwpwad0eRY=\r\n=fXbA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.6.0-alpha2_1662829318594_0.8399117066515083"},"_hasShrinkwrap":false},"0.6.0-alpha3":{"name":"@psyycker/react-translation","version":"0.6.0-alpha3","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"8.22.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy-to-use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## /!\\ Version 0.4 to 0.5 breaking change\nAs using the same component for React and React Native was too complex and hard to maintain, <br/>\ndecision have been taken to replace this generic component by 2 distinct components <br/>\nFor React, nothing changed, but for react native, here is the new method:\n```jsx\nimport TranslatedText from \"@psyycker/react-translation/build/react-native/translated-text\";\n\n...\n\nexport default function () {\n  return <View>\n    <TranslatedText translationKey=\"key\" defaultValue=\"toto\"/>\n  </View>\n}\n```\n\n## Disclaimers\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# ROADMAP\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"ccf5dab9d77da3abe1166ea9896d124667b23efc","_id":"@psyycker/react-translation@0.6.0-alpha3","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-h//g5TucQ62c4awFxk3t0B/hCeHn+9citsheUpdloNHgaoPMC4Tqf/pfCsb7IS6e5FBj0r5IBDnryDLG/Amj9Q==","shasum":"c5c732bfe5a5624c5741bc57aa6ad20459d504e2","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.6.0-alpha3.tgz","fileCount":47,"unpackedSize":54808,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAmSD3LKwwDhTocThoi97ggFfQUaArO+YoN1FGvceeNZAiBTz6mfjMTqJoHYCNJ7qL+0QMHKnwnhmgzzcApMfSWUXA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHMPLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrILA/+Nhy1KeZsfJ7Ym0y7MDeev+ljZQVmdVFBdELBin8EMzD0GqJA\r\nq3X1Y3MhSJ4DnVGmoXgL9Lbra0HIVOWH2KGSgOvfJ1u1S9KW213Eya1K0hk+\r\nxCGPr4/EQAAm2tqUjyKjvBnuAbQ/WJw+Sgcrds7ld9flTKV5DeqC0SxcEq1C\r\n5uacW7raGRqiUU0XlYsS+KMB/7WdLHprU7jg76kj8imf1Q/Gjt0B666sgJyL\r\nqvjOkqWqYq8bpNhSDG1UkCeOCcItxU6UQNQnZkn2orLUpn7838GQhQ/VQBgB\r\n4WeeFB13BZe1YOe1ev14xqTtfabG+huM+GsycX5UJ36qbrUnTsIm7CVYzZKN\r\n6hc36c5GlTxw4RbG4OKwimVbR/GwsDsNM09DxmwaAeVA7hG8ZRaOioCjFMfw\r\nXq2ckqTmPY9Sz0ls/wKG7o6SSozySXrGbSEapLZ/EigaKT87pvFvU60trbll\r\nP3Y2zIojHUfdQiGvE3ebeIAqC1Sb9iDtUhE1sYg5PveJUKDSBKbclg7yooxm\r\nmdI18aIGZBFeFpF0wsmdXnYK4y+1qgCYLKrgmrt4EdRVXlJ+Z5+beS5UBWOg\r\nEnuUabDAWf6FstjI5owOPaH71vxMg03QUeifnLtptAJk1uYAiFlsJHriwsZm\r\nOVYU3xVsbHPBErAlbSAdYKhTboFbpXoswuY=\r\n=NolQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.6.0-alpha3_1662829515356_0.49624598436960055"},"_hasShrinkwrap":false},"0.6.0-alpha5":{"name":"@psyycker/react-translation","version":"0.6.0-alpha5","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"8.22.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy-to-use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## /!\\ Version 0.4 to 0.5 breaking change\nAs using the same component for React and React Native was too complex and hard to maintain, <br/>\ndecision have been taken to replace this generic component by 2 distinct components <br/>\nFor React, nothing changed, but for react native, here is the new method:\n```jsx\nimport TranslatedText from \"@psyycker/react-translation/build/react-native/translated-text\";\n\n...\n\nexport default function () {\n  return <View>\n    <TranslatedText translationKey=\"key\" defaultValue=\"toto\"/>\n  </View>\n}\n```\n\n## Disclaimers\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nAlso, as the library is young, some features from bigger ones (like browser language detection) are not yet available\nand are planned for later\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# ROADMAP\nSee the roadmap [here](https://github.com/psyycker/react-translation/projects/1)\n\n# License\nMIT\n","readmeFilename":"README.md","gitHead":"ccf5dab9d77da3abe1166ea9896d124667b23efc","_id":"@psyycker/react-translation@0.6.0-alpha5","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-DqssmNh0xxhp3Yh7Pb1V/Ojm0BECleueqzU2pn3xvEd2NSRkI+zkbCaVDiMNLsdvd+J9PHn6cyXmIAsZtcQ2TA==","shasum":"fe62bc766edc2def3bb49b0300b19befdd582ac7","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.6.0-alpha5.tgz","fileCount":49,"unpackedSize":56094,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEUpiKUb8il6DPbexVgVe0Ii9oZlFUPC02vSewDIMHHJAiBL0Z0V/t7pPw+UrmVsDf6RHaxQsl/IlBmx8gX3aeHHLw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHMk4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+Tw/7Bh7dpc2wE804iyjQM/VSRUmsjQcpFaMe/9xgA5TCdNR6mMev\r\n7WzBM6aAmAr1Fbo+SNQWYEDJOSP7ZbB4VgOXpP1wfssWK3o6sbIRMy7qtfhZ\r\nRgAAjx+mtQ8EHo/bee0DoEBA2jEVKJyu0WJ7NkDw8S3qBrE2MGilPT9VcdEC\r\nblljONZmWCw0L83pnRe02gK0c43io4+55IegWcdsAw6D+4pFGY8RsVuA2/a2\r\nGW6PQCDuEIkY+iFSqn3ghiMptmAuts9t3Y4yHgTjM0n5g4iIO4dGL0loMHgw\r\n/vhMAyHIRROVhf+Z9+Cdq/EwXzhM+fa3F6U4uEG5CkUVgsRpNofvHHRMd6le\r\nWouYlSQUc4Hf5uXIAmH1YiUKShKx8bL4kKNw+hR3W38VWa1gOPME+GftuRbS\r\nYMhKoMhE+SOvzwi25SC0xg0lz0puJ/z7PCQ2rh9aXrZ1uvE0N6K5clg+yCPz\r\np+pdbzift9URp04ccBmhULN0VpajyB2tnHHLrtUAOOWZi2fp1OSq6grg3Vsp\r\no2NwjnNWx6GYVK9Czi/7kPU25OMvHckloQZN6HDMnhdXSUSqQ1YMdYRkL+Pg\r\nsWm3JUH7VW52BqRE0JSnEFGXNsm1/s4TeT8Gd1TGYWpobzyXvzQPTcgPvfSs\r\nXsVCDM4Zx1CkmzGhsZ38Ko0rzf93GWHe6JU=\r\n=xNBN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.6.0-alpha5_1662830903859_0.8216579450837975"},"_hasShrinkwrap":false},"0.6.0":{"name":"@psyycker/react-translation","version":"0.6.0","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src"},"devDependencies":{"@babel/preset-env":"^7.19.0","@babel/preset-typescript":"^7.18.6","@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/react":"^18.0.18","@typescript-eslint/eslint-plugin":"^5.36.2","@typescript-eslint/parser":"^5.36.2","eslint":"8.22.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-plugin-jsx-a11y":"^6.6.1","eslint-plugin-react":"^7.31.8","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^3.0.2","ts-jest":"^29.0.0","typescript":"^4.8.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","gitHead":"23ddda5853fc9a96073bca3cab2942ebcff5622b","_id":"@psyycker/react-translation@0.6.0","_nodeVersion":"16.17.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-seHNhFb9fEBZeylSdAkUfyoel3X4s+xq73uo1ogCziv2UQfw8gzrNWRX5ijtSq9HBJ+VpouSkBFL/tibe6ZzVA==","shasum":"b8f599e3630885a39d68c1dbcfcdf4833a10d163","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.6.0.tgz","fileCount":51,"unpackedSize":55703,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHwtdB0kamFr2BE7M/qs1gfPANcruOw9mYACgqSneCYzAiBBk+tWCn6exJQgFaB1GoVzP3iTA6PGRPt4W9h/57KCsQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHN9DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoflg/9Ez/jbJXJicmNJgUncVC1N9rMPDik1KpTglYyKba2j3qw/kT3\r\nGNTT9h17Fz+UmW+lgPyRBu1TWGHfC7+uTJj90rcUX+lVGKGCc5IZarXBK1re\r\nrot2LV2m5G6uRNa84Dd5M6EBBiR6lKqxyGWwk5MPcCU+jeP9nyzKaamv0Jx+\r\nb+pkLRkHoRXZnLPVZ03vtTVXRMQC359wemSUysJ6Hl9RG3icyx4rO5yHYZl/\r\nm4usZJzCxeRjFeO0x4Kxsb+hfF2fKvJZhb6qC5s9IoWKxn+dE6q3vrAOMdrD\r\nrXkx88ZKDjfpvdG2BTUcWNVRwZ3N2hUWOWz9SqK4h8Su0qDjNK2TDI5U9+Jm\r\nj7156eNi0NuXCgnpJxuF4qFY6vzWCbNx7nouyANLAc3Kx+EtGWu0pD9HgO+F\r\nLG/V4TlBzzI26UZNcz7isdze5NqdLwWpugWy2oEJwhZJtD48GQLnaQlJ5a/8\r\ndYLPP61LjaHLn1fCByi/t0NK44aPyUaOj3+I13Yko8a4KdQJJo9YQ/nXBQgC\r\nuaModsz2BCak4JX1q1kzaM2OezsYMemPtmyuKvvbOufXTb/2GlfE7KyPYelJ\r\nTX8Vf6lGDEMvoiVuiYh+7QDrQtE0CWSIyPH2Bpm/H+x9oIY1xYQ4uqzEtM3z\r\nl3jaedO+VSgUPVGKOdeqLjzG6jJ7Pv4+eBU=\r\n=FATL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.6.0_1662836547143_0.9616377978138289"},"_hasShrinkwrap":false},"0.7.0":{"name":"@psyycker/react-translation","version":"0.7.0","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src","example:create":"npm create vite@latest example -- --template react-ts && rimraf example/.gitignore"},"devDependencies":{"@babel/preset-env":"^7.22.4","@babel/preset-typescript":"^7.21.5","@testing-library/react":"^14.0.0","@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/react":"^18.2.8","@typescript-eslint/eslint-plugin":"^5.59.9","@typescript-eslint/parser":"^5.59.9","eslint":"8.42.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.27.5","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-react":"^7.32.2","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^5.0.1","ts-jest":"^29.1.0","typescript":"^5.1.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0"},"author":{"name":"Remy Villulles"},"license":"MIT","dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","gitHead":"0de3107111da46a7e17e6e83aed545ef4552b002","_id":"@psyycker/react-translation@0.7.0","_nodeVersion":"19.7.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-2/ZwAyu/bHZWYCiq6aqlmPT8kKefyu5iCxroOEB2AFUkiwC5padRdafKonDH51JAEY9arqE+7PBnyBZQsP8HYg==","shasum":"311e657838541f0e523a52740d4115c29a609797","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.7.0.tgz","fileCount":63,"unpackedSize":40730,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEkYAPoButsLAVjvWrA86qjBZx6Skogg50Rpsi2x3zcdAiEAqh2Zaxd08xz5q4H7n1qIWT7LcZLodtzACr3aH2+20KM="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.7.0_1686212700413_0.13061679411331362"},"_hasShrinkwrap":false},"0.8.0":{"name":"@psyycker/react-translation","version":"0.8.0","author":{"name":"Remy Villulles"},"license":"MIT","description":"A modern translation library for React!","main":"./build/index.js","repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"},"keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","scripts":{"test":"jest","test:coverage":"jest --coverage","test:ci":"CI=true jest --coverage","build":"rimraf build && tsc","prepublishOnly":"npm run test:coverage && npm run lint && npm run build","publish:alpha":"npm publish --tag alpha","publish":"npm publish","lint:fix":"eslint --ext .ts,.tsx ./src --fix","lint":"eslint --ext .ts,.tsx ./src","example:create":"npm create vite@latest examples/react -- --template react-ts && rimraf example/.gitignore"},"devDependencies":{"@babel/preset-env":"^7.22.4","@babel/preset-typescript":"^7.21.5","@testing-library/react":"^14.0.0","@types/jest":"^29.5.2","@types/lodash":"^4.14.195","@types/react":"^18.2.8","@typescript-eslint/eslint-plugin":"^5.59.9","@typescript-eslint/parser":"^5.59.9","eslint":"8.42.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.27.5","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-react":"^7.32.2","eslint-plugin-react-hooks":"^4.6.0","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","react":"18.2.0","react-dom":"18.2.0","react-test-renderer":"18.2.0","rimraf":"^5.0.1","ts-jest":"^29.1.0","typescript":"^5.1.3"},"peerDependencies":{"react":"^16.9.0 || ^17.0.0 || ^18.0.0","react-native":">=0.61.0"},"peerDependenciesMeta":{"react-native":{"optional":true}},"dependencies":{"lodash":"^4.17.21"},"types":"./build/index.d.ts","gitHead":"c9a42c94cfa9340f2cced828cc5a3aacd13d926c","_id":"@psyycker/react-translation@0.8.0","_nodeVersion":"19.7.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-cTv6k5M8YeKcquyKYx1UiVZVr9tYq/CvubXB6nZJTBMHal3gcJiK60i41ob4GFRbeCr9GskoJPoVNDk/pYzh4w==","shasum":"4051f61f4248c206decea22dd0d4c39267025a77","tarball":"https://registry.npmjs.org/@psyycker/react-translation/-/react-translation-0.8.0.tgz","fileCount":69,"unpackedSize":41207,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFA8sRjedy6wU4vK9HZaOxBl+AV6w7q7OAU1kttvfYquAiEAuxqzjHzLZ0Z4WHZerP9kxlL5co8xrc3u9MtQR5sk/QQ="}]},"_npmUser":{"name":"psyycker","email":"remy.villulles@gmail.com"},"directories":{},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-translation_0.8.0_1686265121141_0.2932209495302289"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-25T15:40:16.674Z","0.1.0":"2020-09-25T15:40:16.874Z","modified":"2023-06-08T22:58:41.487Z","0.1.1":"2020-09-25T15:42:12.789Z","0.1.2":"2020-09-25T15:43:20.309Z","0.2.0-beta.1":"2020-09-28T21:31:47.989Z","0.2.0-beta.2":"2020-09-29T08:38:42.527Z","0.2.0-beta.3":"2020-09-29T08:57:12.733Z","0.2.0":"2020-09-29T09:12:48.130Z","0.2.1":"2020-09-29T09:37:00.441Z","0.2.2-beta.1":"2020-09-29T11:37:06.467Z","0.2.2":"2020-09-29T11:39:40.617Z","0.3.0-beta.1":"2021-04-20T19:21:45.806Z","0.3.0":"2021-04-20T19:27:52.543Z","0.3.1":"2021-04-23T10:04:01.572Z","0.3.2":"2021-04-25T20:08:36.115Z","0.4.0-alpha.1":"2021-04-25T20:41:12.731Z","0.4.0-alpha.2":"2021-04-25T20:57:25.026Z","0.4.0-alpha.3":"2021-04-25T21:02:06.008Z","0.4.0-alpha.4":"2021-04-25T21:08:43.506Z","0.4.0":"2021-04-25T21:25:04.530Z","0.5.0-alpha1":"2022-02-01T17:25:58.831Z","0.5.0-alpha2":"2022-02-01T17:50:06.100Z","0.5.0-alpha3":"2022-02-01T17:55:59.716Z","0.5.0-alpha4":"2022-02-01T20:53:11.207Z","0.5.0-alpha5":"2022-02-01T21:09:14.886Z","0.5.0":"2022-02-01T22:42:14.602Z","0.5.1":"2022-09-09T15:38:20.050Z","0.6.0-alpha1":"2022-09-10T15:35:23.740Z","0.6.0-alpha2":"2022-09-10T17:01:58.796Z","0.6.0-alpha3":"2022-09-10T17:05:15.513Z","0.6.0-alpha5":"2022-09-10T17:28:24.058Z","0.6.0":"2022-09-10T19:02:27.303Z","0.7.0":"2023-06-08T08:25:00.602Z","0.8.0":"2023-06-08T22:58:41.373Z"},"maintainers":[{"name":"psyycker","email":"remy.villulles@gmail.com"}],"description":"A modern translation library for React!","author":{"name":"Remy Villulles"},"license":"MIT","readme":"[![npm version](https://badge.fury.io/js/%40psyycker%2Freact-translation.svg)](https://badge.fury.io/js/%40psyycker%2Freact-translation)\n[![CircleCI](https://circleci.com/gh/psyycker/react-translation.svg?style=svg)](https://circleci.com/gh/psyycker/react-translation)\n# React Translation\nReact Translation is an easy-to-use Translation Library for React and React Native! <br/>\nIt is thought to be used with shared libraries and without instance conflicts. <br/>\n\n## /!\\ Version 0.7 to 0.8 breaking change\nReact and React Native components are not seamlessly integrated together. Which means that it is now possible to use\nin the same way the `Translation` component for both React and React Native.\n\n## Disclaimers\nEven if React Translation is quite stable by its simplicity, and you can easily use it on your tools,\nthis is still a work in progress project and potential breaking changes may happen especially in the way that\ntranslations are being declared.\n<br/>\nI'm very glad to get feedbacks from you as it helps to improve this library at its early stage.\n\n## Documentation\n\nYou can find the documentation [here](https://psyycker.github.io/react-translation/docs/intro)\n\n## Installation\n```\nnpm install --save @psyycker/react-translation\n```\n\n## Usage\n\n### Initialise the library\n\nIn your index file (and in case of the usage of a shared library, in any index file) <br/>\nImport directly the library to initialise the events:\n```js\nimport \"@psyycker/react-translation\"\n```\n\n### Set default config\n\nBy default, no locale is set, you can define it by calling the function\n\n```js\nimport { setTranslationConfig } from \"@psyycker/react-translation\"\n// Always call first before initialising the config\nimport \"@psyycker/react-translation\"\n\n// Do not call inside a component\nsetTranslationConfig({\n  defaultLocale: \"en-US\"\n})\n\n```\n\n### Translation Files\nFirst, you'll need to define your translation files. <br/>\nBoth JSON and JS objects are supported <br/>\nYou can nest properties to make it more readable\n```json\n{\n  \"component\": {\n    \"title\": \"My Value\"\n  }\n}\n```\n\n### Register your translation files\nLet's say you have 2 files. One for English (US) and one for French <br/>\n\n```\ntranslations\n    |-- french.json\n    |-- english-us.json\n```\n\n```js\nimport { registerTranslations } from \"@psyycker/react-translation\";\nimport french from \"./translations/french.json\";\nimport englishUS from \"./translations/english-us.json\";\n\nregisterTranslations({\n  \"en-US\": englishUS,\n  \"fr-FR\": french\n})\n```\nYou can split your translation files and register them at different places. They will be merged\n\n### Translate\n\n#### With React\n\n##### Using Hooks\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <div>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</div>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <div>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </div>\n  )\n}\n```\n\n#### With React Native\n\n```jsx\nimport { useTranslation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  const { getTranslation } = useTranslation();\n\n  return (\n    <Text>{getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\"\n    })}</Text>\n  )\n}\n```\n\n##### Using Component\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; import {useEffect} from \"react\";\nimport { StyleSheet } from \"react-native\"\n\nconst styles = StyleSheet.create({\n  textStyle: {\n    ...\n  }\n})\n\nfunction MyComponent() {\n\n  return (\n    <View>\n          <Translation \n            // If you want to apply a react native style on Text Component\n            style={styles.textStyle}\n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n         />\n    </View>\n  )\n}\n```\n\n##### API of Translation Component\n\n| Property       | Type   | Optional | Description                                                                  |\n|----------------|--------|----------|------------------------------------------------------------------------------|\n| translationKey | String |          | The key defined in the JSON file                                             |\n| defaultValue   | String |          | The default value if the key is not found                                    |\n| parameters     | Object | Yes      | An object which contains the values which replace `{}` in the string           |\n| style          | Object | Yes      | Can either be a CSS in JS style (React) or a Stylesheet style (React Native) |\n\n#### Using parameters\n\nYou might want to inject parameters in your translations.\n<br/>\nYou can do so by using `{<yourVariableName>}` format (See below)\n```json\n{\n  \"component\": {\n    \"title\": \"Hello {input}\"\n  }\n}\n```\n\nAnd then, you can inject it using the parameters property\n\n```jsx\nimport { Translation, changeLocale } from \"@psyycker/react-translation\"; \nimport {useEffect} from \"react\";\n\nfunction MyComponent() {\n\n  return (\n    <>\n          <Translation \n            translationKey=\"component.title\" \n            defaultValue=\"My default value\"\n            parameters={{\n              input: \"My custom input\"\n            }}\n         />\n    </>\n  )\n}\n```\n\nYou can also do it by calling:\n\n```js\n    getTranslation({\n      translationKey: \"component.title\",\n      defaultValue: \"My Default Value\",\n      parameters: { input: \"My Custom Input\" }\n})\n```\n\n### Change the locale\nYou can easily change the locale by doing:\n\n```js\nimport { changeLocale } from \"@psyycker/react-translations\";\n\n    ...\n\n    function onLocaleChange(newLocale){\n      changeLocale(newLocale)\n    }\n\n    ... // Probably some ui to change the locale!\n    \n```\n\n# ROADMAP\nSee the roadmap [here](https://trello.com/b/aBwAR0S5/react-translation-roadmap)\n\n# Development and examples\nSee `development.md` to see how to use the examples and participate in the repo\n\n# License\nMIT\n","readmeFilename":"README.md","homepage":"https://github.com/psyycker/react-translation/blob/master/README.md","keywords":["react","react native","react-native","translation","internationalisation","internationalization"],"repository":{"type":"git","url":"git+https://github.com/psyycker/react-translation.git"},"bugs":{"url":"https://github.com/psyycker/react-translation/issues","email":"remy.villulles@gmail.com"}}