梵文 / 梵文书
梵文及其他印度语种的转写库。
Requires
- php: >=5.4.8
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-19 09:42:55 UTC
README
简介
Sanscript.php 是一个用 PHP 编写的印度语种转写库。它支持最流行的印度文字及其多种不同的罗马化方案。虽然 Sanscript 专注于梵文的转写,但它对其他语言也有部分支持,且易于扩展。
要求
Sanscript 需要 PHP 5.4.8 及以上版本。5.4.8 之前的 PHP 版本中 mb_substr()
函数存在已知问题。这些版本将无法与 Sanscript 一起工作。
用法
Sanscript 的使用很简单。
首先安装 Composer 包管理器,然后使用以下命令安装 Sanscript:
composer require sanskrit/sanscript
然后按照如下方式调用 Sanscript:
<?php use Sanskrit\Sanscript; $sanscript = new Sanscript(); $output = $sanscript->t($input, $from, $to);
这里,$from
和 $to
是不同 方案 的名称。在 Sanscript 中,“方案”一词同时指代文字和罗马化。这些方案分为两种类型
- 婆罗米 方案,它们是 音节文字。所有印度文字都是婆罗米方案。
- 罗马 方案,它们是 字母。所有罗马化都是罗马方案。
默认情况下,Sanscript 支持以下婆罗米方案
孟加拉文
梵文
古吉拉特文
古尔穆基文
卡纳达文
马拉雅拉姆文
奥里亚文
泰米尔文
泰卢固文
以及以下罗马方案
hk
(哈佛-京都)iast
(国际梵文转写字母表)itrans
(ITRANS)itrans_dravidian
(ITRANS 支持德拉维达人短元音 "e" 和 "o")kolkata
(加尔各答国家图书馆)slp1
(梵文图书馆语音基础)velthuis
(Velthuis)wx
(WX)
禁用转写
当 Sanscript 遇到标记 ##
时,它会切换转写状态
$sanscript->t('ga##Na##pa##te', 'hk', 'devanagari'); // गNaपte
$sanscript->t('ध##र्म##क्षेत्रे', 'devanagari', 'hk'); // dhaर्मkSetre
当 Sanscript 遇到标记 \
时,它将禁用紧随其后的字符的转写。\
用于 ITRANS 兼容性;我们建议始终使用 ##
。
$sanscript->t('a \\a', 'itrans', 'devanagari'); // अ a
$sanscript->t('\\##aham', 'itrans', 'devanagari'); // ##अहम्
转写到有损方案
有损 方案没有必要的字母来支持无损翻译。例如,孟加拉文是一个有损方案,因为它使用 ব
来表示 ba
和 va
。在未来版本中,Sanscript 可能允许您选择如何处理有损性。目前,它做了一些相当糟糕的硬编码假设。修正和建议总是受欢迎的。
转写选项
您可以通过传递一个 options
数组来调整转写函数
$output = $sanscript->t($input, $from, $to, $options);
$options
将选项映射到值。目前,支持以下选项
skip_sgml
- 如果为 TRUE,将 SGML 标签转写为普通单词(<b>iti</b>
→<ब्>इति</ब्>
)。默认为FALSE
。syncope
- 如果为 TRUE,使用印地式转写(ajay
→अजय
)。在语言学中,这种行为被称为 辅音省略。默认为FALSE
。
添加新方案
添加新方案很简单
$sanscript->addBrahmicScheme($schemeName, $schemeData);
$sanscript->addRomanScheme($schemeName, $schemeData);
有关创建 $schemeData
的帮助,请参阅 addBrahmicScheme
和 addRomanScheme
函数的注释。
运行测试
使用Composer简化测试运行
1. cd /path/to/sanscript
2. composer install
3. ./vendor/bin/phpunit