PHP code example of huangkuan / laravel-translator

1. Go to this page and download the library: Download huangkuan/laravel-translator library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

huangkuan / laravel-translator example snippets


    use Huangkuan\LaravelTranslator\Translator;
    use Huangkuan\LaravelTranslator\LaravelTranslator;
    //方式 1,使用 translator.php 配置文件中的默认组件(default键对应值)。
    $translator = new Translator();
    //方式 2,使用 translator.php 配置文件中 plugs 键中数组中的键,以切换组件,如 baidu_open
    $translator = new Translator('baidu_open'); 
    //方式 3. 从容器中获取实例
    $translator = app('laravel-translator');//获取到的组件为默认组件
    //方式 4. 使用门面直接调用。
    LaravelTranslator::xxx();

    //以 第一种获取实例为例
    $translator = new Translator();
    //最简使用方式,trans 方法入参顺序,源语言,目标语言,待翻译语句,其他参数(数组).
    $rep = $translator->trans('zh', 'en', '你好世界!',
            [
                'options'=>['verify' => false],
                'posts'=> ['email' => '[email protected]']
            ]
        );
    //获取响应结果
    $result =  $rep->getResult();
    //获取全部响应
    $msg = $rep->getMsg();

    //默认组件
    $translator = new Translator();
    //切换成有道组件
    $translator->setPlugs(new \Huangkuan\LaravelTranslator\Plugs\Youdao());
    //切换成阿里云组件
    $translator->setPlugs(new \Huangkuan\LaravelTranslator\Plugs\Aliyun());
    //链式调用
     $translator->setPlugs(new \Huangkuan\LaravelTranslator\Plugs\XXX())->trans();
    //门面切换
    \Huangkuan\LaravelTranslator\LaravelTranslator::setPlugs()->trans();

    $rep = $translator->trans('zh', 'en', '你好世界!',
            [
                'options'=>['verify' => false],
                'posts'=> ['email' => '[email protected]'],
                'headers'=>['Content-Type'=>'application/json']
            ]
        );
    //从上面这个例子中可以看出来
    //1.如果想往请求的post数据中,增加数据,那可以放到posts数组中。
    //2.如果想在 Http 客户端中,增加配置,比如 SSL 验证关闭,可以放到options数组中。
    //3.如果想放在请求头中,则应该放入到 headers 数组中。

    //以阿里组件为例,它可以在 POST 接收一个`Context` 参数,来表示待翻译文本的上下文环境。
    //从而给出更准确的翻译内容,而这个参数是非必填的。这时我们可以使用第四个参数中的posts。
    $translator->setPlugs(new \Huangkuan\LaravelTranslator\Plugs\Aliyun());
    $rep = $translator->trans('zh', 'en', '你好世界!',
            [
                'options'=>['verify' => false],
                'posts'=> ['Context' => '我是上下文环境的文本内容']
            ]
        );

 php artisan vendor:publish --tag=laravel-translator
 或
 php artisan vendor:publish --provider=Huangkuan\LaravelTranslator\Providers\TranslatorServiceProvider
text
$result 结构:
array: 2 [
▼
"status" => true, //是否翻译成功
"text" => "hello world",//翻译结果
]

$msg 结构:
array: 4 [
▼
"http_code" => 200, //http响应码
"err" => "zh-CHS2en", //如果未翻译成功,这个字段为错误信息
"raw" => "{"returnPhrase":["你好世界"],"query":"你好世界","errorCode":"0"...},//原始响应body,每个组件都不一样。
"rep_headers" => array: 14 [▶],//原始响应头信息,每个组件都不一样
]