私は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言語の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');
誰かがこれについて説明がありますか?