hyperdigital / hd_translator
从locallang.xlf文件中翻译静态字符串以及数据库相关内容的导入/导出
Requires
- phpoffice/phpspreadsheet: 1.*
- typo3/cms-core: >=12.0 <12.99
This package is auto-updated.
Last update: 2024-09-26 12:02:19 UTC
README
这是一个用于处理翻译的TYPO3扩展。它允许编辑器编辑XLF文件(通常位于EXT:/Resources/Private/Languages)中的静态字符串,或者导出数据库条目,使用翻译工具/代理在xlf格式下编辑它们,然后再次导入到TYPO3中。
初始化
安装后,WEB模块下将添加一个新的子模块。在利用扩展功能之前,指定新翻译应存储的位置至关重要。请按照以下步骤操作
- 导航到扩展配置部分。
- 在HD翻译器设置中查找“存储路径(从项目根目录)”选项。在此字段中插入相对路径时,请注意起始点为项目根目录,其中存储了项目的
composer.json
文件。
静态字符串翻译
预览
所有locallang文件类别
某个类别的所有locallang
一个locallang的德语翻译示例
特定的locallang文件
该扩展的一个关键功能是能够无缝地与locallang.xlf
文件协同工作。要启用对特定locallang.xlf
文件的处理,请按照以下步骤操作
-
在您的TYPO3扩展中打开
ext_localconf.php
文件。 -
添加以下配置以注册所需的
locallang.xlf
文件(unique_key必须始终唯一)$GLOBALS['TYPO3_CONF_VARS']['translator']['unique_key'] = [ 'label' => 'My Cool Extension - Base', 'path' => 'EXT:cool_extension/Resources/Private/Language/locallang.xlf', 'category' => 'Cool Extension', 'languages' => [ 'en', 'de', 'cs' ] ];
label
:为翻译集提供描述性标签。path
:指定目标locallang.xlf
文件在您的扩展中的路径。category
:将翻译归类到特定类别。languages
:定义支持的翻译语言。
确保提供的路径正确且与您的locallang.xlf
文件的实际位置相对应。您可以根据需要扩展'languages'数组以包含其他语言代码。
同步所有locallang.xlf文件
系统具有检索所有可访问的locallang.xlf
文件的能力,这使得翻译管理更高效。按照以下步骤同步文件
-
在扩展配置中,找到并勾选“所有locallang.xlf文件”旁边的复选框。
-
在TYPO3后端导航到翻译模块。
-
找到“同步所有文件”按钮并单击它。
此操作为所有locallang.xlf
文件生成设置,确保系统了解并能处理来自每个扩展的翻译。如果您添加了新的翻译文件或引入了新的扩展,则必须再次单击“同步所有文件”按钮。此过程将相应地更新系统设置。
利用此功能,您可以简化TYPO3项目中翻译的管理,确保翻译模块了解所有相关的翻译文件和扩展。
正确配置语言
要为您的TYPO3网站定义正确的语言,您可以在位于config/sites/xxx/config.yaml
的站点配置文件中指定它。以下是一个示例配置
languages: - ... typo3Language: de ...
启用不受TYPO3支持的新语言
要启用不受TYPO3支持的新语言,请将以下代码添加到LocalConfiguration.php
或AdditionalConfiguration.php
中。确保此代码在所有扩展加载之前出现
$GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user']['us'] = 'English US';
重要组件
- 'us':这是在翻译文件中使用的语言键。
- '英语美国':表示语言名称。
数据库导出
该扩展提供了一个灵活的机制,用于从数据库导出字段,允许您根据需要定制导出的数据。
默认导出设置
默认的数据库导出字段列表位于“显示字段”配置相同的部分。它遵循相同的“类型”逻辑。如果此设置为空,则所有可访问的非TYPO3核心字段都将包含在导出中。
$GLOBALS['TCA'][$table]['types'][1]['translator_export'] = 'title, subtitle, another_field';
不同表类型的不同设置
在许多情况下,您可能需要为各种内容元素有不同的设置。例如,您可能希望为类型为“标题”的内容元素与“文本”元素有特定的导出配置。为了达到这种粒度,请使用类型特定的设置。以下是在tt_content
表中的“标题”和“文本”元素的示例
标题内容元素
$GLOBALS['TCA']['tt_content']['types']['header']['translator_export'] = 'header, subheader';
文本内容元素
$GLOBALS['TCA']['tt_content']['types']['text']['translator_export'] = 'header, subheader, bodytext';
导出Flexform字段
当Flexform包含在导出中时,它默认检索所有字段。但是,您可以像整个表一样限制导出的字段。使用以下配置
$GLOBALS['TCA'][$table]['types'][1]['translator_export_column']['pi_flexform'] = 'settings.text, settings.header';
显示导出按钮
在编辑表条目或页面模块内时,导出按钮将出现在保存或编辑按钮旁边。它也是上下文菜单的一部分。
根据您的特定需求自定义导出设置,以确保仅包含导出文件中的必要数据。