Getting started
Providers and API keys
WPGlotty writes translations with Claude, DeepL or OpenAI. The key is yours and so is the bill.
You bring the key
WPGlotty does not resell translation. You put your own API key in, the requests go from your server to the provider, and the provider bills you directly. Nothing about your content passes through wpglotty.com.
Claude is the default because it holds a tone of voice across a whole page better than the alternatives. DeepL is cheaper and blunter. OpenAI sits in between.
- Anthropic (Claude): the default; best at tone and at long pages
- DeepL: fastest and cheapest, with no tone of voice to speak of
- OpenAI: a middle road, and the one to use if you already have credit there
Two models, on purpose
There are two model settings: one for interactive work and one for bulk. Translating a whole site is thousands of short strings where the difference between a very good model and a good one is invisible, so the bulk model is the cheaper one. Anything you trigger yourself uses the better one.
The defaults are Claude Opus for interactive work and Claude Sonnet for bulk. On a normal site that is roughly a factor five in cost with no visible difference.
Keeping the key out of the database
Keys entered in the settings screen are encrypted before they are stored. If you would rather they were not in the database at all, define them in wp-config.php: a constant wins over the setting, and the field in the screen says that it is being overridden.
define( 'BDT_ANTHROPIC_API_KEY', 'sk-ant-…' );
define( 'BDT_DEEPL_API_KEY', '…' );
define( 'BDT_OPENAI_API_KEY', '…' ); A ceiling on the bill
Under Settings there is a monthly budget in dollars. At eighty percent of it you get a warning; at a hundred percent WPGlotty stops sending new work to the provider and keeps serving what it already has.
It is off by default, because a ceiling that stops a site translating halfway through a launch is worse than a bill you were expecting. Set it once you know what a month costs you.
A second provider as a fallback
You can name a fallback provider and model. If the first one refuses a request (a rate limit, an outage, a content filter) the fallback takes it rather than the string going untranslated.
It is worth setting even if you never expect to need it. The failure it covers is the one where a visitor sees English on a Dutch page.
How fast it is allowed to go
Batch size, requests per minute and tokens per minute keep WPGlotty inside whatever your provider allows. The defaults are conservative enough for a new account and can be raised once you know your limits.
On Anthropic, bulk work goes through the batch API by default: roughly half price, in exchange for not being immediate. Interactive work never uses it.