Mirza Translator bietet Ihnen die Möglichkeit, Text mithilfe der Yandex.Translate-API einfach zu übersetzen und zu bearbeiten.
Lassen Sie uns das ganz schnell in nur drei Schritten einrichten!
Navigieren Sie über das Terminal/cmd zu Ihrem Laravel-Installationsordner und führen Sie composer require yak0d3/ Mirza_Yandex_Translator
“ aus oder fügen Sie "yak0d3/ Mirza_Yandex_Translator ": "^1.0.0"
manuell zu Ihrer composer.json
hinzu.
Veröffentlichen Sie die Konfigurationsdatei mit einer der folgenden Methoden:
php artisan vendor:publish --provider="yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider"
php artisan vendor:publish
und geben Sie die Nummer hinter yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider
ein und drücken Sie dann Enter
Fügen Sie Ihrer .env
Datei eine Umgebungsvariable mit dem Namen YANDEX_API
hinzu und legen Sie ihren Wert auf Ihren eigenen Yandex.Translate-API-Schlüssel fest. ( zB YANDEX_API=MY_YANDEX_API_KEY
)
Hinweis : Sie können Ihren KOSTENLOSEN API-Schlüssel über das Yandex.Translate-Entwickler-Dashboard erhalten
Die Kurzanleitung zur Verwendung soll nur die grundlegende Verwendung dieses Pakets erläutern. Für die Liste der Methoden und ihre relativen Informationen (Parameter, Rückgabetyp usw.) springen Sie zum Abschnitt „Methoden“ oder zu den Abschnitten „Direktiven“, um die Liste anzuzeigen verfügbaren blade
Richtlinien.
Mirza::detectLanguage('Welcome');
en
: en Mirza::translate('Hello','es');
"Hola"
Mirza::translateTo('Hello World!',['es', 'tr', 'fr']')
{
" originalText ": " Hello World! " ,
"originalLanguage": "en",
"text": {
"es": " Hola Mundo! " ,
"tr": " Merhaba D u00fcnya ! " ,
"fr": " Bonjour Tout Le Monde!"
}
}
Hinweis: Sie können diese Zeichenfolge mit der Funktion
json_decode
dekodieren.
$textArray = ['Hello','My Dear','Friend'];
Mirza::translateArray($textArray,'fr');
[
{
" originalText ": "Hello",
"translatedText": "Bonjour"
},
{
"originalText": "My dear",
"translatedText": "Mon cher"
},
{
"originalText": "Friend",
"translatedText": " Ami"
}
]
Hinweis: Sie können diese Zeichenfolge mit der Funktion
json_decode
dekodieren.
Verstehst du es immer noch nicht? Werfen Sie einen Blick auf die Dokumentation unten und die Verwirrung wird verschwinden!
Lassen Sie es uns administrieren. Nicht jedem hier wird es leicht fallen, dieses Paket zu verwenden. Versuchen wir also gemeinsam zu verstehen, was passiert. In diesem Abschnitt wird die Verwendung aller von Mirza Yandex Translator bereitgestellten Methoden behandelt. Hier ist das Inhaltsverzeichnis:
translate
translateArray
-MethodetranslateTo
MethodedetectLanguage
.getSupportedLanguages
-MethodetranslateToAll
-Methode@translate
Direktive@yandex_rights
Direktive@languages_select
Direktivetranslate
Beispiel:
$ es_translation = Mirza::translate( ' Hello World! ' , 'es); //The first param is the text, the second one is the ISO code of the language
echo $es_translation; //This will output "Hola Mundo!"
translateArray
-MethodeBeachten Sie , dass alle
json
-Strings mit der PHP-Funktionjson_decode
dekodiert werden müssen. Tipp: Um ein PHP-Array zurückzugeben, setzen Sie das zweite Argument vonjson_decode
auftrue
( z. B.json_decode($jsonString, true);
).
Wenn Sie es vorziehen,json objects
zu manipulieren, lassen Sie das zweite Argument leer oder setzen Sie es auffalse
.
Mirza::translateArray(['Hello', 'My Dear', 'Friend'],'fr');
Diese Methode übersetzt ein bestimmtes Textarray, in unserem Fall dieses Array ['Hello', 'My Dear', 'Friend']
und übersetzt es in eine bestimmte Sprache, in unserem Beispiel Französisch.
Diese Funktion gibt eine json encoded
Zeichenfolge wie die folgende zurück:
[
{
" originalText ": "Hello",
"translatedText": "Bonjour"
},
{
"originalText": "My dear",
"translatedText": "Mon cher"
},
{
"originalText": "Friend",
"translatedText": " Ami"
}
]
Wie Sie sehen können, hat der ausgegebene json string
die gleiche Reihenfolge wie das Eingabearray. Jetzt können wir auf jedes dieser Elemente zugreifen, indem wir den String wie folgt dekodieren:
$ jsonString = Mirza:: translateArray ([ ' Hello ' , ' My Dear ' , ' Friend ' ], ' fr ' ); //The json string
$ translationsArray = json_decode ( $ jsonString , true ); //Our PHP Array
$ first_translation = $ translationsArray [ 0 ][ ' translatedText ' ];
$ second_translation = $ translationsArray [ 1 ][ ' translatedText ' ];
$ third_translation = $ translationsArray [ 2 ][ ' translatedText ' ];
Einfach, oder? Es könnte jedoch einfacher werden, wenn Sie den Parameter $assoc auf „true“ setzen, damit Sie über die Indexnamen (die Sie manuell festgelegt haben) auf Ihre String-Übersetzungen zugreifen können. Hier wird niemand verwirrt, hier ein Beispiel:
$ textArray = [
' header ' => " Welcome to the Mirza Documentation Page " ,
' body ' => " The body is too long to be put in this item " ,
' footer ' => " Thank you for reading this! "
]; //Our associative text array
$ jsonString = Marzi:: translate ( $ textArray , ' es ' , true ); //Notice that i have set $assoc (third param) to `true`
$ translationsArray = json_decode ( $ jsonString , true );
//Now you can access the translations by their old index names
$ header = $ translationsArray [ ' header ' ][ ' translatedText ' ];
$ body = $ translationsArray [ ' body ' ][ ' translatedText ' ];
$ footer = $ translationsArray [ ' footer ' ][ ' translatedText ' ];
Hinweis: Wenn Sie
$assoc
auftrue
setzen und ein sequentielles Array bereitstellen, wird eine Ausnahme ausgelöst.
translateTo
Methode: Diese Methode ist (vielleicht) die umgekehrte Version der vorherigen Funktion. Anstatt ein array
von Strings zu verwenden, nimmt diese Methode einen string
und übersetzt ihn in ein Array von Sprachen. Beispiel:
$ jsonString = Mirza:: translateTo ( ' My awesome text ' , [ ' ar ' , ' tr ' , ' de ' ]);
Das obige Beispiel gibt json string
mit der folgenden Struktur zurück:
[
{
" originalText ":"My awesome text",
"originalLanguage": "en",
"text":{
" ar":" u0628 u0644 u062f u064a u0627 u0644 u0646 u0635 u0631 u0647 u064a u0628 u0629 " ,
" tr":" M u00fcthi u015f metin",
" de " :"Meine wunderbare text"
}
}
]
Möglicherweise ist Ihnen aufgefallen, dass einige der Zeichen im Unicode-Format vorliegen. Wenn Sie es später
echo
, wird es jedoch korrekt angezeigt.
Jetzt können wir diesen json string
ganz einfach dekodieren und wie folgt auf unsere Daten zugreifen:
$ translations = json_decode ( $ jsonString , true ); //Our PHP array
$ originalText = $ translations [ ' originalText ' ];
$ originalLanguage = $ translations [ ' originalLanguage ' ];
$ ar_translation = $ translations [ ' text ' ][ ' ar ' ];
$ tk_translation = $ translations [ ' text ' ][ ' tr ' ];
$ de_translation = $ translations [ ' text ' ][ ' de ' ];
detectLanguage
. Manchmal müssen Sie erkennen, in welcher Sprache ein Text geschrieben ist. Die Methode detectLanguage
ist genau für diesen Zweck gedacht! Wie in der Methodentabelle erwähnt, benötigt diese Methode einen erforderlichen und einen optionalen Parameter. Mit dem optionalen Parameter ( boolean $name
) können wir zwischen der Rückgabe des Sprach-ISO-Codes oder des Sprachnamens wechseln.
Beispiel:
//Leave the $name param empty or set it to `false`
//To return the language ISO code
$ lang = Mirza:: detectLanguage ( ' Hello World! ' );
echo $ lang ; //Outputs "en"
//Setthe $name param to `true`
//To return the language ISO code
$ lang = Mirza:: detectLanguage ( ' Hello World! ' , true );
echo $ lang ; //Outputs "English"
getSupportedLanguages
-MethodeDiese Methode benötigt keine Parameter (sollte es sein, wird aber in einer späteren Version hinzugefügt) und gibt bei Ausführung die Liste aller unterstützten Sprachen zurück.
Beispiel:
//Save the json encoded string to the `$supportedLanguages` variable
$ supportedLanguages = Mirza:: getSupportedLanguages ();
echo $ supportedLanguages ;
/* Outputs the json string in the following format:
[
{ 'lang_code' => 'lang_name' },
{ 'lang_code' => 'lang_name' },
]
*/
Ich wollte nicht die gesamte Ausgabe einschließen, weil sie so lang ist, aber falls Sie trotzdem neugierig sind: Ich war darauf vorbereitet! Hier ist ein Screenshot:
Lassen Sie uns diesen json string
dekodieren und ein wenig spielen!
//Decode json string and wrap it into a PHP array
$ langsArray = json_decode ( $ supportedLanguages , true );
Nehmen wir an, wir haben einen Sprachcode, wissen aber nicht, auf welche Sprache er sich bezieht. Diese Zeile würde uns in einem solchen Fall sehr helfen:
echo $ langsArray [ ' tr ' ]; //Outputs "Turkish"
Angenommen, wir haben einen Sprachnamen, kennen aber den ISO-Code nicht: EASY PEASY! Wir können es mit der PHP-Funktion array_flip
machen
$ flippedArray = array_flip ( $ langsArray );
/* The values are now keys! Cool right? */
$ languageCode = $ flippedArray [ ' Sinhalese ' ];
echo $ languageCode ; //Outputs "si"
translateToAll
-MethodeBeispiel:
//Save the json string to a variable
$ myStringInAllLanguages = Mirza:: translateToAll ( ' My string ' );
echo $ myStringInAllLanguages ;
/*Outputs a similar string to the `translateTo` method but
with all supported languages*/
@translate
: Ermöglicht Ihnen, einen bestimmten Text unterwegs in eine bestimmte Sprache zu übersetzen
Beispiel:
@translate('Welcome', 'fr') <!-- Outputs "Bienvenue" -->
@yandex_rights
: Wenn Sie die Yandex.Translate-Anforderungen für die Verwendung von Übersetzungsergebnissen gelesen haben, wissen Sie, dass diese Anweisung sehr nützlich sein wird.
Als erstes Argument müssen Sie die color
und als zweites die font-size
angeben.
Beispiel:
@yandex_rights('black', '16px');
<!-- Output -->
< a href =' https://translate.yandex.com/ ' target =' _blank ' style =' font-size:16px;color:black; ' > Powered by Yandex.Translate </ a >
@languages_select
: Erzeugt ein HTML <select>
mit der Liste aller unterstützten Sprachen.Beispiel:
@languages_select
<!-- Output -->
< select >
< option value =" lang_code " > Lang_Name </ option >
< option value =" lang_code " > Lang_Name </ option >
< option value =" lang_code " > Lang_Name </ option >
</ select >
Alles in Mirza soll einfach und lesbar sein. Wenn Sie nur einen Blick auf den Quellcode werfen, werden Sie im Handumdrehen verstehen, was passiert. Aber keine Sorge, ich habe Ihnen den Kampf erspart und eine Tabelle mit der Liste der Methoden erstellt, die Mirza Translator bietet.
Verfahren | Parameter | Rückgaben | Würfe | Beschreibung |
---|---|---|---|---|
übersetzen | string $text string $lang Optional: string $format [html|plain] (Default: "Plain") | Zeichenfolge | Ausnahme: Wenn der Text nicht übersetzt werden konnte. | Übersetzt einen gegebenen $text in eine gegebene $lang (Sprache) |
TranslateTo | string $text array $langs | Zeichenfolge (json) | Ausnahme: Wenn eine oder mehrere Sprachen nicht unterstützt werden. | Übersetzen Sie einen bestimmten $text in mehrere $langs (Sprachen) |
TranslateArray | array $textArray string $lang Optional: bool $assoc (Default: false) | Zeichenfolge (json) | Ausnahme: 1. Wenn die Zielsprache nicht unterstützt wird. 2. Wenn $assoc auf true gesetzt ist und das angegebene Array nicht assoziativ ist. | Übersetzt ein $textArray (Textarray) in eine bestimmte $lang (Sprache)Hinweis: Wenn $assoc auf true gesetzt ist, hat die zurückgegebene JSON-Zeichenfolge dieselben Indexnamen |
Erkennungssprache | string $text Optional: bool $langName | Zeichenfolge | Ausnahme: 1. Wenn der Sprachcode nicht gefunden wird. 2. Wenn der Sprachname nicht gefunden wird | Erkennt die Sprache eines bestimmten $text und gibt den Sprachcode zurückHinweis: Wenn $langName auf true gesetzt ist, wird stattdessen der vollständige Name der Sprache zurückgegeben. |
getSupportedLanguages | Keiner | Zeichenfolge (json) | Ausnahme: Wenn beim Versuch, die Liste der unterstützten Funktionen abzurufen, ein unbekannter Fehler auftritt | Gibt eine JSON-Zeichenfolge zurück, die die Liste aller unterstützten Sprachen enthält |
TranslateToAll | string $text | Zeichenfolge (json) | Keiner | Übersetzt eine Zeichenfolge ( $text ) in alle unterstützten Sprachen.Hinweis: Dies kann eine Weile dauern und eine PHP max_execution_time TIMEOUT Exception verursachen |
yandex_rights | Optional: string $color (Default: #fff) string $fontsize (Default: 14px) | Zeichenfolge | Keiner | Gibt die Zeichenfolge der Linkzeichenfolge „Powered By Yandex.Translate“ zurück. Wird auch über blade Direktive @yandex_rights aufgerufen.Hinweis: Weitere Informationen zu den Anforderungen an Schriftgröße, Farbe und Platzierung finden Sie unter Yandex Translate: Anforderungen für die Verwendung von Übersetzungsergebnissen. |
language_select | Keiner | Zeichenfolge | Keiner | Gibt die Zeichenfolge eines HTML <select> -Tags mit der Liste aller verfügbaren Sprachen zurück.Wird auch über blade Direktive @languages_select aufgerufen |
Richtlinie | Parameter | Beschreibung |
---|---|---|
@yandex_rights | Optional: string $color (Default: #fff) string $fontsize (Default: 14px) | Erzeugt einen HTML-Link für den Text „Powered By Yandex.Translate“. |
@languages_select | Keiner | Erzeugt ein HTML <select> -Tag mit der Liste aller verfügbaren Sprachen. |
@translate | string $text string $lang | Übersetzen Sie eine gegebene $text Zeichenfolge in eine gegebene $lang (Sprache) |
Mirza wurde nur von einer Person getestet (offensichtlich von mir?), was bedeutet, dass es bei anderen zu Problemen kommen kann. Wenn bei Ihrer Mirza -Installation etwas schief gelaufen ist oder Sie denken, dass noch etwas fehlt, lassen Sie es mich bitte wissen, indem Sie ein neues Problem einreichen.