Just a few weeks ago, I told you about 7 new languages supported by Amazon Translate, our fully managed service for machine translation. Well, here I am again, announcing no less than 22 new languages and variants, as well as 6 additional AWS Regions where Translate is now available.

Introducing 22 New Languages And Variants

That’s what I call an update! In addition to existing languages, Translate now supports: Afrikaans, Albanian, Amharic, Azerbaijani, Bengali, Bosnian, Bulgarian, Croatian, Dari, Estonian, Canadian French, Georgian, Hausa, Latvian, Pashto, Serbian, Slovak, Slovenian, Somali, Swahili, Tagalog, and Tamil. Congratulations if you can name all countries and regions of origin: I couldn’t!

With these, Translate now supports a total of 54 languages and variants, and 2804 language pairs. The full list is available in the documentation.

Whether you are expanding your retail operations globally like Regatta, analyzing employee surveys like Siemens, or enabling multilingual chat in customer engagement like Verint, the new language pairs will help you further streamline and automate your translation workflows, by delivering fast, high-quality, and affordable language translation.

Introducing 6 New AWS Regions

In addition to existing regions, you can now use Translate in US West (N. California), Europe (London), Europe (Paris), Europe (Stockholm), Asia Pacific (Hong Kong) and Asia Pacific (Sydney). This brings the number of regions where Translate is available up to 17.

This expansion is great news for many customers who will now be able to translate data in the region where it’s stored, without having to invoke the service in another region. Again, this will make workflows simpler, faster, and even more cost-effective.

Using Amazon Translate

In the last post, I showed you how to use Translate with the AWS SDK for C++. In the continued spirit of language diversity, let’s use the SDK for Ruby this time. Just run gem install aws-sdk to install it.

The simple program below opens a text file, then reads and translates one line at a time. As you can see, translating only requires one simple API call. Of course, it’s the same with other programming languages: call an API and get the job done!

require 'aws-sdk' if ARGV.length != 2 puts "Usage: translate.rb <filename> <target language code>" exit end translate = Aws::Translate::Client.new(region: 'eu-west-1') File.open(ARGV[0], "r") do |f| f.each_line do |line| resp = translate.translate_text({ text: line, source_language_code: "auto", target_language_code: ARGV[1], }) puts(resp.translated_text) end end

Here’s an extract from “Notes on Structured Programming“, a famous computer science paper published by E.W. Dijkstra in 1972.

In my life I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one’s destination. My point is that a program is never a goal in itself; the purpose of a program is to evoke computations and the purpose of the computations is to establish a desired effect. Although the program is the final product made by the programmer, the possible computations evoked by it – the “making” of which is left to the machine! – are the true subject matter of his trade. For instance, whenever a programmer states that his program is correct, he really makes an assertion about the computations it may evoke.

Let’s translate it to a few languages: how about Albanian, Hausa, Pashto and Tagalog?

$ ruby translate.rb dijkstra.txt sq

Në jetën time kam parë shumë kurse programimi që ishin në thelb si lloji i zakonshëm i mësimeve të vozitjes, në të cilën mësohet se si të merret me një makinë në vend se si të përdorësh një makinë për të arritur destinacionin e dikujt. Pika ime është se një program nuk është kurrë një qëllim në vetvete; qëllimi i një programi është të ndjell llogaritjet dhe qëllimi i llogaritjeve është të krijojë një efekt të dëshiruar. Megjithëse programi është produkti përfundimtar i bërë nga programuesi, llogaritjet e mundshme të evokuara nga ai - “bërja” e të cilit i është lënë makinë! - janë çështja e vërtetë subjekt i tregtisë së tij. Për shembull, sa herë që një programues thotë se programi i tij është i saktë, ai me të vërtetë bën një pohim në lidhje me llogaritjet që mund të ndjell.

$ ruby translate.rb article.txt ha

A rayuwata na ga kwasa-kwasai da dama da suka kasance da gaske kamar irin darussan tuki da aka saba da su, inda ake koya wa mutum yadda zai rike mota maimakon yadda zai yi amfani da mota don kaiwa mutum makoma. Dalilina shi ne, shirin ba shi da wata manufa a kanta; manufar shirin shi ne tayar da komfuta kuma manufar ƙididdigar ita ce kafa tasirin da ake so. Ko da yake shirin shine samfurin karshe da mai shiryawa ya yi, ƙididdigar da za a iya amfani da ita - “yin” wanda aka bar shi zuwa na'ura! - su ne batun gaskiya game da cinikinsa. Alal misali, duk lokacin da mai shiryawa ya ce shirinsa daidai ne, yana yin tabbaci game da ƙididdigar da zai iya fitarwa.

$ ruby translate.rb dijkstra.txt ps

زما په ژوند کې ما د پروګرام کولو ډیری کورسونه لیدلي دي چې په اصل کې د معمول ډول ډول چلولو درسونو په څیر وو، په کوم کې چې دا درس ورکول کیږي چې څنګه د موټر سره معامله وکړي ترڅو د چا منزل ته ورسیږي. زما ټکی دا دی چې یو پروګرام هېڅکله هم په ځان کې هدف نه دی؛ د یوه پروګرام هدف دا دی چې محاسبه راوباسي، او د محاسبې هدف دا دی چې یو مطلوب اثر رامنځته کړي. که څه هم دا پروګرام وروستی محصول دی چې د پروګرام لخوا جوړ شوی، هغه ممکنه حسابونه چې د هغه لخوا رامینځته شوي - د چا «جوړولو» ماشین ته پریښودل کیږي! - اصلي مسله د هغه د سوداګرۍ موضوع ده. د مثال په توګه، کله چې یو پروګرام کوونکی وايي چې د هغه پروګرام سم دی، هغه په حقیقت کې د هغه محاسبې په اړه یو ادعا کوي چې هغه یې کولی شي.

$ ruby translate.rb dijkstra.txt tl

Sa aking buhay nakita ko ang maraming mga kurso sa programming na karaniwang tulad ng karaniwang uri ng mga aralin sa pagmamaneho, kung saan itinuturo kung paano haharapin ang isang kotse upang makapunta sa patutunguhan ng isang tao. Ang aking punto ay ang isang programa ay hindi kailanman naglalayong mismo; ang layunin ng isang programa ay upang gumuhit ng mga kalkulasyon, at ang layunin ng accounting ay upang lumikha ng nais na epekto. Kahit na ang programa ay ang huling produkto na nilikha ng programa, ang mga posibleng kalkulasyon na nilikha niya - na nag-iiwan ng isang tao na “bumuo” ng makina! - Ang pangunahing isyu ay ang paksa ng kanyang negosyo. Halimbawa, kapag sinabi ng isang programmer na tama ang kanyang programa, talagang gumagawa siya ng claim tungkol sa pagkalkula na maaari niyang gawin.

Available Now!

The new languages and the new regions are available today. If you’ve never tried Amazon Translate, did you know that the free tier offers 2 million characters per month for the first 12 months, starting from your first translation request?

Also, which languages should Translate support next? We’re looking forward to your feedback: please post it to the AWS Forum for Amazon Translate, or send it to your usual AWS support contacts.

— Julien