[SailfishDevel] How to translate (lupdate) ?

Timur Kristóf timur.kristof at gmail.com
Mon Jan 13 11:52:14 UTC 2014


Here is how I do it:

1. Check the LANG environment variable
2. Check QLocale::system().name()

Take a look at the code here:
https://github.com/Venemo/puzzle-master/blob/master/helpers/util.cpp#L24

Cheers,
Timur


Timur



On Mon, Jan 13, 2014 at 11:16 AM, Oleksii Serdiuk <contacts at oleksii.name>wrote:

> Here's alternative and faster approach to setting LC_ALL.
>
> I use QLocale().name() to get current locale code. This creates
> QLocale instance which equals to QLocale::system() by default, but can
> be changed by calling QLocale::setDefault().
>
> Then, when I want to test another language, I just put
>
>   QLocale::setDefault(QLocale(QLocale::Ukrainian, QLocale::Ukraine));
>
> somewhere before language loading code. Works like a charm.
>
>
> On 13/01/14 02:35, Antoine Reversat wrote:
> > When running from Qt Creator the locale is always C, when clicking
> > the app button on the emulator then the locale is right. I also run
> > my app from the emulator through ssh with something like :
> > LC_ALL="fr_FR.UTF-8" my_app to test different locales.
> >
> >
> > On Sun, Jan 12, 2014 at 12:20 PM, Unai IRIGOYEN
> > <u.irigoyen at gmail.com <mailto:u.irigoyen at gmail.com>> wrote:
> >
> > Ok, I'm replying to myself here and for reference in case someone
> > else is disappointed. I launched the app from Jolla's app menu and
> > found out it was translated so in fact this only happens when
> > running from QtCreator. --
> >
> > Unai IRIGOYEN
> >
> > Le dimanche 12 janvier 2014 17:54:50, vous avez écrit :
> >> I followed those steps to try to fix my app translations but
> >> QLocale::system() still returns "C". Am I the only one in this
> >> case? I'm running my app on Jolla so it's not a problem with
> >> emulator.
> >>
> >>> you can use any /usr/share/appname location. use qm file with
> >>> QTranslator and install translator to QGuiApplication
> >>>
> >>> qsTr is enough
> >>>
> >>> you can use LC_ALL
> >>>
> >>> On 03.01.2014 02:26, Franck Routier (perso) wrote:
> > Ok, now I have .ts file, I did translate the strings, and
> >> produced the
> > .qm file.
> >
> > So my next questions are: 1) how do I include the qm file in the
> > rpm ? Should I put it in a specific directory, or directly in
> > /usr/share/MyApp ?
> >
> > 2) is there something special I need to do in my app to
> >> trigger the
> > magic, or is using qsTr() in the qml files sufficient to to
> >> make it
> > happen ?
> >
> > 3) Is there a way I can test if it is working from within the
> >> SDK (I
> > did not receive my device yet...) ? Should I ssh into the
> >> emulator and
> > play with LC_ALL, or is there another way ?
> >
> > Thanks in advance,
> >
> > Franck
> >
> > Le 02/01/2014 21:02, Andrey Kozhevnikov a écrit :
> >>>>>> for directly use lupdare/lrelease you need to chroot to
> >>>>>> target (inside VM):
> >>>>>>
> >>>>>> sb2 -t SailfishOS-armv7hl -s sdk-install
> >>>>>>
> >>>>>> On 03.01.2014 02:00, Franck Routier (perso) wrote: I
> >>>>>> finally used the lupdate binary found in the Harmattan
> >>>>>> SDK somewhere on my
> >> hard
> >>>>>> disk.
> >>>>>>
> >>>>>> Also, to make it process qml files, I used this trick
> >>>>>>
> >> (https://developer.nokia.com/Community/Wiki/Lupdate_with_qml_files),
> >
> >>
> > which consists in listing the qml files this way in the .pro file:
> >>>>>> evil_hack_to_fool_lupdate { SOURCES += \ qml/Splash.qml
> >>>>>> \ qml/Login.qml \ ... }
> >>>>>>
> >>>>>> Notice that running lupdate with a ts.list file as
> >>>>>> Andrey suggested failed with a message telling me the
> >>>>>> files had a "no recognized extension."
> >>>>>>
> >>>>>> Ok, this did the trick for now, but I'm still wondering
> >>>>>> how this is supposed to work from within the SailfishOS
> >>>>>> SDK...
> >>>>>>
> >>>>>> Best regards,
> >>>>>>
> >>>>>> Franck
> >>>>>>
> >>>>>> Le 02/01/2014 19:11, Andrey Kozhevnikov a écrit :
> >>>>>>>>> i'm always using self-created ts.list text file
> >>>>>>>>> with list of paths to files contains strings
> >>>>>>>>>
> >>>>>>>>> and my lupdate syntax:
> >>>>>>>>>
> >>>>>>>>> lupdate -verbose -ts languages/en_US.ts @ts.list
> >>>>>>>>>
> >>>>>>>>> On 02.01.2014 23:44, Franck Routier (perso) wrote:
> >>>>>>>>>> Le 02/01/2014 18:37, Andrey Kozhevnikov a écrit
> >>>>>>>>>> :
> >>>>>>>>>>> its inside build machine. qmake will run
> >>>>>>>>>>> lupdate/lrelease from internal path.
> >>>>>>>>>>
> >>>>>>>>>> Ok, I understand. So I have to start the MerSDK
> >>>>>>>>>> virtual machine for lupdate to work.
> >>>>>>>>>>
> >>>>>>>>>> Then, shouldn't it generate some .ts file in my
> >>>>>>>>>> project ? (its the first time I use QT Linguist,
> >>>>>>>>>> still learning, thanks for your patience)
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Regards, Franck
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> SailfishOS.org Devel mailing list
> >>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> SailfishOS.org Devel mailing list
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> SailfishOS.org Devel mailing list
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> SailfishOS.org Devel mailing list
> >
> >>>> _______________________________________________
> >>>> SailfishOS.org Devel mailing list
> >>>
> >>> _______________________________________________ SailfishOS.org
> >>> Devel mailing list
> > _______________________________________________ SailfishOS.org
> > Devel mailing list
> >
> >
> >
> >
> > _______________________________________________ SailfishOS.org
> > Devel mailing list
> >
>
> --
> With best regards,
> Olekii Serdiuk
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140113/a0ccd8fb/attachment.html>


More information about the Devel mailing list