Docs
Translate from the terminal
The CLI sends the file to your LocaleDrop server and writes the translated files next to it. Buy the API key on the site first. There is no account.
Install and push
npx localedrop configure --api-key ld_... --api-url https://your-host npx localedrop push en.json --to de,fr,ja npx localedrop push app/en.lproj/Localizable.strings --to de npx localedrop push values/strings.xml --to de,ja --out dist npx localedrop credits
--previous de=locales/de.json can be repeated. --previous-source previous-en.json turns on change detection. The key can also come from LOCALEDROP_API_KEY.
What comes back
- en.json becomes de.json. A locales/en/ folder becomes locales/de/.
- en.lproj becomes de.lproj.
- values/strings.xml becomes values-de/strings.xml, and zh-CN becomes values-zh-rCN.
- An .xcstrings catalog stays one file, with each target language added inside it.
HTTP
POST /api/v1/jobs accepts JSON: filename, content, targets, optional previousSource and previous. Authorize with Authorization: Bearer ld_.... GET /api/v1/credits returns the balance. The browser uses POST /api/v1/translate with flattened strings so you can edit before the ZIP is built.
Webhooks
Point Stripe at /api/webhooks/stripe for checkout.session.completed and checkout.session.async_payment_succeeded. Point BTCPay at /api/webhooks/btcpay. Credits are granted on InvoiceSettled only. Both signatures are checked against the raw body.