netresearch/nr-textdb

允许您在后台编辑翻译

安装: 275

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 7

分支: 0

开放问题: 0

类型:typo3-cms-extension

2.0.1 2024-08-16 10:16 UTC

This package is auto-updated.

Last update: 2024-09-04 17:15:38 UTC


README

安装

需要安装此包。

composer require netresearch/nr-textdb
  • 创建数据订单 -- 为数据目录创建翻译(在TCA中激活语言切换器)
  • 添加TCA组件的描述

配置

您可以在扩展配置中设置翻译的PID。如果您想关闭“如果缺失则创建”功能,也可以做到。

导出和导入

TextDB提供导入和导出翻译的能力。

导入

通用

要导入翻译,它们必须放置在一个xlf文件中,文件名应遵循以下格式。对于en,将文件命名为textdb_[name].xlf,对于所有其他语言,例如使用de.textdb_[name].xlf,并用您要导入翻译的两种字母ISO代码替换de

文件内容

您想导入的文件内容应如下所示。

英语文件内容

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
    <file source-language="en" datatype="plaintext" original="messages">
        <header>
            <authorName>Netresearch</authorName>
            <authorEmail>test@netresearch.de</authorEmail>
        </header>
        <body>
            <trans-unit id="component|type|placeholder">
                <source>Value</source>
            </trans-unit>
        </body>
    </file>
</xliff>

所有其他语言的文件内容。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
    <file source-language="en" datatype="plaintext" original="messages">
        <header>
            <authorName>Netresearch</authorName>
            <authorEmail>test@netresearch.de</authorEmail>
        </header>
        <body>
            <trans-unit id="component|type|placeholder">
                <target>Value</target>
            </trans-unit>
        </body>
    </file>
</xliff>

如何导入

  • 打开TextDB后端模块
  • 单击导入按钮
  • 选择一个符合上述标准的文件进行导入
  • 单击导入按钮

如果您希望替换现有条目,请点击“覆盖现有”复选框。

导出

也可以导出翻译视图以导入到其他TYPO3或编辑后在同一实例中重新导入。

要能够导出,请在列表视图中打开TextDB后端模块并选择一个组件或类型。要开始导出,请点击列表下方的“带有当前过滤器导出”按钮。这将导出所有带有当前过滤器条目和所有语言的条目。导出将不会考虑分页。

迁移视图助手

  • 为了将LLL文件模板迁移到textDB条目,该扩展提供了一个textdb:translate视图助手
  • 它实现了与f:translate视图助手相同的接口
  • 因此,要将您的翻译迁移,请尝试以下步骤
  1. 将textdb视图助手包含到您的模板中,例如xmlns:textdb="http://typo3.org/ns/Netresearch/NrTextdb/ViewHelpers"
  2. 将模板中的f:translate调用替换为textdb:translate调用
  3. 转到您的控制器并设置所需的组件,例如TranslateViewHelper::$component = 'my-component';
  4. 在前端调用您的模板/views等。
  • textdb:translate视图助手将加载当前翻译0以及语言uid 1
  • 它将从LLL文件中加载翻译并将它们插入到textDB中
  • 完成迁移后,请按照以下步骤操作
  1. 重置您的模板和代码更改
  2. 使用以下正则表达式用textdb:textdb调用替换您的f:translate调用,例如使用notepad++
// replace <f:translate stuff
search for   => <f:translate key="LLL:EXT:[^:]+:([^\"]+)\"[^>]+>
replace with => <textdb:textdb component="<yourcomponent>"  placeholder="\1"  type="label" />

// replace for {f:translate stuff
search for   => {f:translate\(key: 'LLL:EXT:[^:]+:([^\']+)'\)}
replace with => {textdb:textdb\({placeholder: '\1'\, component : '<yourcomponent>' , type : 'label'})}

测试与开发

  • 我们使用GrumPHP来遵守编码标准、执行单元测试并确保代码覆盖率
vendor/bin/grumphp run
  • 此外,我们使用Rector来自动执行迁移、遵守编码标准并简化并改进代码。
vendor/bin/rector process [--dry-run]

已知问题

@TODO: 添加配置手册