2011-01-16 68 views
2

我一直在潛入一些由專業人士編寫的代碼(更不用說在SO上)。 我發現人們經常參考單詞locale(例如找到一些std::locale)。甚至在java中的一些代碼指的是locale。那麼這是什麼locale,爲什麼我們真的需要它?是否有必要使用它(我想它是用於一些可移植性問題)?我嘗試了谷歌搜索,但一切都加入了我的困惑。 :(locale in C++ n java

回答

2

「Locale對象表示特定的地理,政治或文化區域,需要Locale執行其任務的操作稱爲區域設置敏感,並使用Locale爲用戶定製信息,例如,顯示號碼是一種區域敏感的操作 - 號碼應根據用戶所在國家,地區或文化的習俗/慣例進行格式化。「

(從JavaDoc中:http://download.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html

大多數情況下,你使用它的時候:CST,EST,PST,國外等,也用於日期和不同的日曆,和不同的語言。因此,地理/政治/文化地區的代表。

3

語言環境是所有關於使您的應用程序的外觀和感覺適合在多個國家的用戶。

簡單地說,例如,在英國我們寫123456.78爲123,456.78但在法國它使用的格式是123.456,78和渲染是現場瞭解將使你的應用程序右看看在不同的國家職能。

3

它用於國際化和本地化。例如,如果一個網頁程序顯示的數據,你可能希望有那些Web版本用於不同語言(法語,英語,中文等)的頁面。像Java這樣的語言的區域設施便於做到這一點。

有關一個概述,請參閱http://java.sun.com/javase/technologies/core/basic/intl/

1

你見過許多歐洲人怎麼寫號> 1000,許多國家/語言使用期限到上千,而美國分離和英國英語使用逗號。和小數點的相反。區域設置有很多用途,但其中一個是允許您的程序通過考慮用戶的語言和區域設置來正確地格式化數字和日期。

1

設置本地C++中最簡單的方法是:

int main() 
{ 
    // If the string is empty (as here) 
    // Then it looks at the machine current configuration and retrieves 
    // the local that you have set up in the configuration of the machine 
    // This is what you normally want to happen when your customers run the code. 
    std::locale::global(std::locale("")); 

    // Setting the locale affects a whole host of things that happen with streams. 

    /* YOUR CODE */ 
}