在PHP echo或print中更改语言

时间:2017-10-22 07:48:20

标签: php

请帮我解决这个问题。我不确定是否可能!我需要一个小巧的解决方案。

<?php include_once"system/hijri_calendar.php";               
echo (new hijri\datetime()) -> format ('_j');
?>

上面的代码给出了一个英文输出整数(1 ... 30)。

现在,在回声之后,我想将这种英语改为其他语言。 例如:

说上面的代码给了我一个输出1 我想将此输出(1)更改为其他语言(1)

3 个答案:

答案 0 :(得分:1)

如果我找到了你,你试图从一个数组中获取值,这是基于另一个数组的值和键。您可以使用array_search()根据值

从数组中查找键
<?php

$en = array(1,2,3,4,5,6,7,8,9,0);
$bn = array('১','২','৩','৪','৫','৬','৭','৮','৯','০');

var_dump(array_search(5, $en)); // gives the key 4 from $en where value is 5 
                                 // array keys strart with 0

// so you can do
var_dump($bn[array_search(5, $en)]);  // gives ৬

PHPFiddle to play with

答案 1 :(得分:0)

又快又脏:

function __($number, $lang)
{

    if ($lang == 'en') {
        return $number;
    }

    $translate = array();
    $translate['bn'] = array(
        '1' => '১',
        '2' => '২',
        '3' => '৩',
        '4' => '৪',
        '5' => '৫',
        '6' => '৬',
        '7' => '৭',
        '8' => '৮',
        '9' => '৯',
        '0' => '০'
    );

    $translate['th'] = array(
        '1' => '๑',
        '2' => '๒',
        '3' => '๓',
        '4' => '๔',
        '5' => '๕',
        '6' => '๖',
        '7' => '๗',
        '8' => '๘',
        '9' => '๙',
        '0' => '๐'
    );

    $digits = str_split($number,1);
    $return_this = '';
    foreach($digits as $digit){
        $return_this .= $translate[$lang][$digit];
    }
    return $return_this;
}

echo __('905','bn');

分解,如果lang是en你得到你给的东西,如果bn或th,它会分开数字并使用所请求的数组重建它。

除了每种语言的数组都在他们自己的文件中之外,这基本上就是我的工作方式。

答案 2 :(得分:0)

我稍微更改了数组以简化操作。如果数组是数字的顺序(所以我已经将0元素移动到数组中的位置0),你可以使用......

$bn = array('০','১','২','৩','৪','৫','৬','৭','৮','৯');
$in = "18";
$out = "";
foreach ( str_split($in) as $ch ) {
    $out .= $bn[$ch];
}
echo $out;