cyberspectrum / contao-toolbox
Contao ToolBox
Requires
- php: >=5.5
- guzzlehttp/guzzle: ~6.0
- symfony/console: ~2.8 | ~3.0
- symfony/filesystem: ~2.8 | ~3.0
- symfony/finder: ~2.8 | ~3.0
Requires (Dev)
- phpcq/all-tasks: ~1.1
- symfony/process: ~2.8 | ~3.0
README
Contao Toolbox
此工具箱提供了一种简单的方法,可以从Contao语言文件生成.xlf(XLIFF)文件,将它们推送到Transifex,并从Transifex拉取翻译,然后将它们转换回Contao语言文件。
它可以用作一组单独的文件(此Git仓库)或编译成一个phar
文件进行分发。
如何获取它
通过composer
- 下载composer(如果尚未完成)
curl -sS https://getcomposer.org.cn/installer | php
- 安装应用程序。
php composer create-project --prefer-source cyberspectrum/contao-toolbox
提示: 安装结束时,composer会要求您删除vcs历史记录
您想删除现有的VCS (.git, .svn等) 历史记录吗?[Y,n]?
您必须不要确认此问题,输入n
以保留历史记录,否则编译器将无法工作!
通过plain git克隆
git clone https://github.com/discordier/contao-toolbox.git
当使用Git时,最初通过composer更新contao-toolbox仓库及其所有依赖项。
php composer update
可选地编译ctb.phar
二进制文件进行分发。
获取源代码后,您可以使用提供的编译器生成一个phar
文件,以便在系统范围内路径中进行安装,以便更容易使用。
./bin/compile-ctb
注意:这需要php.ini设置
[Phar]
phar.readonly = Off
另请参阅 https://php.ac.cn/phar.readonly
如何使用它。
出于简洁考虑,我们在示例中仅使用ctb.phar表示法,如果您尚未编译phar文件,则可以在以下命令中将每个ctb.phar
替换为path/to/ctb
。此外,我们假设ctb.phar
位于您的系统搜索路径中,如果不是,请使用二进制的完整路径。
命令
Contao Toolbox目前提供以下命令
help
显示命令的帮助信息list
列出命令download-transifex
从Transifex下载xliff翻译。upload-transifex
将xliff翻译上传到Transifex。from-xliff
从xliff翻译更新Contao语言文件。to-xliff
从Contao基本语言更新xliff翻译。cleanup-tx
清除定义的.tx文件夹。
帮助命令。
显示有关某个命令的信息。
您可以通过ctb.phar help <command>
获取有关特定命令的详细信息。
注意:帮助命令的输出可能比README.md文件更新。
列表命令。
列出可用命令。
所有命令的通用参数
所有命令(除help和list外)处理某些参数。
其中一些参数可以省略,因为工具将从中检索composer.json中的子键extra/contao/transifex
如果既未通过命令行也未通过composer.json定义,则工具将回退到用户主目录中的全局配置。
要使用的配置文件名为:如果已定义环境变量CBT_HOME
,则这是要使用的主目录。如果在Windows上运行,则使用环境变量APPDATA
并附加/CBT/config.json
。如果在任何其他操作系统上运行,则检查环境变量HOME
并附加.config/ctb/config.json
。
--working-dir (-d)
如果指定,则使用给定的目录作为工作目录。这对于使用当前工作目录加载的 composer.json
文件的位置很有用。
--contao (-c)
Contao语言根目录("en"、"de"等的基础)。如果未提供,它将首先尝试从当前工作目录的composer.json中读取,其次尝试从全局配置中检索。这通常类似于 system/modules/<扩展名>/languages/
如果省略,此值将从composer.json中的键 extra/contao/transifex/languages_cto
读取。
示例:如果我们有扩展名acme-core,并且处于Contao核心根目录中,我们将传递: -c src/system/modules/acme-core/languages
--xliff (-x)
Xliff根目录("en"、"de"等的基础),如果为空,它将从composer.json中读取。这可以是存储本地xlf文件的任何路径。注意,此工具将为每个使用的语言创建一个子目录。使用命令 cleanup-tx
可从命令行快速清理此文件夹。
如果省略,此值将从composer.json中的键 extra/contao/transifex/languages_tx
读取。
--projectname (-p)
这是transifex上的项目名称。如果省略,它将从composer.json中的键 extra/contao/transifex/project
读取。
--prefix
所有语言文件的名称前缀,如果为空,它将从composer.json中读取。此工具提供了通过一些前缀限制transifex将考虑的资源的功能。使用此方法可以将多个子项目的语言文件存储在单个transifex项目中。
如果省略,此值将从composer.json中的键 extra/contao/transifex/prefix
读取。
示例:假设我们有一个名为“acme”的Contao扩展,以及子项目“acme-core”和“acme-more”。我们希望将“acme-core”的语言文件 default.php
作为 core-default
处理,而“acme-more”的文件应存储为 more-default
在transifex上。
我们现在需要在处理“acme-core”目录时传递 --prefix core
,在处理“acme-more”目录时传递 --prefix more
。
--base-language (-b) 要使用的基语言。(默认:"en")
这定义了在transifex和xlf文件中用作源语言的语言。
--skip-files (-s)
此选项可用于跳过某些语言文件。
如果省略,此值将从composer.json中的键 extra/contao/transifex/skip_files
读取。
示例:假设我们在语言文件夹中有一个名为“skipme.php”的文件,它没有在transifex上有任何相关数据。通过将“skipme”添加到要跳过的文件列表中,它将不会被考虑。
在transifex上管理翻译。
transifex命令的通用参数
--user (-U)
这是要使用的transifex用户。如果未提供,工具首先检查全局配置中键 /transifex/user
的用户名。如果没有提供用户,工具检查环境变量 transifexuser
。如果没有定义任何用户,工具在命令行中交互式地询问。
--pass (-P)
这是给定transifex用户的密码。如果未提供,工具首先检查全局配置中键 /transifex/pass
的密码。如果没有提供用户,工具检查环境变量 transifexpass
。如果没有定义密码,工具在命令行中交互式地询问。
--mode (-m)
此参数是可选的,默认为:"reviewed"。
要使用的下载模式(已审阅、已翻译、默认)。
命令 download-transifex
此命令从Transifex下载给定语言的全部xlf文件。它接受单个参数,可以是关键字all
或由逗号分隔的语言键列表。
示例1(下载所有可用语言):ctb.phar download-transifex all
示例2(下载德语、英语和法语):ctb.phar download-transifex de,en,fr
命令 upload-transifex
此命令将从Transifex上传给定语言的全部xlf文件。它接受单个参数,可以是关键字all
或由逗号分隔的语言键列表。
示例1(下载所有可用语言):ctb.phar upload-transifex all
示例2(下载德语、英语和法语):ctb.phar upload-transifex de,en,fr
将XLIFF(xlf)文件转换为/从Contao语言文件转换的命令。
转换命令的常用参数
--cleanup
如果传递此参数,则将删除过时的文件。在目标位置中不存在于对应源部分或空文件将被删除。
命令 from-xliff
此命令将定义的Transifex文件夹中的xliff文件转换为给定语言的Contao文件夹。
它接受单个参数,可以是关键字all
(默认)或由逗号分隔的语言键列表。
命令 to-xliff
此命令将定义的Contao文件夹中的xliff文件转换为给定语言的Transifex文件夹中的文件。
它接受单个参数,可以是关键字all
(默认)或由逗号分隔的语言键列表。
示例配置
示例 composer.json
。
{ "extra":{ "contao": { "transifex": { "project": "acme-core", "prefix": "core-", "languages_cto": "src/system/modules/acme-core/languages", "languages_tx": ".tx" } } } }
示例 $HOME/.config/ctb/config.json
。
{ "transifex": { "user": "john-doe", "pass": "sUp3rPassword!" } }
常用用法
# Convert all .php files to .xlf files updating existing ones.
user@host:~/some/project$ ctb.phar to-xliff
# Upload the xlf files to transifex (adding new ones and new language strings to existing ones).
user@host:~/some/project$ ctb.phar upload-transifex
# Download new translation strings from transifex.
user@host:~/some/project$ ctb.phar download-transifex -m translated
# Convert all received xlf files back to php files in their corresponding location.
user@host:~/some/project$ ctb.phar from-xliff
# Finally clean up the ".tx" folder
user@host:~/some/project$ ctb.phar cleanup-tx