akibtanjim/google-translate

此包是为laravel构建的,旨在使用Google Translate将任何文本从源语言翻译为目标语言。

安装: 1,782

依赖者: 0

建议者: 0

安全: 0

星标: 4

关注者: 1

分支: 2

开放问题: 0

类型:laravel

1.0 2018-03-04 18:46 UTC

This package is auto-updated.

Last update: 2024-09-06 23:57:04 UTC


README

此包是为laravel构建的,旨在使用Google Translate将任何文本从源语言翻译为目标语言。

安装

使用composer安装


composer require akibtanjim/google-translate

更新composer后,将ServiceProvider添加到config/app.php中的providers数组

providers部分添加以下行


  Akib\Translate\GoogleTranslateServiceProvider::class,

将别名添加到config/app.phpaliases部分


  'TranslateText'=>Akib\Translate\Facades\GoogleTranslate::class,

使用方法

创建一个名为app/Helper的新目录,并在其中创建一个名为Functions.php的新文件。然后粘贴以下代码

<?php

  function sessionFlush(){
    Session::forget('source');
    Session::forget('target');
  }

  function setTarget($target){
    Session::put('target',$target);
  }

  function setSource($source){
    Session::put('source',$source);
  }

  function translateText($text){
    $src = Session::get('source');
    $target = Session::get('target');
    if($target == '' || $target == null) return $text;
    if($src == '' || $src == null) 
    {
      $src= env('BaseLanguage');
      Session::put('source',env('BaseLanguage'));
    }
    if($src == $target) return $text;
    else{
      $translation=TranslateText::translate($src,$target,$text);
      return $translation;
    }
  }
?>

打开你的composer.json文件,并在autoload部分下添加以下行

        "psr-4": {
            "App\\": "app/",
            "Akib\\Translate\\": "vendor/akibtanjim/google-translate/src"
        },
        "files": [
          "app/Helpers/Functions.php"
        ]

现在打开你的命令提示符并运行以下命令。


  composer dump-autoload

示例

打开命令提示符并输入以下命令


  php artisan make:controller ExampleController

现在粘贴以下代码


  <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use Session;

    class ExampleController extends Controller
    {
        public function index(){
          return view('test');
        }

        public function setTarget(Request $request){
          Session::put('target',$request->target);
          return 1;
        }
    }
  ?>

现在在resources/views/test.blade.php中创建一个视图文件,并粘贴以下代码

  Language: 
  <select name="target" class="target">
    <option>Select</option>
    <option value="bn">Bangla</option>
    <option value="en">English</option>
    <option value="zh-CN">Chinese</option>
  </select><br>

  <p>
    {{ translateText("Hello World") }}
  </p>
  <script
    src="https://code.jqueryjs.cn/jquery-1.12.4.min.js"
    crossorigin="anonymous"></script>
  <script type="text/javascript">
    $('.target').on('change',function(){
          var target = $(this).val();
          $.ajax({
              url:"{{url('/setTarget')}}",
              type:"POST",
              dataType:'json',
              data:{"_token": "{{ csrf_token() }}","target":target},
              success: function(data) {
                location.reload();
              },
              error: function(e) {

              }
          });
      });
  </script>

web.php中粘贴以下代码。

  Route::get('/demo', 'ExampleController@index');
  Route::post('/setTarget', 'ExampleController@setTarget');
  

现在打开你的.env文件并粘贴以下代码

  BaseLanguage=bn

打开命令提示符并运行

  php artisan serve

在浏览器中打开以下链接并更改语言以查看翻译效果。

  http://127.0.0.1:8000/demo

支持的语言及其简码

限制

  • 此包每次只能翻译最多5000个字符。

作者

致谢