PHP数字到单词西班牙语!

时间:2011-07-12 07:06:19

标签: php php-5.3

有没有人知道免费许可的PHP代码会将数字转换为西班牙语单词?
我的工作需要它来生成账单,所以它需要准确 我对西班牙语的了解几乎不存在,所以很难自己写出来;我对西班牙语语一无所知。

编辑:我已经编写了我自己的版本,现在它仅适用于3位数字(在小数点的两边),但这是一个好的开始。如果我说得很大(5种语言计划atm),我可能会在github上分享它。不要赌它。

4 个答案:

答案 0 :(得分:6)

您可以使用PHP Intl扩展来执行此操作。

if (version_compare(PHP_VERSION, '5.3.0', '<')
    || !class_exists('NumberFormatter')) {
    exit('You need PHP 5.3 or above, and php_intl extension');
}

$formatter = new \NumberFormatter('es', \NumberFormatter::SPELLOUT);
echo $formatter->format(1234567) . "\n";

输出:

  

unmillóndoscientostreinta y cuatro mil quinientos sesenta y siete

它不仅适用于西班牙语,也适用于许多其他语言。

答案 1 :(得分:3)

Is there an easy way to convert a number to a word in PHP?

从上面,您可以从数字中派生出“单词”,然后使用任何Translate API将其翻译成您喜欢的任何语言......或者您自己的查找。

修改

您可以采用的另一种方法是在PHP文件或文本文件中硬编码大量值:

 $numTranslation = array(1 => "uno", 2 => "dos");

然后,在您的代码中,如果数字为2,则只需检索echo $numTranslation[2]即可打印出西班牙语等效字段。

修改2

只是为了让它更完整,如果你想支持多种语言,而不仅仅是西班牙语:

 $numTranslation = array(
   1 => array("en" => "One", "es" => "uno"), 
   2 => array("en" => "Two", "es" => "dos")
 );

并将其打印给最终用户:echo $numTranslation[2]['es'];以获得西班牙语等价物......

答案 2 :(得分:1)

我唯一能找到的是Perl script

代码本身很容易用PHP编写,从Perl脚本中你可以得到数字的逻辑和西班牙语单词。

答案 3 :(得分:0)