avris / polonisator
Avris Localisator 和 Stringer 的扩展,增加了对波兰语的支持
Requires
- avris/localisator: ^4.0
- avris/stringer: ^4.0
Requires (Dev)
- phpunit/phpunit: ^6.5
- squizlabs/php_codesniffer: ^3.2
- symfony/var-dumper: ^4.0
This package is auto-updated.
Last update: 2024-09-13 15:24:26 UTC
README
Avris Localisator 和 Avris Stringer 的扩展,增加了对波兰语的支持。
安装
composer require avris/polonisator
使用方法
$builder = (new LocalisatorBuilder())
->registerExtension(new LocalisatorExtension('pl'))
->registerExtension(new StringerExtension())
->registerExtension(new PolonisatorExtension());
$stringer = $builder->build(Stringer::class);
$polonisator = $builder->build(Polonisator::class);
StringerTwig
和 PolonisatorTwig
可以注册为 Twig 扩展。
decline
在波兰语中,复数形式并不简单——可以说 "zdobyłeś 1 punkt", "2 punkty" 和 "5 punktów"。 decline 根据提供的数字选择正确的形式
Zdobyłeś {{ points }} punkt{{ points|decline('','y','ów') }}
还提供了翻译选择器
points: <polishDeclination> punkt|%count% punkty|%count% punktów
使用方法如下
{{ 'points'|l({count: points}) }}
vocative
{{ user.firstName|vocative }}
vocative 将波兰语的名字变为呼唤语,无需数据库中包含所有名字(已测试超过1000个名字)。
getGender
getGender 尝试根据名字猜测一个人的性别(除非在 $person->getGender()
中明确提供)。
$polonisator->getGender($person); // returns either Stringer::MASCULINE or Stringer::FEMININE
还提供了翻译选择器
said: <gender> powiedział|powiedziała
genderify
genderify 自动调整一些第二人称表达以匹配接收者的性别(对邮件很有用)。
{% filter genderify(user.gender) %}
<p>
Drog{_I_A} {{ user.firstName|vocative|capitalize }}!<br/>
Chcielibyśmy Cię poinformować, że zdobył{_ES_AS} {{ user.points }}
{{ user.points|decline('punkt','punkty','punktów') }}!<br/>
</p>
<p>
Pozdrawiamy,<br/>
xyz
</p>
{% endfilter %}
可能对某些用户返回
Drogi Tomku!
Chcielibyśmy Cię poinformować, że zdobyłeś 932 punkty!
Pozdrawiamy,
xyz
可用标签
标签 | 男性 | 女性 |
---|---|---|
{_A} | a | |
{_I_A} | i | a |
{_ES_AS} | eś | aś |
{_Y_A} | y | a |
{_AL_ELA} | ął | ęła |
{_CHCIALBY} | chciałby | chciałaby |
{_POWINIEN} | powinien | powinna |
{_MOGL} | mógł | mogła |
{_WSZEDL} | wszedł | weszła |
{_PAN_PANI_M} | Pan | Pani |
{_PAN_PANI_C} | Panu | Pani |
{_PAN_PANI_D} | Pana | Pani |
{_PAN_PANI_B} | Pana | Panią |
{_PAN_PANI_N} | Panem | Panią |
{_PAN_PANI_W} | Panie | Pani |
此列表可以通过在 Genderify
构造函数中传递不同的列表进行扩展/更改。
numberInWords
请参阅 Avris Stringer 的文档。
提供波兰语翻译,例如
375 → trzysta siedemdziesiąt pięć
-279 → minus dwieście siedemdziesiąt dziewięć
146 → sto czterdzieści sześć
10000000 → dziesięć milionów
5371.18 → pięć tysięcy trzysta siedemdziesiąt jeden i osiemnaście setnych
5678 → pięć i sześćset siedemdziesiąt osiem tysięcznych
0.1 → jedna dziesiąta
0.000908 → zero komma zero zero zero dziewięć zero osiem
timeInWords
请参阅 Avris Stringer 的文档。
提供波兰语翻译,例如
$stringer->timeInWords($time, TimeInWords::MODE_NICE)
(默认)
14:15:16 → kwadrans po czternastej.
05:13:32 → trzynaście po piątej.
19:49:20 → za jedenaście dwudziesta.
11:53:11 → za siedem południe.
$stringer->timeInWords($time, TimeInWords::MODE_SHORT)
:
14:15:16 → czternasta piętnaście.
05:13:32 → piąta trzynaście.
19:49:20 → dziewiętnasta czterdzieści dziewięć.
11:53:11 → jedenasta pięćdziesiąt trzy.
$stringer->timeInWords($time, TimeInWords::MODE_LONG)
:
14:15:16 → czternasta piętnaście i szesnaście sekund.
05:13:32 → piąta trzynaście i trzydzieści dwie sekundy.
19:49:20 → dziewiętnasta czterdzieści dziewięć i dwadzieścia sekund.
11:53:11 → jedenasta pięćdziesiąt trzy i jedenaście sekund.
timeDiff
请参阅 Avris Stringer 的文档。
提供波兰语翻译,例如:"pięć lat temu", "dwadzieścia pięć dni temu", "półtorej godziny temu", "minutę temu", "teraz", "za trzy dni"。
phone
请参阅 Avris Stringer 的文档。
提供 +48
号码的格式化。
框架集成
Micrus
在您的 App\App:registerModules
中注册 Localisator、Stringer 和 Polonisator 模块
yield new \Avris\Localisator\LocalisatorModule;
yield new \Avris\Stringer\StringerModule;
yield new \Avris\Polonisator\PolonisatorModule;
并且应该直接可以使用:容器中的 Avris\Stringer\Stringer
和 Avris\Polonisator\Polonisator
,以及已注册的 Twig 扩展。
Symfony
示例 services.yaml
配置
Avris\Localisator\LocalisatorBuilder:
calls:
- [registerExtension, ['@Avris\Localisator\LocalisatorExtension']]
- [registerExtension, ['@Avris\Polonisator\PolonisatorExtension']]
- [registerExtension, ['@Avris\Stringer\StringerExtension']]
Avris\Localisator\LocalisatorExtension:
arguments:
$locale: '%locale%'
Avris\Polonisator\PolonisatorExtension: ~
Avris\Stringer\StringerExtension: ~
Avris\Localisator\LocalisatorInterface:
factory: ['@Avris\Localisator\LocalisatorBuilder', build]
arguments: ['Avris\Localisator\LocalisatorInterface']
Avris\Localisator\LocalisatorTwig: ~
Avris\Stringer\Stringer:
factory: ['@Avris\Localisator\LocalisatorBuilder', build]
arguments: ['Avris\Stringer\Stringer']
Avris\Stringer\StringerTwig: ~
Avris\Polonisator\Polonisator:
factory: ['@Avris\Localisator\LocalisatorBuilder', build]
arguments: ['Avris\Polonisator\Polonisator']
Avris\Polonisator\PolonisatorTwig: ~
版权
- 作者: Andre Prusinowski (Avris.it)
- 许可证: MIT