Translations uploaded to Transifex

Issue #55 resolved
luz paz created an issue

Hi all, just wanted to let you know that the translation files have been uploaded to a free 3rd party service called Transifex.

What is Transifex:

Transifex is a novel web application for localization in an easy, agile, and hassle-free way. It was designed from the ground-up for dynamic, frequently-published content consolidated from multiple sources, such as software, documentation, websites, and news publication.

Transifex seamlessly integrates with existing content infrastructure, such as a software development repository or content management system, using a rich API. Translation is “crowd-sourced” to a group of human translators using smart and agile translation techniques adopted from the open source ecosystem.

More about Transifex and Continuous Localization

The idea

Is that the Valentina be translated in to as many languages as possible to help spread the word and make it available to as many potential interested folks as possible.

What I Did

  1. Took a current translation .ts file and regexed it to so the <source> and <translation> tags were both in english as per:
  2. Uploaded this valentina_en.ts to Transifex as the source language
  3. Uploaded the russian and ukrainian translations as well.


Maybe more volunteers will come and help with the process of translating to another language. I am happy to manage this and/or transfer ownership for permissions and such.

Comments (27)

  1. luz paz reporter

    Realized that the development branch has the most updated translations including fixed typos. Re-uploading needs to happen

  2. luz paz reporter
    • changed status to open

    Transifex allows for autoupdating of the resource file. Lets figure out how to set it up.

    More info on continuous translation. In short, transifex polls the repository for the source resource translation file, in this case it would be the file attached with all the translation strings in english. When any change is made to this file, the file is autoupdated on Transifex and all the other translation files cloned from it will be updated as well. This signals all translation teams to go in and make appropriate new changes.

    So what needs to happen:

    1. Make sure that valentina_en.ts is part of the Qt-liguist development workflow (or however you are autogenerating the .ts files.
    2. Figure out where the most updated valentina_en.ts will live on Bitbucket and ascertain the direct URL to configure in to Transifex.
    3. Test to see if this works
  3. luz paz reporter

    This .ts file was generated from the development branch russian translation (regex permalink on Fri 01/17/2014 It is an en_US formatted .ts with identical english strings for both the <source> and <translation> XML tags.

  4. Roman Telezhynskyi repo owner

    Thanks, i will look translation later. I will return to translation, when will i be prepare for new release.

  5. luz paz reporter

    Did some more examination and found that the file I generated was truncated + regex expression was not precise enough. The XML <translation> tag has different 'types' for example: ( as per

    <translation type="obsolete"></translation>
    <translation type="unfinished"></translation>

    So, the english .ts file I generated I generated from the regex code below was not accurate.

  6. Roman Telezhynskyi repo owner

    I think it is bad idea try create english .ts. We can't use this file in program. English internal so we can't do anything.

  7. luz paz reporter

    Sorry for creating more work. Are you feeling frustrated at all? I'm trying to understand what you mean by 'We can't use this file in program. English internal so we can't do anything.' I can't tell what you mean by that.

    I've seen how projects gain recognition and popularity using Transifex. People volunteer without any promotion, to translate projects in to other languages. So it's worth it. Anyway, I'm still new to the managerial side of Transifex, meaning how to set up a source file correctly and use the continuous localization feature correctly.

    Yea, I think I'm going about this all wrong. I'm missing how to generate an English source file from an already created source file. When I upload a russian translation through the Transifex UI (not the command line client 'tx' or the sweet API) the source strings become the translated strings, which is confusing. In other words, the source language english is switched out with russian, which defeats the purpose.

  8. Roman Telezhynskyi repo owner

    I am talking about english. All english sentences exist in source code only. And Qt doesn't support creation ts file for internal language. English need check and correct only in code. Another program use different way to localize program, that's why they can share their english translation and we can't. It is how Qt5 work.

  9. luz paz reporter

    From a thread in the forums: Draft of i18n HowTo focusing on Qt Quick, Qt SDK & Transifex

    "Thirdly, when generating your .ts files make sure there is one without any language codes on it (the one that will be loaded if you don’t have any translations for the user’s language). This would be named appname.ts. I always put UK English here because it means that if you don’t have the user’s language it will show the default (and most global) UK English instead of all your TrIds. This also means I don’t need an appname_en.ts file for UK English (though I do create an appname_en_US.ts translation to make the US market feel at home!)."

    I also started a new thread at Qt Forums on this topic

  10. Roman Telezhynskyi repo owner

    How does one generate a .ts file without any language codes in it? What does that mean ?

    It is simple, in file add string share/translations/valentina.ts


    TRANSLATIONS += share/translations/valentina.ts \
                    share/translations/valentina_ru.ts \
                    share/translations/valentina_uk.ts \

    Than run lupdate In directory share/translations you will find valentina.ts. :) But i still don't like this idea. This file will help translate english to english. Why need create this file if we already have this strings in code and they used by default if we don't have localization for this language.

  11. luz paz reporter


    Ok, I know it's sort of an ugly solution, but in order to make transifex importer to play nice with .ts files + utiilize the continuous localization feature; it needs a source file that just has the source language in it. All the other translation files will be generated from this source file on transifex. Then volunteers can create language requests for other languages and transifex creates a new .ts template file from the source language in to the new requested language.

    Now the beauty is that if you decide to change a translated string, it will get updated in to the valentina.ts file which is polled periodically by transifex and auto-updated to the transifex server, which then will make the appropriate changes in all the other language files defined. So essentially,


    1. add a new translation string which gnerates a new valentina.ts,
    2. transifex sees this (because we point it to the bitbucket address of valentina.ts)
    3. updates the source file valentina.ts on its server
    4. trickle down changes in to all the transifex_??.ts files
    5. Ideally translator teams fix this (fast)
    6. Eventually pull updated translations back to dev server
    7. rejoice
  12. cosina NA

    If the "translation" is complete one day, we can change the internal used strings at once. Atm I think it's a bit ugly to change a single found error and change another one later and to include this into the other translations... In any case it will be useful somehow, even if we don't use the .ts in the end

  13. luz paz reporter

    I can point the translation source file to the the default branch instead of develop. And this way avoid this. Or we can auto-update it manually.

  14. luz paz reporter

    Of course. It won't alter it. It would avoid @cosina 's concerns. The source of the issue is the continuous localization. So maybe we cancel that function and manually auto-update the source file on Transifex when devs give the green light

  15. luz paz reporter

    FYI, new thread on mailing-list created about localization

    @dismi_ yes..that makes sense to me! Shall this be the strategy moving forward?

    @cosina You're welcome. Good point you made.

  16. Roman Telezhynskyi repo owner

    Yes, i can. But before this i want know rules for this branch. How use this branch. I am not clear understand issue.

  17. Log in to comment