承接 nowo-tech/translation-yaml-tools-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

nowo-tech/translation-yaml-tools-bundle

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

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.2 <8.6 (Symfony 8.x apps need PHP 8.4+)
  • Symfony ^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 (1.0.0+ maintains 100% line coverage on src/ and PHPStan level 8 on src/ + tests/; see docs/CHANGELOG.md).
  • TS/JS: N/A
  • Python: N/A

Version information

1.1.2 is the current stable 1.x release (PHP 8.2+, Symfony 7+ / 8.x). See UPGRADING when moving from 1.1.1, 1.1.0, 1.0.x, or earlier.

See SECURITY POLICY for supported versions.

License

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

nowo-tech/translation-yaml-tools-bundle 适用场景与选型建议

nowo-tech/translation-yaml-tools-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 956 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「symfony」 「yaml」 「i18n」 「translation」 「bundle」 「Devtools」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 nowo-tech/translation-yaml-tools-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 nowo-tech/translation-yaml-tools-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 nowo-tech/translation-yaml-tools-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

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