blok / i18n-manager
国际化管理器
Requires
- php: >=7.1.6
- blok/utils: ^1.0
This package is not auto-updated.
Last update: 2024-09-18 07:01:40 UTC
README
包描述
将 Google 电子表格导入您的 Laravel 应用程序
安装
通过 composer 安装
composer require blok/i18n-manager
注册服务提供者
注意!如果您使用 laravel>=5.5 并具有包自动发现功能,则此步骤和下一步是可选的。
将服务提供者添加到 config/app.php
文件中的 providers
部分
Blok\I18nManager\ServiceProvider::class,
注册外观
在 config/app.php
文件中的 aliases
部分注册包外观
Blok\I18nManager\Facades\I18nManager::class,
发布配置文件
php artisan vendor:publish --provider="Blok\I18nManager\ServiceProvider" --tag="config"
用法
您的 Google 电子表格必须具有以下结构
REF | EN | FR | NL | created_at | updated_at |
---|---|---|---|---|---|
然后您需要通过点击文件 > 发布到网络将电子表格发布为 CSV 输出
https://www.evernote.com/l/AHdbGjzj0jFLNKuZTvxsAVGK_6dnpDKCvGg
之后,您需要将 csv 文件的 URL 添加到 config/i18n-manager.php 配置文件中。
然后根据您的业务逻辑,您可以调用
- Blok\I18nManager\Jobs\TranslationsExporterJob : 导出您现有的 Laravel 翻译(/!\ 将简单地输出一个 HTML 表格,您需要将其复制粘贴到 Google 电子表格中)
- Blok\I18nManager\Jobs\TranslationsImporterJob : 将翻译导入您的 Laravel 应用程序
您也可以这样调用导入/导出
app('i18n-manager')->export();
app('i18n-manager')->import();
集成示例
例如,在 AdminController 中,如果在受保护的路由中用户添加 labels_export=1 或 labels_import=1,则将导出或导入标签。
class AdminController{
public function index(){
if(request()->has('labels_export')){
app('i18n-manager')->export();
}
if(request()->has('labels_import')){
app('i18n-manager')->import();
}
}
}
如何黑名单某些未导出的标签/引用?
有时您不想将某些标签更新/同步到 Google 电子表格中。要黑名单某些引用,您可以将它们添加到 config/i18n-manager.php 并添加您自己的正则表达式。
如何允许客户创建新的 ref?
警告!!! : 这可能仅在测试环境中使用,因为它可能会导致生产环境中的意外行为,如果用户错误地覆盖了其他 ref!!
在将 config/i18n-manager.php 配置文件导出后,设置
<?php
return [
//...
'allow_new_ref' => true,
//...
];
您也可以在导入后即时创建或覆盖配置,例如
class AdminController{
public function index(){
if(request()->has('labels_export')){
app('i18n-manager')->export();
}
if(request()->has('add_new_ref')){
config(['i18n-manager' => true]);
}
if(request()->has('labels_import')){
app('i18n-manager')->import();
}
}
}
警告
此包无法自动创建电子表格并更新电子表格,因为它需要来自 Google API 的更复杂的授权。
安全
如果您发现任何安全相关的问题,请通过电子邮件报告,而不是使用问题跟踪器。