我正在使用 Codeigniter,并通过制作一个助手和相应的 .po/.mo 文件来实现 gettext/.po 国际化。
每个要替换的字符串如下所示:_('some text here');
但是当成功实现这个之后,我注意到导致像 100.98 等数字的 PHP 计算被更改为 100,98。此外,句号用逗号更改。
例如,这个计算通常会产生一个像 1037.67 这样的数字:
<?php
// Space total
$space_total = $space_info[0]->space_total;
// Prepare space used
$space_used = $space[0]->media_size / 1000000;
$space_used = round($space_used, 1);
// Prepare progressbar
$percent = $space_used / $space_total * 100;
?>
但是在实施 gettext 后,结果为 1037,67。如果有其他因素导致此问题,我已经进行了故障排除,但仅当我在帮助程序中运行 gettext 语言初始化函数时才会发生这种情况。
这里是帮手:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function set_translation_language($language){
$lang_path = FCPATH.APPPATH.'language/locales';
putenv('LANG='.$language.'.UTF-8');
setlocale(LC_ALL, $language.'.UTF-8');
bindtextdomain('lang', $lang_path);
textdomain('lang');
}
以此为例来调用它:
set_translation_language('en_US');
有人对此有解释吗?