soundasleep/translation-discovery

此包的最新版本(dev-master)没有可用的许可信息。

dev-master 2015-03-03 22:52 UTC

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 文件夹

  1. t("string")
  2. ht("string")
  3. plural("string", 1)plural("string", "strings", 1)
  4. "string" /* i18n */
  5. 以及这些模式的单引号版本

示例项目

  1. Openclerk

待办事项

  1. 更多文档,特别是默认的 translation-discovery.json 参数
  2. 创建 grunt 任务 grunt-php-translation-discovery 来包装手动 PHP 命令
  3. 发布 0.1 版本

另请参阅

  1. asset-discovery
  2. component-discovery
  3. openclerk/i18n