polyglot/template-resolver-simple
Composer 安装命令:
composer require polyglot/template-resolver-simple
包简介
PHP Polyglot simple template resolver
README 文档
README
A simple polyglot template resolver.
Install
composer require polyglot/template-resolver-simple:^1.0
Using
<?php use Polyglot\SimpleTemplateResolver\PluralHandler; use Polyglot\SimpleTemplateResolver\SimpleTemplateResolver; /** * @var string $prefix Prefix of parameter name in template, by default, "{" * @var string $suffix Suffix of parameter name in template, by default, "}" * @var string $pluralParameter Plural parameter name in template, by default, "count" * @var string $templateDelimiter Plural template delimiter, by default, "|" * @var PluralDetectorRegistry $pluralDetectorRegistry Plural detector registry */ $pluralHandler = new PluralHandler($pluralDetectorRegistry, $pluralParameter, $templateDelimiter); $resolver = new SimpleTemplateResolver($prefix, $suffix, $pluralHandler); /** * @var string $template Translation template * @var array<string, string|Stringable> $parameters Translation parameters * @var string $locale Translation locale */ $translation = $resolver->resolve($template, $parameters, $locale);
Examples
/* * Default-style templates */ $resolver = new \Polyglot\SimpleTemplateResolver\SimpleTemplateResolver(); $translation = $resolver->resolve('Hello, {name}!', ['name' => 'polyglot'], 'en_US'); // returns "Hello, polyglot!" /* * Laravel-style templates */ $resolver = new \Polyglot\SimpleTemplateResolver\SimpleTemplateResolver(':', ''); $resolver->addFilter('ucfirst'); $resolver->addFilter('strtoupper'); $translation = $resolver->resolve('Hello, :name!', ['name' => 'polyglot'], 'en_US'); // returns "Hello, polyglot!" $translation = $resolver->resolve('Hello, :Name!', ['name' => 'polyglot'], 'en_US'); // returns "Hello, Polyglot!" $translation = $resolver->resolve('Hello, :NAME!', ['name' => 'polyglot'], 'en_US'); // returns "Hello, POLYGLOT!" /* * Old Symfony-style templates */ $resolver = new \Polyglot\SimpleTemplateResolver\SimpleTemplateResolver('%', '%'); $resolver->addReplacement('%%', '%'); $translation = $resolver->resolve('%percent%%% match!', ['percent' => 100], 'en_US'); // returns "100% match!" /* * Plural */ $registry = new \Polyglot\CldrCardinalPluralDetectorRegistry\CldrCardinalPluralDetectorRegistry(); $plural = new \Polyglot\SimpleTemplateResolver\PluralHandler($registry, 'count', '|'); $resolver = new \Polyglot\SimpleTemplateResolver\SimpleTemplateResolver('%', '%', $plural); $template = '[-Inf,0[interval-negative' . '|plural-one' . '|plural-other' . '|{0}map-zero' . '|{10}map-ten' . '|]10,50[interval-10-50' . '|[50,Inf]interval-from-50' ; $resolver->resolve($template, ['count' => rand(-INF, -.0001)], 'en_US');// returns 'interval-negative' $resolver->resolve($template, ['count' => 0], 'en_US');// returns 'map-zero' $resolver->resolve($template, ['count' => 1], 'en_US');// returns 'plural-one' $resolver->resolve($template, ['count' => rand(2, 9)], 'en_US');// returns 'plural-other' $resolver->resolve($template, ['count' => 10], 'en_US');// returns 'map-ten' $resolver->resolve($template, ['count' => rand(11, 49)], 'en_US');// returns 'interval-10-50' $resolver->resolve($template, ['count' => rand(50, INF)], 'en_US');// returns 'interval-from-50' $resolver->resolve($template, [], 'en_US');// returns $template
polyglot/template-resolver-simple 适用场景与选型建议
polyglot/template-resolver-simple 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 09 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「polyglot」 「template-resolver」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 polyglot/template-resolver-simple 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 polyglot/template-resolver-simple 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 polyglot/template-resolver-simple 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Polyglot.php is a replica of the Airbnb's Polyglot.js I18n helper library
Yii2 integration for AirBnB Polyglot.js
Framework-agnostic core for BabelQueue: the canonical polyglot queue envelope codec, contracts and dead-letter helpers. Framework adapters (Laravel, Symfony, ...) are built on top.
PHP Polyglot plural detector interface
jiny polyglot
PHP Polyglot template resolver interface
统计信息
- 总下载量: 11
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-08