alvin0319 / josa-extension
韩语 Josa 扩展。
1.0.0
2023-11-11 07:20 UTC
Requires
- php: >=8.2
- ext-mbstring: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.38
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.4
This package is auto-updated.
Last update: 2024-09-13 05:14:59 UTC
README
根据辅音(是、能、的、地、了、们等)进行修正,类似于 sprintf 的函数。
安装
要求
- PHP: 8.2 以上
- ext-mbstring: *
使用以下命令通过 Composer 安装库:
composer require alvin0319/josa-extension
用法
use alvin0319\JosaExtension\JosaFormatter; echo JosaFormatter::formatString("%s을 %s로 바꿔볼게요!", "PHP", "Java") // Output: PHP를 Java로 바꿔볼게요!
音节检测器的优先级
-
韩文(HangulJongSungDetector):'홍길동'은
-
英文大写缩写(EnglishCapitalJongSungDetector):'IBM'이(아이비엠이)
-
普通英文(EnglishJongSungDetector):'Google'을(구글을)
-
英文+数字(EnglishNumberJongSungDetector):'WD40'는(더블유디포티는) - 这样读的情况很少,默认未注册。(参考异常处理)
-
英文+10以下数字(EnglishNumberKorStyleJongSungDetector):'MP3'는(엠피쓰리는),'WD40'는(더블유디사십은)
-
数字(NumberJongSungDetector):'1'和'2'是(일과 이는)
-
日语 JapaneseJongSungDetector:'あゆみ'는(아유미는)
异常处理
- 英文+数字的情况下,只有10以下的数字被读作英文。通常'MP3'读作'엠피쓰리',但'Office 2000'读作'오피스 이천'。如果想始终将英文+数字读作英文,则必须直接注册 EnglishNumberJongSungDetector。
use alvin0319\JosaExtension\JosaFormatter; $formatter = new JosaFormatter([ new HangulJongSungDetector(), new EnglishCapitalJongSungDetector(), new EnglishJongSungDetector(), new EnglishNumberJongSungDetector(), new EnglishNumberKoreanStyleJongSungDetector(), new NumberJongSungDetector(), new JapaneseJongSungDetector() ]); JosaFormatter::setDefaultFormatter($formatter); // Optional
添加读取规则
- 可以通过
JosaFormatter::addReadingRule()
添加读取规则。 - 在'韩文+数字'的情况下,数字是以韩文读的。但是,如果英文被写成韩文,那么数字也应以英文读取,所以有时会出现错误。目前,可以通过直接添加读取规则来将英文视为英文。
use alvin0319\JosaExtension\JosaFormatter; $formatter = JosaFormatter::getDefaultFormatter(); $formatter->addReadingRule('베타', 'beta'); $result = $formatter->format("%s을 구매하시겠습니까?", "베가 베타 3"); // 베가 베타 3를 구매하시겠습니까?
参考资料
-
韩语中的英文阅读
-
韩文辅音区分'을/를'
- 韩文,英文辅音处理(iOS)
https://github.com/trilliwon/JNaturalKorean
- 将汉字转换为韩文
- 通过后缀查找英文单词