Mirza 번역기는 Yandex.Translate API를 사용하여 텍스트를 쉽게 번역하고 조작할 수 있는 기능을 제공합니다.
단 3단계만 거치면 매우 빠르게 설정할 수 있습니다!
터미널/cmd를 통해 Laravel 설치 폴더로 이동하고 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
누르세요. YANDEX_API
라는 이름으로 .env
파일에 환경 변수를 추가하고 해당 값을 자신의 Yandex.Translate API 키로 설정하세요. ( 예: YANDEX_API=MY_YANDEX_API_KEY
)
참고 : Yandex.Translate 개발자 대시보드에서 무료 API 키를 얻을 수 있습니다.
빠른 사용 가이드는 이 패키지의 기본 사용법을 설명하기 위한 것입니다. 메소드 목록 및 관련 정보(매개변수, 반환 유형 등)를 보려면 메소드 섹션으로 이동하거나 지시문 섹션으로 이동하여 목록을 확인하세요. 사용 가능한 blade
지시어.
Mirza::detectLanguage('Welcome');
en
: ko 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"
}
}
]
일부 문자가 유니코드 형식으로 되어 있다는 것을 눈치채셨을 것입니다. 나중에 이를
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 $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 문자열을 반환합니다. |
번역ToAll | string $text | 문자열(json) | 없음 | 문자열( $text )을 지원되는 모든 언어로 번역합니다.참고: 이 작업은 다소 시간이 걸릴 수 있으며 PHP max_execution_time TIMEOUT Exception 발생할 수 있습니다. |
yandex_rights | 선택사항: string $color (Default: #fff) string $fontsize (Default: 14px) | 끈 | 없음 | "Powered By Yandex.Translate" 링크 문자열의 문자열을 반환합니다. blade 지시어 @yandex_rights 를 통해서도 호출됩니다.참고: 글꼴 크기, 색상 및 배치 요구 사항에 대한 자세한 내용은 Yandex 번역: 번역 결과 사용 요구 사항을 참조하세요. |
언어_선택 | 없음 | 끈 | 없음 | 사용 가능한 모든 언어 목록과 함께 HTML <select> 태그의 문자열을 반환합니다.blade 지시어 @languages_select 를 통해서도 호출됩니다. |
지령 | 매개변수 | 설명 |
---|---|---|
@yandex_rights | 선택사항: string $color (Default: #fff) string $fontsize (Default: 14px) | "Powered By Yandex.Translate" 텍스트에 대한 HTML 링크를 생성합니다. |
@languages_select | 없음 | 사용 가능한 모든 언어 목록이 포함된 HTML <select> 태그를 생성합니다. |
@translate | string $text string $lang | 주어진 $text 문자열을 주어진 $lang (언어)으로 번역합니다. |
Mirza는 한 사람(분명히 나?)에 의해서만 테스트되었습니다. 즉, 다른 사람에게도 문제가 발생할 수 있다는 의미입니다. Mirza 설치에 문제가 있거나 뭔가가 여전히 누락되었다고 생각되면 새 문제를 제출하여 알려주시기 바랍니다.