梵文/梵文书

梵文及其他印度语种的转写库。

v1.0.1 2016-12-30 21:53 UTC

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 中,“方案”一词同时指代文字和罗马化。这些方案分为两种类型

  1. 婆罗米 方案,它们是 音节文字。所有印度文字都是婆罗米方案。
  2. 罗马 方案,它们是 字母。所有罗马化都是罗马方案。

默认情况下,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'); // ##अहम्

转写到有损方案

有损 方案没有必要的字母来支持无损翻译。例如,孟加拉文是一个有损方案,因为它使用 来表示 bava。在未来版本中,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 的帮助,请参阅 addBrahmicSchemeaddRomanScheme 函数的注释。

运行测试

使用Composer简化测试运行

1. cd /path/to/sanscript
2. composer install
3. ./vendor/bin/phpunit