??xml version="1.0" encoding="utf-8" standalone="yes"?>97在线观看视频,久久久99久久精品欧美,国产精品视频永久免费播放http://www.aygfsteel.com/bluexjz/category/42416.htmlzh-cnTue, 27 Oct 2009 05:35:14 GMTTue, 27 Oct 2009 05:35:14 GMT60Eclipse RCP上的国际化技?/title><link>http://www.aygfsteel.com/bluexjz/articles/299892.html</link><dc:creator>FINDER</dc:creator><author>FINDER</author><pubDate>Tue, 27 Oct 2009 03:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/bluexjz/articles/299892.html</guid><wfw:comment>http://www.aygfsteel.com/bluexjz/comments/299892.html</wfw:comment><comments>http://www.aygfsteel.com/bluexjz/articles/299892.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/bluexjz/comments/commentRss/299892.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/bluexjz/services/trackbacks/299892.html</trackback:ping><description><![CDATA[<p>U别Q?中</p> <p><a href="#author" cmimpressionsent="1">?亚玲</a> (<a href="mailto:xuyal@cn.ibm.com?subject=Eclipse RCP上的国际化技术&amp;cc=jincx@cn.ibm.com" cmimpressionsent="1">xuyal@cn.ibm.com</a>), 软g工程? IBM 中国开发试验室<br /> </p> <p>2007 q?10 ?18 ?/p> <blockquote> <p>在全球经一体化的今天,|络让大家可以共享同{的信息。世界是q的Q在q个变^的世界里Q我们仍焉要克服语a和文化的差异Q?如果软g如果能够做到全球化,以不同的语言和文化提供信息,那么无疑q个全球化的软g也是让这个世界变q的力量之一?</p> <p>Eclipse已经成ؓ(f)大家耳熟能详的开发环境和架构q_。现在IBM来多的客L(fng)产品UL到Eclipse RCPq_Q本文将介绍ZEclipse RCP的品的全球化实现?</p> </blockquote><!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES--> <p><a name="N10058"><span id="wmqeeuq" class="atitle">Eclipse RCP介绍 </span></a></p> <p>Eclipse的文章很多,那么我们来ȝ一下关键词Q开攄可扩展的IDE Q?gt; 可插入插件的开发环?Q?gt; 带标准插仉(Java Development Tool, JDT)的JAVA开发环?Q?gt;可开发插件的开发环境(Plug-in Development Environment, PDEQ-> 开攄可扩展的应用q_?</p> <p>Eclipse的开攑֒可扩展究其根源是q行时组件模式的架构Qruntime component moduleQ,我们可以从C++的纯虚基cdCOM原理来解释这些动态可加蝲原理Q从他们的似曄识来认知多年来我们不变的q求。Eclipse 使用 OSGi 作ؓ(f)插gpȝ的基QOSGiQOpen Services Gateway Initiative是一个基于Java语言的服务(业务Q规范,该规范和核心(j)部分是一个框ӞEclipse框架采用Lazy loadingQ提供了(jin)q行时可扩展的扩展点模式?</p> <p>Eclipse Rich Client Platform, RCPQ?在Eclipse platform的基上增加了(jin)GUI的特性,它当然也具备Java的跨q_Ҏ(gu),是由可构建桌面应的最的一l插件组成的q行q_。这里面的关键词/ SWTQ?JFaceQW(xu)orkbench。首先,Standard Widget ToolkitQSWT最显著的特Ҏ(gu)体现?jin)系l^台即操作pȝ的UI的特性,是^台相关的套g集合。基于SWT开发的UI体现?jin)操作系l^台的UI特征?JFace在SWT上提供了(jin)更高层的装Q提供了(jin)功能强大的界面组建,菜单Q工hQ状态条{等?Workbench: 提供?jin)更高层的可扩展可管理的UI, 包括editors, views ?perspectives?</p> <a name="fig1"><strong>Eclipse RCP l构囄CZ</strong></a><br /> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/bluexjz/1.gif" width="705" height="330" /><br /> <p><a name="N10077"><span id="wmqeeuq" class="atitle">Eclipse RCP 对国际化的支?/span></a></p> <p>(zhn)谈到Y件的国际化支持,我们通常?x)从对字W集Q文化习(fn)惯和对翻译的支持也就是对本地化的支持三个斚w来考虑?</p> <p>对于前两个方面,我们知道现在通过UNICODE字符集来支持全球字符Q而文化习(fn)惯包括日期,旉Q货币,地址{等Q尽不同的国家地区千差万别Q但它的实现通常q没有我们想象的那么复杂Q可以通过调用支持全球化的lg来实现对字符集和文化Ҏ(gu)的支持。例如IBM 中国开发中?j)的Globalization团队推?gu)ZSWT的支持文化特性的套gQ这些套件可在基于RCPq_的应用中被重用。所以,在以下的D落中我们会(x)重点来谈如何实现Eclipse RCP 软gҎ(gu)地化的支持,也就是Y件的可翻译性?</p> <p>我们从以下几方面探讨Y件的可翻译性:(x) <ul> <li>界面布局</li> <li>BIDirection</li> <li>可翻译资源外部化Q即资源与代码分d(qing)资源文g的管?/li> </ul> <br /> <p><a name="N10092"><span id="wmqeeuq" class="atitle">Layout manager 对布局的支?/span></a></p> <p>通常Q在传统开发中Q界面布局问题?sh)直是困扰本地化开发过E中比较大的问题Q由于文本翻译后引v长度的扩展,D?jin)界面布局的截断,寚w和遮盖问题。如下图Q在译为Greek语言后,出现?jin)很多截断问题?/p> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/bluexjz/2.gif" /><br /> <p>囑Ş界面的布局调整是一工作量非常大的工作Q我们知道传l开发是以矩形来定位控g的布局Q即通过坐标值和长度?qing)宽度来描述控g的位|和大小Q通常在英文品开发过E中Q会(x)通过预留一定的扩展I间来解册个问题,但是译的过E中存在着很多偶然性,l常?x)有一些翻译过长的字串q(sh)(x)出现截断问题Q同时所有语a׃nl一的留有扩展的界面布局降低?jin)界面的友好性,在英文和CJKTq些扩展较少的语a上,我们?x)觉得界面上有太多的I白I间?</p> <p>SWT中的Layout manager很好的解决了(jin)q个问题。layout manager?x)管理界面的布局QSWT提供?jin)四Ulayout managerQ在q四Ulayout manager中,功能最强大Q最复杂Q也最有实用性的是GridLayout。GridLayout用网格来控制布局。关于layout manager 有最l典的介l文章,大家可以通过q些文章来了(jin)解layout manager的工作原理。本文则是要一定要用layout manager来解x(chng)地化q程中界面的布局问题Q在布局设计时要惛_本地化后引v的扩展问题,在这U前提下开发,?x)将布局问题减少到最,我们在测试Sametime7.5 {RCP的品过E中发现Q布局q一困扰本地化开发的问题得到?jin)根本的解决?</p> <p>在SWT的示例程序中Q我们可以看到l(f)ayout manager在本地化q程中是如何自动调整布局的, 在AddressBookq个例子中采用了(jin)Fill Layout 布局理器,当我们扩展这些界面上要翻译的字符串时Q我们看到界面的布局也随之自动的扩展变化?</p> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/bluexjz/3.gif" /><br /> <br /> <img border="0" alt="" src="http://www.aygfsteel.com/images/blogjava_net/bluexjz/10.gif" /><br /> <p><a name="N100CB"><span id="wmqeeuq" class="atitle">Bidirection</span></a></p> <p>SWT套g允许讄Z叛_左RTLQ但BiDi的支持与q_有关QBiDi支持正扩展到所有Windowsq_和GTK的linuxq_。如果品考虑支持BiDiQ需要调研你使用的SWT版本对BiDi的支持?</p> <br /> <p><a name="N100D4"><span id="wmqeeuq" class="atitle">资源的外部化Externalization </span></a></p> <p>大家都知道在JavaE序中用Resource bundle来处理locale相关的资源文Ӟ 所有要译的资源保存到按照locale命名的properties文g中,通过resource bundle来调用。Localeq个词一直没有很好的译Q我们可以理解ؓ(f)语言Q地区,我们命名properties文g也会(x)以locale作ؓ(f)扩展Q例如中国的体中文文Ӟ我们?x)命名?f)address_zh_CN.properties, 而台湄J体中文文g?x)命名?f)address_zh_TW.properties, 当在中文中国locale下时Q程序设计会(x)依顺序查找address_zh_CN.propertiesQ然后是 address_zh.propertiesQ最后fall back到address.propertiesQ而在中文台湾locale下则?x)查找address_zh_TW.propertiesQ找不到?x)是地域不同但语a相近的address_zh.propertiesQ最后是英文的address.properties?</p> <p>如果你在~程时没有这L(fng)q虑Q可以用Eclipse提供的wizard来完成这工作,q部分也有很多技术资料可参考。同时我们更应该从程序设计开始就做好资源文g的规划,下面我们来介l一下资源文件的理Q注释,译和检查工作?</p> <br /> <p><a name="N100E0"><span id="wmqeeuq" class="atitle">资源文g的管?/span></a></p> <p>在一个项目中如何有效的定义,创徏和管理资源文Ӟ首先我们?x)对资源q行分类Q按照资源的cd我们?x)分为User Interface,UI界面资源和User Assisant, UA帮助资源Q从最l用者的角度Q资源可分ؓ(f)普通用戯源和IT用户的资源?</p> <p>我们把用户分为普通用户和IT用户Q普通用h指用L(fng)领域qIT领域Q例如银行柜员,管他熟(zhn)他所使用的业务系l,但他qIT专职人员Q而IT用户则特指如E序员,|络理员等IT从业者。从最l用h区分资源Q我们可以根据资源的使用者来定是否要翻译这部分资源。通常普通用L(fng)资源译U别较高Q而IT用户的资源翻译别较低,例如一些专业的调试出错信息QIT用户可能更們֐于用英文原文信息?</p> <p>在JAVA目中,通常UA帮助文g?x)以html的Ş式存在,所以我们通常以不同语a命名的文件夹下面。而对于UI文gQ正如我们前面介l的Q通常存(sh)ؓ(f)filename_{locale}.properties 的文件?</p> <p>在这里,我们在创源文件时要同时创建filenames.properties和filenames_en.properties文gQ在filenames_en.properties中存放要译的字串而在filenames.properties中存攄权信息和不需要翻译的资源。通过q个单的拆分法,我们可以得到很多开发的方便之处Q?</p> <ul> <li>首先可以保证只有要翻译的资源被送出ȝ译,而不需译的资源保留在本地不会(x)被改变;</li> <li>当需要翻译的资源开始翻译,因而不可以l箋(hu)修改Ӟ不需译的资源文件filenames.propertiesq可以l更斎ͼ</li> <li>首先可以保证只有要翻译的资源被送出ȝ译,而不需译的资源保留在本地不会(x)被改变;</li> <li>当需要翻译的资源开始翻译,因而不可以l箋(hu)修改Ӟ不需译的资源文件filenames.propertiesq可以l更斎ͼ</li> <li>同时我们作伪译试和资源文件检查时Q也可以有效的判断哪些是语言相关的资源和文g?/li> <li>在生成安装包Ӟ我们可以动态的filenames.properties 文g加到filename_{locale}.properties中,而将filenames_en.properties加到filenames.properties中,形成最l的properties文gl?/li> </ul> <br /> <p><a name="N10107"><span id="wmqeeuq" class="atitle">伪翻译及(qing)伪翻译测?/span></a></p> <p>伪翻译测试是试软g可翻译性的最有效的手D,通常我们试软g的可译性可通过伪翻译或pilot译来测试。伪译的过E是利用工具品中需要翻译的部分随机或按照一定规则进行{换,以这U{换来模仿译的过E,而pilot译则是在英文品开发的同时Q选择某种语言例如hq行同步译。通过产品开发过E中的伪译或pilot译Q测试下面几c问题:(x) </p> <p>1Q是否有需要翻译的字符串被编码。当所有的资源文g中的资源被伪译为某U字W,例如全部被{换ؓ(f)圆点W号Q那么界面上仍旧昄文ASCII原文的字W串有可能是硬~码在代码中Q没有被伪翻译的字符丌Ӏ这些字W串需要被resource outQ?才会(x)被正的译和显C?</p> <p>2Q对字符集的支持在伪译q程中,我们?x)把原ASCII字符伪翻译ؓ(f)风险字符来测试品对q些Ҏ(gu)字符的支持。关于风险字W,如果大家感兴,我会(x)单独写一介l文章,每个语言的风险字W不同,另外比如Ƨ元QGB18030字符都是Ҏ(gu)出现问题的风险字W。如下给Z(jin)一D将ASCII码{化ؓ(f)重音字符的脚本代码,Zq种转换Q不但可以测试对西欧中欧重音字符的支持,同时保证?jin)程序的可读性?</p> <br /> <a name="listing1"><strong>ASCII码{化ؓ(f)重音字符的脚本代码示?/strong></a><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080"> 1</span><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #000000">Select Case temp<br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">a</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ã</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">A</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">À</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">B</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ß</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">c</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ç</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">C</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ç</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">d</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ð</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">D</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ð</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">e</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">é</span><span style="color: #000000">"</span><span style="color: #000000">   <br /> </span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">E</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">É</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">n</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ñ</span><span style="color: #000000">"</span><span style="color: #000000">     <br /> </span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">N</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ñ</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">o</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ö</span><span style="color: #000000">"</span><span style="color: #000000">     <br /> </span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">O</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ô</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">i</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ï</span><span style="color: #000000">"</span><span style="color: #000000">   <br /> </span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">I</span><span style="color: #000000">"</span><span style="color: #000000">     <br /> </span><span style="color: #008080">31</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ï</span><span style="color: #000000">"</span><span style="color: #000000">     <br /> </span><span style="color: #008080">32</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">p</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">þ</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">34</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case  temp </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">P</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">35</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Þ</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">u</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">37</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">û</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">38</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case  temp </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">U</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">39</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ü</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">40</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case </span><span style="color: #000000">"</span><span style="color: #000000">y</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">41</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">ý</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">42</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case  temp </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Y</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">43</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Ý</span><span style="color: #000000">"</span><span style="color: #000000"><br /> </span><span style="color: #008080">44</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        Case Else<br /> </span><span style="color: #008080">45</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />            tempstr </span><span style="color: #000000">=</span><span style="color: #000000"> tempstr </span><span style="color: #000000">+</span><span style="color: #000000"> temp<br /> </span><span style="color: #008080">46</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />        End Select<br /> </span><span style="color: #008080">47</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /></span></div> <p>3Q界面布局的可译性我们可以选择按一定比例,例如30%Q扩展原文的伪翻译方式,如果伪翻译后界面出现截断Q不寚w{问题,说明界面的设计不具备可翻译性。由于语a的翻译有很多偶然性,可以随机的把一些字W串加长Q来试界面对可译性的支持?</p> <p>4Q串联字W串在伪译的过E中Q我们会(x)通过l每句要译的文本在首尾加上分割W例如[]来发现这c问题。当一个完整的句子是由几个片断拼凑h的话?x)?f)译带来很大的困扎ͼ例如Q?</p> <p>Strings_OutOfOffice = I will be out of the office </p> <p>Strings_StartTime= starting {0}. </p> <p>在实际运行环境中的显CZؓ(f)QI will be out of the office starting 2007-8-17. </p> <p>我们可以通过定义在句首加“[”Q句末加“]”的伪译规则Q这样在伪翻译后Q?</p> <p>Strings_OutOfOffice=[I will be out of the office] </p> <p>Strings_StartTime=[starting{0}] </p> <p>在实际运行环境中的显CZؓ(f)Q[I will be out of the office][ starting 2007-8-17.] 如果在一个整句中发现“][”Q则是有串联情况出现?</p> <p>q句话整句翻译成中文Q我?007-8-17日v不在办公室?</p> <p>Strings_OutOfOffice=我不在办公室 </p> <p>Strings_StartTime=从{0}. </p> <p>当在资源文g中被分ؓ(f)两个断句分别译在进行组合时Q翻译变?sh)?#8220;我不在办公室?007-8-17?#8221;Q显?dng)q不W合中文的翻译习(fn)惯。所以,在翻译的q程中,׃不同语言间的文化Ҏ(gu)有很大的不同,语序l常?x)出现变化,只有保持句子的完整性,才能保证译的准性?</p> <p><a name="N10147"><span id="wmqeeuq" class="atitle">结</span></a></p> <p>以上从开发和全球化测试的角度介绍?Eclipse RCP 上的国际化,软g的本地化是一个比较复杂的工程Q在开发中充分考虑Ҏ(gu)地化的支持,使用自动化工hq行理?x)ɘq个工程更加更加规范有序 </p> <img src ="http://www.aygfsteel.com/bluexjz/aggbug/299892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/bluexjz/" target="_blank">FINDER</a> 2009-10-27 11:03 <a href="http://www.aygfsteel.com/bluexjz/articles/299892.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ҿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">ᶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ػ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">̴</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank">żҽ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank">ű</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǩ</a>| <a href="http://" target="_blank">Ҿ</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>