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:
translate
translateArray
translateTo
detectLanguage
getSupportedLanguages
translateToAll
@translate
arahan@yandex_rights
@languages_select
arahantranslate
Contoh:
$ 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
Perhatikan bahwa semua string
json
perlu didekodekan menggunakan fungsi PHPjson_decode
. Tip: Untuk mengembalikan array PHP, atur argumen keduajson_decode
ketrue
( 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
$assoc
ketrue
dan 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
echo
nanti 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"
getSupportedLanguages
Metode 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"
translateToAll
Contoh:
//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 $text string $lang Opsional: string $format [html|plain] (Default: "Plain") | Rangkaian | Pengecualian: Jika teks tidak dapat diterjemahkan. | Menerjemahkan $text tertentu ke $lang (bahasa) tertentu |
terjemahkan Ke | string $text array $langs | Tali (json) | Pengecualian: Jika satu atau beberapa bahasa tidak didukung. | Terjemahkan $text tertentu ke beberapa $langs (bahasa) |
menerjemahkanArray | array $textArray string $lang Opsional: 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 $text Opsional: 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 $text string $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.