joedixon / laravel-translation
管理所有 Laravel 翻译的工具
Requires
- php: ^8.0
- illuminate/support: ^8.0||^9.0||^10.0
- laravel/legacy-factories: ^1.3
Requires (Dev)
- mockery/mockery: ^1.0.0
- orchestra/testbench: ^6.0|^8.0
- phpunit/phpunit: ^9.0|^10.0
- dev-master
- 3.x-dev
- 3.0.x-dev
- 2.x-dev
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1
- v2.0
- 1.x-dev
- v1.2
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.4
- v0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/npm_and_yarn/axios-1.6.0
- dev-dependabot/npm_and_yarn/browserify-sign-4.2.2
- dev-dependabot/npm_and_yarn/babel/traverse-7.23.2
- dev-dependabot/npm_and_yarn/fsevents-1.2.13
- dev-dependabot/npm_and_yarn/postcss-8.4.31
- dev-feat/ui
- dev-analysis-4wD6jD
- dev-feat/correct-lang-path
This package is auto-updated.
Last update: 2024-09-10 06:25:26 UTC
README
Laravel 应用程序的翻译管理。
关于 Laravel Translation
Laravel Translation 是一个 Laravel 扩展包,允许您在使用 Laravel 的 本地化 功能时,完全控制您的翻译。
此包允许您使用原生基于文件的翻译或数据库驱动来管理翻译,后者在多服务器配置中非常有用。
它提供了一个用户界面,允许您更新现有翻译并添加新的翻译到您的应用程序中。
以下是全部功能的列表
- 文件和数据库驱动程序
- 数据库翻译加载器(当 Laravel 的翻译检索方法和数据库驱动程序时,自动从数据库加载翻译)
- 用户界面,用于添加新语言和添加/更新翻译
- Artisan 命令来管理翻译
- 扫描您的应用程序以查找缺失的翻译
版本兼容性
安装
使用 Composer 安装包
composer require joedixon/laravel-translation
发布配置和资源
php artisan vendor:publish --provider="JoeDixon\Translation\TranslationServiceProvider"
服务提供程序将通过 包发现 自动加载。
用法
配置
此包附带一个名为 translation.php
的配置文件,在安装过程中发布到配置目录。以下是设置的概述。
driver [file|database]
选择 file
或 database
。文件翻译使用 Laravel 的原生基于文件的翻译,并支持基于 array
和 json
的语言文件。
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()
等)都将从数据库加载相关字符串,而不是从文件中加载,无需更改应用程序中的任何代码。这是一个一对一的替换。
要使用数据库驱动程序,请确保更新配置文件中的数据库表名并运行迁移。
将驱动程序从文件(默认)更改为数据库
- 在
./config/translation.php
中更新驱动程序以使用数据库。
'driver' => 'database'
- 运行迁移以添加翻译和语言表。
php artisan migrate
- 运行以下命令,然后按照提示同步驱动程序之间的翻译。
php artisan translation:sync-translations
- 将会有几个问题需要回答。请参阅下面的截图
用户界面
导航到 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
此命令将扫描您的项目(使用配置文件中提供的路径),并为所有缺失的翻译键创建条目。这可以针对所有语言或单一语言运行。