void System::loadLocales () { MLocale locale; // Translation path needs to be added translation to work with // non-meegotouch apps. We don't know if the translation path has been // added before calling this library, hence adding it again MLocale::addTranslationPath ("/usr/share/l10n/meegotouch"); locale.installTrCatalog ("common"); // Install actuall application catalog locale.installTrCatalog ("transfer"); // Install application catalog (engineering english) locale.installTrCatalog ("libwebupload"); MLocale::setDefault (locale); }
/* The meego desktop files are using the qt translation system to get * localized strings using catalog and string ids. QApplication and * MLocale are needed for loading the translation catalogs. The * returned string is a multi-string one which has parts of different * length separated by '\x9C' unicode escape sequences. * * FIXME: This is insane, try to get rid of at least some of the extra * layers here. */ gchar * tracker_meego_translate (const gchar *catalogue, const gchar *id) { /* Get the system default locale */ MLocale locale; /* Load the catalog from disk if not already there */ if(!locale.isInstalledTrCatalog (catalogue)) { locale.installTrCatalog (catalogue); MLocale::setDefault (locale); } gchar *ret = g_strdup (qtTrId (id).toUtf8 ().data ()); /* We only want the first string of the multi-string, so if * the separator character is found (encoded as C2:9C in UTF-8), * we just end the string in that point */ gchar *next_string = strstr (ret, "\xC2\x9C"); if (next_string) { *next_string = '\0'; } return ret; }
ServiceHelper::ServiceHelper(Accounts::Service service, QObject *parent) : QObject(parent), d_ptr(new ServiceHelperPrivate(service)) { Q_D(ServiceHelper); QString catalog = d->service.trCatalog(); if (!catalog.isEmpty()) { MLocale locale; locale.installTrCatalog(catalog); MLocale::setDefault(locale); } }
void TestBirthdayPlugin::testLocaleChange() { MGConfItem store(QLatin1String("/meegotouch/i18n/language")); store.set(QLatin1String("en")); // Leave the time to react to locale change loopWait(1000); // Use the C locale so it can be changed to a different locale later. MLocale locale; QVERIFY2(locale.isValid(), "Invalid locale"); if (not locale.isInstalledTrCatalog(QLatin1String("calendar"))) { locale.installTrCatalog(QLatin1String("calendar")); } locale.connectSettings(); MLocale::setDefault(locale); // Open calendar database, which should have been created by the birthday plugin. mKCal::ExtendedCalendar::Ptr calendar = mKCal::ExtendedCalendar::Ptr(new mKCal::ExtendedCalendar(KDateTime::Spec::LocalZone())); mKCal::ExtendedStorage::Ptr storage = mKCal::ExtendedCalendar::defaultStorage(calendar); storage->open(); QVERIFY2(not storage->notebook(calNotebookId).isNull(), "No calendar database found"); // Check if locale name for calendar matches calendar name. //QVERIFY2(locale.isInstalledTrCatalog(QLatin1String("calendar")), "Calendar locale catalog not installed"); const QString cLocaleCalendarName = qtTrId("qtn_caln_birthdays"); QCOMPARE(storage->notebook(calNotebookId)->name(), cLocaleCalendarName); // Change locale and check name again. store.set(QLatin1String("fi")); loopWait(calendarTimeout); const QString finnishLocaleCalendarName = qtTrId("qtn_caln_birthdays"); QVERIFY2(storage->notebook(calNotebookId)->name() != cLocaleCalendarName, "Calendar name was not updated on locale change"); QCOMPARE(storage->notebook(calNotebookId)->name(), finnishLocaleCalendarName); // Close the calendar. QVERIFY2(storage->close(), "Error closing the calendar"); }
void MAppletSettings::init(const QString &metaDataFileName, const QString &appletId) { Q_D(MAppletSettings); QString appletBaseName = QFileInfo(metaDataFileName).baseName(); QFileInfo fileInfo(QDir(QString(APPLET_SETTINGS_DIR)), appletBaseName); QString settingsFileStub = fileInfo.absoluteFilePath(); d->instanceSettingsFileName = settingsFileStub + "-instance.xml"; d->globalSettingsFileName = settingsFileStub + "-global.xml"; d->instanceGConfPrefix = QString("/apps/") + appletId; d->globalGConfPrefix = QString("/apps/") + appletBaseName; // Load the applet's translation catalog for translating settings titles MAppletMetaData metaData(metaDataFileName); MLocale locale; locale.installTrCatalog(metaData.resourceIdentifier()); MLocale::setDefault(locale); }
M_EXPORT int main (int argc, char **argv) { bool run_standalone = true; QCoreApplication::setApplicationName (QLatin1String ("Share UI")); QCoreApplication::setOrganizationName (QLatin1String ("MeeGo")); // Let's use custom logging Logger logger; // Use dynamic memory control to make sure free is successfull before we // print out bye message. MApplication * app = MComponentCache::mApplication (argc, argv); // Load the translation catalog. The engineering english catalog is per // application/package, and gets loaded automatically. In the device, there // will be only one translation catalog for share-ui, webupload-engine and // transfer-ui, and we need to explicitly load it MLocale locale; locale.installTrCatalog ("transfer"); MLocale::setDefault (locale); Service * service = new Service(); for(int i = 1; i < argc; i++) { if (strcmp(argv[i], "--service") == 0) { run_standalone = false; } else if (strcmp(argv[i], "--help") == 0) { std::cout << "Share UI command line usage is" << std::endl; std::cout << "\tshare-ui <file list>" << std::endl; exit(0); } } if (run_standalone == true) { QStringList itemList; for (int i = 1; i < argc; i++) { if(argv[i][0] == '-') { // This is probably some kind of argument, like -software continue; } QString input = argv[i]; if (input.startsWith ("data:") == true) { qDebug() << "Received data URI" << input; itemList << input; } else { QFileInfo fileInfo (input); QString fileUri = fileInfo.canonicalFilePath(); if (fileUri.isEmpty ()) { qDebug() << "Received Tracker IRI (?)" << input; itemList << input; } else { fileUri.prepend("file://"); qDebug() << "Received file path uri" << fileUri; itemList << fileUri; } } } service->share (itemList); } else { new ShareUiInterfaceAdaptor (service); QDBusConnection connection = QDBusConnection::sessionBus(); bool retA = connection.registerService("com.nokia.ShareUi"); bool retB = connection.registerObject("/", service); qDebug() << "Setup dbus connection" << retA << retB; } int mainRes = app->exec(); qDebug() << "app returned" << mainRes; delete service; delete app; qDebug() << "Clean shutdown of Share UI application"; return mainRes; }
void Sysuid::loadTranslations() { MLocale locale; // Install real translations locale.installTrCatalog("usb"); locale.installTrCatalog("reset"); locale.installTrCatalog("energy"); locale.installTrCatalog("shutdown"); locale.installTrCatalog("profiles"); locale.installTrCatalog("screenlock"); locale.installTrCatalog("status"); locale.installTrCatalog("notification"); locale.installTrCatalog("connectivity"); locale.installTrCatalog("volume"); locale.installTrCatalog("memory-usage"); locale.installTrCatalog("cellular-adaptation"); // and the engineering english ones locale.installTrCatalog("systemui"); MLocale::setDefault(locale); }