chriskonnertz/translation-factory

为Laravel框架提供的创建和管理翻译的工具

1.0.1 2018-10-02 14:24 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:39:36 UTC


README

Laravel Version GitHub license

Translation Factory 是Laravel框架的一个工具,用于创建和管理翻译。特别是它帮助协调多个翻译者,以及那些不想编辑PHP文件的翻译者,为他们提供AI翻译的帮助。

Screenshot

注意:“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的新安装,请按照以下步骤准备:

  1. 通过控制台运行 php artisan make:auth 创建控制器和视图等资源
  2. 然后运行 php artisan migrate 准备数据库

现在翻译者将能够导航到 http://<your-domain>/home 并登录或创建新的用户账户。

如果您不想使用Laravel内置的用户认证系统,您必须创建自己的用户管理器,该管理器实现了UserManagerInterface。将其介绍给Translation Factory,通过在配置文件中添加其名称(键:user_manager)来实现。

与外部翻译者一起使用

如果您想使用Translation Factory让外部翻译者翻译您的文本,建议您遵循以下步骤

  1. 设置一个新的服务器,运行您的应用程序。该服务器必须可以从外部访问
  2. 确保Translation Factory可以写入输出目录
  3. 配置一切,特别是启用用户身份验证
  4. 创建自己的账户,并将其添加到配置文件中的管理员列表
  5. 允许外部用户创建他们的用户账户(http://<your-domain>/register
  6. 激活翻译者的账户
  7. 分享链接: http://<your-domain>/translation-factory
  8. 翻译愉快!

备份

翻译工厂的默认行为是每天备份所有想要覆盖的翻译文件。它们将存储在 <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