こんにちは、Blackberry 10 プラットフォームは初めてで、アラビア語でアプリケーションを開発しています。アプリケーションでアラビア語のテキストを表示する方法がわかりません。しかし、Blackberry サイトには、ロケールを変更してアラビア語のテキストを表示することに関する情報がいくつかありますが、何も得られませんでした。私を助けてください
1 に答える
国際化に関する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 herit
QObject`. 回避策があります。
Momentics で、bar-descriptor.xml ファイルという名前の BAR アプリケーション記述子ファイルを開き、ローカライズ タブで、サポートするすべてのロケールを追加します。
次に、プロジェクトをクリアして再構築します。ビルド プロセスは.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)
}