定制 nowo-tech/translation-yaml-tools-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nowo-tech/translation-yaml-tools-bundle

最新稳定版本:v0.3.8

Composer 安装命令:

composer require nowo-tech/translation-yaml-tools-bundle

包简介

Symfony console tools for YAML translations: nested tree conversion, key sorting, and machine translation for missing keys (Google, DeepL, LibreTranslate; pluggable).

README 文档

README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

Found this useful? Install from Packagist and consider starring the repository.

Symfony developer tools for YAML translation files: discover configured translation directories, convert flat dot-keys to a nested tree (with structural validation), flatten nested maps back to dot-keys at the file root, sort keys alphabetically, and fill missing keys in a target locale using Google Cloud Translation, DeepL, or LibreTranslate (pluggable MachineTranslatorInterface). The default source locale follows Symfony’s translator / kernel default locale (see docs/CONFIGURATION.md) unless you set nowo_translation_yaml_tools.default_locale.

Features

  • Resolves translation paths from translator.default_path and from config/packages/**/translation.yaml (framework.translator.default_path and paths).
  • Interactive console flow (arrow keys) to pick domain; for tree, flatten, and sort, --locale is optional (omit to process every locale for that domain). Non-interactive: --domain alone runs all locales; --locale limits to one file. Other commands (e.g. fill-missing) keep their own locale / target options.
  • nowo:translation-yaml:tree — validates that dot-keys can be represented as a nested tree; on failure prints the conflicting prefix. Optional --fix-leaf-prefix renames blocking leaves (suffix configurable via yaml_tree_leaf_prefix_suffix, default index).
  • nowo:translation-yaml:flatten — writes a one-level map with dot-separated keys (inverse of the tree layout).
  • nowo:translation-yaml:sort — recursive alphabetical sort of associative keys.
  • nowo:translation-yaml:fill-missing — merges missing keys into a target locale using the configured machine translator (Google, DeepL, or LibreTranslate); optional --tree output with the same validation as the tree command.
  • nowo:translation-yaml:audit — read-only report: tree-safe YAML, alphabetical key order, missing keys vs source locale; compact OK line per domain when everything passes.
  • Configurable YAML indent (yaml_tree_indent) and leaf-prefix suffix (yaml_tree_leaf_prefix_suffix for tree --fix-leaf-prefix) for dumps / renames.

Requirements

  • PHP >=8.1 <8.6
  • Symfony ^6.0 || ^7.0 || ^8.0 (FrameworkBundle, Console, HttpClient, Yaml, …)
  • For fill-missing: enable framework.http_client: true, choose machine_translator in config, and set GOOGLE_TRANSLATE_API_KEY (Google) or DEEPL_AUTH_KEY (DeepL) when using those backends; LibreTranslate needs no paid key for open instances (see docs/CONFIGURATION.md).

Quick install

composer require --dev nowo-tech/translation-yaml-tools-bundle

Register the bundle in config/bundles.php for dev (Flex recipe does this). See Installation.

Demos (Symfony 7 & 8)

FrankenPHP sample apps live under demo/: Web Profiler, Twig Inspector (nowo-tech/twig-inspector-bundle), explicit framework.enabled_locales / translator configuration, two translation directories (translations/ + translations_extra/), and a web page at / that summarizes default locale, enabled locales, YAML paths, missing files per domain, and missing keys vs the default locale. In dev, the demos also enable missing_translation_log (SQLite, event_dispatcher flush strategy, optional Web UI) — see demo/README.md.

make -C demo up-symfony7   # default PORT 8037 — see demo/symfony7/.env.example
make -C demo up-symfony8   # default PORT 8038

FrankenPHP worker mode: Supported in production Caddyfile; development uses Caddyfile.dev without worker (see docs/DEMO-FRANKENPHP.md).

Documentation

Additional documentation

Tests and coverage

  • PHP: run make test-coverage and read the final Global PHP coverage (Lines): … line in the output (releases 0.3.3+ aim for 100% line coverage on src/; see docs/CHANGELOG.md for 0.3.5 missing-log HTTP columns and 0.3.4 command additions).
  • TS/JS: N/A
  • Python: N/A

Version information

See SECURITY POLICY for supported versions.

License

This bundle is released under the MIT License. See LICENSE.

统计信息

  • 总下载量: 377
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固