2

我不仅想检测客户端语言(我已经使用不同方法的组合,从 UA 字符串提取到地理定位服务),而且如果可能的话,我还想以自动方式检测文本方向。

我知道没有太多的语言使用从右到左的方向(至少没有从左到右的语言那么多),所以一个可能的解决方案是做一些类似$rtl = ['ar', 'he', ..., '<whatever>']; if (in_array(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2), $rtl)) { $direction = "rtl"; } else { $direction = "ltr"; }但在我看来就像有(可能) 更好的解决方案。

我仍在研究一些语言识别 API,如 LangID、AlchemyAPI 和 DetectLanguage,但它们似乎做同样的事情:识别文本语言,但不识别文本方向。

有什么推荐的方法吗?

4

1 回答 1

2

可以通过 ICU 库访问有关语言方向的信息。

使用cosmopolitan包可以很简单,如下所示。

<?php
require __DIR__. "/vendor/autoload.php";
use Salarmehr\Cosmopolitan\Cosmo;

echo Cosmo::create('fa')->direction(); // rlt
echo Cosmo::create('en')->direction(); // ltr
于 2013-05-28T17:24:14.997 回答