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

📄 qt 国际化编程.htm

📁 关于QT的国际化,帮助不同国家人员之间的交流
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            charset=gb2312\n"或者"Content-Type: text/plain; charset=big5\n"。 (2) 
            提取的信息有一个范围,比如上面的文件指定的范围是 ExampleWidget, 在翻译 前应该把它去掉,变成 msgid 
            "::&File"。(3) 被翻译的字符串可能含有加速键 符号,如 
            "&amp;File"中的"F",如果翻译成中文最好保留该信息,它可以翻译成 "文件(&amp;F)"。</P>
            <P>对于翻译后的文件(比如上面的翻译文件存为 i18n_gb.po),必须使用 Qt 提供的 工具 msg2qm 把它转换为 .qm 
            文件才能使用,</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>                &gt; msg2qm i18n_gb.po i18n_gb.qm
                </PRE></TD></TR></TBODY></TABLE><BR>
            <P>它类似于GNU的 msgfmt 命令。翻译后的文件可以用Qt程序直接调用。</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>                QTranslator *translator = new QTranslator(0);
                translator-&gt;load("i18n_gb.qm",".");
                qApp-&gt;installTranslator(translator);
                </PRE></TD></TR></TBODY></TABLE><BR>
            <P>此外,Qt 还提供了类似于 msgmerge 的工具 mergetr,它用于把新提取的信息 
            文件和已经翻译过的信息文件融合起来,在此不再赘述。</P>
            <P>在 Qt 中也可以直接使用 QTextCodec 来转换字符串的编码,这为在Qt下开发纯 
            中文软件带来了便利条件,不过这种方法不符和国际化/本地化的习惯,</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>                char *string = "中文和English混和字符串!"
                QTextCodec* gbk_codec = QTextCodec::codecByName("GBK");
                QString gbk_string = codec-&gt;toUnicode(string);
                QLabel *label = new QLabel(gbk_string);
                </PRE></TD></TR></TBODY></TABLE><BR>
            <P>如果使程序只支持一种编码,也可以直接把整个应用程序的编码设置为GBK编码, 然后在字符串之前 
            加tr(QObject::tr),</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>                qApp-&gt;setDefaultCodec( QTextCodec::codecForName("GBK") );
                QLabel *label = new QLabel( tr("中文标签") );
                </PRE></TD></TR></TBODY></TABLE><BR>
            <P>如果使Qt根据Locale的环境变量取得字符集,可以使用 
            <CODE>QString::fromLocal8Bit(str)。</CODE> </P>
            <P>本节的例子请参见 <A 
            href="http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/i18n/qt-i18n-example.tar.gz">qt-i18n-example.tar.gz</A> 
            </P><BR>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><IMG height=1 alt="" src="Qt 国际化编程.files/blue_rule.gif" 
                  width="100%"><BR><IMG height=6 alt="" 
                  src="Qt 国际化编程.files/c.gif" width=8 
            border=0></TD></TR></TBODY></TABLE>
            <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=4 alt="" src="Qt 国际化编程.files/c.gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="Qt 国际化编程.files/u_bold.gif" width=16 
border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/i18n/#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
            <P><A name=N100A7><SPAN class=atitle>2. Qt 的文本输入</SPAN></A></P>
            <P>在输入方面,Qt 的输入条(QLineEdit)和编辑区(QMultiLineEdit)都支持 XIM,只要配 
            合相应的输入服务器,便可以输入中文/日文/韩文。目前有许多支持XIM的软件,比如 中文: 
            Chinput/xcin/rfinput/q9,日文: kinput2/skkinput,韩文: ami/hanIM。</P>
            <P>Qt程序的缺省输入风格是OverTheSpot风格,它也支持 OffTheSpot风格和 Root风格。 
            用户可以在起动程序时在命令行指定输入风格,比如对程序app,</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>                ./app -inputstyle overthespot   #缺省风格,光标跟随
                ./app -inputstyle offthespot
                ./app -inputstyle root
                </PRE></TD></TR></TBODY></TABLE><BR>
            <P>经过 MiziLinux 补丁的Qt-2.2.0 支持 OnTheSpot 输入风格,并且把它作为 缺省的输 入风格。请参见 
            http://www.mizi.com/ko/kde/doc/onthespot/onthespot.html。</P>
            <P>Qt 中的任何一个 Widget 都可以接受输入,只要它可以有键盘聚焦(Keyboard Focus)。所以对特殊 Widget 
            的输入处理只需要截获键盘输入,获取从XIM服务器 来的字符串。 
            对于OverTheSport风格的支持,刷新XIM输入服务器的位置即可。</P><BR>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><IMG height=1 alt="" src="Qt 国际化编程.files/blue_rule.gif" 
                  width="100%"><BR><IMG height=6 alt="" 
                  src="Qt 国际化编程.files/c.gif" width=8 
            border=0></TD></TR></TBODY></TABLE>
            <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=4 alt="" src="Qt 国际化编程.files/c.gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="Qt 国际化编程.files/u_bold.gif" width=16 
border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/i18n/#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
            <P><A name=N100BD><SPAN class=atitle>3. Qt 的打印</SPAN></A></P>
            <BLOCKQUOTE>在打印方面,XWindow下的 Qt 生成PostScript并使用lpr打印。 它含有QPrinter类, 
              可以方便地支持输出页面的控制。 对于中文打印,必须修正PostScript文件的输出 部分。</BLOCKQUOTE><BR><BR>
            <P><A name=author><SPAN class=atitle>关于作者</SPAN></A></P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD colSpan=3><IMG height=5 alt="" src="Qt 国际化编程.files/c.gif" 
                  width="100%"></TD></TR>
              <TR vAlign=top align=left>
                <TD>
                  <P></P></TD>
                <TD><IMG height=5 alt="" src="Qt 国际化编程.files/c.gif" 
width=4></TD>
                <TD width="100%">
                  <P>于明俭 has authored this 
            article</P></TD></TR></TBODY></TABLE><BR><BR><BR>
            <P class=no-print><SPAN class=atitle><A 
            name=rate>对本文的评价</A></SPAN></P><SPAN class=no-print>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR vAlign=top>
                <TD>
                  <FORM 
                  action=https://www.ibm.com/developerworks/secure/cnratings.jsp 
                  method=get><INPUT type=hidden value="Qt 国际化编程" 
                  name=ArticleTitle><INPUT type=hidden value=Linux 
                  name=Zone><INPUT type=hidden 
                  value=http://www.ibm.com/developerworks/cn/thankyou/ 
                  name=RedirectURL><INPUT type=hidden value=china 
name=localsite>
                  <SCRIPT language=javascript>document.write('<input type="hidden" name="url" value="'+location.href+'" />');</SCRIPT>

                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD><IMG height=8 alt="" src="Qt 国际化编程.files/c.gif" 
                        width=100 border=0></TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=1 name=Rating>太差! (1)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=2 name=Rating>需提高 (2)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=3 name=Rating>一般;尚可 
(3)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=4 name=Rating>好文章 (4)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=5 
                    name=Rating>真棒!(5)</TD></TR></TBODY></TABLE><BR><B>建议?</B><BR><TEXTAREA id=Comments name=Comments rows=5 wrap=virtual cols=60>&nbsp;</TEXTAREA><BR><BR><INPUT type=submit value=反馈意见></FORM></TD></TR>
              <TR vAlign=top>
                <TD bgColor=#ffffff><IMG height=8 alt="" 
                  src="Qt 国际化编程.files/c.gif" width=100 
            border=0></TD></TR></TBODY></TABLE></SPAN><SPAN class=no-print>
            <TABLE cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=8 alt="" src="Qt 国际化编程.files/c.gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="Qt 国际化编程.files/u_bold.gif" width=16 
border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/i18n/#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR></SPAN></TD>
          <TD width=10><IMG height=1 alt="" src="Qt 国际化编程.files/c.gif" 
            width=10></TD></TR></TBODY></TABLE><SPAN class=small>IBM 公司保留在 
      developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 <A 
      href="https://www.ibm.com/developerworks/secure/reprintreq.jsp?domain=dwchina">提交转载请求表单</A> 
      联系我们的编辑团队。</SPAN></TD></TR></TBODY></TABLE><!--FOOTER_BEGIN--><!-- IBM FOOTER -->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD class=bbg height=19>
      <TABLE cellSpacing=0 cellPadding=0 border=0>
        <TBODY>
        <TR>
          <TD><SPAN class=spacer>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><A 
            class=mainlink href="http://www.ibm.com/cn/ibm/index.shtml">关于 
            IBM</A></TD>
          <TD class=footer-divider width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><A class=mainlink 
            href="http://www.ibm.com/cn/ibm/privacy/index.shtml">隐私条约</A></TD>
          <TD class=footer-divider width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><A class=mainlink href="http://www.ibm.com/contact/cn/">联系 
            IBM</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- end footer -->
<SCRIPT language=JavaScript1.2 src="Qt 国际化编程.files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt="" 
src="C:\Documents and Settings\admin\桌面\chi\linux\Qt 国际化编程.files\c(1).gif" 
width=1 border=0></NOSCRIPT><!--FOOTER_END--><!--XSLT stylesheet used to transform this file:  dw-document-html-5.8.xsl--></BODY></HTML>

⌨️ 快捷键说明

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