sluy / laravel-translation
用Laravel正确管理您的翻译。导出和导入其他格式,在大多数前端框架中执行操作,更多!
Requires
- php: ^7.1
- illuminate/support: 5.8.*|^6.0
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-09-09 08:32:54 UTC
README
使用单个命令将翻译文件存储在不同格式(数据库、json、js、xml、php)中。
我们知道,Laravel非常强大,是PHP框架中的巨人;然而,其中的一些一致性非常模糊,例如,翻译。
您有一个单独的翻译文件,可以轻松快速地编辑它,但...当您制作SPA或Vue应用程序时?哪里有一个强大的界面来管理翻译?这就是问题的开始。
我们创建了一个简单的命令来操作不同格式的翻译,并生成一个简单的类(目前是Vanilla JS和Vue.js)来将其加载到前端应用程序中。
就是这样,格式转换和前端翻译的单个函数,Laravel还需要什么?
另一个Laravel的“数据库翻译”?
不,永远不。
一些库(好吧,绝大多数)为您提供了一个使用Db在翻译中(在某些情况下会替换Laravel翻译)的桥梁,加上任何加载器、一些事情和爆炸:另一个数据库翻译库。
我们提供更高级的“舒适度”:管理您需要的所有翻译,并享受所有与之相关的“事情”。
安装
您可以通过composer安装此包
composer require sluy/laravel-translation
您可以使用以下命令发布迁移、配置和视图翻译
php artisan vendor:publish --provider="Sluy\LaravelTranslation\LaravelTranslationServiceProvider"
配置
在许多情况下,您可以使用一些配置(或无配置)执行所有包功能
//config/laravel-translation.php <?php return [ // Determines if language will be autodetected on request. // If this option are enabled it will use 'Accept-Language' http header // to lookup. 'autodetect_language' => true, // An array with package drivers. 'drivers' => [ // Db driver: Store/Retrieve data from Database. 'db' => [ 'class' => Sluy\LaravelTranslation\Drivers\Common\DbDriver::class, 'location' => 'translations', // Default table to work 'connection' => null, // null for default connection ], // Php driver: Store/Retrieve data from default Laravel php location files. 'php' => [ 'class' => Sluy\LaravelTranslation\Drivers\Common\PhpDriver::class, 'location' => resource_path('lang'), ], // JS driver: Store/Retrieve data in Js Modules format. Common of VanillaJs/VueJS // apps works with this 'js' => [ 'class' => Sluy\LaravelTranslation\Drivers\Common\JsDriver::class, 'location' => storage_path('laravel_translation/lang/js'), // determines if will generate index.js files when store/delete items 'generate_index' => true, // determines if npm will reload files when store/delete items 'npm_reload' => true, ], // Json driver: Store/Retrieve data in JSON format. You can perform, for example, // remote fetches of translations. 'json' => [ 'class' => Sluy\LaravelTranslation\Drivers\Common\JsonDriver::class, 'location' => storage_path('laravel_translation/lang/json'), ], // Xml driver: Store/Retrieve data in XML format. Yes, we know, XML doesnt seems // like a "popular" format, but it have too!. 'xml' => [ 'class' => Sluy\LaravelTranslation\Drivers\Common\XmlDriver::class, 'location' => storage_path('laravel_translation/lang/xml'), ], ], ];
命令
导入/导出翻译
在多个格式中生成翻译的常见方式。基本上是从一个格式到另一个格式,就是这样。
php artisan laravel-translation:import {src_driver} {dst_driver} --locale= --dst_location= --src_location=
基本上,我们有以下内容
示例
php artisan laravel-translation:import {db} {php} --locale=es,en --dst_location=my_custom_translations src_location=/my_custom_folder/php
它将导入/my_custom_folder/php
中的PHP文件到名为my_custom_translations
的数据库表中。
销毁翻译
您可以通过类似的方式销毁任何翻译资源
php artisan laravel-translation:destroy {driver} -locale= --location=
基本上,我们有以下内容
示例
php artisan laravel-translation:destroy {json} --locale=es --location=/my_custom_folder/json
它将销毁/my_custom_folder/json
中的es locales。
GUI管理
我们的包包括一个所有命令(以及更多)功能的图形界面。
添加视图
您可以使用artisan命令添加GUI视图
php artisan laravel-translation:views {format} --rewrite=true/false
GUI视图存储在resources/vendor/laravel-translation
路径中,并自动重置Laravel视图缓存。
示例
php artisan laravel-translation:views html --rewrite=true
添加路由
要添加包路由,请输入您的项目根目录
php artisan laravel-translation:routes
它将添加所有必要的路由到您的web.php
和api.php
如果您只想部署web
或api
路由,您可以定义only
可选参数
php artisan laravel-translation:routes --only=web #only deploys "web" routes php artisan laravel-translation:routes --only=api #only deploys "api" routes
Web管理器
驱动管理
laravel-translation/drivers
路由将显示您定义的驱动程序的所有管理主题
基本上,它以带有以下内容的框显示可用的驱动程序
- 驱动器名称
- 驱动器信息
- "store"资源的位置
- 当前加载的区域(带有x控制以删除模块区域翻译)
- 操作
- 导入:打开导入界面。
- 清除:删除所有翻译。
导入数据
laravel-translation/drivers/{driver}
路由将允许将翻译导入当前{driver}
。
首先,您需要选择您想要导入数据是从另一个驱动程序还是上传。
从另一个驱动程序
选择“另一个驱动程序”选项后,它将显示其他必要的控件
- 源:定义导入数据的源驱动程序。
- 区域:选择要导入的区域。
从上传
是的,您可以从您的计算机上传翻译!
选择上传
选项时,需要填写
- 来源:上传的源格式(也称为驱动)。
- 要上传的文件:包含所有翻译结构的zip文件。翻译结构与Laravel翻译文件夹
resources/lang
相同。
辅助工具
JavaScript辅助工具
您可以在JavaScript中添加一个简单的辅助工具直接进行翻译(在SPA开发中非常有用)
php artisan laravel-translation:helpers js --bootstrap=true/false
boostrap选项将确定您是否希望在resources/js/bootstrap.js
文件中自动添加辅助工具。默认值为false
。
输入javascript辅助工具安装命令(并在boostrap中添加它)后,您可以轻松翻译单词
__('your.keyword', {replace1: 'value1', replace2: 'value2', ...});
VueJS扩展
我们没有忘记可爱的VueJS框架。您可以使用以下命令添加VueJS辅助工具
首先,您需要安装JavaScript辅助工具才能与Vue扩展一起使用
php artisan laravel-translation:helpers js --bootstrap=true
之后,安装Vue扩展
php artisan laravel-translation:helpers vue --bootstrap=true/false
与上一个案例一样,boostrap选项将确定您是否希望在resources/js/bootstrap.js
文件中自动添加辅助工具。默认值为false
。
安装VueJS辅助工具后,您可以在模板中使用翻译
<template> <div> <div> {{__('your.keyword')}} </div> </div> </template>
或在逻辑定义内部
export default { mounted () { this.__('your.keyword'); } }
此外,VueJS扩展注入了一个指令,以便在模板中直接进行翻译
<template> <div> <div v-trans="'your.keyword'"></div> <!-- or... --> <div trans>your.keyword</div> </div> </template>
附加说明
给驱动文件/文件夹位置正确的权限
请记住提供对驱动程序的读写访问权限,否则将引发访问错误。
例如,对于PHP驱动程序
sudo chown -R youruser:www-data resources/lang sudo chmod -R 775 resources/lang
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何与安全相关的问题,请通过电子邮件sluy1283@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。