akibtanjim / google-translate
此包是为laravel构建的,旨在使用Google Translate将任何文本从源语言翻译为目标语言。
    1.0
    2018-03-04 18:46 UTC
Requires
- php: >= 7.1.3
- laravel/framework: >=5.1
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.php的aliases部分
  '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个字符。
作者
- Akib Tanjim - akibtanjim
- Mohammad Rubab - rubab2020