Location translations

Hi guys I am applying for Q10 and Z10, so all devices there own design so I have 2 folders

768 x 1280 ==> contain main.qml

720x7e29 ==> hold main.qml

and there is no main.qml defult

so if I try to add qstr for lable but it does not appear in translations folder same appname.ts or appname_ar.ts

I have to add all the lines to appname.pro?

you're .pro, if you add

{lupdate_inclusion}
SOURCES +=... / Assets/FolderName / *. QML
}

should solve the problem.  If it doesn't work still not empty folder of 720 x 720 names and use something like Q, Z, Z30

Tags: BlackBerry Developers

Similar Questions

  • Location of a .muse using a cat tool file

    I am trying to locate (translated in several languages) an Adobe .muse file using a tool such as memoq and Trados cat. Does anyone have any experience with this approach? The goal is to get a translated for viewing in foreign languages in Adobe Muse .muse file. We would like to see the language channels target in Adobe Muse before you export it as html. Very similar using the Indesign - model conversion INDD/IDML for cat tools providing an INDD/IDML file located after translation requiring only minor cleanup DTP. Any info is greatly appreciated.

    Although the Muse file is made of "particles", the level of structure based on XML is almost nil (IDML is actually an XML structure with a DTD declaration). Thus, it is almost impossible to access text strings and translate them. It is too formatted custom and style in progress.

    The only cat tool capable of working files wit of Muse , is a near-commercial of Muse version, that shows pictures of cats of the members of the team in the splash screen, but I guess that this is not what you are looking for...

  • Changed the behavior of the combination SHIFT + click in Editor?

    In versions cc2015 of Photoshop, the checker behaves differently than older versions when I use 'shift-click' to connect the dots. In PS CS6, for example, when I take the SHIFT key, the clone tool in (or cure) continuously from point to point as I click. In the last two versions of Photoshop, this has changed: a click, then shift + click to a new location translates into a 'line', although it is not until the next point clicked, even by pressing the SHIFT key all the time. Instead, the point is considered as the beginning of a second 'line' of healing.

    I hope that makes sense - it's surprisingly complicated to describe such a simple thing. But the effect is really disconcerting - if I'm along a surface of healing, I can't have a continuous 'cure' along a curve, for example.

    Tools brush and Clone Stamp don't show it at all - they behave as expected, click connection points without interruption until the SHIFT key is released. I can't find any preference which may have changed, and I'm using a very simple toolset - without wild brushes or anything like that. Very frustrating!

    How can I get the old behavior back to the Healing Brush tool? What Miss me?

    Thank you

    John

    -running Mac OS X 10.10.5, Photoshop versions cc2015 and cc2015.5 show that (also another machine at work, OS 10.11, PS cc2015.5.1 shows the same behavior)

    I have been informed more in 'PhotoshopFamily' that it is a bug, they sent to engineering to investigate (& difficulty, hopefully!)

    «More tests, I found that this problem goes away * if * the source and the destination are on a layer "background" (e.g., on a flattened image).» But try to 'cure' / clone of a source layer to a layer of different destination (or even the same layer, if not a background layer) product failure in the behavior of the combination SHIFT + click. »

  • Captivate 3 - everyone figured out how to reduce to a CP project file size?

    Greetings,

    I think that this question has been asked before, but I was unable to find a solution to the problem and I was wondering if someone else (a solution).

    Some people called this phenomena "file bloat".

    I'm using Captivate 3. In the process of adding and deleting slides the .cp file gets quite large. I tried to do the thing of "save under...". ». I also tried the unused resources removal (graphics, backgrounds, etc) and save the file again. Nothing seems to work.

    I tried to import a project into an empty project (the application seems to work, but nothing happens). I tried export in XML format and the file will not import (corrupted).

    If someone managed to find an answer on how to remove unused slides/resources of a Captivate project "inflated". Apart from rebuild the project file from scratch is there a solution?

    Thank you

    TPK

    Hello

    The only way I've ever seen a reduction in file size Captivate 3 was by performing the following steps:

    1. Open a second instance of Captivate.
    2. Create a new empty project of same size as the other instance.
    3. Switching between instances, copy slides of the bloated and paste into the fresh.
    4. Save a new and the file size is reduced.
    5. Throw away the old one.

    Note that you will probably need to restore links that you had.

    Just a note special here on one of the things that you have tried. You said that you exported in XML format. I don't think that you can export as XML and then import XML into a new project. I think that the XML export works very similarly to the export of Microsoft Word. Only the exported project he will be able to properly re - import. If I understand correctly, the XML export is designed to Captivate developers who need to locate (translate) their projects.

    See you soon... Rick

  • CloneVM translates into "spec.location.folder".

    Hello

    I created my own version of the SDK "vmprovision.pl" example script to clone a virtual machine model. My Perl script works normally, but when the cloning on data centers, I get the error message: "a specified parameter was not correct. Spec.Location.Folder ".

    I've gotten over the reference to CloneVM after finding the reference with "find_entity_view" like this:

    My $vm_folder = get_folder_view ('name' = > Opts::get_option('folder'));)

    ...

    My $relocate_spec = VirtualMachineRelocateSpec-> new)

    data store = > $ds_view,

    pool = > $cs_view-> resourcePool

    );

    # Create CloneSpec corresponding to the RelocateSpec

    # XXX do not hardcode things here, like "powerOn", "template", etc.

    My $clone_spec = VirtualMachineCloneSpec-> new)

    powerOn = > 0,

    model = > 0,

    location = > $relocate_spec,

    );

    # Clone source vm, pass the resource pool, file and new name of vm

    $vm_view-> CloneVM (file = > $vm_folder-> parent)

    name = > Opts::get_option ('vmname_destination'),

    Spec = > $clone_spec) or die "Could not create new virtual machine;

    }

    void get_folder_view {}

    # entry: name of the folder

    # outupt: the file reference

    my % args = @_;

    My $folder_name = $args {name};

    Print "folder name: $folder_name\n", so ($DEBUG);

    My $vm_folder = Vim::find_entity_view (view_type = > 'Folder',)

    filter = > {'name' = > $folder_name});

    {if (! defined ($vm_folder))}

    Die "Can't find a folder named \"$folder_name\"\n;"

    }

    Return $vm_folder;

    }

    Our facility is a vCenter with multiple data centers containing multiple DRS clusters (without using the storage-DRS). The models that I am trying to clone resides in another data center and Cluster.

    What I'm doing wrong here?

    Is it possible to get a reference to the folder root VM of a cluster?

    Thanks for the advice or assistance, you can provide!

    Thomas Willert

    The folder will not be bound to the cluster, but to the data center.  If you want to get the rootFolder of the object of datacenter, or choose a different folder by searching for the specific name or path.

    $datacenter_view-> {'vmFolder'};

  • How can I help the Uzbek language translation of Mozilla FireFox (Web browser)?

    How can I help the Uzbek language translation of Mozilla FireFox (Web browser)?

    Hi Erkin Farxodovich,
    I thank you for volunteering, to do this please contact the l10n team. And also the location on this page Quick Start Guide: https://wiki.mozilla.org/L10n:Starting_a_localization

    That should have all the information. Please reach out to the group mail as well and they can help with questions along the way.

    I hope this helps.

  • Locate the specific E-mail mailbox

    Hello:

    I can look for a specific mailbox, by defining as mailbox search test, followed by the name of mailbox.

    This translates to a list of emails in this mailbox.

    But I can not locate this mailbox, in order to add new e-mail messages to it. Help, please!

    Maurice

    [email protected]

    users--> digging you-->--> library--> e-mail around

    You must make the visible library (I forget exactly how, but you can access it via the 'menu go, while now alt'

  • Working Mobile HP ZBook 17: HP ZBook 17 - how to locate the slot for failing to DIMM

    When running memory diagnostics, I get a failure where newspapers are pointing to "channel Num Num 1 DIMM 0"- but nothing on which four slots contains DIMM failure.

    Where can I find documentation that translates this DIMM/channel numbering scheme to the numbers 1-4 or location physical location (primary or Expansion) mentioned in the service manual?

    I tried to keep this brief and precise question, but I can provide more details if necessary.

    Thank you!

    I resorted to an approach of trial and error to swap DIMM and execution of diagnostic tests to find the bad DIMM.  It was tedious (especially where I had to keep remove the optical drive and the keyboard to switch to the primary slots), but I finally managed to determine that I had TWO bad DIMM, replaced those with the new, and I'm back running with 32 GB.

    I never got an answer about the Diagnostics DIMM numbering at the locations of the physical location to translate, but I managed to learn more through my tests.  Here's what I've been able to determine:

    PHYSICAL DIAGNOSIS

    Channel #? / DIMM #0 main site #1

    Channel #? / DIMM #0 main site #2

    Channel #1 / #1 location #1 DIMM Expansion

    Channel #0 / DIMM #1 Expansion Slot #2

    This should really be recorded somewhere and maybe I wasn't able to find the right document.  I hope this information helps someone else.

  • Behavior of strage DefaultPanel/DefaultCtrl on panel located

    I use the location for a multilingual application utility, I develop and faced a strange problem.

    I can correctly display localized panels but if I happen to call DefaultPanel localized Panel, all the messages back to the original (untranslated) text; the same thing happens if I call DefaultCtrl a text message. Control labels are not affected by this problem.

    The problem occurs both if I use LoadLocalizedPanel and if I call LoadPanel + LocalizePanel.

    This behavior is particularly annoying, as I sometimes call it DefaultPanel to cancel all the controls in a Panel to their default value. Having observed this fact, I cannot use this as a solution loop through all the controls in the Panel by default all but text messages (have not tested on rings on until now).

    Tested on CVI2009SP1 and 2012SP1, on a Win7 machine. This occurs in the IDE and in the compiled executable.

    Hello Roberto,

    Unfortunately, this is a consequence of the library location is an element that is located on the top of the UI library, rather than a part of the library of the user interface. The UI library knows nothing about localized strings and so when you call DefaultCtrl, the value of the control back to what it was in the .uir file. And the translated strings were proposed by the simple calls SetCtrlVal-type in the library of location - inseparable, in the interface library user is, with your own SetCtrlVal calls in your own program.

    This can happen also to the controls other than the text messages: boxes of strings and text, for example. The only reason it doesn't happen with all types of controls is because in most cases, the translated strings are not part of the value of the control. Instead, they are simply attributes (the text of the label, for example). And DefaultCtrl / DefaultPanel affects only the values, not the attributes.

    If you do not want to iterate through all the controls looking for the controls that you can or cannot call DefaultCtrl on, you should also be able to work around this limitation by calling DefaultPanel followed by LocalizePanel. It works for you?

  • "Search"(XP) Windows will not move location of index data base

    Dear everybody

    I installed "Windows Search" on Win XP Pro (SP3) and I tried to move the index database to a new location on another partition (D :) on the same disk, through "Advanced Configuration"-> 'Location of the Index'-> "New location after the service has been restarted".) (My Danish translations!). But no matter what I do (Win.Search closing or restarting Windows), the "current" location on C: remains the same. What's wrong?

    Best regards

    Henrik Roseno

    Hi again...

    I think I found the solution: I created a 3rd directory/location, which was chosen as the "new location" and restarted Windows.

    -Henrik

  • VMplayer "Binary translation - long mode" error on the new ZBook 15 G2 w / i7-4810MQ

    I installed VMplayer 5.0.x and attempted to load an image of Machine virtual existing Win7Pro 64 and got: "binary translation is incompatible with the long mode on this platform.  Long mode off. Without the support of the long mode, the virtual machine will not be able to run 64-bit code. "For more information see http://vmware.com/info?id=152 .

    Passed 64-bit compatibility check (referenced in the link): ' this machine is capable of runnning a 64 bit comments under this product VMware operating system. "

    I tried to reinstall the operating system as a new virtual machine and got the same error message.

    VMware docs see firmware/BIOS, does not support the VT CPU features:

    "Intel processors require an EM64T and VT support in the chip and in the BIOS.

    Note: If VT is enabled on an ESX host, the vmx flag is located in/proc/cpuinfo. {LINUX OS}

    Intel EM64T processors do not have segmentation support in long mode. If the Intel EM64T CPU is VT-capable, it comes with support for hardware virtualization (Intel Virtualization Technology). This support for hardware virtualization allows VMware circumvent the lack of segmentation, which allows to run 64-bit on taking VT processors operating systems support Intel EM64T.

    Notes:

    • The firmware/BIOS support is required to enable Intel virtualization technology. Some systems (especially laptops) do not have the necessary firmware/BIOS support to enable Intel virtualization technology and cannot run 64-bit operating systems. »

    The ZBook 15 G2 w / i7-4810MQ CPU supports 64-bit virtualization? Ideas or experience?

    I feel a little embarrassed... I had been in the BIOS Setup but have not seen the VM options under "Advanced". I turned on the features I needed.

  • When I translate any text from English to Arabic using Golden Al-Wafi Translator, the translation was encrypted.

    Hello

    I have been using the Golden Al - Wafi Translator on my Windows 7, which has been installed in the Arabic version, and it worked very well. However, when I restored my computer from recovery disks and then I leave Windows Installer in the English language. After that, when I installed the Golden Al-Wafi Translator, I noticed that when I translate any text from English to Arabic, I saw that the translation was encrypted. As you will see this screen shot below:

    Thank you very much

    What do you mean with that if the computer is connected to a domain?

    Second: I installed the same translator on my Windows 7 even. However, when it was in Arabic and I have not found any problems. Now my Windows 7 is installed in English Version and I found this problem with translator

    I also had this problem, but I fixed it. first of all, you need to change the default location of your PC in the language and region settings.

    Then choose another thank you Arial font, for example, I use @Arial Unicode MS

    My PC is also connected to a domain, it has nothing to do with it.

    Concerning

  • HOWTO: Translation Live in C++ similar to re-translate in QML

    WARNING: To come long post!

    If you've built (or building) your apps BlackBerry 10 Aboriginal stunts with internationalization in mind, then you have probably dotted with QML qsTr() calls and macros tr() C++ code. When your application starts the text wrapped in qsTr() or tr() is replaced by the localized text for the local unit and the language (if defined, otherwise default text is used). This works fine unless you change the language setting on your device while your application is running. Unless you take measures to propagate the change to the language through your live webcam app, the text displayed in your application will not match the settting of language new device only when your application is restarted. QML provides this translation of 'direct' with the re-translation class, which can be used with qsTr() update of translations that soon the language setting of the device is changed:

    Page {   Container {      Label {         id: label01
    
             // ---This label's text will be live translated         text: qsTr("Label 1") + Retranslate.onLanguageChanged      }      Label {         id: label02
    
             // ---This label's text will be static translated         text: qsTr("Label 2")      }   }}
    

    In this example, label01 will be his attribute of translated text live as it is updated as soon as the device language is changed. However, label02 will have only his attribute of text translated when the software is first started and the language changes following while the application is running will not update to it.

    With the help of the re-translation with QML class makes direct translation as simple as the addition of a small amount of code just after each use of qsTr(), but C++ does provide no such convenience. To implement the translation directly in C++ code, it is necessary to call setXXX() for a string with the macro tr() attribute slot once to do the initial translation and then connect the setXXX() slot to an instance of LocaleHandler that emits a signal every time the language (or locale) changes. It's complicated by the fact that the LocaleHandler knows that the language has changed, but he doesn't know which key text to provide openings, it is attached to the then must fix the LocaleHandler signal to an intermediate location that knows what translation of key to use for this attribute, and then emits a different signal with the key as a parameter that must be connected to the slot machine control setXXX() . This means that, for every single control attribute you want live, translate you'll need a separate intermediate location set somewhere, a signal linked to this site and two calls QObject::connect(). For EACH attribute that we want to live translation. Of course, this becomes very ugly, very fast.

    I prefer to use C++ with QML little or not to expose my app pages so I was determined to find a solution that was easier to use than retranslating in QML (or almost) and after some trial and error I came up with a solution that I am very satisfied. The core of this technique is a C++ class called LiveTranslator. The syntax to use is a bit more complicated to use QML re-translation, but as re-translation you only need to add a line of code for each attribute that you want to translate live. Here is the header for LiveTranslator:

    #ifndef LIVETRANSLATOR_HPP_
    #define LIVETRANSLATOR_HPP_
    
    #include 
    
    using namespace bb::cascades;
    
    class LiveTranslator: public QObject {
        Q_OBJECT
    
        QString _key;
        QString _context;
    
        static LocaleHandler* _localeHandler;
    
    public:
        LiveTranslator( const QString& context, const QString& key, QObject* target, const char* slot );
        static void setLocaleHandler( LocaleHandler* localeHandler );
    
    private slots:
        void localeOrLanguageChangedHandler();
    
    signals:
        void translate( const QString& string );
    };
    
    #endif /* LIVETRANSLATOR_HPP_ */
    

    .. .and the body...

    #include "LiveTranslator.hpp"
    
    // ---Initialize the locale handler pointer on app startup so we can tell if it has been set properly later
    LocaleHandler* LiveTranslator::_localeHandler = 0;
    
    // ---Note that the target control is also used as the parent so the live translator dies when the control does
    LiveTranslator::LiveTranslator( const QString& context, const QString& key, QObject* target, const char* slot ) :
            QObject( target ) {
    
        bool success;
        Q_UNUSED( success );
    
        // ---Save the context and key string
        this->_key = key;
        this->_context = context;
    
        // ---Die (during debug) if the locale handler hasn't been set properly before use
        Q_ASSERT( LiveTranslator::_localeHandler );
    
        // ---Watch for locale or language changes
        success = QObject::connect( LiveTranslator::_localeHandler, SIGNAL( localeOrLanguageChanged() ), SLOT( localeOrLanguageChangedHandler() ) );
        Q_ASSERT( success );
    
        // ---Trigger specified slot when locale or language changes
        success = QObject::connect( this, SIGNAL( translate( const QString& ) ), target, slot );
        Q_ASSERT( success );
    }
    
    void LiveTranslator::localeOrLanguageChangedHandler() {
        // ---Use the specified slot on the target to update the appropriate string attribute with the translated key
        emit translate( QCoreApplication::translate( this->_context.toLocal8Bit().constData(), this->_key.toLocal8Bit().constData() ) );
    }
    
    // ---This function MUST be called once with a valid LocaleHandler before any LiveTranslator classes are instantiated
    void LiveTranslator::setLocaleHandler( LocaleHandler* localeHandler ) {
        LiveTranslator::_localeHandler = localeHandler;
    }
    

    LiveTranslator encapsulates all the ugly stuff, including remembering the key to the translation, the intermediate signal/slot, and all signal/slot connections necessary for direct translation. Use is as simple as creating an instance of LiveTranslator, passing the constructor the translation for the attribute key (and the context, but more on that later), the Visual control of the target and the location on the control that accepts the update of translation. Note that tr() only works with static keys chains...

    // ---This is valid
    QString str1 = tr("string one");
    
    // ---This is not!
    Qstring str1 = "string one";
    QString str2 = tr(str1);
    

    .. .so instead tr(), LiveTranslator must use QCoreApplication translate() internally.

    An example of use of LiveTranslator :

    MyClass::MyClass() {
        Label* label = Label::create().text( tr("Label one") );
        new LiveTranslator( "MyClass", "Label one", label, SLOT(setText(const QString&)));
    
        Option* option = Option::create().text( tr("Option one") ).description( tr("Option one description") );
        new LiveTranslator( "MyClass", "Option one", option, SLOT(setText(const QString&)));
        new LiveTranslator( "MyClass", "Option one description", option, SLOT(setDescription(const QString&)));
    
        ActionItem* actionItem = Option::create().title( tr("Action one") );
        new LiveTranslator( "MyClass", "Action one", actionItem, SLOT(setTitle(const QString&)));
    }
    

    Note that there is no need to save a reference to the new instance LiveTranslator since the constructor sets the 'target' as a parent control. When the control is destroyed by your app the LiveTranslator will go with him. The first parameter to the constructor LiveTranslator is the 'context' where the translation key. When you use the macro tr() (or function qsTr() QML) the code parser mentions of where he found the key and stores it in the translation file. This way you can use the same key for translation on different pages, and if the context is different, you could have them translated differently. The parser doesn't know anything about the LiveTranslator class but it must indicate the context explicitly. For C++, the context is always the name of the class containing the code that you are translating. In addition, in case it is not obvious, the "key" parameter must be the same value used with tr() on the input line.

    There is one thing that you must do before using LiveTranslator in your C++ code and that is to give it a LocaleHandler to work with. Rather than force you to spend a LocaleHandler for each instance of LiveTranslator, you tell LiveTranslator that one to use only once with a static function call. If you created your application from one of the Momentics models then you already have a Manager, you can use:

    ApplicationUI::ApplicationUI() : QObject() {
        // prepare the localization
        m_pTranslator = new QTranslator( this );
        m_pLocaleHandler = new LocaleHandler( this );
    
        // Use this locale handler for all the live translations too
        LiveTranslator::setLocaleHandler( m_pLocaleHandler );
    
        ...
        ...
        ...
    }
    

    I enclose the source for LiveTranslator so all you need to do to get the direct translation working in your BB10 native C++ code is extract the zip in your src directory, add a call to LiveTranslator::setLocaleHandler() in your main application class constructor, and then call new LiveTranslator (...) with the appropriate settings for each attribute of the control you want to be living translated. I hope that is useful to the native BlackBerry 10 development community wonderful (and long-suffering).

    IMPORTANT!

    The instructions posted above have been extended and improved to work with some additional user interface controls such as SystemDialog and SystemUiButton. It was published with a link to a sample application on GitHub as an guest article on the Blog of Dev of BlackBerry. Additional functionality has been added to the original code shown above, then the blog article and GitHub example now consider the definitive description of this technique.

    See you soon.

  • Dynamically loading the file location

    Hi all

    Please give me an idea on dynamic locations. At present iam using the localization file it works fine locally, but is new scenario: I need to download the file location on the server side and dynamically change the value.

    Please help me if anyone has any idea on this?

    Thank you

    I'm not saying it's impossible, but I really don't see a way to use the built-in location facility and have the ability to dynamically load the additional locations.

    My only suggestion is to establish a similar device yourself.

    If you are looking for something on the basis of this, in addition to the Blackberry application, I was looking at the Android application that uses XML "translation."  Using this approach, you would be able to download a new XML file to get a new translation.

  • PROBLEM: getting the translations of Cascades library

    I have problems to get translations from my library to application project project

    Thanks to Isaac Gordetzky, the library model was a great starting point and I got some more tips from him

    So in the meantime, I've solved some taks:

    1 library Project creates translation files

    I had to add a skeleton bar - descriptor.xml for the library project and add my local it

    2. get a tr() work in C++

    I had to replace

    TR ("...")

    with
    QT_TRANSLATE_NOOP("My::namespace::MyClass","...")

    3. use of QRC

    In my .pro I inserted

    RESOURCES += baasParseLibrary.qrc

    where baasParseLibrary is my name of the library

    This is the content of baasParseLibrary.qrc:

    
    
    
    translations/baasParseLibrary_de.ts
    translations/baasParseLibrary_en.ts
    
    
    

    4 initialize the QRC in my application

    In main.cpp, I inserted before the Application has been created

    Q_INIT_RESOURCE (baasParseLibrary);

    5. provide the translator of my library code

    Add a method to the API from my library:

    void MyLibApp::updateTranslations() {
    static QTranslator * m_pTranslator = new QTranslator(
            QCoreApplication::instance());
    QString locale_string = QLocale().name();
    QString file_name = QString(":/baasParseLibrary/translations/baasParseLibrary_%1").arg(locale_string);
    if (m_pTranslator->load(file_name, "app/native/qm")) {
        QCoreApplication::instance()->installTranslator(m_pTranslator);
    } else {
        qDebug() << "cannot load " << file_name;
    }
    }
    

    Then, my app, I'll call updateTranslations()

    PROBLEM:

    the file updateTranslations() cannot be loaded into the translator.

    so there must be something wrong.

    Question: the prefix and file in the correct QRC file?

    prefix /baasParseLibrary is the name of the library project in the workspace - not the physical location on disk

    in updateTranslations() I am the same way by referring

    Or am I missing something else?

    I never hepatitis did something with the QRC or translations of libraries before.

    all other things work - getting active such as the images in the library

    Thanks for the tips

    Hi Isaac,.

    Thanks for your tip. You're right, I should use the *.qm files in the file of the QRC. because they have been compiled in the process of generation of library before .qm.

    Then I got the libraray of loaded files. (Both: APP and LIB)

    But still has no translations.

    tried many variations and then found the reason. We changed all the

    tr("..")
    

    in

    QT_TRANSLATE_NOOP("ekkescorner::parse::ParseREST","...")
    

    Let the libraray compile without error

    It does not work as I discovered today.

    But I remembered that you mentioned a second notation that might help.

    And YES: now we'll find translations if you use

    ::ekkescorner::parse::ParseREST::tr("...")
    

    curious: the two create exactly the same content in the *.ts files, but only the last works.

    ... will blog about all this later when to publish my Libraray Parse.com for waterfalls on Github.

    --------

    Finally, I want to check my code is correct to add the two translators.

    Here are the usual stuff generated by the waterfalls inside the APP project model:

    void ApplicationUI::onSystemLanguageChanged() {
        QCoreApplication::instance()->removeTranslator(m_pTranslator);
        // Initiate, load and install the application translation files.
        QString locale_string = QLocale().name();
        QString file_name = QString("baasParseTest_%1").arg(locale_string);
        if (m_pTranslator->load(file_name, "app/native/qm")) {
            QCoreApplication::instance()->installTranslator(m_pTranslator);
            qDebug() << "load translator file from APP: " << file_name;
        } else {
            qDebug() << "cannot load " << file_name;
        }
        mServer->updateTranslations();
    }
    

    as you see after the first initialization of the app translator, I call the library:

    void ParseREST::updateTranslations() {
        static QTranslator * m_pTranslator = new QTranslator(
                QCoreApplication::instance());
        QCoreApplication::instance()->removeTranslator(m_pTranslator);
        QString locale_string = QLocale().name();
        QString file_name = QString(":/baasParseLibrary/translations/baasParseLibrary_%1").arg(locale_string);
        if (m_pTranslator->load(file_name)) {
            QCoreApplication::instance()->installTranslator(m_pTranslator);
            qDebug() << "load translator file from LIB : " << file_name;
        } else {
            qDebug() << "cannot load " << file_name;
        }
    }
    

    and the debug, I see:

    INFO load the APP translator file: 'baasParseTest_de_DE. '

    INFO load file of the translator of LIB: ': / baasParseLibrary/translations/baasParseLibrary_de_DE.

    and translations of C++ and QML are now working.

    I wonder about the removeTranslator() - the call of methods and thought, that the second he would remove the first. but it seems that you are right and I have to remove always.

    ... Thanks again... next step done using waterfalls providing libraries not only C++ code but also translations and assets such as images

Maybe you are looking for