Mirza Translator ช่วยให้คุณสามารถแปลและจัดการข้อความได้อย่างง่ายดายโดยใช้ Yandex.Translate API
มาตั้งค่านี้อย่างรวดเร็วในเวลา เพียง สามขั้นตอนเท่านั้น!
นำทางไปยังโฟลเดอร์การติดตั้ง Laravel ของคุณผ่านทางเทอร์มินัล/cmd และเรียกใช้ composer require yak0d3/ Mirza_Yandex_Translator
หรือเพิ่ม "yak0d3/ Mirza_Yandex_Translator ": "^1.0.0"
ด้วยตนเองไปยัง composer.json
ของคุณ
เผยแพร่ไฟล์การกำหนดค่าโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
php artisan vendor:publish --provider="yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider"
php artisan vendor:publish
และพิมพ์หมายเลขด้านหลัง yak0d3 Mirza_Yandex_Translator TMirzaServiceProvider
จากนั้นกด Enter
เพิ่มตัวแปรสภาพแวดล้อมให้กับไฟล์ .env
ของคุณด้วยชื่อ YANDEX_API
และตั้งค่าเป็นคีย์ Yandex.Translate API ของคุณเอง ( เช่น YANDEX_API=MY_YANDEX_API_KEY
)
หมายเหตุ : คุณสามารถรับคีย์ API ฟรีได้จาก Yandex.Translate Developers Dashboard
คู่มือการใช้งานฉบับย่อ มีไว้เพื่ออธิบายการใช้งานพื้นฐานของแพ็คเกจนี้เท่านั้น สำหรับรายการวิธีการและข้อมูลที่เกี่ยวข้อง (พารามิเตอร์ ประเภทการคืนสินค้า ฯลฯ) ให้ข้ามไปที่ส่วนวิธีการหรือข้ามไปยังส่วนคำสั่งเพื่อดูรายการ คำสั่ง blade
ที่มีอยู่
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!"
}
}
หมายเหตุ: คุณสามารถถอดรหัสสตริงนี้ได้โดยใช้ฟังก์ชัน
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"
}
]
หมายเหตุ: คุณสามารถถอดรหัสสตริงนี้ได้โดยใช้ฟังก์ชัน
json_decode
ยังไม่ได้รับมัน? ดูเอกสารด้านล่างแล้วความสับสนจะหมดไป!
มาดูแลกัน ไม่ใช่ทุกคนในที่นี้จะพบว่าการเริ่มใช้แพ็คเกจนี้เป็นเรื่องง่าย ดังนั้นเรามาลองทำความเข้าใจว่าเกิดอะไรขึ้นด้วยกัน ในส่วนนี้จะครอบคลุมการใช้งานแต่ละวิธีของ Mirza Yandex Translator นี่คือสารบัญ:
translate
translateArray
translateTo
detectLanguage
getSupportedLanguages
translateToAll
@translate
คำสั่ง@yandex_rights
@languages_select
คำสั่งtranslate
ตัวอย่าง:
$ 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
โปรดทราบ ว่าสตริง
json
ทั้งหมดจำเป็นต้องถอดรหัสโดยใช้ฟังก์ชัน PHPjson_decode
เคล็ดลับ: หากต้องการส่งคืนอาร์เรย์ PHP ให้ตั้งค่าอาร์กิวเมนต์ที่สองของjson_decode
เป็นtrue
( เช่นjson_decode($jsonString, true);
)
หากคุณต้องการจัดการjson objects
ให้ปล่อยอาร์กิวเมนต์ที่สองว่างไว้หรือตั้งค่าเป็นfalse
Mirza::translateArray(['Hello', 'My Dear', 'Friend'],'fr');
วิธีนี้จะแปลอาร์เรย์ของข้อความที่กำหนด ซึ่งในกรณีของเราคืออาร์เรย์ ['Hello', 'My Dear', 'Friend']
และแปลเป็นภาษาที่กำหนดซึ่งเป็นภาษาฝรั่งเศสในตัวอย่างของเรา
ฟังก์ชันนี้ส่งคืนสตริง json encoded
ดังต่อไปนี้:
[
{
" originalText ": "Hello",
"translatedText": "Bonjour"
},
{
"originalText": "My dear",
"translatedText": "Mon cher"
},
{
"originalText": "Friend",
"translatedText": " Ami"
}
]
อย่างที่คุณเห็น json string
อยู่ในลำดับเดียวกันกับอาร์เรย์อินพุต ตอนนี้เราสามารถเข้าถึงแต่ละองค์ประกอบเหล่านี้ได้โดยการถอดรหัสสตริงดังนี้:
$ 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 ' ];
ง่ายใช่มั้ย? แต่อาจง่ายกว่านี้หากคุณตั้งค่าพารามิเตอร์ $assoc เป็น true เพื่อให้คุณสามารถเข้าถึงการแปลสตริงด้วยชื่อดัชนี (ที่คุณตั้งค่าด้วยตนเอง) ไม่มีร่างกายใด สับสนที่นี่ นี่คือตัวอย่าง:
$ 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 ' ];
หมายเหตุ: หากคุณตั้งค่า
$assoc
เป็นtrue
และระบุอาร์เรย์ตามลำดับ ข้อยกเว้นจะถูกส่งออกไป
translateTo
: วิธีนี้เป็น (อาจเป็น) เวอร์ชันย้อนกลับของฟังก์ชันก่อนหน้า แทนที่จะรับ array
ของสตริง วิธีนี้จะรับหนึ่ง string
และแปลเป็นอาร์เรย์ของภาษา ตัวอย่าง:
$ jsonString = Mirza:: translateTo ( ' My awesome text ' , [ ' ar ' , ' tr ' , ' de ' ]);
ตัวอย่างข้างต้นจะส่งคืน json string
ที่มีโครงสร้างดังต่อไปนี้:
[
{
" 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"
}
}
]
คุณอาจสังเกตเห็นว่าอักขระบางตัวอยู่ในรูปแบบ Unicode ไม่ต้องกังวลหากคุณ
echo
ในภายหลัง อักขระดังกล่าวจะแสดงอย่างถูกต้อง
ตอนนี้เราสามารถถอดรหัส json string
นี้ได้อย่างง่ายดายและเข้าถึงข้อมูลของเราดังนี้:
$ 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
บางครั้งคุณจำเป็นต้องตรวจสอบว่าข้อความนั้นเขียนเป็นภาษาใด วิธีการ detectLanguage
ถูกสร้างขึ้นมาเพื่อเรื่องนี้โดยเฉพาะ! ตามที่กล่าวไว้ในตารางวิธีการ วิธีการนี้ใช้พารามิเตอร์ที่จำเป็นหนึ่งตัวและเป็นทางเลือกหนึ่งตัว พารามิเตอร์ทางเลือก ( boolean $name
) ช่วยให้เราสลับระหว่างการส่งคืนรหัส ISO ของภาษาหรือชื่อภาษา
ตัวอย่าง:
//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
เมธอดนี้ไม่ใช้พารามิเตอร์ (ควร แต่จะถูกเพิ่มในเวอร์ชันที่ใหม่กว่า) และหากดำเนินการก็จะส่งคืนรายการภาษาที่รองรับทั้งหมด
ตัวอย่าง:
//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' },
]
*/
ฉันไม่ต้องการรวมผลลัพธ์ทั้งหมดเพราะมันยาวมาก แต่ถ้าคุณยังสงสัยเกี่ยวกับเรื่องนี้ ฉันก็เตรียมไว้ให้แล้ว! นี่คือภาพหน้าจอ:
มาถอดรหัส json string
นี้แล้วเล่นกันสักหน่อย!
//Decode json string and wrap it into a PHP array
$ langsArray = json_decode ( $ supportedLanguages , true );
สมมติว่าเรามีรหัสภาษา แต่เราไม่รู้ว่ามันหมายถึงภาษาอะไร บรรทัดนี้จะช่วยเราได้มากในกรณีเช่นนี้:
echo $ langsArray [ ' tr ' ]; //Outputs "Turkish"
สมมติว่าเรามีชื่อภาษา แต่เราไม่รู้รหัส ISO EASY PEASY! เราสามารถทำได้ด้วยฟังก์ชัน PHP array_flip
$ flippedArray = array_flip ( $ langsArray );
/* The values are now keys! Cool right? */
$ languageCode = $ flippedArray [ ' Sinhalese ' ];
echo $ languageCode ; //Outputs "si"
translateToAll
ตัวอย่าง:
//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
: ช่วยให้คุณสามารถแปลข้อความที่กำหนดเป็นภาษาที่ต้องการได้ทุกที่
ตัวอย่าง:
@translate('Welcome', 'fr') <!-- Outputs "Bienvenue" -->
@yandex_rights
: หากคุณได้อ่านข้อกำหนดของ Yandex.Translate สำหรับการใช้ผลการแปล คุณจะรู้ว่าคำสั่งนี้จะมีประโยชน์มาก
คุณต้องระบุ color
เป็นอาร์กิวเมนต์แรกและ font-size
เป็นอาร์กิวเมนต์ที่สอง
ตัวอย่าง:
@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
: สร้าง HTML <select>
พร้อมรายการภาษาที่รองรับทั้งหมดตัวอย่าง:
@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 >
ทุกสิ่งใน Mirza ตั้งใจให้ง่ายและอ่านง่าย เพียงแค่ดู ซอร์สโค้ด คุณจะเข้าใจสิ่งที่เกิดขึ้นในเวลาอันรวดเร็ว แต่ไม่ต้องกังวล ฉันช่วยคุณได้และได้สร้างตารางที่มีรายการวิธีการที่ Mirza Translator จัดเตรียมไว้ให้
วิธี | พารามิเตอร์ | การส่งคืน | ขว้าง | คำอธิบาย |
---|---|---|---|---|
แปล | string $text string $lang ทางเลือก: string $format [html|plain] (Default: "Plain") | สตริง | ข้อยกเว้น: หากไม่สามารถแปลข้อความได้ | แปล $text ที่กำหนดให้เป็น $lang (ภาษา) ที่กำหนด |
แปลถึง | string $text array $langs | สตริง (json) | ข้อยกเว้น: หากไม่รองรับภาษาใดภาษาหนึ่งขึ้นไป | แปล $text ที่กำหนดเป็นหลายภาษา $langs (ภาษา) |
แปลArray | array $textArray string $lang ทางเลือก: bool $assoc (Default: false) | สตริง (json) | ข้อยกเว้น: 1. หากไม่รองรับภาษาเป้าหมาย 2. หาก $assoc ถูกตั้งค่าเป็น true และอาร์เรย์ที่กำหนดไม่เชื่อมโยงกัน | แปล $textArray (อาร์เรย์ของข้อความ) เป็น $lang (ภาษา) ที่กำหนดหมายเหตุ: หาก $assoc ถูกตั้งค่าเป็น true สตริง json ที่ส่งคืนจะมีชื่อดัชนีเหมือนกัน |
ตรวจจับภาษา | string $text ทางเลือก: bool $langName | สตริง | ข้อยกเว้น: 1. หากไม่พบรหัสภาษา 2. หากไม่พบชื่อภาษา | ตรวจจับภาษาของ $text ที่กำหนดและส่งกลับรหัสภาษาหมายเหตุ: หาก $langName ถูกตั้งค่าเป็น true ชื่อเต็มของภาษาจะถูกส่งกลับแทน |
getSupportedLanguages | ไม่มี | สตริง (json) | ข้อยกเว้น: หากเกิดข้อผิดพลาดที่ไม่ทราบสาเหตุขณะพยายามดึงรายการฟังก์ชันที่รองรับ | ส่งคืนสตริง json ที่มีรายการภาษาที่รองรับทั้งหมด |
แปลถึงทั้งหมด | string $text | สตริง (json) | ไม่มี | แปลสตริง ( $text ) เป็นภาษาที่รองรับทั้งหมดหมายเหตุ: การดำเนินการนี้อาจใช้เวลาสักครู่และทำให้เกิด PHP max_execution_time TIMEOUT Exception |
yandex_rights | ทางเลือก: string $color (Default: #fff) string $fontsize (Default: 14px) | สตริง | ไม่มี | ส่งกลับสตริงของสตริงลิงก์ "ขับเคลื่อนโดย Yandex.Translate" เรียกอีกอย่างว่าผ่านคำสั่ง blade @yandex_rights หมายเหตุ: โปรดดู Yandex Translate: ข้อกำหนดสำหรับการใช้ผลลัพธ์การแปล เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับข้อกำหนดขนาดตัวอักษร สี และการวางตำแหน่ง |
ภาษา_เลือก | ไม่มี | สตริง | ไม่มี | ส่งกลับสตริงของแท็ก HTML <select> พร้อมรายการภาษาที่ใช้ได้ทั้งหมดเรียกอีกอย่างว่าคำสั่ง blade @languages_select |
คำสั่ง | พารามิเตอร์ | คำอธิบาย |
---|---|---|
@yandex_rights | ทางเลือก: string $color (Default: #fff) string $fontsize (Default: 14px) | สร้างลิงก์ HTML สำหรับข้อความ "ขับเคลื่อนโดย Yandex.Translate" |
@languages_select | ไม่มี | สร้างแท็ก HTML <select> พร้อมรายการภาษาที่ใช้ได้ทั้งหมด |
@translate | string $text string $lang | แปลสตริง $text ที่กำหนดให้เป็น $lang (ภาษา) ที่กำหนด |
Mirza ได้รับการทดสอบโดยบุคคลเพียงคนเดียว (แน่นอนว่าฉัน ?) ซึ่งหมายความว่าปัญหาอาจเกิดขึ้นกับผู้อื่น หากมีสิ่งผิดปกติเกิดขึ้นกับการติดตั้ง Mirza ของคุณ หรือคุณคิดว่ายังมีบางอย่างขาดหายไป โปรดแจ้งให้เราทราบโดยส่งปัญหาใหม่