Category

Best AI for translation

Two things have come apart in this category and that is the whole story: the model that names your language in its own list cannot be bought, and the model you can download and run on your own server does not name your language at all. The table below shows that, not which one writes the prettier sentence.

  • Seven candidates, five ranked
  • Openness weighted 30 of 100
  • An access column for Iran

Last checked: This is a reference page. It is re-checked against the vendor sources and updated when a new version ships. What changed

Where each tool's score comes from

The ring below is the same set of weights printed in the table headers further down.

100Weights
  • Language declared 35
  • Licence openness 30
  • Languages 25
  • Access from Iran 10

We chose these weights, and that is the only judgment call in the table. Weight them differently and the order changes.

The ranking today, from each maker own language list and licence

The language column says whether the maker named that language for that model, not how good the translation is. A maker that publishes no language list for a model leaves that cell unverified.

Best AI for translation
Rank Tool Score Language declared 35 Licence openness 30 Languages 25 Access from Iran 10
1 Command A Translate Current pick 70.0 2/2 0/3 23 languages Source: docs.cohere.com blocked / no working route
2 Aya Expanse 32B 67.5 1/2 1/3 23 languages Source: docs.cohere.com blocked / no working route
3 Command A Reasoning 35.0 not verified 0/3 23 languages Source: docs.cohere.com blocked / no working route
4 Llama 4 Maverick 30.0 0/2 2/3 12 languages Source: huggingface.co not verified
5 Llama 4 Scout 30.0 0/2 2/3 12 languages Source: huggingface.co not verified

An empty cell means we could not verify that number, not that the tool scored zero.

Behind each number

Every judged score in this table carries a written reason, and the Iran column says how it was checked. Those two are open here. The measurement trail behind each number, which row of which leaderboard and on how many votes, opens under the model it belongs to.

1 Command A Translate

Language declared 2/2 Cohere names this model 23 languages one by one and Persian is the last name on that list. The same documentation presents it as Cohere own machine translation model, so both the list and the maker declaration are there.

Licence openness 0/3 No weights are published. Available only through the Cohere API.

Access from Iran blocked / no working route Cohere own commercial SaaS agreement writes Iran by name into its Restricted Location definition and says the customer will not access the Services from such a place. Read from the contract text, not measured on the network.

2 Aya Expanse 32B

Language declared 1/2 The model card names 23 languages one by one and Persian is among them. But Cohere does not present it as a translation model; it calls it a multilingual research model, so it does not reach level two.

Licence openness 1/3 Its weights are published on Hugging Face, but the licence is CC BY-NC 4.0 with an acceptable use addendum, and NC means no commercial use.

Access from Iran blocked / no working route Cohere own commercial SaaS agreement writes Iran by name into its Restricted Location definition and says the customer will not access the Services from such a place. Read from the contract text, not measured on the network.

3 Command A Reasoning

Licence openness 0/3 No weights are published. Available only through the Cohere API.

Access from Iran blocked / no working route Cohere own commercial SaaS agreement writes Iran by name into its Restricted Location definition and says the customer will not access the Services from such a place. Read from the contract text, not measured on the network.

4 Llama 4 Maverick

Language declared 0/2 Meta gives Llama 4 a closed list of twelve languages: Arabic, English, French, German, Hindi, Indonesian, Italian, Portuguese, Spanish, Tagalog, Thai and Vietnamese. Persian is not on it, and the list is not left open with an including. Turkish is not on it either.

Licence openness 2/3 The weights are published and the Llama 4 licence permits commercial use, but it is Meta own licence rather than a standard one: it caps you at 700 million monthly users and requires a Built with Llama notice.

5 Llama 4 Scout

Language declared 0/2 Meta gives Llama 4 a closed list of twelve languages: Arabic, English, French, German, Hindi, Indonesian, Italian, Portuguese, Spanish, Tagalog, Thai and Vietnamese. Persian is not on it, and the list is not left open with an including. Turkish is not on it either.

Licence openness 2/3 The weights are published and the Llama 4 licence permits commercial use, but it is Meta own licence rather than a standard one: it caps you at 700 million monthly users and requires a Built with Llama notice.

Not enough verified data to rank

These are real tools we track, but more than half of their criteria have no verified number yet, so ranking them would be a guess.

How this ranking is calculated

Every criterion below has a weight and a source. Change a weight and the whole table recomputes. There is no hand-placed position anywhere in this hub.

Criterion Weight Evidence
Language declared 35 defined scale, with a written reason per assignmentThe output of translation is itself a language. A model that does not name yours is a guess, not a tool
Licence openness 30 defined scale, with a written reason per assignmentIt carries 30 here and nowhere else in this reference, because in Iran the hosted API is the link in the chain that does not work
Languages 25 vendor stated specificationCounted only where the maker prints the full list or states a definite number
Access from Iran 10 our access column, with its method statedA small weight because the real place for this argument is the AI in Iran page, but not zero

The model that knows your language and the model you can run are not the same model

Cohere has a model called Command A Translate and its documentation calls it, in those words, Cohere machine translation model. In the same place it names its 23 languages one at a time: English, French, Spanish, Italian, German, Portuguese, Japanese, Korean, Chinese, Arabic, Russian, Polish, Turkish, Vietnamese, Dutch, Czech, Indonesian, Ukrainian, Romanian, Greek, Hindi, Hebrew and Persian.

All four languages this site publishes in sit inside that one list of 23. For anyone running a four-language site, that is the most precise sentence about translation in this reference.

Now the other side. Meta ships Llama 4 with open weights and a licence that permits commercial use, so it is a model you can take, run on your own hardware and sell the output of. Its language list has twelve entries: Arabic, English, French, German, Hindi, Indonesian, Italian, Portuguese, Spanish, Tagalog, Thai and Vietnamese. No Persian. No Turkish. And Meta does not leave the list open with an including, so it is a closed list.

The axis of this category is therefore not quality. It is whether the model names your language, and whether you can reach it at all.

The context window inversion every site translation runs into

Command A Translate has an 8,000 token window. That is the shortest in this entire catalogue, shorter than any other model recorded here. Llama 4 Scout has ten million tokens, the longest.

So the model that knows Persian holds a few pages, and the model that does not name Persian reads a book in one go. That is not a coincidence: a dedicated translation model is built for the sentence and the paragraph, not for the document.

The practical consequence, which nobody seems to have written down: with a dedicated translation model you translate a site page by page, not in one pass. If you want a whole long document to go in one call, you are choosing a model that was not built for translation, and that choice should be deliberate.

Why licence openness carries 30 here

In the other categories of this reference, open weights are a nice extra. Not here.

The reason is plain: for a reader in Iran, the link in the chain that does not work is the hosted API. Cohere own commercial agreement writes Iran by name into its Restricted Location definition. So a model whose weights are published, under a licence that permits commercial use, is genuinely a tool here, and the rest are articles about tools.

And this criterion exposes a difference that a simple has-open-weights boolean hides. Aya Expanse publishes weights but under CC BY-NC, so translating a client site with it and charging for the work puts you in breach. Llama 4 permits commercial use but under Meta own licence, with a 700 million monthly user ceiling and a mandatory Built with Llama notice. Mistral Large 3 is Apache 2.0, the freest licence in this table, and it does not name Persian.

Four criteria deliberately left out

A translation quality score. Cohere writes that Command A Translate is its state of the art machine translation model and publishes no number. Neither does anyone else here. A column with a figure for no candidate is not a column.

Price. Of the seven candidates in this table, two have one. Cohere prints no rate for any current-generation model, Mistral prints no per-model rate at all, and Meta hands over weights with no price attached. A column with two cells filled drags five candidates down for no reason.

Direction. Translation quality is not symmetric: Persian into English is not the same job as English into Persian, and every translator knows it. No maker in this reference publishes anything per direction, so this page says nothing about it. A language list is a set, not a pair.

And the context window, which we tried as a column and took out. The reason is worth writing down because it is a lesson in itself. The ranking engine normalises every numeric column between the lowest and the highest candidate. Here the lowest window is 8,000 tokens and the highest is ten million, three orders of magnitude apart. The result was that 256,000 tokens scored 0.4 out of 15 and 128,000 scored 0.2, while in practice the gap between 8,000 and 256,000 is thirty-two fold and is exactly what shapes a real project. A column that renders a thirty-two fold difference as 0.4 against 0.2 is not measuring it. So the number came out of the table and the argument stayed in the prose above.

The two rows that could not be ranked at all

Two candidates sit below the table because the engine could not rank them, and both for the same reason: their maker publishes no language list for that particular model.

One is Command A+, Cohere own flagship. Cohere documentation says this model has world-class translation capabilities and then gives no language list and no definite number for it. So there is a translation claim and nothing to cite.

The other is Mistral Large 3, which carries the freest licence in this whole table: Apache 2.0, open weights, full commercial use. Exactly what this category weights second highest. But Mistral publishes neither a language list nor a country statement for Large 3, and the list it does give is explicitly not exhaustive. The model that was the best option in this table on licence stayed out of the table for want of those two lists.

We do not hide this, because it is what makes the table worth trusting: a candidate with no evidence does not get ranked, even when we suspect it is good.

What this table does not measure, said plainly

Every language cell on this page says the maker listed that language. Nobody has read the output and judged it.

That is the same limit the voice category carries and it is the honest boundary of this whole method. We read published lists and cite them; judging how natural these models Persian actually reads is a different job and we do not claim it.

When not to take our first pick

  • If you only work between English and European languages, this ordering is not for you. The lower rows are strong in exactly those languages and they are down there because of Persian.
  • If you want a long document translated in one call, none of the top rows can hold it and you need the large-window models, knowing they have not declared your language.
  • If you need certified or sworn translation, nothing on this page helps. That work needs a registered translator, not a model.

Where it falls short

  • The language column is read from the maker published list, not from reading output. We have not judged translation quality.
  • There is no price column, because only two of the seven candidates have a published rate.
  • Direction is not measured. A language list is a set and says every pair inside it is possible, not that both directions are equally good.
  • The Iran column is read from each maker own contract and policy, not from a network test inside Iran.

Our take

If you run a multilingual site and Persian, Arabic and Turkish all appear in your work, Command A Translate is the only model that names all three, and you should know that its window is 8,000 tokens and there is no official route to buy it from Iran. If you want to run the model yourself, Aya Expanse has Persian and does not have a commercial licence, and that contradiction is worth knowing before a project starts rather than halfway through it.

Questions people actually ask

What is the best AI for translation

By the arithmetic on this page, Cohere Command A Translate, because it is the only model whose maker both calls it a translation model and names Persian in its list of 23 languages. Two conditions show in the table too: its window is 8,000 tokens, and the Cohere contract names Iran.

Which translation model can I run on my own server

Three. Aya Expanse 32B, which names Persian but is CC BY-NC so no commercial use; Llama 4, which has a commercial licence but no Persian in its list of twelve; and Mistral Large 3, which is Apache 2.0 and whose language list does not name Persian.

Do these models translate Persian into Arabic

Cohere list of 23 contains both, so that pair is inside the list. But a language list is a set rather than a quality guarantee for each pair, and no maker publishes a separate figure per pair.

How good is the Persian these models produce

We do not know and we make no claim. This table says whether the maker named the language for that model. Judging quality means reading output, and we have not done that.

Which one should I pick to translate a whole site

With a dedicated translation model, page by page, because an 8,000 token window holds a few pages at most. If you want to hand over a long document in one call, you are choosing a model that was not built for translation and has not declared your language.

We can translate and localise your site

Site translation services