Többnyelvű fordítási PHP függvény GTranslate ()

És fogok kezdeni azzal a ténnyel, hogy a Google fordító szolgáltatás meglehetősen dinamikus. Amellett, hogy a használata a „Fordítás” gombra, fordítás, bevezetett adatok formájában végezhető automatikusan, azaz repülni. Minden ilyen átruházás a kérést a szerver. Így azt mondhatjuk, hogy a kérés nem hoz létre nagy probléma. Ugyanakkor a visszaélés ezt a lehetőséget, az egyik talán nem kellene.







Ahhoz, hogy az eredmény JSON kliens paraméter méret kell rendelni az x értékét. A q paraméter telt el a fordítandó szöveget. sl paraméter tartalmazza a nyelvazonosító ahonnan a fordítás, mint tl - nyelvazonosító amelyre az átutalást. És mégis, az eredmény az lesz UTF-8.

Elvileg semmi bonyolult, és itt van a PHP-függvény kódja:

Felhívom a figyelmet arra a tényre, hogy GTranslate () függvény egy tárgyat a megfelelő tulajdonságokkal. Ez a függvény a kapott megfelelően rugalmas és dinamikus.

Az alábbiakban egy példát megszerzésének értéke fordítás húrok:

$ Gt = GTranslate ( 'példa a használatára motorolaj', 'ru', 'en');
echo $ GT-> mondat [ '0'] -> transz; // visszaadja a húr: példát a motorolaj

echo '

„ var_dump ($ GT); echo '

Abban az esetben, a fenti példával élve, akkor megkapja a következő:

objektum (stdClass) # 1 (3) [ "mondat"] =>
array (1) [0] =>
objektum (stdClass) # 2 (4) [ "transz"] =>
string (32) „példája a használata motorolaj”
[ "Orig"] =>
string (69) „példát a motorolaj”
[ "Translit"] =>
string (0) ""
[ "Src_translit"] =>
string (38) "primer ispol'zovaniya mashinnogo masla"
>
>
[ "Src"] =>
string (2) "ru"
[ "Server_time"] =>
int (1)
>

Felhívjuk figyelmét, hogy a Google fordító visszaadja az eredményt osztva ellátási (Eng. Mondatok). Hívnám a töredékek. A nagy mennyiségű adat, akkor egy egész sor ilyen javaslatokat. Kezeli őket, mint lehetséges, például az alábbiak szerint:

foreach ($ GT-> mondatokat $ mondat) echo '

”. $ Mondattöredékből> transz.


echo '

”. $ Mondattöredékből> orig. "


>

Tekintettel arra, hogy a funkciók már a POST metódust adatátviteli problémák nagy adat merül fel.

Érdekes itt a lehetőség src_translit. amely egy átírási fragmentum, ebben az esetben, az írás az orosz szöveg latin betűkkel. Azonban jobb a helyi beállítást, lásd. Translit () php-funkciót. Igaz utolsó kihegyezett nagyobb mértékben, hogy megteremtse a CNC.







Visszatérve a Google Translate, érdemes többet mondani a dict paramétert. ami megjelenik a fordítás egy szót. Ez tartalmazza majd számos további szótárban adatok, mint a meghatározása a szófajok, fordítások, stb de itt, nézd meg magad.

Ezen én mindent. Köszönöm a figyelmet. Sok szerencsét!

Továbbra is csak megérteni, ha mindezt prisobachit.

@ Max az egyik lehetőség - generációs CNC. Persze, akkor a helyi átírási, de azt hiszem, sokkal, hogyan lehet hatékonyan bővíteni a kulcsszavak miatt CNC angolul. Ezen blogger biztosan nem magam, kézzel lefordítani a kívánt részét átírási és előírhatja a link. Ha beszélünk a tárhely, ez elég lehet, hogy nem egy fejlécet fordítás és generál CNC angol. By the way, nem lesz felesleges használni az Ajax, mert Szolgáltatás nem érhető el.

Amikor néhány javaslatot valamilyen okból ad csak az első. Segítségével egy ilyen konstrukció: $ GT-> mondat [ '0'] -> transz;
Hogyan juthat el a teljes szöveget egy változót? Köszönjük!

2Ya válaszolni a kérdésre, meg kell értened, mi az objektum (tárgy), és hogy az ilyen tömb (array). Vagy mindegy mi kell kezdeni, amit egy változó?

Értem, köszönöm. Csak nem jó a php, nagyon sajnálom. Sajnálatos, hogy a nagy szövegek tehát nem képes lefordítani a gépbe. Csak fordítja rövid.

2Ya. Igen, a GET kérés kicsi, de használható POST. Meg kell változtatni egy kicsit jellemző, hanem a változók értékei $ filename és a $ lehetőségek:

Az igazság meg kell jegyezni, hogy a Google Translate szakadások nagy szöveg mondatokra. Itt egy variáció kiadási transzfer javaslatok és eredeti:

foreach ($ GT-> mondatokat $ mondat) echo '

”. $ Mondattöredékből> transz.


echo '

”. $ Mondattöredékből> orig. "


>

Constantine, köszönöm, hogy segített nekem nagy. )

Páratlan nem működik

2Denis Stashuk hogy ez nem működik. Megnéztem, mint minden példa működik.

Elképesztő, hogy milyen jól működik. Azt hiszem GTranslate () tényleg lesz sokkal hasznosabb, mint az NC translit (). Nagyon köszönöm az Ön munkáját.

2Siren DS igen érdekes téma, de a függőség az online szolgáltatások is kell venni.

A múltban, a kód átírásával kivágott egy szóköz a szót kezdődő E | E féle javított változat:

függvény translit ($ string) $ string = preg_replace ( '# \ s + # van', '', mb_strtolower ($ string));

$ String = preg_replace ( '# (és | és | o | v | s | e | w | i | b | s | \ s) (f | e) #isu', 'ti', '' $ string). ;

$ String = trim (preg_replace ( '# \ s + # van', '', $ string));
>

2Nazir Gebek én funkciót translit () az „e” betű is figyelembe kell venni. Egyszerűen nem kell elfelejteni, hogy a kód függ a kódoló cirill.

így csak UTF-8 kódolású, és így világossá kell tenni, mert szoktam mb_strtolower nem strtolower.

És ez a funkció figyelembe veszi a pillanat, amikor meg kell használni „ti”, és amikor az „e” helyett az orosz „e” és „e”, hogy ráveszi a Google kiadja Transliters.

A különböző kódolású zavarja használat iconv használat előtt translit?

2Nazir Gebek egyetértenek, hogy jöjjön le, és átírási helyi funkció, de a teljes átadása a még használni a szolgáltatást, ami mi teszi a funkciót.

2Aleksandr Genterov sajnos, amikor nagyszámú referenciával egy IP megy blokkoló, mivel funkció nem használható a hivatalos API Google Translate. Azt is megteheti, próbálja meg használni a proxy szerver, amely egy másik IP-adatok.

És én ezt a funkciót GTranslate () helyett az orosz betűk biztosít szilárd. (((Hogyan kell kezelni?