应用程序中的阿拉伯语文本

时间:2013-05-09 06:36:51

标签: blackberry-10

您好我是Blackberry 10平台的新手,我正在开发阿拉伯语应用程序。我不知道如何在我的应用程序中显示阿拉伯语文本。但是在Blackberry网站上有一些关于通过更改区域设置来显示阿拉伯文本但是我没有得到任何信息的信息。请帮帮我

1 个答案:

答案 0 :(得分:3)

您似乎已经熟悉有关国际化的BlackBerry's页面。您还应该查看Qt页面。

您应该首先关注应用内文字:

  • 在qml文件中,使用qsTr("A string")代替"A String"
  • 在C ++文件中,使用tr("A string")代替"A String"
    • tr()' is part of QObject, so it only works for classes that herit QObject`。有解决方法。

在Momentics中,打开名为bar-descriptor.xml文件的BAR应用程序描述符文件,然后在本地化选项卡中添加要支持的所有语言环境。

Momentics Locale Editor

然后,清除并重建您的项目。构建过程应在翻译目录中创建与项目名称匹配的.ts文件,但将区域设置代码作为后缀。

每次构建缺少翻译的应用程序时,都应更新.ts文件。

这个.ts文件是一个xml文件,它与源文件(.cpp.qml)中的内容相匹配,应该在屏幕上显示。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr_FR">
<context>
    <name>Page</name>
    <message>
        <source>Like</source>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>

以下代码应该在main.cpp中,它确保您的应用程序尝试为您的应用程序找到合适的翻译。更改您的设备区域设置,重新加载您的应用程序,并且应从.ts文件加载每个可翻译文本。

// localization support
QTranslator translator;
QString locale_string = QLocale().name();
QString filename = QString( "ProReader_%1" ).arg( locale_string );
if (translator.load(filename, "app/native/qm")) {
    app.installTranslator( &translator );
}

请注意,Momentics存在一个已知限制,阻止它找到不在根子目录中的源文件。您必须更新.pro文件:

lupdate_inclusion {
    SOURCES +=  \
        $$quote($$BASEDIR/../assets/qml/*.qml) \
        $$quote($$BASEDIR/../assets/720x720/qml/*.qml) \
        $$quote($$BASEDIR/../src/*.cpp) \
        $$quote($$BASEDIR/../src/app/*.cpp) \
        $$quote($$BASEDIR/../src/feedreader/*.cpp) \
        $$quote($$BASEDIR/../src/feedreader/storage/*.cpp) \
        $$quote($$BASEDIR/../src/piwik/*.cpp)
}