aitor24 / laralang
此包让您能够将任何语言的字符串翻译成另一种语言,适用于 laravel 5.X
Requires
- php: >=5.6.4
- illuminate/support: ^5.4
README
什么是 Laralang?
Laralang 是一个 Laravel 扩展包,允许您使用 Google 或 MyMemory 等翻译服务将您的应用程序或应用程序的部分从视图进行翻译,并将其存储在您的数据库中,以便通过我们的管理面板轻松过滤和管理。
此外,它还允许您轻松翻译 PHP 文件,并为您节省大量时间。
为什么使用 Laralang?
我认为将网站翻译成最佳方式是使用 Laravel 的方法,如 @lang()
,但有时这是不可能的。想象一下,您有一个博客,需要将其翻译成不同的语言。使用 Laralang 可以轻松完成这项任务,只需放置一些代码,如下例所示,Laralang 将从您喜欢的翻译服务或从数据库中加载已存储的翻译。
{{ Laralang::trans($post->content) }}
入门
步骤 1. 使用 composer 安装
运行以下命令
composer require aitor24/laralang
步骤 2. 注册服务提供者与别名
将以下行包含在 config/app.php 中的 providers 数组中
Aitor24\Laralang\LaralangServiceProvider::class,
将以下行包含在 config/app.php 中的 aliases 数组中
'Laralang' => Aitor24\Laralang\Facades\Laralang::class,
步骤 3. 发布供应商
这将发布资产和配置文件。
运行以下命令
php artisan vendor:publish
步骤 4. 迁移
运行以下命令
php artisan migrate
步骤 5. 配置默认值
非常重要:更改 config 中的密码(默认密码:laralangAdmin)
除了密码外,还可以在 config/laralang.php
中修改其余的默认值。此外,您还可以使用以下函数在特定的翻译中修改这些值。
可用的翻译器:Google 翻译器、MyMemory、Apertium(强烈不推荐)
翻译器的配置值:'google', 'mymemory', 'apertium'
使用 laralang
使用示例
以下是使用 laralang 的几个示例
<center> {!! Laralang::trans('Hello world!') !!} <br> {!! Laralang::trans('Hello world!')->debug(true) !!} <br> {!! Laralang::trans('Hello world!')->to('es') !!} <br> {!! Laralang::trans('Hello world!')->to('ca') !!} <br> {!! Laralang::trans('Hello world!')->to('ca')->debug(true) !!} <br> {!! Laralang::trans('Hallo welt!')->from('de')->to('fr') !!} <br> {!! Laralang::trans('Hello world!')->to('pt') !!} <br> {!! Laralang::trans('Hello world!')->to('de') !!} <br> {!! Laralang::trans('Hello world!')->to('ml') !!} <br> {!! Laralang::trans('Hello world!')->to('zh')->translator('apertium') !!} <br> From langs: @foreach(Laralang::fromLanguages() as $lang) {{$lang}} @endforeach <br> To langs: @foreach(Laralang::toLanguages() as $lang) {{$lang}} @endforeach </center>
注意:如果翻译来自用户,请使用 {{ }} 语句以防止 XSS 攻击
然后是结果
管理面板
第一步
首先,您应该在 laralang 中登录
路由前缀可以在您的配置文件中更改,但默认为 laralang
- 如何访问面板?
您应该访问以下 URL
或在本地上,您应该访问
https:///project-path/public/laralang/login
然后您将看到 laralang 登录页面(下面的图片)
现在,您必须输入在 步骤 5 中设置的密码,然后点击登录以管理您的翻译,如下面的图片所示!
过滤翻译
Laralang 还允许您通过 from_lang 和/或 to_lang 过滤翻译。以下是一个示例
首先,我们必须访问在路由 http://domain/laralang/translations/filter 中的过滤视图或通过菜单访问。
然后,您可以使用两个选择器选择原始字符串的语言以及翻译此字符串的语言
然后是结果
通过 API 进行翻译
存在一个 API 来获取翻译后的文本。首先,您应该在配置中启用它,然后根据 laravel 官方网站 中的说明配置 AJAX,然后调用 API(方法=POST)
$.post('{{route("laralang::apiTranslate")}}', {'string' : 'This is my string to translate', 'to' : 'de'}, function(response) { var translatedText = response.translatedText; }, 'json');
翻译 PHP 文件
Laralang 可以通过将英语翻译成您想要的任何语言来快速生成 PHP 翻译文件,从而节省大量时间!
登录管理员面板后,您会发现如下内容
在这里,您只需点击“翻译PHP文件”,然后应该会看到这个视图
在这里,您可以点击“翻译”,并将所有位于resources/lang/en的资源文件翻译成您在表单中选择的任何语言!
然后在resources/lang/目录下,您将为每种语言找到一个包含相应翻译文件的文件夹。
API
trans()方法
该函数用于将字符串从一种语言翻译成默认值、app_locale或每个函数中指定的另一种语言。
为了简化工作,我们实现了另一个包(Localizer),通过中间件设置app_locale,并允许轻松获取用户浏览器语言将其设置为app_locale。
trans()函数的功能
from()
它设置要翻译的字符串在特定翻译中的语言。
默认值:en
to()
它设置特定翻译中将输出的语言。
默认值:app_locale
debug()
调试选项允许您通过彩色消息了解特定翻译中意外结果的原因。
默认值:false
Save()
保存选项允许您保存特定翻译。
默认值:false
fromLanguages()方法
返回一个数组,其中包含所有提供的字符串用于翻译的语言。
toLanguages()方法
返回一个数组,其中包含至少有一个字符串已被翻译的所有语言。
getLanguages()方法
返回一个数组,格式为['key' => 'value'],其中key是语言,value是laralang测试中所有语言的缩写。