⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lang.fr.php

📁 java开源项目源代码
💻 PHP
字号:
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 3.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available through the world-wide-web at                              |// | http://www.php.net/license/3_0.txt.                                  |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Kouber Saparev <kouber@php.net>                             |// +----------------------------------------------------------------------+//// $Id: lang.fr.php,v 1.1 2006/11/17 05:59:52 daintree Exp $/** * Include needed files */require_once("Numbers/Words.php");/** * Class for translating numbers into French. * * @author Kouber Saparev <kouber@php.net>  * @package Numbers_Words */class Numbers_Words_fr extends Numbers_Words{    // {{{ properties    /**     * Locale name.     * @var string     * @access public     */    var $locale      = 'fr';    /**     * Language name in English.     * @var string     * @access public     */    var $lang        = 'French';    /**     * Native language name.     * @var string     * @access public     */    var $lang_native = 'Fran鏰is';    /**     * The words for some numbers.     * @var string     * @access private     */    var $_misc_numbers = array(        10=>'dix',      // 10            'onze',     // 11            'douze',    // 12            'treize',   // 13            'quatorze', // 14            'quinze',   // 15            'seize',    // 16        20=>'vingt',    // 20        30=>'trente',   // 30        40=>'quarante', // 40        50=>'cinquante',// 50        60=>'soixante', // 60       100=>'cent'      // 100    );    /**     * The words for digits (except zero).     * @var string     * @access private     */    var $_digits = array(1=>"un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf");    /**     * The word for zero.     * @var string     * @access private     */    var $_zero = 'z閞o';    /**     * The word for infinity.     * @var string     * @access private     */    var $_infinity = 'infini';    /**     * The word for the "and" language construct.     * @var string     * @access private     */    var $_and = 'et';        /**     * The word separator.     * @var string     * @access private     */    var $_sep = ' ';    /**     * The dash liaison.     * @var string     * @access private     */    var $_dash = '-';    /**     * The word for the minus sign.     * @var string     * @access private     */    var $_minus = 'moins'; // minus sign    /**     * The plural suffix (except for hundred).     * @var string     * @access private     */    var $_plural = 's'; // plural suffix    /**     * The suffixes for exponents (singular).     * @var array     * @access private     */    var $_exponent = array(        0 => '',        3 => 'mille',        6 => 'million',        9 => 'milliard',       12 => 'trillion',       15 => 'quadrillion',       18 => 'quintillion',       21 => 'sextillion',       24 => 'septillion',       27 => 'octillion',       30 => 'nonillion',       33 => 'decillion',       36 => 'undecillion',       39 => 'duodecillion',       42 => 'tredecillion',       45 => 'quattuordecillion',       48 => 'quindecillion',       51 => 'sexdecillion',       54 => 'septendecillion',       57 => 'octodecillion',       60 => 'novemdecillion',       63 => 'vigintillion',       66 => 'unvigintillion',       69 => 'duovigintillion',       72 => 'trevigintillion',       75 => 'quattuorvigintillion',       78 => 'quinvigintillion',       81 => 'sexvigintillion',       84 => 'septenvigintillion',       87 => 'octovigintillion',       90 => 'novemvigintillion',       93 => 'trigintillion',       96 => 'untrigintillion',       99 => 'duotrigintillion',      102 => 'trestrigintillion',      105 => 'quattuortrigintillion',      108 => 'quintrigintillion',      111 => 'sextrigintillion',      114 => 'septentrigintillion',      117 => 'octotrigintillion',      120 => 'novemtrigintillion',      123 => 'quadragintillion',      126 => 'unquadragintillion',      129 => 'duoquadragintillion',      132 => 'trequadragintillion',      135 => 'quattuorquadragintillion',      138 => 'quinquadragintillion',      141 => 'sexquadragintillion',      144 => 'septenquadragintillion',      147 => 'octoquadragintillion',      150 => 'novemquadragintillion',      153 => 'quinquagintillion',      156 => 'unquinquagintillion',      159 => 'duoquinquagintillion',      162 => 'trequinquagintillion',      165 => 'quattuorquinquagintillion',      168 => 'quinquinquagintillion',      171 => 'sexquinquagintillion',      174 => 'septenquinquagintillion',      177 => 'octoquinquagintillion',      180 => 'novemquinquagintillion',      183 => 'sexagintillion',      186 => 'unsexagintillion',      189 => 'duosexagintillion',      192 => 'tresexagintillion',      195 => 'quattuorsexagintillion',      198 => 'quinsexagintillion',      201 => 'sexsexagintillion',      204 => 'septensexagintillion',      207 => 'octosexagintillion',      210 => 'novemsexagintillion',      213 => 'septuagintillion',      216 => 'unseptuagintillion',      219 => 'duoseptuagintillion',      222 => 'treseptuagintillion',      225 => 'quattuorseptuagintillion',      228 => 'quinseptuagintillion',      231 => 'sexseptuagintillion',      234 => 'septenseptuagintillion',      237 => 'octoseptuagintillion',      240 => 'novemseptuagintillion',      243 => 'octogintillion',      246 => 'unoctogintillion',      249 => 'duooctogintillion',      252 => 'treoctogintillion',      255 => 'quattuoroctogintillion',      258 => 'quinoctogintillion',      261 => 'sexoctogintillion',      264 => 'septoctogintillion',      267 => 'octooctogintillion',      270 => 'novemoctogintillion',      273 => 'nonagintillion',      276 => 'unnonagintillion',      279 => 'duononagintillion',      282 => 'trenonagintillion',      285 => 'quattuornonagintillion',      288 => 'quinnonagintillion',      291 => 'sexnonagintillion',      294 => 'septennonagintillion',      297 => 'octononagintillion',      300 => 'novemnonagintillion',      303 => 'centillion'        );    // }}}    // {{{ _splitNumber()    /**     * Split a number to groups of three-digit numbers.     *     * @param  mixed  $num   An integer or its string representation     *                       that need to be split     *     * @return array  Groups of three-digit numbers.     *     * @access private     * @author Kouber Saparev <kouber@php.net>     * @since  PHP 4.2.3     */    function _splitNumber($num)    {        if (is_string($num)) {            $ret = array();            $strlen = strlen($num);            $first = substr($num, 0, $strlen%3);            preg_match_all('/\d{3}/', substr($num, $strlen%3, $strlen), $m);            $ret =& $m[0];            if ($first) array_unshift($ret, $first);            return $ret;        }        else            return explode(' ', number_format($num, 0, '', ' ')); // a faster version for integers    }    // }}}    // {{{ _showDigitsGroup()    /**     * Converts a three-digit number to its word representation     * in French language.     *     * @param  integer  $num     An integer between 1 and 999 inclusive.     *     * @param  boolean  $last    A flag, that determines if it is the last group of digits -     *                           this is used to accord the plural suffix of the "hundreds".     *                           Example: 200 = "deux cents", but 200000 = "deux cent mille".     *     *     * @return string   The words for the given number.     *     * @access private     * @author Kouber Saparev <kouber@php.net>     */    function _showDigitsGroup($num, $last = false)    {        $ret = '';                // extract the value of each digit from the three-digit number        $e = $num%10;                  // ones        $d = ($num-$e)%100/10;         // tens        $s = ($num-$d*10-$e)%1000/100; // hundreds                // process the "hundreds" digit.        if ($s) {            if ($s>1) {                $ret .= $this->_digits[$s].$this->_sep.$this->_misc_numbers[100];                if ($last && !$e && !$d) {                    $ret .= $this->_plural;                }            } else {                $ret .= $this->_misc_numbers[100];            }            $ret .= $this->_sep;        }        // process the "tens" digit, and optionally the "ones" digit.        if ($d) {            // in the case of 1, the "ones" digit also must be processed            if ($d==1) {                if ($e<=6) {                    $ret .= $this->_misc_numbers[10+$e];                } else {                    $ret .= $this->_misc_numbers[10].'-'.$this->_digits[$e];                }                $e = 0;            } elseif ($d>5) {                if ($d<8) {                    $ret .= $this->_misc_numbers[60];                    $resto = $d*10+$e-60;                    if ($e==1) {                        $ret .= $this->_sep.$this->_and.$this->_sep;                    }                    elseif ($resto) {                        $ret .= $this->_dash;                    }                                        if ($resto) {                        $ret .= $this->_showDigitsGroup($resto);                    }                    $e = 0;                } else {                    $ret .= $this->_digits[4].$this->_dash.$this->_misc_numbers[20];                    $resto = $d*10+$e-80;                    if ($resto) {                        $ret .= $this->_dash;                        $ret .= $this->_showDigitsGroup($resto);                        $e = 0;                    } else {                        $ret .= $this->_plural;                    }                }            } else {                $ret .= $this->_misc_numbers[$d*10];            }        }        // process the "ones" digit        if ($e) {            if ($d) {                if ($e==1) {                    $ret .= $this->_sep.$this->_and.$this->_sep;                } else {                    $ret .= $this->_dash;                }            }            $ret .= $this->_digits[$e];        }        // strip excessive separators        $ret = rtrim($ret, $this->_sep);        return $ret;    }    // }}}    // {{{ toWords()    /**     * Converts a number to its word representation     * in French language.     *     * @param  integer $num   An integer (or its string representation) between 9.99*-10^302     *                        and 9.99*10^302 (999 centillions) that need to be converted to words     *     * @return string  The corresponding word representation     *     * @access public     * @author Kouber Saparev <kouber@php.net>     */    function toWords($num = 0)    {        $ret = '';        // check if $num is a valid non-zero number        if (!$num || preg_match('/^-?0+$/', $num) || !preg_match('/^-?\d+$/', $num)) return $this->_zero;        // add a minus sign        if (substr($num, 0, 1) == '-') {            $ret = $this->_minus . $this->_sep;            $num = substr($num, 1);        }        // if the absolute value is greater than 9.99*10^302, return infinity        if (strlen($num)>306) {            return $ret . $this->_infinity;        }        // strip excessive zero signs        $num = ltrim($num, '0');        // split $num to groups of three-digit numbers        $num_groups = $this->_splitNumber($num);        $sizeof_numgroups = count($num_groups);        foreach ($num_groups as $i=>$number) {            // what is the corresponding exponent for the current group            $pow = $sizeof_numgroups-$i;            // skip processment for empty groups            if ($number!='000') {                if ($number!=1 || $pow!=2) {                    $ret .= $this->_showDigitsGroup($number, $i+1==$sizeof_numgroups).$this->_sep;                }                $ret .= $this->_exponent[($pow-1)*3];                if ($pow>2 && $number>1) {                    $ret .= $this->_plural;                }                $ret .= $this->_sep;            }        }        return rtrim($ret, $this->_sep);    }    // }}}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -