{"_id":"@dropshot/i18n-toolkit","_rev":"18-2187086e0cad93ec2d3a1d9a89437e62","name":"@dropshot/i18n-toolkit","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@dropshot/i18n-toolkit","version":"0.1.0","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.0","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"2c57098474d994ebe357202411e058e0e3821b87","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.0.tgz","fileCount":12,"integrity":"sha512-3aBU89pFctyiqlpIwh2HQa8yqUCDOKtXdsu6qLrfq/1riiSv4aa9m0u1TkVjRU6ksZv2tRHNdfQM+ZHkKtEhHw==","signatures":[{"sig":"MEYCIQChGY+pLUHrJG6kPsjuShmHNTmpDNvcPsRGwxTPVSnmagIhAKjLAEu+vjabRARssS3WzoHWF3r/Sq3lF60lBgx0yAIh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54266},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.0.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/94106ff2b5caf2d676cf231481398d62/dropshot-i18n-toolkit-0.1.0.tgz","_integrity":"sha512-3aBU89pFctyiqlpIwh2HQa8yqUCDOKtXdsu6qLrfq/1riiSv4aa9m0u1TkVjRU6ksZv2tRHNdfQM+ZHkKtEhHw==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.0_1785979139038_0.6560123178468453","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dropshot/i18n-toolkit","version":"0.1.1","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.1","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"096f819a81540ce81bb0aa6eacf51e5501b0d706","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.1.tgz","fileCount":12,"integrity":"sha512-9TFmdRLkX5QJJX+PIRWEnJknfHRXbshSm4gTXg2tK9C+Y/e5dtnX+w+we3Q78kt2YdmHjxsdWEayzK3euTL/UA==","signatures":[{"sig":"MEQCIC6HW4XoDADPiKuaDwN0HUe8sxvUl+EQOjj/yBtxuhOwAiAxRF/a+H0ExB7cjC1qjfxI/bkBWtnviWHFSVoTf47kZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.1.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/8895091dc55383abb11906ffc9d571eb/dropshot-i18n-toolkit-0.1.1.tgz","_integrity":"sha512-9TFmdRLkX5QJJX+PIRWEnJknfHRXbshSm4gTXg2tK9C+Y/e5dtnX+w+we3Q78kt2YdmHjxsdWEayzK3euTL/UA==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.1_1786183297006_0.5530036956604165","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dropshot/i18n-toolkit","version":"0.1.2","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.2","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"8302621f63c5ccc6891d533072a14500bb0547b1","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.2.tgz","fileCount":12,"integrity":"sha512-F+6dJ7pRxyth5ZZiEFKDXpij28dg/MQn2kdArGGm0uyMeNzv24hjgGygMfpI89KmldKycvMh8x9ezX33mRc9/g==","signatures":[{"sig":"MEQCIDUzupY2JQiH+Pzx6JhArTdgVrdONE6Xzz3xbJqKIajvAiB/epY5U1oXDQPwdKT/QvnWW2XrEyaYk9/DkrP9yCd5Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.2.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/44c25f5600c7a825ac142d67c090eaf1/dropshot-i18n-toolkit-0.1.2.tgz","_integrity":"sha512-F+6dJ7pRxyth5ZZiEFKDXpij28dg/MQn2kdArGGm0uyMeNzv24hjgGygMfpI89KmldKycvMh8x9ezX33mRc9/g==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.2_1786204649914_0.5112532037813635","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dropshot/i18n-toolkit","version":"0.1.3","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.3","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"f97585bcbb1cb29471b63c240904b35c261f169a","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.3.tgz","fileCount":12,"integrity":"sha512-r559qt+6qsIjfC0k8jSub5g1WGAUS9jHfREnYCCvXmXHCUrsTKHIw+2ZXvDiT2GTsfn7iLxsGlxsUmBHG8EnvA==","signatures":[{"sig":"MEUCICK2f5Rztd0J4YbQZAeHoktjMcvQ0oZwJMRW/3K10NxgAiEAuoMPIlsgusXOImZollMOLPDhg3V4hY57bXQSBW0k9os=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.3.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/3e604d88a4513f37f19d06b239997ec0/dropshot-i18n-toolkit-0.1.3.tgz","_integrity":"sha512-r559qt+6qsIjfC0k8jSub5g1WGAUS9jHfREnYCCvXmXHCUrsTKHIw+2ZXvDiT2GTsfn7iLxsGlxsUmBHG8EnvA==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.3_1786206623603_0.6030794164057809","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@dropshot/i18n-toolkit","version":"0.1.4","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.4","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"43331db33a7e379d98d431383988b8de4b49067a","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.4.tgz","fileCount":12,"integrity":"sha512-IZbJjYMU4pg5iOloDfe/M31rzjNBXTJgdkvUCO0ddjBsTDBCJ+TJudWgcqcJalvDqYkmzSwWvXuDC2uKB3J7aA==","signatures":[{"sig":"MEYCIQDGu5pbdjLsMwR8mdvpjwOHRvmFiqACF/m6hRpCINhEZAIhAOieTxH5jrD7bkt8p6jldWl+kKxv2OtLnL5amBQEqERT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.4.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/54c48cbe0b7eebd9e8b02918c0d504b0/dropshot-i18n-toolkit-0.1.4.tgz","_integrity":"sha512-IZbJjYMU4pg5iOloDfe/M31rzjNBXTJgdkvUCO0ddjBsTDBCJ+TJudWgcqcJalvDqYkmzSwWvXuDC2uKB3J7aA==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.4_1786248408674_0.7412114188427636","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dropshot/i18n-toolkit","version":"0.1.5","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.5","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"2724d9cd2c4250e57f2b5eb3fb6cf289571e30c1","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.5.tgz","fileCount":12,"integrity":"sha512-XoNW6vcS8II+9wagDbW/WfCcG87kkx2DRarE4BQUYN7E7bAthoLjT+f/WlFQ21LQlM0nso+LX5bo0ezi1GQX3g==","signatures":[{"sig":"MEUCIQDNPFOCkmtsMb2bWF6TRYoZnTf+0N6cnByYITJsHsHrqQIgGlwSmDYegFtuhcKMjYvtTyW/QxNEWx5EpptFFSpUchY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.5.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/7181c8445830dd0c02e6c82b8399f858/dropshot-i18n-toolkit-0.1.5.tgz","_integrity":"sha512-XoNW6vcS8II+9wagDbW/WfCcG87kkx2DRarE4BQUYN7E7bAthoLjT+f/WlFQ21LQlM0nso+LX5bo0ezi1GQX3g==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.5_1786250991315_0.13431783218908566","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dropshot/i18n-toolkit","version":"0.1.6","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.6","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"75593cca3bae4bf24be91a5f392e8e0dc3c0e325","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.6.tgz","fileCount":12,"integrity":"sha512-68ICzkdCKjtsCv5SMOphMiWQddjHXPge1UklG8U6lUqaYgaQvYVWtNp1EW5pEAsWaikLxg1BioJT/ftZ/iLb5A==","signatures":[{"sig":"MEUCIQDHk3K/bqhy21+w430j9jWtu6hqZ8jFijpHA7+/HTchMgIgdqXPFJBiwqomAG6yFWbeiDBRSV1VU4zc/5mPLyAkDmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.6.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/e1ce9ad71b347ac75f6e480e439b06fe/dropshot-i18n-toolkit-0.1.6.tgz","_integrity":"sha512-68ICzkdCKjtsCv5SMOphMiWQddjHXPge1UklG8U6lUqaYgaQvYVWtNp1EW5pEAsWaikLxg1BioJT/ftZ/iLb5A==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.6_1786269253506_0.6166223025960822","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dropshot/i18n-toolkit","version":"0.1.7","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.7","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"a12d47cfdf117d266c4cec07098efe6d8ab6eb8d","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.7.tgz","fileCount":12,"integrity":"sha512-zgq0IGLMOXOkJMfWPOqj9NV+ti5CkMLCjjyh5CfPesmVflyowjeyy293tySF3xRSL+SQjug30CLi7ie+0V+VYQ==","signatures":[{"sig":"MEQCIAFPgw/KZF+2km5xSsNJP1gOuPjYhCQKaS1vX6P3sJ5iAiBfu3lkftVVBVJNjPilgpquulcGKOtarEQksqhzHcAF4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.7.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/8dbfcd75fe04bf71aec824a514006df2/dropshot-i18n-toolkit-0.1.7.tgz","_integrity":"sha512-zgq0IGLMOXOkJMfWPOqj9NV+ti5CkMLCjjyh5CfPesmVflyowjeyy293tySF3xRSL+SQjug30CLi7ie+0V+VYQ==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.7_1786273494118_0.6477407757921612","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@dropshot/i18n-toolkit","version":"0.1.8","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.8","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"e720d0f0084cbc05f06ac70434e0b9983953f86a","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.8.tgz","fileCount":12,"integrity":"sha512-shUbnyznK0gAUbpcoGnJw5q4lsXoIimW9ztcrsV64GzEzue7XugzMnqTke6UBnEcL2j2p/mBf8nCwsEOJmJv2A==","signatures":[{"sig":"MEUCICpKWIt6eIKc1bWrDk2JxnmsCDi6hmQmLrWmFD+/DYVvAiEAqqCvMJOIHLXqJ3fFdhhW/5yOFakQDYLWONJQGs8KbQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56016},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.8.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/a24f3e92a12decfe84726e6f634e66ec/dropshot-i18n-toolkit-0.1.8.tgz","_integrity":"sha512-shUbnyznK0gAUbpcoGnJw5q4lsXoIimW9ztcrsV64GzEzue7XugzMnqTke6UBnEcL2j2p/mBf8nCwsEOJmJv2A==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.8_1786279077512_0.46946167142421036","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@dropshot/i18n-toolkit","version":"0.1.9","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.1.9","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"9f49d5825e394db59114c4d7c9cd40c418c07bef","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.1.9.tgz","fileCount":12,"integrity":"sha512-LMAFo4ouK5mA7ywQ6wFt03ue5iBy9O+oqGbJDIS/u51urxOHx3wDAXV36edYEOucybQ/TLr8SWnefa6ko68eJA==","signatures":[{"sig":"MEUCIQDmDhCuu+cHUhZ4bBVZ1HMoE56MDJqAKKvjvd6yzdPHMgIgOHrgkMSjQMBpy3XDRPWeqSvRhJzcWSna7UrL8kgqLZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57180},"type":"module","_from":"file:dropshot-i18n-toolkit-0.1.9.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/4e8dec0a122aff5d7b1c48ae93fa9211/dropshot-i18n-toolkit-0.1.9.tgz","_integrity":"sha512-LMAFo4ouK5mA7ywQ6wFt03ue5iBy9O+oqGbJDIS/u51urxOHx3wDAXV36edYEOucybQ/TLr8SWnefa6ko68eJA==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@dropshot/i18n-po":"0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.1.9_1786346332778_0.6834800920082538","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dropshot/i18n-toolkit","version":"0.2.0","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.2.0","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"d718e955957e53db1214b093a0a34e667fc4cbcf","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.2.0.tgz","fileCount":8,"integrity":"sha512-ruLqTDGUkb/FGf860QAcylRFHuyhbEjnxkz6hX4hfk2uQmxWBWeqzWrkUbd4eqHKHHvzYnldca2miAPN3NaXBg==","signatures":[{"sig":"MEUCIQCOMPtWPMx+YFOZpwKE4XS8mL9SRd6MZGGwAgj62nbE5wIgR40B/HBQxKpTswotUPASgZ8rdhcZjejr0ewdYoEKFoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26433},"type":"module","_from":"file:dropshot-i18n-toolkit-0.2.0.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/58f8a7b22ee5ca5b9d05b2b4daabaa60/dropshot-i18n-toolkit-0.2.0.tgz","_integrity":"sha512-ruLqTDGUkb/FGf860QAcylRFHuyhbEjnxkz6hX4hfk2uQmxWBWeqzWrkUbd4eqHKHHvzYnldca2miAPN3NaXBg==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@dropshot/i18n-po":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.2.0_1786522143560_0.26510311476246495","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@dropshot/i18n-toolkit","version":"0.2.1","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.2.1","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"},{"name":"karamyu","email":"bonokong03@gmail.com"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"42291ed41ffc1b6ffaf48ec4be4e1cca75c3e451","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.2.1.tgz","fileCount":8,"integrity":"sha512-NgxFiTdoqTZJlFRdCkTrNHk92uImodZVGtG0Y9Pm5Hq9JQsZUNSm50Yig4vHxjsbG6+YyNKAsONDxwhJIZX/SA==","signatures":[{"sig":"MEUCID3vqJfzrdCoEd2mS9RZNu5ggeDnkP7Z4vpc7clcAwiLAiEAkcJr/v8n0hol9iKc4WESwDajfpGDjSNb8m8dtn3qq8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26433},"type":"module","_from":"file:dropshot-i18n-toolkit-0.2.1.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/18c3dcb5b3841a1ce66f0fc6773a2508/dropshot-i18n-toolkit-0.2.1.tgz","_integrity":"sha512-NgxFiTdoqTZJlFRdCkTrNHk92uImodZVGtG0Y9Pm5Hq9JQsZUNSm50Yig4vHxjsbG6+YyNKAsONDxwhJIZX/SA==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@dropshot/i18n-po":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.2.1_1788165288196_0.3450707337082932","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@dropshot/i18n-toolkit","version":"0.2.2","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"license":"MIT","_id":"@dropshot/i18n-toolkit@0.2.2","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"},{"name":"karamyu","email":"bonokong03@gmail.com"}],"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"dist":{"shasum":"a3f4b249c36e7abf17aaa49a35e0443cff3e0bf3","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.2.2.tgz","fileCount":8,"integrity":"sha512-Pm6f1Errwja+w4TY22X2mvNW58KSIx/tE38LaSTY6sj4uSwPRHDygjJZtqK5V2VzN+legyfAyGXnKv8SmUS/Nw==","signatures":[{"sig":"MEUCIB5TRGkTlOWeWLDuWDt6mjjaVGckLptBbUTPPinJsMVWAiEAhORCN5N8TPzZLGJzYRvVaunkLN7clkrqfjy42pSVw/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29584},"type":"module","_from":"file:dropshot-i18n-toolkit-0.2.2.tgz","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"_resolved":"/tmp/1e334af4dec274509eb5a774ca5323c7/dropshot-i18n-toolkit-0.2.2.tgz","_integrity":"sha512-Pm6f1Errwja+w4TY22X2mvNW58KSIx/tE38LaSTY6sj4uSwPRHDygjJZtqK5V2VzN+legyfAyGXnKv8SmUS/Nw==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@dropshot/i18n-po":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/i18n-toolkit_0.2.2_1788944977748_0.5380298352182356","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"_id":"@dropshot/i18n-toolkit@0.2.3","bin":{"i18n-toolkit":"bin/i18n-toolkit.mjs"},"bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"dist":{"shasum":"e97a6bc918862be7b9d97a660e8e24670637d615","tarball":"https://registry.npmjs.org/@dropshot/i18n-toolkit/-/i18n-toolkit-0.2.3.tgz","fileCount":8,"integrity":"sha512-YRrsX2trbZ/+GMXH+xBUqHhwvmNwkUbt0eFyUcp2RaGiED+rFq5hlW4LnQ/uvB2jtiYz7K38MqWBwrheSSgcIg==","signatures":[{"sig":"MEYCIQDOvM53pSpomPeCtK9QZ99B7D9Lzvyz+ZEfqS+B/MtiBgIhANQlUuqVFgn6MbWLj4avFS9n/qCxw5vJMMo3NDBy0ZwN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbvzQFMdom5gsEwklLxSCnRsCjcsK4Zk2ef5zYfXs6hAIgTtrjI+QaMRhgAHMc/77jYOwBMSBojOEquvQPdq+EHI8="}],"unpackedSize":31101},"name":"@dropshot/i18n-toolkit","type":"module","_from":"file:dropshot-i18n-toolkit-0.2.3.tgz","license":"MIT","version":"0.2.3","_npmUser":{"name":"jiro-developers","email":"developers@jirocorp.io"},"homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"_resolved":"/tmp/84197c94d2b1c7830eca3c0132527a40/dropshot-i18n-toolkit-0.2.3.tgz","_integrity":"sha512-YRrsX2trbZ/+GMXH+xBUqHhwvmNwkUbt0eFyUcp2RaGiED+rFq5hlW4LnQ/uvB2jtiYz7K38MqWBwrheSSgcIg==","repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"_npmVersion":"10.9.8","description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","directories":{},"maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"},{"name":"karamyu","email":"bonokong03@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@dropshot/i18n-po":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n-toolkit_0.2.3_1789957450461_0.09152147713474168"}}},"time":{"created":"2026-08-06T01:18:58.877Z","modified":"2026-09-21T02:24:10.734Z","0.1.0":"2026-08-06T01:18:59.190Z","0.1.1":"2026-08-08T10:01:37.131Z","0.1.2":"2026-08-08T15:57:30.062Z","0.1.3":"2026-08-08T16:30:23.762Z","0.1.4":"2026-08-09T04:06:48.806Z","0.1.5":"2026-08-09T04:49:51.469Z","0.1.6":"2026-08-09T09:54:13.676Z","0.1.7":"2026-08-09T11:04:54.279Z","0.1.8":"2026-08-09T12:37:57.676Z","0.1.9":"2026-08-10T07:18:52.901Z","0.2.0":"2026-08-12T08:09:03.710Z","0.2.1":"2026-08-31T08:34:48.317Z","0.2.2":"2026-09-09T09:09:37.867Z","0.2.3":"2026-09-21T02:24:10.548Z"},"bugs":{"url":"https://github.com/jiro-developers/dropshot-i18n/issues"},"license":"MIT","homepage":"https://github.com/jiro-developers/dropshot-i18n#readme","keywords":["gettext","po","i18n","l10n","cli","next-intl"],"repository":{"url":"git+https://github.com/jiro-developers/dropshot-i18n.git","type":"git","directory":"packages/toolkit"},"description":"PO 카탈로그 파이프라인 CLI — 완성도 검사·초기 번역·초안 승격·원문 수정","maintainers":[{"name":"jiro-developers","email":"developers@jirocorp.io"},{"name":"seob717","email":"seob717@jirocorp.io"},{"name":"jonghu","email":"jonghun@jirocorp.io"},{"name":"seongjun_jirocorp","email":"seongjun@jirocorp.io"},{"name":"karamyu","email":"bonokong03@gmail.com"}],"readme":"# @dropshot/i18n-toolkit\n\nPO 카탈로그 파이프라인 CLI 2종(`check` · `draft`)이다.\n\n```bash\npnpm add -D @dropshot/i18n-toolkit\n```\n\n카탈로그를 소유한 앱에 설치한다 — 워크플로우가 그 앱의 `node_modules/.bin`에서 CLI를 찾는다. `@dropshot/i18n-po`는 이 패키지가 이미 의존하므로 직접 쓰는 경우가 아니면 따로 넣지 않아도 된다.\n\nCLI만으로는 반쪽이다. PR 게이트·초기 번역 백스톱을 쓰려면 [워크플로우 2종](#워크플로우-설치)을 함께 가져와야 한다.\n\n> **경고 두 가지.**\n> 1. **`npx`를 쓰지 않는다.** npm에 `i18n-toolkit`이라는 이름만 같은 무관한 패키지가 실재한다. ([자세히](#경고-1-npx를-쓰지-않는다))\n> 2. `I18N_CATALOG_DIR`는 쓸 거면 반드시 절대경로로. 상대경로를 주면 `check`·`draft`가 존재하지 않는 경로를 읽으려다 ENOENT로 죽는다. ([자세히](#경고-2-i18n_catalog_dir는-절대경로로만))\n\n## 명령 표면\n\n`i18n-toolkit --help` 출력 그대로다.\n\n| 명령 | 동작 |\n|---|---|\n| `check` | PO 구문·중복 키·언어별 키와 원문·원본 로케일의 msgstr·번역 완성도를 검사한다. 실패하면 exit 1, fuzzy는 허용한다 |\n| `check --allow-empty` | 번역 전 무결성 검사. 번역 로케일의 빈 msgstr만 허용하며 나머지 검사는 그대로 수행한다 |\n| `draft --list [--csv]` | 미번역 항목을 JSON(기본) 또는 CSV로 출력. CSV는 번역 시트 핸드오프용(BOM 포함) |\n| `draft --apply <file>` | `[{key, translation}]`을 fuzzy로 반영. 파일 확장자가 `.csv`면 CSV로, 그 외엔 JSON으로 읽는다 |\n| `draft --claude` | `claude` CLI로 초기 번역 생성 후 즉시 반영(`#, fuzzy`로 표시) |\n\n인자 없이 실행하거나 알 수 없는 명령을 주면 위 사용법을 출력하고 exit 1. `--help`/`-h`는 exit 0.\n\n앱 `package.json`에 스크립트로 걸어두면 로컬에서도 같은 게이트를 돌릴 수 있다.\n\n```json\n{\n  \"scripts\": {\n    \"i18n:check\": \"i18n-toolkit check\",\n    \"i18n:draft\": \"i18n-toolkit draft\"\n  }\n}\n```\n\n## 추출·번역 순서\n\n소스의 문구를 수정한 뒤 프로젝트의 공식 추출 명령을 실행한다. 추출 완료 후\n`pnpm exec i18n-toolkit check --allow-empty` → 번역 반영 → `pnpm exec i18n-toolkit check`\n순서로 검사한다. 검사에 실패한 PO를 자동 번역하거나 커밋하지 않는다.\n\n- 원본 카탈로그와 번역 카탈로그가 모두 있어야 한다. 서로 같은 형식·키 집합을 사용해야 한다.\n- next-intl 4.14 형식에서는 언어별 `msgid`가 같고 원본 로케일의 `msgstr`는 `msgid`와 같아야 한다.\n  원문이 영어 제품명인 경우도 그대로 허용한다. 언어를 추측하는 검사가 아니다.\n- 구형 형식은 키·구조·번역 완성도를 검사하지만 독립된 원문 필드가 없어 원본 `msgstr`의\n  언어가 잘못 바뀌었는지는 판별하지 못한다.\n- 빈 줄이 없는 인접 항목도 각각 검사한다. 중복 키나 잘못된 PO 구문은 조용히 버리지 않고 실패한다.\n- 모든 언어에서 같은 키가 함께 사라진 경우는 카탈로그끼리의 비교만으로 잡을 수 없다.\n  공식 추출 결과 및 작업 베이스와의 diff로 추가·삭제 범위를 함께 확인한다.\n\n## 경로 주입\n\n| 대상 | 우선순위 | 기본값 |\n|---|---|---|\n| 카탈로그 디렉터리 | `I18N_CATALOG_DIR` > 기본값 | `<cwd>/messages` |\n| 초기 번역 명령(draft 전용) | `I18N_DRAFT_CMD` > 기본값 | `claude -p` (프롬프트는 stdin, 실행 cwd는 임시 디렉터리) |\n| 원본 로케일 | `I18N_SOURCE_LOCALE` > 기본값 | `ko` — `<카탈로그>/ko.po` |\n| 번역 로케일 | `I18N_TARGET_LOCALE` > 기본값 | `en` — `<카탈로그>/en.po`. 워크플로우 사용 시 [주의](#워크플로우-설치) |\n\n카탈로그 디렉터리를 지정하는 CLI 플래그는 없다 — 환경변수 아니면 기본값뿐이다. 상대경로는 모두 cwd 기준으로 해석된다(`path.resolve(cwd, value)`).\n\n## 프로젝트 번역 가이드 주입\n\n카탈로그 디렉터리에 `translation-guide.md`가 있으면 `draft --claude`가 그 **전문**을 프롬프트에 덧붙인다. 없으면 현행과 동일하게 동작한다.\n\n- 용어집·톤 가이드처럼 **사람도 읽는 번역 문서**를 그대로 쓴다 — 앱과 함께 버전관리되고, CI 설정이 필요 없으며, 변경이 PR 리뷰로 추적된다\n- 기본 프롬프트 **교체는 지원하지 않는다.** 구조 규칙(ICU 보존, JSON 배열만 출력)은 응답 파싱·검증과 한 몸인 계약이라, 가이드는 그 뒤에 덧붙기만 하고 출력 형식 지시가 항상 마지막에 온다 — 가이드가 출력 형식을 깨는 지시를 담아도 구조 규칙이 이긴다\n\n## 워크플로우 설치\n\n두 워크플로우는 패키지에 동봉하지 않는다 — GitHub Actions는 워크플로우가 저장소 루트의 `.github/workflows/`에 있어야 하고, `node_modules` 안의 파일을 읽지 않는다. [이 저장소](https://github.com/jiro-developers/dropshot-i18n/tree/main/.github/workflows)에서 복사해 온다.\n\n| 파일 | 역할 |\n|---|---|\n| `i18n-check.yml` | PR 게이트 |\n| `draft-translate.yml` | 초기 번역 백스톱 |\n\n둘 다 workflow-level `env: APP_DIR: apps/example` 한 줄로 앱 경로를 모아 뒀다. **그 줄만 실제 앱 경로로 바꾼다.**\n\n`I18N_TARGET_LOCALE`을 기본값(en)이 아닌 값으로 쓸 거라면 한 곳 더: 두 워크플로우 모두 `messages/en.po`를 하드코딩한다(diff 검사와 `git add`). CLI는 `<번역>.po`에 쓰는데 워크플로우가 `en.po`만 보므로, 안 바꾸면 초기 번역이 **조용히 버려지고 CI는 성공으로 끝난다**. 워크플로우 안의 `en.po`를 실제 번역 로케일 파일명으로 함께 바꾼다.\n\n`draft-translate.yml`은 추가로 `on.push.paths: ['apps/example/messages/**']`가 하드코딩돼 있다 — GitHub Actions는 트리거 조건에 표현식(`${{ }}`)을 쓸 수 없으므로 `APP_DIR`와 별개로 함께 고쳐야 한다. 이 워크플로우에는 `concurrency` 블록도 있다(`i18n-check.yml`은 PR별로 독립 실행되므로 없다) — 지우면 같은 base를 대상으로 한 실행이 동시에 돌 때 서로 \"열린 PR 없음\"으로 판단해 각자 새로 시작한 뒤 서로의 커밋을 force-push로 덮어쓴다.\n\n## 지우면 안 되는 것 둘\n\n### 경고 1: `npx`를 쓰지 않는다\n\nnpm 공개 레지스트리에는 `i18n-toolkit`이라는 **이름만 같은 무관한 패키지**(`i18n-toolkit@1.0.2`)가 실재한다. 이 패키지의 bin 이름이 `i18n-toolkit`이라 겹친다.\n\n`npx`는 로컬에 bin이 없으면 레지스트리에서 내려받아 실행하므로, 의존 선언을 빠뜨린 repo의 CI가 **에러 없이 조용히 남의 도구를 돌리게 된다.** `pnpm exec`는 로컬 `node_modules/.bin`만 보고, 없으면 받아오지 않고 즉시 실패한다 — 그래서 워크플로우가 이쪽을 쓴다.\n\n같은 이유로 설치는 반드시 스코프 이름(`@dropshot/i18n-toolkit`)으로 한다.\n\n### 경고 2: `I18N_CATALOG_DIR`는 절대경로로만\n\n워크플로우 스텝은 `working-directory: ${{ env.APP_DIR }}`에서 실행된다. `resolveCatalogDir`는 상대경로를 그 스텝의 cwd(즉 `APP_DIR` 안) 기준으로 다시 해석한다. repo 루트 기준 상대경로(`apps/example/messages` 같은 값)를 그대로 넣으면 `APP_DIR` 안에서 한 번 더 풀려 존재하지 않는 경로를 가리키게 된다.\n\n`check`는 그 경로를 `fs.readdirSync`로, `draft`는 `<원본>.po`/`<번역>.po`를 `fs.readFileSync`로 읽으므로 잘못된 경로는 ENOENT로 즉시 죽는다 — CI가 빨간불로 실패하므로 알아채지 못할 일은 없지만, 에러 메시지만 보면 어느 경로가 잘못됐는지 바로 와닿지 않는다. 앱 트리 밖의 카탈로그를 가리키려는 경우가 아니면 애초에 이 값을 설정하지 않는 편이 안전하고, 설정한다면 반드시 절대경로를 쓴다.\n\n## 전제\n\n- **pnpm.** 두 워크플로우 모두 `pnpm/action-setup@v4`를 쓰고, 버전은 워크플로우가 아니라 루트 `package.json`의 `packageManager` 필드가 고정한다. npm/yarn을 쓰는 repo라면 워크플로우의 `pnpm/action-setup` 스텝과 `packageManager` 필드 두 곳을 함께 바꿔야 한다.\n- **Node 22.** 두 워크플로우 모두 `actions/setup-node`에 `node-version: 22`를 박아 뒀다.\n- **루트 `pnpm test`.** `i18n-check.yml`의 마지막 두 스텝은 `working-directory` 지정 없이 repo 루트에서 돈다. 그중 `pnpm test`가 동작하려면 루트 `package.json`에 `test` 스크립트와 `vitest` devDependency, 그 스크립트가 읽는 `vitest.config.ts`가 있어야 한다 — 이건 CLI가 아니라 repo 루트 셋업이므로 패키지 설치로 따라오지 않는다. 루트 단위 vitest 스위트가 없다면 이 스텝을 지운다.\n- **루트 `i18n:check` 스크립트의 `--filter` 대상.** 이 저장소의 루트 스크립트는 `pnpm --filter @i18n/example i18n:check`로 카탈로그를 소유한 패키지 이름을 그대로 박아 뒀다. 워크플로우를 복사해 온 repo에는 그 이름의 패키지가 없으므로 그대로 두면 `--filter`가 대상을 못 찾아 \"No projects matched\"로 실패한다 — 게이트가 깨진 것처럼 보이지만 실은 이 한 줄을 안 바꾼 탓이다. 앱 패키지 이름으로 바꾼다.\n\n## 초기 번역 LLM 설정\n\n`I18N_DRAFT_CMD`(저장소 변수) 또는 `ANTHROPIC_API_KEY`(시크릿) 중 **하나라도** 있으면 초기 번역이 돈다. 명령은 프롬프트를 stdin으로 받아 결과를 stdout으로 뱉기만 하면 되고, 셸을 거치지 않으므로 공백으로만 갈린다(따옴표 파싱 없음).\n\n명령은 앱 디렉터리가 아니라 **임시 디렉터리를 cwd로** 실행된다. `claude -p`는 cwd의 `CLAUDE.md`·`.claude/` 설정·MCP를 자동으로 싣고 세션을 그 경로 아래 저장하므로, 앱에서 띄우면 번역과 무관한 개발 컨텍스트가 매 실행 프롬프트에 얹히고 실행자의 개인 설정에 따라 결과가 달라진다. 계약이 stdin/stdout뿐이라 cwd에 기댈 것이 없어 분리했다. 이 때문에 `I18N_DRAFT_CMD`에 경로로 준 명령(`./scripts/llm.sh`)은 호출한 cwd 기준 절대경로로 바꿔 실행하지만, **인자 속 상대경로는 그대로 넘어가므로 절대경로나 PATH를 쓴다.**\n\n둘 다 없어도 게이트 자체는 동작하지만, 워크플로우마다 실패 방식이 다르다.\n\n| 워크플로우 | 둘 다 없을 때 |\n|---|---|\n| `i18n-check.yml`(PR 게이트) | 초기 번역 스텝만 건너뛰고(exit 0) 이어서 진행 — 완성도 검사는 그대로 돈다 |\n| `draft-translate.yml`(백스톱) | 미번역이 있으면 그 스텝이 **실패한다**(exit 1) — 사람이 직접 부른 실행이라 조용히 넘기지 않는다 |\n\n설정 없이 운영하려면 `draft-translate.yml`이 실패 상태로 쌓이는 것을 감수하거나, 그 워크플로우를 비활성화한다. 번역 자체는 `draft --list` → `--apply` 경로로 계속 채울 수 있다.\n\n## 부록: 복사(vendoring)로 도입하기\n\n외부 패키지 반입이 막힌 저장소를 위한 대안이다. 기본 경로는 위의 npm 설치이고, 이쪽은 그게 불가능할 때만 쓴다.\n\n| 경로 | 내용 |\n|---|---|\n| `packages/po` | PO 엔진 — 툴킷이 의존하므로 함께 간다 |\n| `packages/toolkit` | CLI 2종 + lib + bin |\n| `.github/workflows/*.yml` | 위와 동일하게 2종 |\n\n1. 두 패키지 디렉터리를 복사한다.\n2. 대상 repo가 pnpm workspace여야 하고, `pnpm-workspace.yaml`의 `packages` 글롭이 복사해 넣은 위치를 포함해야 한다.\n3. 카탈로그를 소유한 앱의 `package.json`에 `\"@dropshot/i18n-toolkit\": \"workspace:*\"`를 넣는다.\n4. `pnpm install`로 링크한다.\n\n**3번을 건너뛰면 워크플로우가 `Command not found`로 실패한다.** 워크플로우는 `working-directory: $APP_DIR`에서 `pnpm exec i18n-toolkit ...`으로 부르므로, 그 앱이 의존성을 가져야 로컬 bin을 찾는다.\n\n복사본의 유일한 실질 비용은 **upstream 개선을 손으로 반영해야 한다는 것**이다. 복사 시점의 커밋 SHA를 대상 repo에 기록해두면 다음 반영 때 diff 범위가 분명해진다. 대상 repo에서 스크립트를 직접 고치는 대신, 이 저장소에 고치고 다시 복사하는 흐름을 유지한다.\n\n## 라이선스\n\nMIT\n","readmeFilename":"README.md"}