zvermafia/transliteration-laravel

zvermafia/transliteration与Laravel的集成

v0.1.3 2020-03-25 16:47 UTC

This package is auto-updated.

Last update: 2024-09-26 03:19:22 UTC


README

Latest Version on Packagist Software License Total Downloads

zvermafia/transliteration与Laravel集成。

按章节导航

安装

通过Composer

$ composer require zvermafia/transliteration-laravel

设置

有两个选项可供选择,aliflotin。使用 alif 选项将使用 alif.uz 的API。而使用 lotin 选项将使用 lotin.uz 的API。
默认选项是 alif。但如果你想将其更改为 lotin 选项,只需在 .env 文件中添加一个值为 lotinTRANSLITERATOR 键即可。

TRANSLITERATOR=lotin

但如果你想通过自己的实现扩展此包,则需要发布包的配置文件并更新它以使用您的选项。

要发布配置文件,只需在项目根目录下执行 php artisan vendor:publish 命令,并选择 Zvermafia\TransliterationLaravel\TransliteratorServiceProvider 作为提供者。

用法

您可以使用 LaraTransliterator 门面,但以下示例将展示另一种方法。假设我们有一个 PoorWorkerController,其中有一个 translit 方法,我们想将请求的文本进行转写(通过POST方法),并以JSON格式返回结果。

<?php

namespace App\Http\Controllers;

// use LaraTransliterator; // but we won't use the facade in this example
use Zvermafia\Transliteration\Interfaces\TransliteratorInterface;

class PoorWorkerController
{
    public function translit(Request $request, TransliteratorInterface $transliterator)
    {
        $result = $transliterator->setText($request->input('text'))
            ->toCyrillic()
            ->translit()
            ->getResult();

        return response()->json(compact('result'));
    }
}

对于AJAX请求,您可以使用现成的控制器!首先,您必须为控制器定义一个路由

// in your routes file
Route::post('translit', '\Zvermafia\TransliterationLaravel\Controllers\TransliteratorController');

以下我们将使用 jQuery 库进行AJAX请求的演示

$.ajax({
    url: '/translit',
    type: 'POST',
    data: {
        // _token: $('meta[name="csrf-token"]').attr('content'),
        text: 'Salom, dunyo!',
        to_cyrillic: 1
    },
    dataType: 'JSON'
})
.done(function (response) {
    if (response.code === 200) {
        alert(response.result);
    } else {
        alert('Something went wrong... Check the console for logs, please.');
        console.log(response);
    }
})
.fail(function (response) {
    console.log('Whoops, something went wrong... Check the response below:');
    console.log(response);
});
// A response will be like below:
{
    "code": 200,
    "text": "Salom, dunyo!",
    "to_cyrillic": 1,
    "result": "Салом, дунё!"
} 

// Or if an error occurs the response code will be different from 200
// and response will be like below:
{
    "code": 200,
    "message": "Transliterated text",
} 

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 了解详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 mohirjon@gmail.com 而不是使用问题跟踪器。

致谢

许可协议

MIT许可(MIT)。请参阅 许可文件 了解更多信息。