PHPackages                             huangkuan/laravel-translator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. huangkuan/laravel-translator

ActiveLibrary[Localization &amp; i18n](/categories/localization)

huangkuan/laravel-translator
============================

v1.0.1(2y ago)025MITPHP

Since Sep 16Pushed 2y ago1 watchersCompare

[ Source](https://github.com/huangkuan123/laravel-translator)[ Packagist](https://packagist.org/packages/huangkuan/laravel-translator)[ RSS](/packages/huangkuan-laravel-translator/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (3)Used By (0)

这是一个集成了多个翻译平台的 `文本翻译` 组件，具有一定的可扩展性。
-----------------------------------

[](#这是一个集成了多个翻译平台的-文本翻译-组件具有一定的可扩展性)

---

现有集成平台：
1. 百度翻译开放平台
2. 百度智能机器翻译平台
3. 有道翻译
4. 阿里机器翻译
5. 腾讯机器翻译

注意，这一切都是文本翻译。其中部分平台主推使用他们的 `SDK`，本组件并未使用他们提供的`SDK`，因为这仅是文本翻译的组件。 该包统一使用 `HTTP` 客户端，用`POST`方法进行请求，这也是大多数组件推荐的请求方式。

安装方式
----

[](#安装方式)

1. 下载

```
composer require huangkuan/laravel-translator:v1.0.1

```

2. 发布配置文件

```
 php artisan vendor:publish --tag=laravel-translator
 或
 php artisan vendor:publish --provider=Huangkuan\LaravelTranslator\Providers\TranslatorServiceProvider

```

使用方式
----

[](#使用方式)

### 获取实例的几种方式

[](#获取实例的几种方式)

```
    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' => '1@qq.com']
            ]
        );
    //获取响应结果
    $result =  $rep->getResult();
    //获取全部响应
    $msg = $rep->getMsg();
```

```
$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 [▶],//原始响应头信息，每个组件都不一样
]

```

### 动态切换翻译组件

[](#动态切换翻译组件)

```
    //默认组件
    $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();
```

trans 方法的第四个参数
--------------

[](#trans-方法的第四个参数)

有时候我们会自定义一些数据，进行请求，可能是想往`post`数据中加一些东西， 有时候想往请求头中加一些，有时候是想对`Http`客户端进行一些配置。这个时候我们可以灵活使用 `trans`方法的第四个参数(args)。这个参数是非常有用的。
**这个参数将会覆盖掉原有的默认值**,如下图，某组件默认采用的请求头 格式为：`Content-Type : application/x-www-form-urlencoded`,下面这段代码将会将 `Content-Type` 替换成 `application/json`。

```
    $rep = $translator->trans('zh', 'en', '你好世界!',
            [
                'options'=>['verify' => false],
                'posts'=> ['email' => '1@qq.com'],
                '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' => '我是上下文环境的文本内容']
            ]
        );
```

自定义翻译组件
-------

[](#自定义翻译组件)

1. 需继承 `Huangkuan\LaravelTranslator\BaseTranslat` 这个类。
2. 按需重写 `BaseTranslat` 中的方法。可以参考已有组件的写法。
3. 在配置文件 `translator.php` 配置文件中 `plugs` 注册自己的组件。

优化建议
----

[](#优化建议)

1. 可以将多个短文本，以符号分割并连接起来，进行翻译，能够节约网络资源。有些组件是按次收费，有些按翻译字数收费，可根据收费标准进行优化。
2. 如果是短文本，可以将已翻译的文本存储起来，下次调用接口前，先查是否有翻译过这个文本，可以节约网络资源和接口费用。

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

1022d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/19512093?v=4)[黄宽](/maintainers/huangkuan123)[@huangkuan123](https://github.com/huangkuan123)

### Embed Badge

![Health badge](/badges/huangkuan-laravel-translator/health.svg)

```
[![Health](https://phpackages.com/badges/huangkuan-laravel-translator/health.svg)](https://phpackages.com/packages/huangkuan-laravel-translator)
```

###  Alternatives

[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1927.0k1](/packages/smmoosavi-php-gettext)[saeven/circlical-po-editor

Gettext \*.PO file editor and parser for PHP.

118.1k1](/packages/saeven-circlical-po-editor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
