xdroidteam/translation

将标准Laravel基于文件的翻译改为数据库。

3.0.0 2024-03-07 09:48 UTC

README

MIT licensed

将标准Laravel基于文件的翻译改为基于数据库。

主要功能

  1. 修改翻译的简单GUI
  2. 新的键将 自动添加 到数据库
  3. 可以轻松地将 lang 文件导入到数据库
  4. 翻译存储在 缓存 中,编辑它将自动从数据库刷新缓存。我们使用缓存标签,因此常规文件或数据库缓存驱动程序不起作用,请使用 memcached 代替。
  5. 现在正在显示每个语言和组的 缺失翻译 字段。您还可以在“仅显示缺失翻译”和“显示所有翻译”之间切换视图。
  6. 现在您可以 导出数据库 为 .CSV 格式。 截图

安装

对于低于Laravel 6.x的版本,使用1.5.x版本,对于Laravel/Lumen 6.x和7.x,使用2.x版本。

在您的 composer.json 中添加此包并运行composer update

"xdroidteam/translation": "1.5.*"

或直接运行

composer require xdroidteam/translation


更新composer后,将ServiceProvider添加到**config/app.php**中的providers数组中:```php 'XdroidTeam\Translation\TranslationServiceProvider', ```
部署迁移和配置文件。```shell php artisan vendor:publish --tag=xdroidteam-translation ``` 您需要为此包运行迁移。```shell php artisan migrate ```
将以下行添加到您的**.env**文件中:``` LANGUAGES=en,hu,de ```
将现有语言文件导入数据库:```shell php artisan translations:import ``` 或用此覆盖现有记录:```shell php artisan translations:import --overwrite ```
路由已添加到ServiceProvider中,可在 http://yourdomain.com/translations 查找

您可以在部署的配置文件 config/xdroidteam-translation.php 中更改路由前缀。您还可以修改中间件或排除翻译组(被排除的组将不会在GUI中显示)。下面是一个示例。

<?php

return array(

    'route' => [
        'prefix' => 'custom-translations-route',
        'middleware' => [
            'web',
            'auth',
            'custom middleware',
        ],
    ],

	'exclude_groups' => ['auth', 'base'],
    
    'translation_model' => '\App\Models\Translation',

);

您可以使用其他Translation模型来覆盖方法。例如

<?php

namespace App\Models;

use XdroidTeam\Translation\Translation as XdroidTranslation;

class Translation extends XdroidTranslation
{
    public static function getLanguages(){
        // original:
        // return explode(',', env('LANGUAGES'));
		
        //custom:
        return ['en', 'hu'];
    }
}

导出

您可以通过调用此函数将数据库导出为 .CSV 文件

XdroidTeam\Translation::exportToCSV('path/to/file');