⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000001.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 4 页
字号:
&nbsp;<BR>If&nbsp;the&nbsp;master&nbsp;font&nbsp;that&nbsp;you&nbsp;set&nbsp;for&nbsp;a&nbsp;widget&nbsp;doesn't&nbsp;contain&nbsp;a&nbsp;glyph&nbsp;for&nbsp;<BR>&nbsp;a&nbsp;particular&nbsp;Unicode&nbsp;character&nbsp;that&nbsp;you&nbsp;want&nbsp;to&nbsp;display,&nbsp;Tk&nbsp;attempts&nbsp;to&nbsp;<BR>&nbsp;locate&nbsp;a&nbsp;font&nbsp;that&nbsp;does.&nbsp;Where&nbsp;possible,&nbsp;Tk&nbsp;attempts&nbsp;to&nbsp;locate&nbsp;a&nbsp;font&nbsp;&nbsp;<BR>that&nbsp;matches&nbsp;as&nbsp;many&nbsp;characteristics&nbsp;of&nbsp;the&nbsp;widget's&nbsp;master&nbsp;font&nbsp;as&nbsp;&nbsp;<BR>possible&nbsp;(for&nbsp;example,&nbsp;weight,&nbsp;slant,&nbsp;etc.).&nbsp;Once&nbsp;Tk&nbsp;finds&nbsp;a&nbsp;suitable&nbsp;&nbsp;<BR>font,&nbsp;it&nbsp;displays&nbsp;the&nbsp;character&nbsp;in&nbsp;that&nbsp;font.&nbsp;In&nbsp;other&nbsp;words,&nbsp;the&nbsp;widget&nbsp;<BR>&nbsp;uses&nbsp;the&nbsp;master&nbsp;font&nbsp;for&nbsp;all&nbsp;characters&nbsp;it&nbsp;is&nbsp;capable&nbsp;of&nbsp;displaying,&nbsp;&nbsp;<BR>and&nbsp;alternative&nbsp;fonts&nbsp;only&nbsp;as&nbsp;needed.&nbsp;<BR>&nbsp;<BR>In&nbsp;some&nbsp;cases,&nbsp;Tk&nbsp;is&nbsp;unable&nbsp;to&nbsp;identify&nbsp;a&nbsp;suitable&nbsp;font,&nbsp;in&nbsp;which&nbsp;case&nbsp;&nbsp;<BR>the&nbsp;widget&nbsp;cannot&nbsp;display&nbsp;the&nbsp;characters.&nbsp;(Instead,&nbsp;the&nbsp;widget&nbsp;&nbsp;<BR>displays&nbsp;a&nbsp;system-dependent&nbsp;fallback&nbsp;character&nbsp;such&nbsp;as&nbsp;&quot;?&quot;)&nbsp;The&nbsp;&nbsp;<BR>process&nbsp;of&nbsp;identifying&nbsp;suitable&nbsp;fonts&nbsp;is&nbsp;complex,&nbsp;and&nbsp;Tk's&nbsp;algorithms&nbsp;&nbsp;<BR>don't&nbsp;always&nbsp;find&nbsp;a&nbsp;font&nbsp;even&nbsp;if&nbsp;one&nbsp;is&nbsp;actually&nbsp;installed&nbsp;on&nbsp;the&nbsp;&nbsp;<BR>system.&nbsp;Therefore,&nbsp;for&nbsp;best&nbsp;results,&nbsp;you&nbsp;should&nbsp;try&nbsp;to&nbsp;select&nbsp;as&nbsp;a&nbsp;&nbsp;<BR>widget's&nbsp;master&nbsp;font&nbsp;one&nbsp;that&nbsp;is&nbsp;capable&nbsp;of&nbsp;handling&nbsp;the&nbsp;characters&nbsp;&nbsp;<BR>you&nbsp;expect&nbsp;to&nbsp;display.&nbsp;For&nbsp;example,&nbsp;&quot;Times&quot;&nbsp;is&nbsp;likely&nbsp;to&nbsp;be&nbsp;a&nbsp;poor&nbsp;&nbsp;<BR>choice&nbsp;if&nbsp;you&nbsp;know&nbsp;that&nbsp;you&nbsp;need&nbsp;to&nbsp;display&nbsp;Japanese&nbsp;or&nbsp;Arabic&nbsp;&nbsp;<BR>characters&nbsp;in&nbsp;a&nbsp;widget.&nbsp;<BR>&nbsp;<BR>If&nbsp;you&nbsp;work&nbsp;with&nbsp;text&nbsp;in&nbsp;a&nbsp;variety&nbsp;of&nbsp;character&nbsp;sets,&nbsp;you&nbsp;may&nbsp;need&nbsp;to&nbsp;&nbsp;<BR>search&nbsp;out&nbsp;fonts&nbsp;to&nbsp;represent&nbsp;them.&nbsp;Markus&nbsp;Kuhn&nbsp;has&nbsp;developed&nbsp;a&nbsp;free&nbsp;&nbsp;<BR>6x13&nbsp;font&nbsp;that&nbsp;supports&nbsp;essentially&nbsp;all&nbsp;the&nbsp;Unicode&nbsp;characters&nbsp;that&nbsp;&nbsp;<BR>can&nbsp;be&nbsp;displayed&nbsp;in&nbsp;a&nbsp;6x13&nbsp;glyph.&nbsp;This&nbsp;does&nbsp;not&nbsp;include&nbsp;Japanese,&nbsp;&nbsp;<BR>Chinese,&nbsp;and&nbsp;other&nbsp;Asian&nbsp;languages,&nbsp;but&nbsp;it&nbsp;does&nbsp;cover&nbsp;many&nbsp;others.&nbsp;The&nbsp;&nbsp;<BR>font&nbsp;is&nbsp;available&nbsp;at&nbsp;<A HREF="http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html.">http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html.</A>&nbsp;&nbsp;<BR>His&nbsp;site&nbsp;also&nbsp;contains&nbsp;many&nbsp;useful&nbsp;links&nbsp;to&nbsp;other&nbsp;sources&nbsp;of&nbsp;fonts&nbsp;and&nbsp;&nbsp;<BR>font&nbsp;information.&nbsp;<BR>&nbsp;<BR>Message&nbsp;Catalogs&nbsp;<BR>The&nbsp;new&nbsp;msgcat&nbsp;package&nbsp;provides&nbsp;a&nbsp;set&nbsp;of&nbsp;functions&nbsp;for&nbsp;managing&nbsp;&nbsp;<BR>multilingual&nbsp;user&nbsp;interfaces.&nbsp;It&nbsp;allows&nbsp;you&nbsp;to&nbsp;define&nbsp;strings&nbsp;in&nbsp;a&nbsp;&nbsp;<BR>message&nbsp;catalog,&nbsp;which&nbsp;is&nbsp;independent&nbsp;from&nbsp;your&nbsp;application&nbsp;or&nbsp;package&nbsp;&nbsp;<BR>and&nbsp;which&nbsp;you&nbsp;can&nbsp;edit&nbsp;or&nbsp;localize&nbsp;without&nbsp;modifying&nbsp;the&nbsp;application&nbsp;&nbsp;<BR>source&nbsp;code.&nbsp;The&nbsp;msgcat&nbsp;package&nbsp;is&nbsp;optional,&nbsp;but&nbsp;Ajuba&nbsp;Solutions&nbsp;&nbsp;<BR>recommends&nbsp;using&nbsp;it&nbsp;for&nbsp;all&nbsp;multilingual&nbsp;applications&nbsp;and&nbsp;packages.&nbsp;<BR>&nbsp;<BR>The&nbsp;basic&nbsp;principle&nbsp;of&nbsp;the&nbsp;msgcat&nbsp;package&nbsp;is&nbsp;that&nbsp;you&nbsp;create&nbsp;a&nbsp;set&nbsp;of&nbsp;&nbsp;<BR>message&nbsp;files,&nbsp;one&nbsp;for&nbsp;each&nbsp;supported&nbsp;language,&nbsp;containing&nbsp;localized&nbsp;&nbsp;<BR>versions&nbsp;of&nbsp;all&nbsp;the&nbsp;strings&nbsp;your&nbsp;application&nbsp;or&nbsp;package&nbsp;can&nbsp;display.&nbsp;&nbsp;<BR>Then&nbsp;in&nbsp;your&nbsp;application&nbsp;or&nbsp;package,&nbsp;instead&nbsp;of&nbsp;using&nbsp;a&nbsp;string&nbsp;directly,&nbsp;<BR>&nbsp;you&nbsp;call&nbsp;the&nbsp;::msgcat::mc&nbsp;command&nbsp;to&nbsp;return&nbsp;a&nbsp;localized&nbsp;version&nbsp;of&nbsp;&nbsp;<BR>the&nbsp;string&nbsp;you&nbsp;want.&nbsp;<BR>&nbsp;<BR>This&nbsp;document&nbsp;provides&nbsp;only&nbsp;a&nbsp;brief&nbsp;introduction&nbsp;to&nbsp;message&nbsp;catalogs.&nbsp;&nbsp;<BR>The&nbsp;msgcat&nbsp;package&nbsp;provides&nbsp;additional&nbsp;features&nbsp;such&nbsp;as&nbsp;namespace&nbsp;&nbsp;<BR>support&nbsp;and&nbsp;&quot;best&nbsp;match&quot;&nbsp;handling&nbsp;of&nbsp;sublocales.&nbsp;See&nbsp;the&nbsp;msgcat.n&nbsp;&nbsp;<BR>reference&nbsp;page&nbsp;for&nbsp;more&nbsp;information.&nbsp;<BR>&nbsp;<BR>Using&nbsp;Message&nbsp;Catalogs&nbsp;<BR>Using&nbsp;message&nbsp;catalogs&nbsp;from&nbsp;within&nbsp;your&nbsp;application&nbsp;or&nbsp;package&nbsp;&nbsp;<BR>requires&nbsp;the&nbsp;following&nbsp;steps:&nbsp;<BR>&nbsp;<BR>Optionally&nbsp;set&nbsp;the&nbsp;locale&nbsp;using&nbsp;the&nbsp;::msgcat::mclocale&nbsp;command.&nbsp;If&nbsp;you&nbsp;&nbsp;<BR>don't&nbsp;call&nbsp;mclocale,&nbsp;the&nbsp;locale&nbsp;defaults&nbsp;to&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;env(LANG)&nbsp;&nbsp;<BR>environment&nbsp;variable&nbsp;at&nbsp;the&nbsp;time&nbsp;the&nbsp;msgcat&nbsp;package&nbsp;is&nbsp;loaded.&nbsp;If&nbsp;&nbsp;<BR>env(LANG)&nbsp;isn't&nbsp;defined,&nbsp;then&nbsp;the&nbsp;locale&nbsp;defaults&nbsp;to&nbsp;&quot;C&quot;.&nbsp;&nbsp;<BR>Call&nbsp;::msgcat::mcload&nbsp;to&nbsp;load&nbsp;the&nbsp;appropriate&nbsp;message&nbsp;files.&nbsp;The&nbsp;&nbsp;<BR>mcload&nbsp;command&nbsp;requires&nbsp;as&nbsp;an&nbsp;argument&nbsp;a&nbsp;directory&nbsp;containing&nbsp;your&nbsp;&nbsp;<BR>message&nbsp;files.&nbsp;&nbsp;<BR>Anywhere&nbsp;in&nbsp;your&nbsp;script&nbsp;that&nbsp;you&nbsp;would&nbsp;typically&nbsp;specify&nbsp;a&nbsp;string&nbsp;to&nbsp;&nbsp;<BR>display,&nbsp;use&nbsp;the&nbsp;::msgcat::mc&nbsp;command&nbsp;instead.&nbsp;The&nbsp;mc&nbsp;command&nbsp;takes&nbsp;as&nbsp;&nbsp;<BR>an&nbsp;argument&nbsp;a&nbsp;source&nbsp;string&nbsp;and&nbsp;returns&nbsp;the&nbsp;translation&nbsp;of&nbsp;that&nbsp;string&nbsp;&nbsp;<BR>in&nbsp;the&nbsp;current&nbsp;locale.&nbsp;<BR>The&nbsp;following&nbsp;code&nbsp;fragment&nbsp;demonstrates&nbsp;how&nbsp;you&nbsp;could&nbsp;use&nbsp;the&nbsp;msgcat&nbsp;&nbsp;<BR>package&nbsp;in&nbsp;a&nbsp;script:&nbsp;<BR>&nbsp;<BR>#&nbsp;Use&nbsp;the&nbsp;default&nbsp;locale&nbsp;as&nbsp;specified&nbsp;by&nbsp;env(LANG).&nbsp;<BR>#&nbsp;You&nbsp;could&nbsp;explicitly&nbsp;set&nbsp;the&nbsp;locale&nbsp;with&nbsp;a&nbsp;command&nbsp;such&nbsp;as&nbsp;<BR>#&nbsp;::msgcat::mclocale&nbsp;&quot;en_UK&quot;&nbsp;<BR>&nbsp;<BR>#&nbsp;Load&nbsp;the&nbsp;messages&nbsp;files.&nbsp;&nbsp;In&nbsp;this&nbsp;example,&nbsp;they&nbsp;are&nbsp;stored&nbsp;<BR>#&nbsp;in&nbsp;a&nbsp;subdirectory&nbsp;named&nbsp;&quot;msgs&quot;&nbsp;which&nbsp;is&nbsp;in&nbsp;the&nbsp;same&nbsp;directory&nbsp;<BR>#&nbsp;as&nbsp;this&nbsp;script.&nbsp;<BR>&nbsp;<BR>∶<I>:msgcat::mcload&nbsp;[file&nbsp;join&nbsp;[file&nbsp;dirname&nbsp;[info&nbsp;script]]&nbsp;msgs]&nbsp;</I><BR>&nbsp;<BR>#&nbsp;Display&nbsp;a&nbsp;welcome&nbsp;message&nbsp;<BR>&nbsp;<BR>puts&nbsp;[::msgcat::mc&nbsp;&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;]&nbsp;<BR>In&nbsp;this&nbsp;example,&nbsp;instead&nbsp;of&nbsp;directly&nbsp;displaying&nbsp;the&nbsp;message&nbsp;&quot;Welcome&nbsp;&nbsp;<BR>to&nbsp;Tcl!&quot;,&nbsp;the&nbsp;application&nbsp;calls&nbsp;mc&nbsp;to&nbsp;retrieve&nbsp;a&nbsp;localized&nbsp;version&nbsp;of&nbsp;&nbsp;<BR>the&nbsp;string.&nbsp;The&nbsp;string&nbsp;returned&nbsp;by&nbsp;mc&nbsp;depends&nbsp;on&nbsp;the&nbsp;current&nbsp;locale.&nbsp;For&nbsp;<BR>&nbsp;example,&nbsp;in&nbsp;the&nbsp;&quot;es&quot;&nbsp;locale&nbsp;mc&nbsp;could&nbsp;return&nbsp;the&nbsp;Spanish-language&nbsp;&nbsp;<BR>greeting&nbsp;&quot;隆Bienvenido&nbsp;a&nbsp;Tcl!&quot;&nbsp;<BR>&nbsp;<BR>If&nbsp;a&nbsp;message&nbsp;file&nbsp;doesn't&nbsp;exist&nbsp;for&nbsp;the&nbsp;current&nbsp;locale,&nbsp;mc&nbsp;executes&nbsp;&nbsp;<BR>the&nbsp;procedure&nbsp;::msgcat::mcunknown.&nbsp;The&nbsp;default&nbsp;behavior&nbsp;of&nbsp;mcunknown&nbsp;&nbsp;<BR>is&nbsp;to&nbsp;return&nbsp;the&nbsp;original&nbsp;string&nbsp;(&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;&nbsp;in&nbsp;this&nbsp;case),&nbsp;but&nbsp;&nbsp;<BR>you&nbsp;can&nbsp;redefine&nbsp;it&nbsp;to&nbsp;perform&nbsp;any&nbsp;action&nbsp;you&nbsp;want.&nbsp;<BR>&nbsp;<BR>Creating&nbsp;Localized&nbsp;Message&nbsp;Files&nbsp;<BR>To&nbsp;use&nbsp;the&nbsp;msgcat&nbsp;package,&nbsp;you&nbsp;need&nbsp;to&nbsp;prepare&nbsp;a&nbsp;set&nbsp;of&nbsp;message&nbsp;files&nbsp;&nbsp;<BR>for&nbsp;your&nbsp;package&nbsp;or&nbsp;application,&nbsp;all&nbsp;contained&nbsp;within&nbsp;the&nbsp;same&nbsp;&nbsp;<BR>directory.&nbsp;The&nbsp;name&nbsp;of&nbsp;each&nbsp;message&nbsp;file&nbsp;is&nbsp;a&nbsp;locale&nbsp;specifier&nbsp;&nbsp;<BR>followed&nbsp;by&nbsp;the&nbsp;extension&nbsp;&quot;.msg&quot;&nbsp;(for&nbsp;example,&nbsp;es.msg&nbsp;for&nbsp;a&nbsp;Spanish&nbsp;&nbsp;<BR>message&nbsp;file&nbsp;or&nbsp;en_UK.msg&nbsp;for&nbsp;a&nbsp;UK&nbsp;English&nbsp;message&nbsp;file).&nbsp;<BR>&nbsp;<BR>Each&nbsp;message&nbsp;file&nbsp;contains&nbsp;a&nbsp;series&nbsp;of&nbsp;calls&nbsp;to&nbsp;::msgcat::mcset&nbsp;to&nbsp;set&nbsp;&nbsp;<BR>the&nbsp;translation&nbsp;strings&nbsp;for&nbsp;that&nbsp;language.&nbsp;The&nbsp;format&nbsp;of&nbsp;the&nbsp;mcset&nbsp;&nbsp;<BR>command&nbsp;is:&nbsp;<BR>&nbsp;<BR>∶<I>:msgcat::mcset&nbsp;locale&nbsp;src-string&nbsp;?translation-string?&nbsp;</I><BR>The&nbsp;mcset&nbsp;command&nbsp;defines&nbsp;a&nbsp;locale-specific&nbsp;translation&nbsp;for&nbsp;the&nbsp;given&nbsp;&nbsp;<BR>src-string.&nbsp;If&nbsp;no&nbsp;translation-string&nbsp;argument&nbsp;is&nbsp;present,&nbsp;then&nbsp;the&nbsp;value&nbsp;<BR>&nbsp;of&nbsp;src-string&nbsp;is&nbsp;also&nbsp;used&nbsp;as&nbsp;the&nbsp;locale-specific&nbsp;translation&nbsp;string.&nbsp;<BR>&nbsp;<BR>So,&nbsp;if&nbsp;American&nbsp;English&nbsp;is&nbsp;the&nbsp;&quot;source&nbsp;language&quot;&nbsp;for&nbsp;your&nbsp;application,&nbsp;&nbsp;<BR>an&nbsp;en_UK.msg&nbsp;file&nbsp;might&nbsp;contain&nbsp;commands&nbsp;such&nbsp;as:&nbsp;<BR>&nbsp;<BR>∶<I>:msgcat::mcset&nbsp;en_UK&nbsp;&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;&nbsp;</I><BR>∶<I>:msgcat::mcset&nbsp;en_UK&nbsp;&quot;Select&nbsp;a&nbsp;color:&quot;&nbsp;&quot;Select&nbsp;a&nbsp;colour:&quot;&nbsp;</I><BR>Note&nbsp;that&nbsp;no&nbsp;translation&nbsp;string&nbsp;is&nbsp;provided&nbsp;for&nbsp;the&nbsp;first&nbsp;line,&nbsp;so&nbsp;the&nbsp;&nbsp;<BR>resulting&nbsp;&quot;translation&quot;&nbsp;for&nbsp;the&nbsp;en_UK&nbsp;locale&nbsp;is&nbsp;the&nbsp;same&nbsp;as&nbsp;the&nbsp;American&nbsp;<BR>&nbsp;source&nbsp;string,&nbsp;&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;&nbsp;If&nbsp;you&nbsp;omitted&nbsp;this&nbsp;entry&nbsp;in&nbsp;the&nbsp;&nbsp;<BR>message&nbsp;file,&nbsp;then&nbsp;calling&nbsp;mc&nbsp;with&nbsp;the&nbsp;source&nbsp;string&nbsp;&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;&nbsp;&nbsp;<BR>in&nbsp;the&nbsp;en_UK&nbsp;locale&nbsp;would&nbsp;result&nbsp;in&nbsp;mcunknown&nbsp;being&nbsp;called.&nbsp;Although&nbsp;the&nbsp;<BR>&nbsp;default&nbsp;behavior&nbsp;of&nbsp;mcunknown&nbsp;would&nbsp;produce&nbsp;the&nbsp;desired&nbsp;results&nbsp;&nbsp;<BR>(returning&nbsp;&quot;Welcome&nbsp;to&nbsp;Tcl!&quot;),&nbsp;you&nbsp;could&nbsp;run&nbsp;into&nbsp;problems&nbsp;if&nbsp;you&nbsp;&nbsp;<BR>override&nbsp;the&nbsp;behavior&nbsp;of&nbsp;mcunknown.&nbsp;Therefore,&nbsp;it&nbsp;is&nbsp;always&nbsp;safest&nbsp;to&nbsp;&nbsp;<BR>include&nbsp;a&nbsp;mcset&nbsp;mapping&nbsp;for&nbsp;every&nbsp;source&nbsp;string&nbsp;in&nbsp;your&nbsp;application,&nbsp;&nbsp;<BR>even&nbsp;if&nbsp;a&nbsp;particular&nbsp;locale&nbsp;doesn't&nbsp;require&nbsp;a&nbsp;&quot;translation&quot;&nbsp;for&nbsp;that&nbsp;&nbsp;<BR>string.&nbsp;<BR>&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -