robole/sulu-ai-translator-bundle

使用DeepL翻译任何类型的内容

安装: 7

依赖关系: 0

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 1

公开问题: 1

语言:JavaScript

类型:symfony-bundle

v1.0.1 2024-08-05 10:57 UTC

This package is auto-updated.

Last update: 2024-09-12 09:23:54 UTC


README

Sulu组件,用于集成DeepL API以进行内容字段的批量和单次翻译。

Demonstration of content field translation

AITranslatorBundle功能

  • DeepLService用于从DeepL API获取翻译和使用统计数据
  • 带有权限的“使用统计数据”管理视图
  • 输入字段旁边的翻译按钮
  • 工具栏按钮,可批量翻译所有字段(目前仅适用于页面、片段和表单)

安装

此组件需要PHP 8.2。请确保已安装Node 18(或对于Sulu版本小于2.6.0,Node 14)以构建Sulu管理UI。

  1. 打开命令行控制台,进入您的项目目录,然后运行
composer require robole/sulu-ai-translator-bundle

如果您没有使用Symfony Flex,您还需要在您的config/bundles.php文件中添加该组件

return [
    //...
    Robole\SuluAITranslatorBundle\SuluAITranslatorBundle::class => ['all' => true],
];
  1. 通过向您的routes_admin.yaml添加以下内容来注册新路由
SuluAITranslatorBundle:
    resource: "@SuluAITranslatorBundle/Resources/config/routes_admin.yml"
  1. 添加文件config/packages/sulu_ai_translator.yaml,配置如下
sulu_ai_translator:
    deepl_api_key: "%env(DEEPL_API_KEY)%"
    locale_mapping:
        en: "en-GB"

通过locale_mapping,您可以将您的网站空间的区域设置键映射到相应的官方DeepL目标语言。对于不应进行翻译的语言,请使用值null

  1. 通过向您的assets/admin/package.json添加以下内容来引用前端代码
"dependencies": {
    "sulu-ai-translator-bundle": "file:../../vendor/robole/sulu-ai-translator-bundle/src/Resources/js"
}
  1. 通过向您的assets/admin/app.js添加以下内容来导入前端代码
import "sulu-ai-translator-bundle";
  1. 安装所有npm依赖项并构建管理UI(查看所有选项
cd assets/admin
npm install
npm run build
  1. 将您的DeepL API密钥添加到.env文件中
DEEPL_API_KEY="..."
  1. 在Sulu后端中授予权限以访问“DeepL使用统计”视图。

限制

  • 目前仅支持类型为input[type="text"]textarea<CkEditor />的字段
  • 翻译在客户端应用,使内容创建者能够检查翻译质量并撤销更改
  • 文本字段内的内部页面链接需要手动更新(显然)

本地开发

  1. 将以下内容添加到composer.jsonrepositories部分
    "repositories": [
        {
            "type": "path",
            "url": "./../local-path-to-bundle"
        }
    ],
  1. 安装组件

composer require robole/sulu-ai-translator-bundle:@dev

故障排除

如果翻译请求返回输入文本,则很可能在您的locale_mapping组件配置中定义的语言键不支持DeepL目标语言。这将在响应对象中指示。

下一版本的改进想法

  • 添加用于更快安装组件的Symfony配方。
  • 用基于存储的方法替换document.querySelector来切换块。
  • 为每种语言启用翻译严格度的配置(例如,正式、非正式等)
  • 在翻译按钮旁边添加下拉弹出窗口,用于覆盖字段的原语言和目标语言

免责声明

本软件包使用DeepL API提供翻译服务。本项目与DeepL SE(DeepL SE)及其子公司或关联公司没有任何关联、合作、授权、认可或官方联系。本软件包中使用DeepL API纯粹是为了功能需求,并不代表与DeepL公司有任何关系。

DeepL是DeepL SE的注册商标。