blok/i18n-manager

国际化管理器

1.7.0 2021-07-27 17:18 UTC

This package is not auto-updated.

Last update: 2024-09-18 07:01:40 UTC


README

Build Status styleci Scrutinizer Code Quality SensioLabsInsight Coverage Status

Packagist Packagist Packagist

包描述

将 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 电子表格必须具有以下结构

REFENFRNLcreated_atupdated_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 的更复杂的授权。

安全

如果您发现任何安全相关的问题,请通过电子邮件报告,而不是使用问题跟踪器。

致谢