We're looking for the best way to translate our Delphi applications into several other languages. Do you have any experience with 3rd party components? Perhaps the built in translation tools are up to the job?

We're looking for the best way to translate our Delphi applications into several other languages. Do you have any experience with 3rd party components? Perhaps the built in translation tools are up to the job?

Any thoughts?

Comments

  1. how big is the application?
    If it's just a few forms and you need to translate it into a couple of languages(say two or three at the most) then tools like TSILang will perfectly do the job.

    If you need something more complex, I can dig out a few components I wrote myself that could be the foundation of an in-house mechanism.

    Let me know.

    Andrea

    ReplyDelete
  2. Andrea Raimondi  It's pretty big. 100's forms and approx 300,000 LOC. Your components sound interesting, but we don't have much time to develop anything and would probably prefer an off the shelf solution.

    ReplyDelete
  3. You may checkout Sisulizer:
    http://www.sisulizer.com/

    We are translating our own application and 3rd party components with sisulizer. The only "problem" is you need a XML Diff Tool when you want to manage these translation projects within a source control.

    ReplyDelete
  4. What I did, back then, was basically to have a set of abstract components where you plug in your own strings-fetching stuff(say, from a database or an XML file etc. the components don't care).

    Doing your own thing, when it comes to big applications, is probably the best option - we are using TSILang at work for a big application and it really isn't working well for us.

    I don't know about the other off-the-shelf frameworks, but I'd expect them all to have the same kind of issues pretty much for big projects.

    The problem with these things is that, once you're invested, you can't really go back(which is why we haven't changed it yet in our own system) so at that point you might be better off doing
    something you have complete control over, if you see what I mean.

    A

    ReplyDelete
  5. In my opinion nothing better then DKLang Localization Package
    using it for years AND it is FREE
    http://yktoo.com/software/dklang for the components
    and do not forget the editor very important 
    http://yktoo.com/software/dklangTraned/download

    ReplyDelete
  6. Used TsiLang years ago, and it was a good solution.

    ReplyDelete
  7. Bill Meyer it is a good solution when the application is not massive, with tons and tons of controls on each form.
    For us, it doesn't really work well because it makes the exe a lot heavier and sometimes it trips up,
    leaving you with stuff that isn't quite as it should be(f.i. wrong language, wrong values for the width, and so on).

    But then again, we have a really massive applications, lots of forms with an average of 10 to 20 controls on each form,
    with some going spectacularly overboard from that.

    A

    ReplyDelete
  8. I did a large business app many years ago that supported English, Spanish and German - all at the same time.  You could have the screen forms in German and the reports in Spanish if you wanted.  Localization tools weren't around yet, so I wrote my own.  Localization was the easy part... The first release was a disaster because the language used was pretty much a direct translation of English to the target language.  Apparently this does not play especially well in Spanish.  I ended up hiring a professional human translator to rework the forms text and reports - that did work out well.

    ReplyDelete
  9. Kevin McCoy Yeah, direct translation is really awful.
    At a company I worked for, I was tasked with reviewing all of the translations from Italian into English(I am not a professional translator, mind, but I know my stuff when it comes to English and already did back then :D).
    I found stuff that made me really cringe :) lol so I am not surprised about what you're saying.

    A

    ReplyDelete
  10. We have about 22.000 translations within more than 100 DLLs  that belong to our application. Sisulizer can handle that even if it takes some time.
    We are generating seperate localization files (.en & .de files in our case) during the build process. But there are also other opptions.

    Sisulizer also offers a trial, so you may give it a  try ;)

    Also Sisulizer has a great support, in the beginning we had some problems because sisulizer took pretty long on opening our projekt (~5min). But after contacting them we got a beta release within a week, where this was fixed. Now it takes less than 5sec :)

    ReplyDelete
  11. I use TsiLang, it's fast and has good support.

    ReplyDelete
  12. +1 for dxgettext. there are a lot of Translation Tools out there. Also works for FireMonkey.

    ReplyDelete
  13. In my previous company we used Multilizer. It's very powerful and also supports the outsourcing of the translation task to professional translators. But: It's quite expensive.
    In my new company we are currently preparing the introduction of a new translation tool. If it wouldn't be that expensive it would be Multilizer again.
    Currently our favorite is Korzh Localizer. It seems to be the perfect solution for us.
    I just wonder why nobody didn't mention Korzh yet ... Maybe I should follow this conversation here and I might find a better solution ...

    ReplyDelete
  14. yeah sisulizer is the new tool of the multilizer devlopers (if i remember correctly) ;P

    ReplyDelete
  15. We used localizer for years but the developer don't fix a Bug to make it useable with scoped unit names. That's why we switched to dxgettext and feel free again. Very powerful despite easy to use.

    ReplyDelete
  16. +Fred Ahrens - I've been looking at a few products and so far Korzh looks very nice and pretty polished. I'm surprised nobody mentioned it until you did.

    ReplyDelete
  17. We use dxgettext aka Gnu gettext for Delphi and Gorm as the translation tool. Works fine.

    ReplyDelete
  18. I made a unit for easy translation on the fly. You can download it from http://WWW.antoniotorregrosa.es/translation demo.zip. Feel free to use.

    ReplyDelete
  19. I just tried Sisulizer and already feel "at home" - as an "old" Multilizer user. And the prizing is very competitive. 
    And compared to Korzh it looks like the translation process is much faster (comparing both by using them only for a few hours each).

    ReplyDelete
  20. dxGetText is open source, very easy to use and POEdit (Also open source) can be used to translate the messages and create the language file which is a kind of binary indexed file for speed. You can have as many language files as you like, switch between them at runtime. dxGetText has a tool to extract all text from source code and dfm files. This tools has provision to update the language file as the application is updated, showing you the removed and the added messages. It is really powerful and easy to use. You don't need any component, just add the unit to the uses clause and call TranslateComponent(), for example in the constructor.

    ReplyDelete
  21. We also work very successfully with dxgettext.
    Virtaal is my favorite translation editor for po files. It's not as fast as poedit, but it can use web translation services and It reuses previous translations which it stores in a translation memory,

    ReplyDelete
  22. Poedit also has the option to set up a translation repository. So does Gorm, which also can use Google translate or Bing translate, if you configure it to do so.

    ReplyDelete
  23. I used poEdit for many years, before switching to Virtaal. I tried Gorm, but never got really warm with it, so I haven't tried it again in the past years. Maybe it's better now, but it didn't suit my needs when I tried it.
    The feature I like most about Virtaal is that it shows you a diff between old and new msgids, so you can see at a glance that e.g. only a comma was added in the original text. I really don't want to miss that.

    ReplyDelete
  24. I have used TsiLang and it did a great job, you can export the strings to be translated by someone else, also you can build a dictionary which help you to translate the same words automatically in the future, it has a wizard  make the job easily done.

    ReplyDelete
  25. Thanks for all your comments, they've helped a lot. Currently I'm evaluating Sisulizer. It seems very powerful and I like the fact that it doesn't require any additional code to be added to the Delphi project.

    i18n looks nice, but might be too much work to integrate into our project.

    ReplyDelete

Post a Comment