本篇內(nèi)容介紹了“JAVA的國(guó)際化機(jī)制是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
我們擁有十多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、成都手機(jī)網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
一個(gè)國(guó)際化的程序通常具有以下特征:
有一個(gè)附加的本地化數(shù)據(jù)(localized data)及擁有在全世界各個(gè)地區(qū)執(zhí)行的能力。
文本的元素,比如狀態(tài)信息或GUI截面的lables,不是直接寫(hardcoded)在程序中,而是被存儲(chǔ)在本地化的數(shù)據(jù)中,并且能被程序正確的動(dòng)態(tài)的使用。
支持新的語(yǔ)言時(shí),不需要修改程序,不需要重新編譯。
文化差異的數(shù)據(jù),比如日期和貨幣,必須根據(jù)擁護(hù)的語(yǔ)言和習(xí)慣顯示不同的格式。
可以被迅速的本地化。
本地化(Localization)是指通過(guò)增加本地描述的構(gòu)件(locale-specific components )和文字翻譯工作來(lái)使應(yīng)用程序適應(yīng)于不同的語(yǔ)言和地區(qū)的過(guò)程。本地化有時(shí)候被簡(jiǎn)稱為l10n,應(yīng)為有10個(gè)字母在本地化的英文單詞的字母l和n之間。通常本地化最耗時(shí)的工作應(yīng)該是文字翻譯。本地化工作者們要根據(jù)地區(qū)的具體需求來(lái)為日期、數(shù)字和通貨等數(shù)據(jù)建立新的格式。其他類型的數(shù)據(jù),象聲音,圖象等,也需要根據(jù)具體需要來(lái)決定是否本地化。
下面通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明如何給一個(gè)程序提供國(guó)際化的特性。這個(gè)例子在不同的語(yǔ)言環(huán)境下顯示不同的文本信息。
一個(gè)簡(jiǎn)單的例子
先看下面的一段代碼:
public class NotI18N {
static public void main(String[] args) {
System.out.println("Hello.");
System.out.println("How are you?");
System.out.println("Goodbye.");
}
}
如果你決定在上面的程序中給德國(guó)和法國(guó)的不同用戶顯示同樣的信息。但是你的程序員卻不是個(gè)語(yǔ)言專家,他不懂德語(yǔ)和法語(yǔ)。所以你需要翻譯人員把它翻譯成德語(yǔ)和法語(yǔ),但是你的翻譯人員不懂程序,所以你可以把這些信息存到一個(gè)文本或其他格式的文件中供翻譯人員使用。那么,程序必須能顯示不同語(yǔ)言的信息,并且你并不知道你希望為這個(gè)程序提供的下一個(gè)語(yǔ)言支持是什么,或許是日語(yǔ)或許是別的什么語(yǔ)言。
下面的代碼是一個(gè)國(guó)際化的代碼的例子:
import java.util.*;
public class I18NSample {
static public void main(String[] args) {
String language;
String country;
if (args.length != 2) {
language = new String("en");
country = new String("US");
} else {
language = new String(args[0]);
country = new String(args[1]);
}
Locale currentLocale;
ResourceBundle messages;
currentLocale = new Locale(language, country);
messages = ResourceBundle.getBundle("MessagesBundle",
currentLocale);
System.out.println(messages.getString("greetings"));
System.out.println(messages.getString("inquiry"));
System.out.println(messages.getString("farewell"));
}
}
請(qǐng)注意:在上面的代碼中,信息并沒(méi)有被hardcoded在代碼中!
如果想運(yùn)行上面的代碼,請(qǐng)下載下面的文件:
1、I18NSample.java
2、MessageBundle.properties
3、MessageBundle_de_DE.properties
4、MessageBundle_en_US.properties
5、MessageBundle_fr_FR.properties
下面看看這個(gè)程序的運(yùn)行結(jié)果:
顯示法語(yǔ)信息:
java I18NSample fr FR
Bonjour.
Comment allez-vous?
Au revoir.
顯示英語(yǔ)信息:
java I18NSample en US
Hello.
How are you?
Goodbye.
“JAVA的國(guó)際化機(jī)制是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!