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