return result;
}
+static v8::Handle<v8::Value> locale_get_uiLanguages(v8::Local<v8::String>, const v8::AccessorInfo &info)
+{
+ GET_LOCALE_DATA_RESOURCE(info.This());
+
+ QStringList langs = r->locale.uiLanguages();
+ v8::Handle<v8::Array> result = v8::Array::New(langs.size());
+ for (int i = 0; i < langs.size(); ++i) {
+ result->Set(i, r->engine->toString(langs.at(i)));
+ }
+
+ return result;
+}
+
static v8::Handle<v8::Value> locale_currencySymbol(const v8::Arguments &args)
{
GET_LOCALE_DATA_RESOURCE(args.This());
ft->PrototypeTemplate()->SetAccessor(v8::String::New("weekDays"), locale_get_weekDays);
ft->PrototypeTemplate()->SetAccessor(v8::String::New("measurementSystem"), locale_get_measurementSystem);
ft->PrototypeTemplate()->SetAccessor(v8::String::New("textDirection"), locale_get_textDirection);
+ ft->PrototypeTemplate()->SetAccessor(v8::String::New("uiLanguages"), locale_get_uiLanguages);
constructor = qPersistentNew(ft->GetFunction());
}
\sa firstDayOfWeek
*/
+/*!
+ \qmlproperty Array<string> QtQuick2::Locale::uiLanguages
+
+ Returns an ordered list of locale names for translation purposes in
+ preference order.
+
+ The return value represents locale names that the user expects to see the
+ UI translation in.
+
+ The first item in the list is the most preferred one.
+*/
/*!
\qmlproperty enumeration QtQuick2::Locale::textDirection
void standaloneDayName();
void weekDays_data();
void weekDays();
+ void uiLanguages_data();
+ void uiLanguages();
void dateFormat_data();
void dateFormat();
void dateTimeFormat_data();
delete obj;
}
+void tst_qdeclarativelocale::uiLanguages_data()
+{
+ QTest::addColumn<QString>("locale");
+
+ QTest::newRow("en_US") << "en_US";
+ QTest::newRow("de_DE") << "de_DE";
+ QTest::newRow("ar_SA") << "ar_SA";
+ QTest::newRow("hi_IN") << "hi_IN";
+ QTest::newRow("zh_CN") << "zh_CN";
+ QTest::newRow("th_TH") << "th_TH";
+}
+
+void tst_qdeclarativelocale::uiLanguages()
+{
+ QFETCH(QString, locale);
+
+ QDeclarativeComponent c(&engine, testFileUrl("properties.qml"));
+
+ QObject *obj = c.create();
+ QVERIFY(obj);
+
+ QMetaObject::invokeMethod(obj, "setLocale", Qt::DirectConnection,
+ Q_ARG(QVariant, QVariant(locale)));
+
+ QVariant val = obj->property("uiLanguages");
+ QVERIFY(val.type() == QVariant::List);
+
+ QList<QVariant> qmlLangs = val.toList();
+ QStringList langs = QLocale(locale).uiLanguages();
+
+ QVERIFY(langs.count() == qmlLangs.count());
+
+ for (int i = 0; i < langs.count(); ++i) {
+ QCOMPARE(langs.at(i), qmlLangs.at(i).toString());
+ }
+
+ delete obj;
+}
+
void tst_qdeclarativelocale::dateTimeFormat_data()
{