Archiv pro štítek: překlad

Použití Google Translate API v PHP

Když se v současné době setkáte s požadavkem na vytvoření aplikace, která bude spoléhat na dostupné služby k překladu textu, zpravidla myšlenky směřují k využití Google Translate nebo Bing Translator. API u Google Translate není zdarma, platíte 20 dolarů za milión přeložených znaků. Bing Translator každý měsíc přeloží bezplatně 2 milióny znaků. Pokud potřebujete více, podívejte se na ceník. I když by mohlo nasazení služby Bing Translator vzhledem k provozním nákladům symbolizovat jasnou volbu, nezapomeňte si nejprve porovnat kvalitu překladu do cílového jazyka.

V mém případě se překlad textu svěřil vyhledávacímu gigantovi Google. I když dokumentace popisuje nasazení API v mnoha programovacích jazycích, nenašel jsem kontaktování služby v PHP s parametry, které jsem požadoval. Dozajista se proto bude hodit, když ukáži, jakým způsobem text překládám.

require_once './google-api-php-client/src/Google_Client.php';
require_once './google-api-php-client/src/contrib/Google_TranslateService.php';

function translate($from, $to, $what)
{
$client = new Google_Client();
$client->setApplicationName('JmenoAplikace');  
$client->setDeveloperKey('123456789');
$service = new Google_TranslateService($client);

$translations = $service->translations->listTranslations($what, $to, array(
                "source" => $from,
                "format" => "html"
));
            
return $translations["translations"][0]["translatedText"];
}

Pro snadnější práci využívám knihovnu pojmenovanou Google API Client Library. Tu stačí stáhnout a rozbalit do zvoleného umístění. Ve zdrojovém kódu následně připojíte soubor Google_Client.php a zvolenou službu, kterou budete používat. Já chci překládat text, a proto se poohlédnu po Google_TranslateService.php ze složky contrib. Nasleduje vložení vývojářského klíče. Ten se dozvíte po přihlášení do Google API Console pod záložkou API Access konkrétního projektu. Zde hledejte část Simple API Access.

Nyní je na čase zavolat metodu, která obstará získání překladu. Já přitom znám původní jazyk i ten překládaný. Nepotřebuji proto, aby se jej Google snažil detekovat, v čemž ostatně u velmi krátkého překladu skládajícího se z jednoho slova ne vždy uspěje. Do parametrů $to a $from se jednoduše vloží ISO zkratka dle standardu 639-1, která má 2 znaky. Dále chci, aby Google přeložil text obsahující i HTML tagy tím způsobem, že je zachová. K tomu stačí specifikovat formát. Dle dokumentace se jako výchozí automaticky nastaví HTML, tento parametr tedy není nutno explicitně uvádět, alespoň ale budete mít představu kam sáhnout, když se rozhodnete chování překladu změnit.

Pokud dojde k chybě, vyhodí se výjimka Google_ServiceException. Já raději počítám i s Google_AuthException, Google_CacheException, Google_Exception a Google_IOException. Dále v případě reálného produkčního nasazení kontroluji, zda skutečně v polích existují příslušné indexy. K podobné opatrnosti mě poprvé donutilo API od Facebooku, kdy odpověď serveru ne vždy odpovídala tomu, co bylo uvedeno v dokumentaci.

Čeština pro plugin GD Star Rating

ČeštinaPro hodnocení příspěvků používám na webu, který běží na CMS WordPress, velmi povedený plugin nesoucí název GD Star Rating. Ten kompletně obstarává všechny náležitosti spojené s ukládáním názorů návštěvníků ohledně kvality příspěvku. Lidé se přitom mohou projevit několika způsoby – zvolením patřičného počtu hvězdiček nebo jednodušším přiřazením kladného či negativního postoje.

Plugin je napsaný v angličtině, a proto i výstup na stránce naleznete v tomto jazyce. Já jsem se rozhodl přeložit několik málo základních informačních popisků do českého jazyka. Nejprve jsem začal hledáním již připraveného lokalizačního souboru. Ten jsem ovšem nikde na internetu nespatřil, namísto toho si nešlo nepovšimnout dotazů osob v nejrůznějších fórech, jenž řešily shodný problém.

Má další myšlenka vedla k přepsaní dotyčných textových řetězců ve zdrojovém kódu pluginu. Jak jsem však již zmínil, GD Star Rating s funkcemi nijak nešetří, a proto potřebných souborů existuje poněkud více. V této chvíli mě však napadlo, že pokud se autoři během psaní kódu nešetřili, patrně počítali i se situací, kdy správce portálu potřebuje lokalizovat jejich plod práce.

Jak jsem později zjistil, tato možnost skutečně existuje, a to přímo v administraci. Samotný postup byl pro mě netradiční, a proto přináším následující návod.

Překlad pluginu GD Star Rating

Po přihlášení do administrace vybereme T2 templates v sekci GD Star Rating. Zvolíme popisek, který chceme přeložit (např. Default Element Word Votes) a klikneme na Duplicate. Nemůžeme editovat defaultní popisky, protože plugin vyžaduje jejich přítomnost v případě, že během úpravy neúmyslně zapřičiníme vznik chyby. GD Star Rating se v tomto případě pokusí vrátit k původním textům. Proto začínáme duplikací, jenž otevře nový formulář. V něm napíšeme jméno pro nově vznikající template. Zaškrtnout musíme obě volby v sekci Options:

  • Set this template as default for this type of templates
  • Set this template as a dependency for all other templates that use it

Nyní již vám nic nezabrání ve spodní části přeložit zobrazovaný text. Shodně postupujte i u dalších výstupů. Výsledek může vypadat například takto:

Hodnocení

Rychlá tvorba titulků k online videím

Nedávno jsem řešil poměrně záludný problém. Potřeboval jsem k videu dostupnému na YouTube přidat české titulky, a to co nejrychlejším způsobem. Po chvíli hledání jsem naštěstí narazil na službu, která mě ihned zaujala. Již po letmém prohlédnutí dostupných funkcí jsem totiž pochopil, že splňuje všechny mé požadavky. Samotný překlad je zde totiž velmi usnadněn. Dovolte proto, abych vám představil web universalsubtitles.org.

Po třech krocích máte hotovo

TitulkyUrčitě vás zajímá, kolik času vám celá práce zabere. Již ze startu mohu z vlastní zkušenosti říci, že poměrně málo. Samotný proces překladu totiž začíná jednoduše vložením url na zvolené video. Aplikace přitom podporuje několik portálů – kromě již zmíněného YouTube například i vimeo. Následně započne první krok, během kterého zapisujete vše, co uslyšíte. Pohodlně lze přitom postupovat po částech (např. osmi vteřinách). Zkrátka se zaměříte na část zvukové stopy a následně celou konverzaci přeložíte do cílového jazyka. Jakmile se prokoušete ke konci, máte prakticky nejtěžší část za sebou. Nyní váš již čeká načasování titulků, které připomíná primitivní hru. Během přehrávání videa stisknete příslušnou klávesu vždy, když začne někdo z aktérů mluvit. A nyní hurá na poslední třetí krok. V této fázi již provádíte jen finální korektury. Můžete měnit jak text titulků, tak i opravovat časování. Před publikací svého díla se již jen přesvědčíte, že vše vypadá podle vašich představ. Pokud ano, jediným kliknutím celý projekt uložíte.

Snadný export i vložení videa na web

V případě zájmu lze titulky stáhnout. Mnohem využívanější funkcí však určitě bude možnost zakomponování výsledků překladatelské práce do zdrojového kódu zvolené stránky. K tomuto účelu lze vybírat z několika formátů, dostupné je i moderní HTML 5. Jestliže k vašemu videu náleží titulky v několika rozdílných jazycích, můžete dále ovlivnit, které budou použity jako výchozí.

Příchozí dotazy:

  • tvorba titulků
  • překladač videi
  • překladač titulků
  • výroba titulků