Control AI Translation Costs with Project Quotas
AI translation is addicting. One click, 10 languages translated. Magic.
But each translation costs quota. And quota costs money. If you've ever watched a teammate discover Translate Missing on a Friday afternoon, you know how fast a monthly allowance can vanish.
Here's how the math actually works, and how to stay in control.
The Math Nobody Does Until the Quota Runs Out
Quota consumption in LangSyncer is simple: translating one key into one language costs 1 unit. The multiplier is languages.
Say your Laravel team ships a checkout rebuild. You add 50 new keys, and the project targets 4 languages:
50 keys x 4 languages = 200 units
Manageable. Now the version that catches teams off guard. Your app supports 6 languages, and this sprint added 120 keys across checkout, emails, and validation messages:
New keys: 120
Target languages: 6 (es, fr, de, it, pt, nl)
----------------------------
Translate Missing: 720 units
On the Free tier (100 AI translations per month), that run stops almost immediately. On Icebreaker (3,000 per month), it works, but one click just consumed nearly a quarter of the month.
Three things make this worse than it looks:
- Re-translating costs again. Regenerating a value because you didn't love the first result is another unit per language. Editing the AI output by hand is free.
- The Code Scanner's AI mode has its own cost. Running
translator:scan --aicosts 1 unit per candidate it analyzes. Find 30 hardcoded strings, pay 30 units for the analysis. Translating the approved keys afterward is a separate operation that consumes additional quota. - One project can starve the others. Quota is account-wide by default. If your sandbox project burns through everything on experiments, your production app gets no AI translation until the billing date resets.
That last one is exactly what project quotas fix.
What Doesn't Cost Anything
Worth being precise here, because it changes how you should work:
- Creating translation keys: free and unlimited
- Manual translations (typing values yourself): free
- Publishing: free
- CDN regeneration: free
Only AI translations consume quota. A team that drafts keys liberally and translates deliberately spends very little.
Setting Up Project Limits
Here's the walkthrough for an Icebreaker account (3,000 units per month) running four projects.
1. Decide the split.
| Project | AI Quota Limit | Why | |---------|----------------|-----| | Main App | 0 (remaining quota) | Production. Gets whatever the others don't claim. | | Marketing Site | 800 | Content changes often, translations follow. | | Admin Panel | 400 | Internal tool, fewer strings. | | Sandbox | 200 | Experiments can't hurt anyone at this cap. |
The 0 isn't "nothing", it's "use the remaining account quota". Leave exactly one primary project at 0 and cap everything else. That way the sandbox can never eat the main app's budget.
2. Set each limit. Go to Projects, click Edit on the project, and set the AI Quota Limit field. Only Project Admins can change this. The system validates the allocation: a single project limit can't exceed your available account quota, and the sum of all limits can't exceed the account total. You can't accidentally promise 5,000 units on a 3,000-unit plan.
3. Let the warnings do their job. You get an email at 80% usage. At 100%, you get an email plus a dashboard alert, and AI translation is blocked for that project only. Manual translation keeps working, and other projects keep using their own allocation.
4. Check before bulk runs. The Translate Missing dialog shows the estimated consumption before you start, and the quota indicator on translation pages shows your monthly progress plus any purchased quota. Full details are in the quota management docs.
Quota Packs vs Monthly Quota
Your available quota comes from two sources, and they behave differently:
| Source | Behavior | |--------|----------| | Monthly quota | Included with your tier, resets on your billing date, unused units don't roll over | | Purchased quota | One-time purchase, never expires, never resets |
The system uses smart consumption: monthly quota drains first, purchased quota only kicks in when monthly runs out. Here's how that plays out over a billing cycle:
Month starts:
Monthly quota: 100 (Free tier)
Purchased: 500
Total: 600
After 150 translations:
Monthly: 0 (used all 100)
Purchased: 450 (used 50)
Next month:
Monthly: 100 (reset)
Purchased: 450 (preserved)
Packs come in three sizes: 1,000 units for €5/$6, 5,000 for €20/$23, and 10,000 for €35/$39. They stack (buy as many as you need), work on any tier including Free, and survive subscription cancellation. See quota packs for the fine print.
A reasonable rule of thumb: if you need more quota every month, upgrade to Icebreaker and get 3,000 monthly. If you need it for a spike, a new market launch, or a one-off backfill of 5,000 legacy keys, buy a pack. The pack doesn't pressure you to use it before a reset date, because it has none.
This model is also worth keeping in mind when you're evaluating tools. Plenty of platforms meter on keys or seats instead of AI usage; our Lokalise comparison breaks down where the pricing models diverge.
When Project Limits Aren't Worth It
Honest limits of this approach:
- Single-project accounts gain nothing. If you run one app, the account quota already is your project quota. Skip the config.
- Limits redistribute cost, they don't reduce it. A cap stops the sandbox from eating production's budget, but it won't make a 720-unit sprint cheaper. Only workflow changes do that (translate once, edit by hand, don't regenerate).
- Packs are non-refundable. If you're unsure about your volume, start with the 1,000 pack and buy more later. They stack, so there's no penalty for buying small.
Gotchas
- Re-translating the same text costs again. Edit the AI output instead of regenerating it.
- Unused monthly quota does not roll over. Purchased quota does, indefinitely.
translator:scan --aicosts 1 unit per candidate, and translating the approved keys afterward is billed separately.
For the day-to-day team side of this (who runs the bulk translations, who reviews them), see our team workflow post.