it-blaster / ru-strings-bundle
名词格变位和与数量的结合
dev-master
2017-02-03 11:49 UTC
Requires
- php: >=5.3.2
- snc/redis-bundle: ^2.0
- symfony/framework-bundle: ~2.1
This package is not auto-updated.
Last update: 2024-09-14 18:31:37 UTC
README
在 twig 中进行名词格变位和与数量的结合,并提供了用于 Symfony2 的服务。缓存使用 Redis。
示例
{% set auto_count = 223 %} {% set surface = 'белый снег' %} Проехали {{ auto_count }} {{ plural(auto_count, 'автомобилей', 'автомобиль', 'автомобиля') }} по {{ surface | inflect('datv') }} {# Проехали 223 автомобиля по белому снегу #}
安装
composer require it-blaster/ru-strings-bundle
在 AppKernel.php
中添加
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Etfostra\RuStringsBundle\EtfostraRuStringsBundle(), ); }
配置
在 config.yml
中可用的参数
etfostra_ru_strings: redis_cache_ttl: 2592000 #Время жизни кеша в секундах pyphrasy_api_url: https://pyphrasy.herokuapp.com/inflect #API URL
使用示例
名词格变位
$inflector = $this->get('ru_strings.case'); $inflector->inflect('белый снег', 'gent'); //белого снега $inflector->inflect('белый снег', 'datv'); //белому снегу $inflector->inflect('белый снег', 'accs'); //белый снег $inflector->inflect('белый снег', 'ablt'); //белым снегом $inflector->inflect('белый снег', 'loct'); //белом снеге $inflector->inflect('белый снег', 'voct'); //белый снег
在 Twig 中的名词格变位
{{ 'белый снег' | inflect('gent') }} {# белого снега #} {{ 'белый снег' | inflect('datv') }} {# белому снегу #} {{ 'белый снег' | inflect('accs') }} {# белый снег #} {{ 'белый снег' | inflect('ablt') }} {# белым снегом #} {{ 'белый снег' | inflect('loct') }} {# белом снеге #} {{ 'белый снег' | inflect('voct') }} {# белый снег #}
名词格变位选项的完整列表 http://opencorpora.org/dict.php?act=gram
与数量的结合
$pluralizer = $this->get('ru_strings.plural'); $pluralizer->plural(101, 'автомобилей', 'автомобиль', 'автомобиля'); //автомобиль $pluralizer->plural(102, 'автомобилей', 'автомобиль', 'автомобиля'); //автомобиля $pluralizer->plural(100, 'автомобилей', 'автомобиль', 'автомобиля'); //автомобилей
在 Twig 中的与数量的结合
{{ plural(101, 'автомобилей', 'автомобиль', 'автомобиля') }} {# автомобиль #} {{ plural(102, 'автомобилей', 'автомобиль', 'автомобиля') }} {# автомобиля #} {{ plural(100, 'автомобилей', 'автомобиль', 'автомобиля') }} {# автомобилей #}
其他语言的三元操作符列表 https://gnu.ac.cn/software/gettext/manual/html_mono/gettext.html#Plural-forms
方法 plural
不使用缓存。