chriskonnertz / translation-factory
为Laravel框架提供的创建和管理翻译的工具
Requires
- php: >=7.0.0
- chriskonnertz/deeply: ^1.6
Requires (Dev)
- phpunit/phpunit: 5.7
This package is not auto-updated.
Last update: 2024-09-15 03:39:36 UTC
README
Translation Factory 是Laravel框架的一个工具,用于创建和管理翻译。特别是它帮助协调多个翻译者,以及那些不想编辑PHP文件的翻译者,为他们提供AI翻译的帮助。
注意:“Factory”在这里不代表模式,而是指:🏭
亮点
- 无缝集成到您现有的Laravel应用程序中
- 使用 DeepL - 目前最好的机器翻译引擎 - 自动翻译文本
- 美观的用户界面,并考虑到良好的用户体验
- 为移动设备(智能手机和平板电脑)做好了充分准备
- 高度可配置且易于扩展
- 开源且免费,甚至可用于商业用途
安装
此库需要PHP 7.0或更高版本,以及cURL扩展和Laravel >= 5.5。
通过 Composer
composer require chriskonnertz/translation-factory
通过以下命令发布资产:php artisan vendor:publish --provider="ChrisKonnertz\TranslationFactory\Integration\TranslationFactoryServiceProvider"
确保Translation Factory可以写入输出目录,特别是您应该将翻译目录设置为可写,例如 resources/lang
。
如果您不想启用用户账户支持,那么就这样。导航到 http://<your-domain>/translation-factory
开始。
配置
使用文本编辑器打开 config/translation_factory.php
以更改配置。所有条目都有文档说明。特别是请查看 additional_languages
键。在这个数组中,您可以添加您想要支持的语言的代码。Translation Factory会尝试自动检测这些语言,但只有当每种语言至少有一个翻译文件时,这才会成功,因此最好将它们添加到数组中。
使用Laravel的用户账户
此包支持用户认证。默认情况下,它依赖于Laravel内置的用户认证系统。如果您想启用用户账户支持,您必须在配置文件中这样做(键:user_authentication
)。您还必须在配置文件中添加所有管理员的用户ID(键:user_admin_ids
)。
如果您已经使用了Laravel的用户认证,则可以跳过本节的其余部分。但如果您是Laravel的新安装,请按照以下步骤准备:
- 通过控制台运行
php artisan make:auth
创建控制器和视图等资源 - 然后运行
php artisan migrate
准备数据库
现在翻译者将能够导航到 http://<your-domain>/home
并登录或创建新的用户账户。
如果您不想使用Laravel内置的用户认证系统,您必须创建自己的用户管理器,该管理器实现了
UserManagerInterface
。将其介绍给Translation Factory,通过在配置文件中添加其名称(键:user_manager
)来实现。
与外部翻译者一起使用
如果您想使用Translation Factory让外部翻译者翻译您的文本,建议您遵循以下步骤
- 设置一个新的服务器,运行您的应用程序。该服务器必须可以从外部访问
- 确保Translation Factory可以写入输出目录
- 配置一切,特别是启用用户身份验证
- 创建自己的账户,并将其添加到配置文件中的管理员列表
- 允许外部用户创建他们的用户账户(
http://<your-domain>/register
) - 激活翻译者的账户
- 分享链接:
http://<your-domain>/translation-factory
- 翻译愉快!
备份
翻译工厂的默认行为是每天备份所有想要覆盖的翻译文件。它们将存储在 <storage-path>/app/translations
,这通常等同于 storage/app/translations
。您可以在配置文件中更改此路径(键:backup_dir
)。备份文件的名称将由哈希值和日期构成,并使用 ".backup" 作为扩展名。
当前状态
这是一个MVP(最小可行产品)。代码质量尚可,但肯定不是最佳。有很多重构空间。如果这个包真的满足某些人的需求,将进行重构。
常见问题解答
- 哪些语言可以进行自动翻译?以下是列表:链接
- 为什么自动翻译中缺少字符?这是DeepL的问题。请始终验证自动翻译!
- 它也适用于Laravel < 5.5吗?可能。尚未测试。您需要注册
TranslationFactoryServiceProvider
。 - 我应该使用 barryvdh/laravel-translation-manager 吗? LTM提供了一些有助于处理翻译的功能,例如查找翻译文件中缺少的翻译。这使得它成为翻译工厂的好补充。另一方面,翻译工厂专注于翻译。它具有复杂的用户界面,并使用DeepL帮助翻译者,这使得它成为翻译的理想选择。
- 我遇到了这个异常:“SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes”以下是一个解决方案:链接
- 用于自动翻译的库是哪个? DeepLy
- 我该如何自动翻译所有翻译文件?可以考虑查看 Laravel Localization Automation。