白俄罗斯语“Lacinka”转换器

1.0.0 2016-09-23 11:09 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:15:22 UTC


README

该工具提供API,使您能够将白俄罗斯语拉丁字母转换为白俄罗斯语西里尔字母,反之亦然。

基本用法

Composer

$ composer require michaskruzelka/lacinka

PHP

use Michaskruzelka\Lacinka\Converter;

$converter = new Converter();

转换为白俄罗斯语传统拉丁字母

$text = "
    Лацінка — іміджавая рэч, яна стварае зусім іншае ўражанне ад мовы, нязвыклае, больш еўрапейскае
    — яна злучае нас з блізкімі нам народамі Цэнтральнай і Ўсходняй Еўропы: палякамі, чэхамі, харватамі,
    якім лацінка адкрывае беларускую мову як мову блізкую і зразумелую. Можа і камусь з беларусаў
    яе існаванне можа дадаць цікавасці да беларускай мовы?
";

$convertedText = $converter->convert($text);

转换为白俄罗斯语学术(地理)拉丁字母

$convertedText = $converter->setVersion('geographic')->convert($text);

转换为白俄罗斯语西里尔字母

$text = "
    Łacinka — imidžavaja reč, jana stvaraje zusim inšaje ŭražannie ad movy, niazvykłaje, bolš jeŭrapiejskaje
    — jana złučaje nas z blizkimi nam narodami Centralnaj i Ŭschodniaj Jeŭropy: palakami, čechami, charvatami,
    jakim łacinka adkryvaje biełaruskuju movu jak movu blizkuju i zrazumiełuju. Moža i kamuś z biełarusaŭ
    jaje isnavannie moža dadać cikavasci da biełaruskaj movy?
";

$convertedText = $converter->directToCyrillic()->convert($text);

高级问题

转换规则并不全面。我该如何改进它们?

您无需修改业务逻辑中的任何内容。相反,所有规则都存储在/config/rules.xml文件中,您可以在其中添加、删除或修改任何规则。您的规则应按照以下结构构建

<rule name="[rule_name]">
   <sort>[number]</sort>
   <renderer>
       <name>[Some implementation of RendererInterface]</name>
       <search>[Search Pattern, can include <back> or <forth> inheriting nodes]</search>
       <replace>[Replacement, can include <back> or <forth> inheriting nodes]</replace>
   </renderer>
   <directions>
       <back>[true|false][From latin to cyrillic]</back>
       <forth>[true|false][From cyrillic to latin]</forth>
   </directions>
   <versions>
       <[version]>[true|false]</[version]>
       ...
   </versions>
   <orthographies>
       <[orthography]>[true|false]</[orthography]>
       ...
   </orthographies>
   <pairs>
       <pair>
           <cyrillic>[letter|word|etc]</cyrillic>
           <latin>[letter|word|etc]</latin>
           <versions>...</versions>
           <orthographies>...</orthographies>
           <directions>...</directions>
       </pair>
       ...
   </pairs>
</rule>

此外,您可以在任何xml文件中应用您自己的规则

$converter = (new Converter(false))->initRules([path_to_the_xml_file]);

是否可以添加白俄罗斯语拉丁字母的另一个版本(例如,古文)?

是的。每个字母表的版本都必须在/config/settings.php文件中指定。

...
'versions' => [
    'traditional',
    'geographic',
    '[your_version]'
],
...
$converter->setVersion([your_version]);

如何扩展转换器的功能?

您可以添加新的渲染器。它们必须实现'Michaskruzelka\Lacinka\Renderers\RendererInterface'。

链接