StupidBeauty
Read times:386Posted at:Wed Sep 28 18:21:25 2011
- no title specified

Wt3.1.9文档翻译:Wt::WMessageResourceBundle类参考,Wt::WMessageResourceBundle Class Reference

详细描述

使用XML 文件來支持本地化字符串。

资源集管理着一堆资源文件,它允许开發者从概念上管理一堆库中的消息。

例如,一個WApplication可能拥有一個通用的消息库,这是与其它的许多库共享的,其中包含的是重复出现的消息(例如'welcome'、'add to shopping cart'和'pay'),另外还有一个特殊的消息库,其中包含的是特殊的消息。

使用示例:

XML文件"general.xml":

* <?xml version="1.0" encoding="UTF-8"?>

* <messages>

* <message id='welcome-text'>

* Welcome dear visiter, {1} of the WFooBar magic website !

* </message>

* <message id='company-policy'>

* The company policy is to <b>please our share-holders</b>.

* </message>

* </messages>

*

支持的编码方式包括ASCII、UTF-8 (建议使用)和UTF-16。

在妳的程序中使用这个资源集:

//载入消息资源集

Wt::WApplication *app = Wt::WApplication::instance();

app->messageResourceBundle().use("general");

//使用资源集來翻译一個字符串

Wt::WText *welcome = new Wt::WText(tr("welcome-visitor").arg("Bart"));

要引用这個资源文件中的兩条消息的话,就使用WString::tr("welcome-text").arg(userName)或WWidget::tr("company-policy")。

复数形式

XML 格式支持复数名词的形式,并且允许为每個语言定义不同的复数形式。每個名词的形式的個数在不同的语言中有可能是不同的,类似地,将与某個名词关联的数字转换成一个形式编号(case id)的表达式也存在这個问题(在不同的语言中的個数不同)。messages XML 元素使用兩個属性來实现对复数的支持:

  • •.'nplurals'属性指示的是复数形式的個数;形式(cases)是按照0 .. (nplurals - 1)编号的。

  • •.'plural'属性,是一个表达式,它将数字n 转换成复数形式。这个表达式应当使用C 语言的语法,但是不得使用负数,数字必须是整数,并且唯一允许的变量就是n,而它对应的就是传递给WString::trn()的個數参数。返回的值必须是一個复数形式:0 .. (nplurals - 1)。

使用WString::trn(),你就可以传递個數n,它将被用来選擇合适的复数形式。

舉個例子,看看一個描述波蘭语的翻译内容的XML 资源文件,它列出咯名词'plik'( 在波蘭

語中表示 文件 )的所有复数形式。这個名词是这样使用的:

  • •.1 plik

  • •.2,3,4 pliki

  • •.5-21 pliko'w

  • •.22-24 pliki

  • •.25-31 pliko'w

<?xml version="1.0" encoding="UTF-8"?>

<messages nplurals="3"

plural="n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2">

<message id="file">

<plural case="0">{1} plik</plural>

<plural case="1">{1} pliki</plural>

<plural case="2">{1} pliko'w</plural>

</message>

</messages>

然后,这個资源文件中定义的消息可使用WString::trn("file", n)來引用。

参考:

WApplication::locale()WString::tr()WString::trn()

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4