1

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

4

1 回答 1

3

您似乎已经熟悉BlackBerry关于国际化的页面。您还应该查看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 heritQObject`。有解决方法。

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

Momentics 语言环境编辑器

然后,清除并重建您的项目。构建过程应.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)
}
于 2013-05-12T19:36:53.653 回答