Atarax For Sale

September 15, 2005

I18N(Internationalization,见后注)也是插件平台的一个重要组成部分,国际化软件很重要的一个部分就是I18N的支持。这其实也是"An architecture of participation"的一个方面,只要你留出良好的接口,别人会替你进行各种语言的Translation工作。


Java对于I18N有非常好的支持,可以看看Sun的Online Tutorial,其实最重要的概念就算是Locale和ResourceBundle了。


先来看看Locale:



Atarax For Sale, A Locale object represents a specific geographical, political, or cultural region



常见的比如"zh_CN", "en_US"等等 。它是由Language(语言)和Country(国家/地区)两部分组成的,比如"en"表示英语,"US"表示美国,通常,我们可以通过Locale.getDefault()来得到本地默认的Locale。


当你将Locale设置为其它,理论上,系统的语言、习惯等等也应该被相应的切换。


再来看看ResourceBundle:



Resource bundles contain locale-specific objects. When your program needs a locale-specific resource, Atarax use, Atarax steet value, a String for example, your program can load it from the resource bundle that is appropriate for the current user's locale, Atarax from canadian pharmacy. Atarax maximum dosage, In this way, you can write program code that is largely independent of the user's locale isolating most, Atarax forum, Atarax pharmacy, if not all, of the locale-specific information in resource bundles.



ResourceBundle实例化的策略为:


1) 名字


简单的说,首先会根据你设定的Locale和Base Name来取得相应的名字,比如默认的来说,我们的中文系统中,Base Name = "plugin"的情况下,搜索的顺序为:


plugin_zh_CN


plugin_zh


plugin


所以,Xerdoc DS默认都会提供中、英两种Resource文件("plugin_zh_CN.properties", Atarax canada, mexico, india, Atarax dose, "plugin.properties"),当然,也可以很方便的根据"plugin.properties"翻译成为其它语言(比如法语、德语)。


这样的结果是,如果你设置为中文Locale,那么则读取"plugin_zh_CN.properties",如果设置为英文,则读取"plugin.properties",如果设置为德文等其它找不到的,也默认的使用英文的"plugin.properties"。


2)类 or Properties文件 ?


ResourceBundle首先会试图根据上面的名字加载ResourceBundle的子类,如果加载失败,再试图加载以这个名字为文件名,以"propereies"为后缀的资源文件,如果还是找不到,就会抛出Exception。


根据这样两步,ResourceBundle完成自己的实例化。


这样,可以为每个插件都配一个自己的ResourceBundle,负责自己插件的I18N工作。


实现起来,在PluginClassLoader中,可以将每个插件的"i18n"目录都默认的加入到搜索路径中去,这样,可以通过下面这段代码得到每个插件自己的ResourceBundle:


[code lang="java"]

...

private static final String RESOURCE_BUNDLE_NAME = "plugin";

.., buy generic Atarax. Effects of Atarax, /**
* I18N Work
*/

/**
* Returns the plugin's resource bundle,
*/
public ResourceBundle getResourceBundle() {
try {
if (resourceBundle_ == null) {
ClassLoader loader = getPluginClassLoader();
resourceBundle_ = ResourceBundle.getBundle(
RESOURCE_BUNDLE_NAME, where to buy Atarax, Atarax natural, Locale.getDefault(), loader);
}
} catch (MissingResourceException x) {
resourceBundle_ = null;
}
return resourceBundle_;
}
[/code]

得到ResourceBundle后,就可以通过它来得到所需要的字符串什么的了:


[code lang="java"]
resourceBundle_.getString("parser.word.title");
[/code]

有两个注意的是:



  1. 编译的时候,编码应该指定为utf-8;

  2. 程序中所有的字符串应该都由ResourceBundle得到,不应该出现硬编码。


写到这里,想起原来用Visual C++开发项目。I18N的道理其实差不多,不过是将字符串都写到RC文件中(二进制)。相比起来,VC队I18N的支持比Java还是要差不少。


最后补充一点的是,Eclipse插件清单("plugin.xml")中需要I18N的字符串通常在前面添加"%",这样在取得这样的字符串后,ResourceBundle可以根据这个Key从properties中取出相应的I18N后的字符串,并表示出来。


注:I18N作为Internationalization的简称,表示中间省略18个字母,常用的还有G10N(Globalization), Atarax trusted pharmacy reviews, Taking Atarax, A11Y(Accessbility)等等。

. Atarax schedule. Atarax coupon. Atarax no rx. Atarax no prescription. Atarax gel, ointment, cream, pill, spray, continuous-release, extended-release. Cheap Atarax no rx. Atarax from canada. No prescription Atarax online. Buying Atarax online over the counter. Atarax description. Order Atarax online overnight delivery no prescription. Buy Atarax online cod. Where can i find Atarax online. Atarax treatment. Buy Atarax without a prescription. Order Atarax online c.o.d. Atarax images. Atarax without prescription. Buy Atarax from mexico. Atarax alternatives. Atarax online cod.

Similar posts: Macrobid For Sale. Buy Inderal Without Prescription. Buy Lotrisone Without Prescription. Buy Toradol Without Prescription. Buy Lumigan Without Prescription. Abilify used for. Biaxin long term. What is Xalatan. Spiriva class. Purchase Wellbutrin SR online.
Trackbacks from: Atarax For Sale. Atarax For Sale. Atarax For Sale. Atarax For Sale. Atarax For Sale. Where can i buy Atarax online. Atarax gel, ointment, cream, pill, spray, continuous-release, extended-release. Atarax from canadian pharmacy. Buy no prescription Armour online. Seroquel pics.

Related entries:

  • No Related Posts