avram / vokativ
用于将塞尔维亚语名字转换为呼唤语的库。
Requires
- php: >=5.3.0
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-09-20 21:37:30 UTC
README
PHP类,用于将塞尔维亚语名字转换为呼唤语。
简介
塞尔维亚语使用呼唤语来称呼人,所以当某人用名字Filip注册到一个网站上时,用英语问候(称呼)他们“Hello Filip”是可以的,但在塞尔维亚语中则是“Zdravo Filipe”,而“Zdravo Filip”是不正确的,听起来也很奇怪。但呼唤语并不是像在名字后加上“e”那么简单。它有一套规则,这个PHP类试图将这些规则应用于所有塞尔维亚语名字。如果它做不到,它将使用内置词典(主格 => 呼唤格)来找到正确的形式。
注意,这并不完美,如果你发现任何错误转换的名字,请通知我。也欢迎提交PR。
安装
使用composer安装
composer require avram/vokativ
或者手动通过克隆此仓库
git clone https://github.com/avramovic/Vokativ.git
使用
本地
<?php
require 'vendor/autoload.php';
use Avram\Vokativ\Vokativ;
use Avram\Vokativ\Dictionary\VokativIniDictionary;
$nominativ = 'Filip';
$vokativ = new Vokativ(new VokativIniDictionary());
echo "Vocative case for \"$nominativ\" is: " . $vokativ->make($nominativ) . " (source: " . $vokativ->source() . ")";
你应该得到这样的输出
Vocative case for "Filip" is: Filipe (source: dictionary)
Laravel
这个包附带Laravel服务提供商和外观,以便更容易地在代码的任何地方使用它。只需打开config/app.php
文件,将其添加到服务提供商列表中
Avram\Vokativ\Provider\VokativServiceProvider::class,
然后,在列表中的外观下面,添加以下内容
'Vokativ' => Avram\Vokativ\Facade\Vokativ::class,
之后,你可以在项目的任何地方使用以下代码
$vokativ = Vokativ::make("Filip");
//or in views
Zdravo {{ Vokativ::make("Filip") }}!
注意:虽然这个库与大多数名字都能很好地工作,但它可能会在某些名字上失败。Laravel外观提供了另一个函数,Vokativ::safe("Filip")
,它只会在词典中找到呼唤格时返回呼唤格,如果没有找到,则返回主格(原始字符串)。对于这种情况,你可能想扩展默认词典,你可以通过发布此包的资产来实现
php artisan vendor:publish
这将把词典文件复制到storage/avram/vokativ
,由于Laravel集成默认使用INI文件,你需要编辑storage/avram/vokativ/vokativ.ini
。外观将自动切换到使用已发布的词典。
Symfony包
这个包附带Symfony服务和Twig扩展。要启用它,将以下内容添加到AppKernel.php
中的$bundles
数组
new Avram\Vokativ\VokativBundle\AvramVokativBundle(),
然后,你可以在你的Symfony代码中使用它们
// in Twig
Zdravo {{ "Filip"|vokativ }}!
// in controllers
$vokativ = $this->get("avram_vokativ.generator")->make("Filip");