百度翻译和文字转拼音的使用

参考-SEO 友好的 URL(不过是收费的教程额)
我并不是做宣传,但你如果想要购买的话,可以点击这个链接额 https://laravel-china.org/courses?rf=7092

翻译处理器

首先,我们需将翻译的全部逻辑封装为一个类,并放置于 Handlers 文件夹中:

app/Handlers/SlugTranslateHandler.php

pinyin($text);
        }

        // 根据文档,生成 sign
        // http://api.fanyi.baidu.com/api/trans/product/apidoc
        // appid+q+salt+密钥 的MD5值
        $sign = md5($appid. $text . $salt . $key);

        // 构建请求参数
        $query = http_build_query([
            "q"     =>  $text,
            "from"  => "zh",
            "to"    => "en",
            "appid" => $appid,
            "salt"  => $salt,
            "sign"  => $sign,
        ]);

        // 发送 HTTP Get 请求
        $response = $http->get($api.$query);

        $result = json_decode($response->getBody(), true);

        /**
        获取结果,如果请求成功,dd($result) 结果如下:

        array:3 [▼
            "from" => "zh"
            "to" => "en"
            "trans_result" => array:1 [▼
                0 => array:2 [▼
                    "src" => "XSS 安全漏洞"
                    "dst" => "XSS security vulnerability"
                ]
            ]
        ]

        **/

        // 尝试获取获取翻译结果
        if (isset($result['trans_result'][0]['dst'])) {
            return str_slug($result['trans_result'][0]['dst']);
        } else {
            // 如果百度翻译没有结果,使用拼音作为后备计划。
            return $this->pinyin($text);
        }
    }

    public function pinyin($text)
    {
        return str_slug(app(Pinyin::class)->permalink($text));
    }
}

在类实例化以后,我们只需要调用 translate() 方法即可得到翻译的结果。不过目前我们还需安装依赖的扩展包。

使用

$slug = app(SlugTranslateHandler::class)->translate($title);

app() 允许我们使用 Laravel 服务容器 ,此处我们用来生成 SlugTranslateHandler 实例。

1. 安装依赖 Guzzle

Guzzle 库是一套强大的 PHP HTTP 请求套件,我们使用 Guzzle 的 HTTP 客户端来请求 百度翻译 接口。

使用 Composer 安装 Guzzle 类库:

$ composer require "guzzlehttp/guzzle:~6.3"

2. 安装依赖 PinYin

PinYin 是 安正超 开发的,基于 CC-CEDICT 词典的中文转拼音工具,是一套优质的汉字转拼音解决方案。我们使用 PinYin 来作为翻译的后备计划,当百度翻译 API 不可用时,程序会自动使用 PinYin 汉字转拼音方案来生成 Slug。

使用 Composer 安装 PinYin 类库:

$ composer require "overtrue/pinyin:~3.0"

同样的,我们已在 SlugTranslateHandler.php 顶部 use 引入使用。

3. 百度翻译 API 配置信息

当使用百度翻译 API 时,我们需要申请官方授权的 appidkey。打开 百度翻译开放平台,然后点击『申请接入』按钮:

你可能感兴趣的:(百度翻译和文字转拼音的使用)