soundasleep / translation-discovery
Requires (Dev)
- phpunit/phpunit: ~4.4
This package is auto-updated.
Last update: 2024-09-14 09:56:07 UTC
README
translation-discovery 是一个支持 Composer 的 PHP 脚本,用于从 JSON 文件中定位多个 PHP 组件的翻译,然后可以将它们组合成项目运行时的单个翻译。
基于 asset-discovery。
配置
首先在项目的 composer.json
中将 translation-discovery
包作为依赖项,然后运行 composer update
将其安装到项目中
{ "require": { "soundasleep/translation-discovery": "dev-master" } }
现在在项目中创建一个 translation-discovery.json
文件,以定义要发现的资产类型和放置源文件的位置
{ "src": ["vendor/*/*", "core"], "locales": { "fr": "generated/locales/fr.json", "de": "generated/locales/de.json" }, "generate_php": true }
translation-discovery 将在所有 src
文件夹中查找名为 locales.json
的文件,以找到匹配的资产。支持通配符。例如,在你的 vendor/my/package/locales.json
{ "fr": "locales/fr.json", "de": ["locales/de/*.json"] }
构建
运行生成脚本,使用你的构建脚本或手动运行,并指定根目录
php -f vendor/soundasleep/translation-discovery/generate.php .
translation-discovery 将加载所有识别的本地化 JSON 文件,将所有本地化字符串组合成一个大的 JSON 文件,然后将此文件写入每个本地化目标 JSON 文件。
如果 generate_php
设置为 true
,还将生成一个 .php
文件,该文件返回适合 PHP require()
格式的本地化字符串。
然后可以将这些文件传递到构建链的下一步。
发现翻译字符串
特别是如果你在使用 openclerk/i18n 项目,你可以使用查找脚本来定位可能匹配的翻译字符串,并将它们输出到模板文件中的 JSON 格式。
更新项目的 translation-discovery.json
,以定义源位置
{ "templates": ["vendor/openclerk", "core", "site"], "template": "site/locale/template.json" }
运行查找脚本,使用你的构建脚本或手动运行,并指定根目录
php -f vendor/soundasleep/translation-discovery/find.php .
此脚本将找到以下翻译字符串的所有实例,并将它们输出到 template
JSON 文件夹
t("string")
ht("string")
plural("string", 1)
和plural("string", "strings", 1)
"string" /* i18n */
- 以及这些模式的单引号版本
示例项目
待办事项
- 更多文档,特别是默认的
translation-discovery.json
参数 - 创建
grunt
任务grunt-php-translation-discovery
来包装手动 PHP 命令 - 发布 0.1 版本