Mirza Translator memberi Anda kemampuan untuk menerjemahkan dan memanipulasi teks dengan mudah menggunakan Yandex.Translate API.
Ayo siapkan ini dengan sangat cepat hanya dalam tiga langkah saja!
Arahkan ke folder instalasi Laravel Anda melalui terminal/cmd dan jalankan composer require yak0d3/ Mirza_Yandex_Translator atau tambahkan "yak0d3/ Mirza_Yandex_Translator ": "^1.0.0" secara manual ke composer.json Anda.
Publikasikan file konfigurasi menggunakan salah satu metode berikut:
php artisan vendor:publish --provider="yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider"php artisan vendor:publish dan ketik nomor di belakang yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider lalu tekan Enter Tambahkan variabel lingkungan ke file .env Anda dengan nama YANDEX_API dan tetapkan nilainya ke Kunci API Yandex.Translate Anda sendiri. ( misalnya YANDEX_API=MY_YANDEX_API_KEY )
Catatan : Anda bisa mendapatkan Kunci API GRATIS dari Dasbor Pengembang Yandex.Translate
Panduan penggunaan cepat hanya dimaksudkan untuk menjelaskan penggunaan dasar paket ini, untuk daftar metode dan informasi relatifnya (Parameter, Tipe Pengembalian, dll..) lompat ke bagian metode atau lompat ke bagian arahan untuk melihat daftar arahan blade yang tersedia.
Mirza::detectLanguage('Welcome');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!"
}
}Catatan: Anda dapat memecahkan kode string ini dengan menggunakan fungsi
json_decode.
$textArray = ['Hello','My Dear','Friend'];Mirza::translateArray($textArray,'fr');[
{
" originalText ": "Hello",
"translatedText": "Bonjour"
},
{
"originalText": "My dear",
"translatedText": "Mon cher"
},
{
"originalText": "Friend",
"translatedText": " Ami"
}
]Catatan: Anda dapat memecahkan kode string ini dengan menggunakan fungsi
json_decode.
Masih belum mengerti? Lihatlah Dokumentasi di bawah ini dan kebingungan akan hilang!
Mari kita admin, tidak semua orang di sini akan merasa mudah untuk mulai menggunakan paket ini, jadi mari kita coba memahami apa yang terjadi bersama. Bagian ini akan membahas penggunaan setiap metode yang disediakan oleh Mirza Yandex Translator , berikut daftar isinya:
translatetranslateArraytranslateTodetectLanguagegetSupportedLanguagestranslateToAll@translate arahan@yandex_rights@languages_select arahantranslateContoh:
$ 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!"translateArrayPerhatikan bahwa semua string
jsonperlu didekodekan menggunakan fungsi PHPjson_decode. Tip: Untuk mengembalikan array PHP, atur argumen keduajson_decodeketrue( misalnyajson_decode($jsonString, true);).
Jika Anda lebih suka memanipulasijson objects, biarkan argumen kedua kosong atau setel kefalse.
Mirza::translateArray(['Hello', 'My Dear', 'Friend'],'fr'); metode ini menerjemahkan larik teks tertentu ke dalam larik ini dalam kasus kita ['Hello', 'My Dear', 'Friend'] dan menerjemahkannya ke bahasa tertentu yaitu bahasa Prancis dalam contoh kita.
Fungsi ini mengembalikan string json encoded seperti berikut:
[
{
" originalText ": "Hello",
"translatedText": "Bonjour"
},
{
"originalText": "My dear",
"translatedText": "Mon cher"
},
{
"originalText": "Friend",
"translatedText": " Ami"
}
] Seperti yang Anda lihat, json string keluaran berada dalam urutan yang sama dengan array masukan, sekarang kita dapat mengakses setiap elemen ini dengan mendekode string seperti ini:
$ 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 ' ];Mudah, bukan? Namun akan lebih mudah jika Anda menyetel parameter $assoc ke true sehingga Anda dapat mengakses terjemahan string berdasarkan nama indeksnya (yang telah Anda setel secara manual). Tidak ada orang yang bingung di sini, berikut ini contohnya:
$ 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 ' ];Catatan: Jika Anda menyetel
$assocketruedan menyediakan array berurutan, pengecualian akan diberikan.
translateTo : Metode ini (mungkin) merupakan versi kebalikan dari fungsi sebelumnya, alih-alih mengambil array string, metode ini mengambil satu string dan menerjemahkannya ke dalam array bahasa. Contoh:
$ jsonString = Mirza:: translateTo ( ' My awesome text ' , [ ' ar ' , ' tr ' , ' de ' ]); Contoh di atas akan mengembalikan json string dengan struktur berikut:
[
{
" 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"
}
}
]Anda mungkin telah memperhatikan bahwa beberapa karakter dalam format Unicode, jangan khawatir jika Anda
echonanti akan ditampilkan dengan benar.
Sekarang kita dapat dengan mudah memecahkan kode json string ini dan mengakses data kita seperti:
$ 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 Terkadang Anda perlu mendeteksi dalam bahasa apa suatu teks ditulis, metode detectLanguage dibuat hanya untuk masalah ini! Seperti yang disebutkan dalam tabel metode, metode ini memerlukan satu parameter wajib dan satu parameter opsional. Parameter opsional ( boolean $name ) memungkinkan kita beralih antara mengembalikan kode ISO bahasa atau nama bahasa.
Contoh:
//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"getSupportedLanguagesMetode ini tidak menggunakan parameter (seharusnya, tetapi akan ditambahkan di versi yang lebih baru) dan jika dijalankan, metode ini akan mengembalikan daftar semua bahasa yang didukung.
Contoh:
//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' },
]
*/Saya tidak ingin memasukkan keluaran keseluruhannya karena panjang sekali, tetapi jika Anda masih penasaran, saya sudah siap untuk ini! Berikut tangkapan layarnya:
Mari kita pecahkan kode json string ini dan mainkan sedikit!
//Decode json string and wrap it into a PHP array
$ langsArray = json_decode ( $ supportedLanguages , true );Katakanlah kita memiliki kode bahasa, tetapi kita tidak tahu bahasa apa yang dirujuknya, baris ini akan banyak membantu kita dalam kasus seperti ini:
echo $ langsArray [ ' tr ' ]; //Outputs "Turkish" Sekarang misalkan kita memiliki nama bahasa, tetapi kita tidak mengetahui kode ISO-nya, EASY PEASY! Kita bisa melakukannya dengan fungsi array_flip PHP
$ flippedArray = array_flip ( $ langsArray );
/* The values are now keys! Cool right? */
$ languageCode = $ flippedArray [ ' Sinhalese ' ];
echo $ languageCode ; //Outputs "si"translateToAllContoh:
//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 : Memungkinkan Anda menerjemahkan teks tertentu ke bahasa tertentu saat bepergian
Contoh:
@translate('Welcome', 'fr') <!-- Outputs "Bienvenue" --> @yandex_rights : Jika Anda telah membaca persyaratan Yandex.Translate untuk penggunaan hasil terjemahan, Anda pasti tahu bahwa arahan ini akan sangat berguna.
Anda harus menentukan color sebagai argumen pertama dan font-size sebagai argumen kedua.
Contoh:
@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 : Menghasilkan HTML <select> dengan daftar semua bahasa yang didukung.Contoh:
@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 > Segala sesuatu di Mirza dimaksudkan agar mudah dan mudah dibaca, hanya dengan melihat kode sumbernya Anda akan memahami apa yang terjadi dalam waktu singkat. Tapi jangan khawatir, saya telah menyelamatkan Anda dari kesulitan dan membuat tabel berisi daftar metode yang disediakan Mirza Translator .
| Metode | Parameter | Kembali | Melempar | Keterangan |
|---|---|---|---|---|
| menerjemahkan | string $textstring $langOpsional: string $format [html|plain] (Default: "Plain") | Rangkaian | Pengecualian: Jika teks tidak dapat diterjemahkan. | Menerjemahkan $text tertentu ke $lang (bahasa) tertentu |
| terjemahkan Ke | string $textarray $langs | Tali (json) | Pengecualian: Jika satu atau beberapa bahasa tidak didukung. | Terjemahkan $text tertentu ke beberapa $langs (bahasa) |
| menerjemahkanArray | array $textArraystring $langOpsional: bool $assoc (Default: false) | Tali (json) | Pengecualian: 1. Jika bahasa target tidak didukung. 2. Jika $assoc disetel ke true dan array yang diberikan tidak bersifat asosiatif. | Menerjemahkan $textArray (array teks) ke $lang (bahasa) tertentuCatatan: Jika $assoc disetel ke true , string json yang dikembalikan akan memiliki nama indeks yang sama |
| mendeteksiBahasa | string $textOpsional: bool $langName | Rangkaian | Pengecualian: 1. Jika kode bahasa tidak ditemukan. 2. Jika nama bahasa tidak ditemukan | Mendeteksi bahasa $text tertentu dan mengembalikan kode bahasaCatatan: Jika $langName disetel ke true , nama lengkap bahasa akan dikembalikan. |
| dapatkanBahasa yang Didukung | Tidak ada | Tali (json) | Pengecualian: Jika terjadi kesalahan yang tidak diketahui saat mencoba mengambil daftar fungsi yang didukung | Mengembalikan string json yang berisi daftar semua bahasa yang didukung |
| terjemahkanToAll | string $text | Tali (json) | Tidak ada | Menerjemahkan string ( $text ) ke semua bahasa yang didukung.Catatan: Ini mungkin memakan waktu cukup lama dan menyebabkan PHP max_execution_time TIMEOUT Exception |
| yandex_rights | Opsional: string $color (Default: #fff)string $fontsize (Default: 14px) | Rangkaian | Tidak ada | Mengembalikan string string tautan "Didukung Oleh Yandex.Translate". Juga dipanggil melalui arahan blade @yandex_rights .Catatan: Silakan merujuk ke Terjemahan Yandex: Persyaratan penggunaan hasil terjemahan untuk mengetahui lebih banyak tentang ukuran font, warna, dan persyaratan penempatan. |
| bahasa_pilih | Tidak ada | Rangkaian | Tidak ada | Mengembalikan string tag HTML <select> dengan daftar semua bahasa yang tersedia.Juga dipanggil melalui arahan blade @languages_select |
| Direktif | Parameter | Keterangan |
|---|---|---|
@yandex_rights | Opsional: string $color (Default: #fff)string $fontsize (Default: 14px) | Menghasilkan tautan HTML untuk teks "Didukung Oleh Yandex.Translate". |
@languages_select | Tidak ada | Menghasilkan tag HTML <select> dengan daftar semua bahasa yang tersedia. |
@translate | string $textstring $lang | Terjemahkan string $text tertentu ke $lang (bahasa) tertentu |
Mirza telah diuji hanya oleh satu orang (tentu saja saya?), yang berarti masalah mungkin terjadi pada orang lain, jika ada yang salah dengan instalasi Mirza Anda atau Anda merasa masih ada yang hilang, beri tahu saya dengan mengirimkan masalah baru.