0
好的,這裏是我的問題,我有輸入,用戶可以在其中輸入值,並將其傳遞給另一頁上的變量。我使用的是gettext,所以我的語言是英文,中文,西班牙文和俄文。當我用英語我的號碼是像這樣:Gettext翻譯用數字中的逗號代替小數點
£23.50
但是,當我的用戶改變語言爲西班牙語,小數被替換爲逗號,這樣的數字是,像這樣:
£ 2350。
這兩個數字是相同的嗎?只是看着他們,看起來不像他們,但我的系統是怎麼做到的?有沒有解決辦法?當他們選擇一種語言來啓動gettext時,我通過cookie設置他們的本地人。
這裏是我的gettext翻譯代碼:
include(APP."/libs/languages/libs/streams.php");
include(APP."/libs/languages/libs/gettext.php");
define('LOCALE', 'en_GB');
define('SESSION_LOCALE_KEY', 'locale');
define('DEFAULT_LOCALE', 'en_GB');
define('LOCALE_REQUEST_PARAM', 'lang');
define('WEBSITE_DOMAIN', 'messages');
if (array_key_exists(LOCALE_REQUEST_PARAM, $_REQUEST)) {
$current_locale = $_REQUEST[LOCALE_REQUEST_PARAM];
$_COOKIE[SESSION_LOCALE_KEY] = $current_locale;
} elseif (array_key_exists(SESSION_LOCALE_KEY, $_COOKIE)) {
$current_locale = $_COOKIE[SESSION_LOCALE_KEY];
} else {
$current_locale = DEFAULT_LOCALE;
}
//will eventually stick this all in the model file
putenv("LC_ALL=$current_locale");
setlocale(LC_ALL, $current_locale);
bindtextdomain(WEBSITE_DOMAIN, $_SERVER['DOCUMENT_ROOT'] . '/lang');
bind_textdomain_codeset(WEBSITE_DOMAIN, 'UTF-8');
textdomain(WEBSITE_DOMAIN);
我想你的意思是'23,50'而不是'2,350'?如果是這樣,那麼是的,它們是相同的(當用作字符串時)。有些國家使用逗號作爲小數點分隔符,有些使用點。千位分隔符也有差異。 – enricog 2015-02-06 07:01:28
沒有,它實際上改變他們爲2,350,我不知道爲什麼。 – 2015-02-06 07:02:41
我幾乎可以肯定,'gettext()'不會移動小數點分隔符只是踢。再次,你沒有提到你是如何打印這些數字的。 – 2015-02-06 07:19:27