worthwelle/alphonic

一个将字符串转换为音标拼写以及从音标拼写转换回字符串的库,适用于电话、收音机或其他通信渠道不清晰的场景。Alphonic不仅使用标准的北约字母,还支持各种其他音标字母,非常适合轻松地实现具有历史准确性的字符串转换。

v0.1.0 2020-01-03 20:39 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:30 UTC


README

Build Status Latest Stable Version Total Downloads

一个将字符串转换为音标拼写以及从音标拼写转换回字符串的库,适用于电话、收音机或其他通信渠道不清晰的场景。Alphonic不仅使用标准的北约字母,还支持各种其他音标字母,非常适合轻松地实现具有历史准确性的字符串转换。

重要说明

本库提供的字母表不仅提供原样,还提供原样。也就是说,这些字母表是按照它们最初定义的方式提供的。这意味着每个字母表支持的字符不同。有些字母表仅覆盖古典拉丁字母,有些包括数字,有些包括特定语言的拉丁字符(例如,带有变音符号的字母),还有些包括标点和特定字符。

可以使用add_symbol函数克服这些限制,该函数允许一次性将字符添加到特定的字母表。要仅填充多个字母表中缺失的符号,可以使用add_symboladd_symbols函数,并将$overwrite设置为false。这将自然地成为一个非标准的使用字母表的方法。

关于创建自定义字母表的信息将在不久的将来提供。

安装

git clone https://github.com/worthwelle/alphonic.git

Composer

安装PHP Composer

composer require worthwelle/alphonic

用法

加载预配置的字母表

<?php

$alphonic = new Alphonic();
$alphonic->load_alphabets();
$alphonic->alphabet("NATO")->add_symbol(" ","|");
$alphonic->alphabet("NATO")->add_symbol(",","Comma");
$alphonic->alphabet("NATO")->add_symbol("!","Exclamation");

echo $output = $alphonic->phonetify("Holy alphabets, Batman!", "NATO");
// Hotel Oscar Lima Yankee | Alfa Lima Papa Hotel Alfa Bravo Echo Tango Sierra Comma | Bravo Alfa Tango Mike Alfa November Exclamation
echo $alphonic->unphonetify($output, "NATO");
// HOLY ALPHABETS, BATMAN!

加载自定义字母表

<?php

$alphonic = new Alphonic();
$alphonic->load_alphabet_from_file('myalphabet.json');
$alphonic->load_alphabet_from_json(file_get_contents('myotheralphabet.json');

// The second argument allows Alphonic to skip alphabets that don't pass validation.
// This defaults to false.
$alphonic2 = new Alphonic('directory/full/of/alphabets', true);

配置选项

已知问题

  • 目前不支持本地化,字母表需要使用"en"本地化标题和符号。
  • 在早期开发阶段,JSON模式可能会在不通知的情况下更改。一旦v1.0正式化,这将成为未来的标准。

运行测试

composer test                            # run all unit tests
composer test-timing                     # report the runtime of each test into an XML file
composer coverage                        # run unit tests and report code coverage
composer coverage-report                 # run unit tests and provide a thorough code coverage report
composer testOnly TestClass              # run specific unit test class
composer testOnly TestClass::testMethod  # run specific unit test method
composer style-check                     # check code style for errors
composer style-fix                       # automatically fix code style errors

贡献

字母表

目前支持的字母表