我正在使用Codeigniter,並且通過製作幫助程序和相應的.po/.mo文件來實現了gettext/.po國際化。在逗號分隔的句點中使用gettext結果
,是爲了替換每個字符串看起來是這樣的:_('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語言init函數時纔會發生此問題。
這裏是助手:
<?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');
難道有人有一個解釋嗎?
做對某人有一個解釋或解決方案呢? – user1554299 2012-08-01 11:42:08