blok/laravel-translation

管理所有Laravel翻译的工具

1.1.0 2022-08-24 17:46 UTC

This package is not auto-updated.

Last update: 2024-09-19 03:32:43 UTC


README

Laravel Translation 是一个用于 Laravel 的包,允许您在使用 Laravel 的本地化功能 时完全控制您的翻译。

该包允许您使用基于文件的本地化翻译或数据库驱动程序来管理翻译,后者在多服务器配置中非常有用。

它提供了一个用户界面,允许您更新现有翻译并添加新的翻译到您的应用程序中。

以下是完整的功能列表

  • 文件和数据库驱动程序
  • 数据库翻译加载器(当使用 Laravel 的翻译检索方法和数据库驱动程序时,自动从数据库加载翻译)
  • 用户界面用于添加新语言以及添加和更新翻译
  • Artisan 命令用于管理翻译
  • 扫描应用程序中缺失的翻译

安装

通过 Composer 安装包

composer require blok/laravel-translation

发布配置和资源

php artisan vendor:publish --provider="Blok\Translation\TranslationServiceProvider"

覆盖默认 TranslationServiceProvider

之后,您应该在 config/app.php 中替换

    //Illuminate\Translation\TranslationServiceProvider::class,
    \Blok\Translation\Providers\TranslationServiceProvider::class,

使用

配置

该包包含一个名为 translation.php 的配置文件,在安装过程中发布到配置目录。以下是设置的概要。

driver [file|database]

选择 filedatabase。文件翻译利用 Laravel 的原生文件基于翻译,包括对基于 arrayjson 的语言文件的支持。

route_group_config.middleware [string|array]

将中间件应用到包提供的路由上。例如,您可能希望使用 auth 中间件以确保包的用户界面仅对登录用户可访问。

translation_methods [array]

选择在搜索缺失的翻译键时使用 Laravel 的哪种翻译方法。

scan_paths [array]

选择在搜索缺失翻译时使用的路径。将搜索范围缩小到特定目录将在扫描缺失翻译时提高性能。

ui_url [string]

选择包用户界面可以访问的根 URL。所有路由都将以前面的值作为前缀。

例如,将此值设置为 languages 将导致类似于 translations/{language}/translations 的 URL

database.languages_table

在使用数据库驱动程序时选择语言表的名称。

database.translations_table

在使用数据库驱动程序时选择翻译表的名称。

驱动程序

文件

利用 Laravel 的原生 php 数组和 JSON 基于的语言文件,并公开用户界面来管理包含的翻译。可以使用用户界面或内置的 Artisan 命令 添加和更新语言和翻译。

数据库

数据库驱动程序采用 Laravel 的文件基于语言文件的所有功能,但将存储移动到数据库中,利用为您的 Laravel 应用程序配置的连接。

它还替换容器中的翻译加载器,因此 Laravel 的所有翻译检索方法(__()trans()@lang() 等)都将从数据库而不是文件中加载相关字符串,而无需更改您的应用程序中的任何代码。这是一个等价交换。

要使用数据库驱动程序,请确保更新配置文件中的数据库表名称并运行迁移。

用户界面

导航到 http://your-project.test/languages(将 languages 更改为匹配 translation.ui_url 配置设置)并使用该界面来管理您的翻译。

首先,点击您想要编辑的语言。在后续页面上,找到您想要编辑的翻译并点击铅笔图标或文本进行编辑。一旦您从输入框移开焦点,您的翻译就会保存,并显示为绿色的勾选图标。

Artisan 命令

该包附带一系列 Artisan 命令,可协助进行翻译管理。

translation:add-language

向应用程序添加新语言。

translation:add-translation-key

向应用程序添加新的语言键。

translation:list-languages

列出应用程序中所有可用的语言。

translation:list-missing-translation-keys

列出应用程序中所有没有对应翻译的翻译键。

translation:sync-translations

在驱动器之间同步翻译。如果您有一个现有的应用程序使用基于文件的本地语言文件,并希望迁移到数据库驱动器,这将非常有用。运行此命令将从语言文件中提取所有翻译并插入到数据库中。

translation:sync-missing-translation-keys

此命令将扫描您的项目(使用配置文件中提供的路径)并创建所有缺失的翻译键。这可以针对所有语言或单个语言运行。

待办事项

[x] 使用 React 表格添加更好的编辑用户体验

致谢

所有荣誉都归功于 Joe Dixon

代码由 Daniel Sum 维护,以实现 Laravel 9 和 Php 8 兼容性