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 版本