netresearch / nr-textdb
允许您在后台编辑翻译
2.0.1
2024-08-16 10:16 UTC
Requires
- ext-libxml: *
- ext-simplexml: *
- ext-zip: *
- typo3/cms-backend: ^12.4
- typo3/cms-core: ^12.4
- typo3/cms-extbase: ^12.4
- typo3/cms-extensionmanager: ^12.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- friendsoftypo3/phpstan-typo3: ^0.9
- overtrue/phplint: ^3.4 || ^9.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- ssch/typo3-rector: ^2.0
- typo3/testing-framework: ^6.0 || ^7.0 || ^8.0
Suggests
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
视图助手相同的接口 - 因此,要将您的翻译迁移,请尝试以下步骤
- 将textdb视图助手包含到您的模板中,例如
xmlns:textdb="http://typo3.org/ns/Netresearch/NrTextdb/ViewHelpers"
- 将模板中的
f:translate
调用替换为textdb:translate
调用 - 转到您的控制器并设置所需的组件,例如
TranslateViewHelper::$component = 'my-component';
- 在前端调用您的模板/views等。
textdb:translate
视图助手将加载当前翻译0以及语言uid 1- 它将从LLL文件中加载翻译并将它们插入到textDB中
- 完成迁移后,请按照以下步骤操作
- 重置您的模板和代码更改
- 使用以下正则表达式用
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: 添加配置手册