ufirst/lang-import-export

一个Laravel包,提供 artisan 命令以从CSV导入和导出语言文件。

8.1.1 2024-04-24 19:35 UTC

README

此包提供了 artisan 命令以从CSV导入和导出语言文件。这可以用于将翻译发送给通常处理类似Excel文件的代理机构。

它将一些 navigation.php 文件...

<?php

return [
  'commands' => [
    'next' => 'Next',
    'prev' => 'Previous',
    'play' => 'Play',
  ]
  'tips' => [
    'next' => 'Navigate to the next item',
    'prev' => 'Navigate to the previous item',
    'play' => 'Autoplay the slide show',
  ]
];

...转换为以下CSV...

key,en
navigation.commands.next,Next
navigation.commands.prev,Previous
navigation.commands.play,Play
navigation.tips.next,"Navigate to the next item"
navigation.tips.prev,"Navigate to the previous item"
navigation.tips.play,"Autoplay the slide show"

...反之亦然。

安装

Laravel 8.* 及以上版本

composer require ufirst/lang-import-export:^8.1.0

Laravel 7.*

composer require ufirst/lang-import-export:^7.0.0

最后,将以下行添加到您的 app/config/app.php 文件中的 providers 数组

    'providers' => [
        /* ... */
        'UFirst\LangImportExport\LangImportExportServiceProvider'
    ]

Laravel 5.*

对于 Laravel 5.*,请查看 遗产分支 并需要版本 ^5.1.2

此包的遗产版本的使用略有不同

作为替代方案,您可以查看此存储库的分支 highsolutions/laravel-lang-import-export

使用方法

该包目前提供两个命令,一个用于导出文件,一个用于导入它们

导出

# export all locales with all groups to console
php artisan lang-export:csv
# export all locales with all groups to csv file
php artisan lang-export:csv --output /some/file.csv
# custom csv delimiter and enclosure
php artisan lang-export:csv --delimiter=";" --enclosure='"' --output=/some/file.csv
# export single locale
php artisan lang-export:csv -l en --output=/some/path/translations-en.csv
# export single translation group
php artisan lang-export:csv -g navigation --output=/some/path/navigation-all-langs.csv

您可以可选地通过 -l (区域设置) 和 -g (组) 作为选项。组是语言文件名称,不带扩展名。您可以定义您所需的CSV格式的选项。

导入

# import translations from csv
php artisan lang-import:csv /some/file.csv
# import from custom csv format
php artisan lang-import:csv --delimiter=";" --enclosure='"' --escape='\\' /some/file.csv
# import and merge over existing translation file
php artisan lang-import:csv --merge=true /some/file.csv

在导入过程中,区域设置从CSV文件的第一行提取。翻译组根据翻译键猜测,例如 navigation.tips.next 被导入到 navigation

变更日志

8.1.1

  • 添加了对Laravel 10的支持
  • 修复了PHP 8.2+的弃用警告

8.1.0

  • 添加了对Laravel 9的支持
  • 停止支持低于Laravel 8的版本
  • 自动服务提供者和别名发现

8.0.2

  • 在导入命令中通过添加 --merge=true 选项将导入的CSV与现有翻译合并

8.0.1

  • 修复:在导出时,标题分隔符和封装器不尊重给定的选项

8.0.0

  • 添加了对Laravel 8.x的支持

7.1.0

  • 在导入时根据CSV中的翻译键自动创建翻译文件
  • 格式化代码(PSR-2)

7.0.0

  • 添加了对laravel:^7.0.0的支持
  • 添加了在单次运行中导出所有区域设置和组的特性
  • 导入命令将从CSV中猜测区域设置和翻译组
  • 在导入命令中添加了symfony/var-exporter以支持新的数组语法

5.1.2

  • 遗产版本
  • 与laravel:^5.4兼容