avram/vokativ

用于将塞尔维亚语名字转换为呼唤语的库。

v1.0.3 2016-06-14 09:05 UTC

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");