Wednesday, June 08, 2016

Quick Tips: How to translate a MemSource project using memoQ

Recently a major customer of ours changed from using SDL Trados Studio to using MemSource, an online CAT tool. Our customer probably has good reasons for switching to the new tool, but for a translator accustomed to more powerful CAT tools, using MemSource has a downside: many of the functions we have come to rely on are missing.

I will probably write more about MemSource in the future. For now a quick workaround if you find yourself having to translate a project in MemSource but would much rather use memoQ instead - for instance, because you find that MemSource lacks some feature you love in memoQ, or more simply because you find that MemSource is slowing you down.
  1. Log in to the MemSource cloud, accept your project, pretranslate it, and download it as a bilingual .mxliff file (just as you would if you wanted to translate using the MemSource desktop editor).
  2. Open your .mxliff file in the MemSource desktop editor. Join or split all segments that need to be joined or split (Important: do this in the MemSource editor - don't wait to do this operation in memoQ: you might end up with a translated file that doesn't load cleanly in MemSource). Save your file.
  3. Open memoQ. Create a new project, and add to it your .mxliff file. When adding your document select "All files" (don't select "All supported files" or "XLIFF files": memoQ doesn't yet recognize the .mxliff extension, but correctly handles .mxliff files once loaded).
Select "All files" to import the .mxliff file
Select "All files" to import the .mxliff file
  1. In Document Import Options, change the filter from "Unknown" to "Xliff".
Select "XLIFF filter"
Select "XLIFF filter"
  1. At this point you'll have successfully imported your file in memoQ, but you'll see that all the MemSource tags are unprotected. You need to use memoQ's Regex Tagger to protect them.
  2. First, identify all types of MemSource tags in your document. You can do that by simply filtering your source text searching for the character "{". Once you have identified your tags, clear your filter (otherwise the Regex tagger won't work).
  3. Go to the Preparation ribbon. Select Regex Tagger. In Tag current document you'll have to add the rules to correctly protect the MemSource tags. The rule for protecting the {b> (begin of bold text) tag, for example, will be \{b>. A more efficient rule that works for {b>, {bu>{i> and {u> would be \{[a-z]{1,2}>. Repeat, adding all the different types of tags you have in your document. 
Use Regex Tagger to protect the MemSource tags
Use Regex Tagger to protect the MemSource tags
  1. Save your configuration (to tag future projects). 
You are done. You can now translate your MemSource project in memoQ. At the end export your translation, test it by loading it in the MemSource Desktop editor, and from it upload it to the MemSource cloud server.

Bear in mind that if you choose to translate your MemSource projects this way, you won't have access in memoQ to the translation memories and termbases added to the project by your project manager: you'll be working exclusively with the local memories and termbases you have added yourself in memoQ.

Weather that is an acceptable solution for you (and for your client) is up to you.

16 comments:

  1. Hi Riccardo! What specific feature from MemoQ do you lack in Memsource? Did you try the desktop editor?

    You can translate like you suggest, but that would cripple other translators on the team, because they won't get real time updates to translation memory.

    ReplyDelete
    Replies
    1. Hi Konstantin,

      In this case it was not even so much a specific feature (though I find MemSource on the whole underfeatured with respect to Studio or memoQ): it was the fact that MemSource showed extreme lag in certain segments (9-10 seconds passing between pressing a key and the corresponding character appearing on screen).

      I contacted MemSource support and was told that the reason that happened -- despite me being on a fast Internet connection, and with ping time to memsource.cloud of 44 ms -- was probably because the segments in question were joined (three segments joined together) and contained tagging. That, for me, is not acceptable.

      Also, to answer another point of yours "that would cripple other translators on the team, because they won't get real time updates to translation memory"... yes, but I was not translating in a team in this case, and translating in MemSource cripples me, because I can only use the translation memory provided by my client (a translation company), and cannot use my own translation memories, so asking me to use MemSource means asking me to translate half blind.

      I realize I could use my own memories if I paid for MemSource instead of using the free edition. But I prefer to spend my money on tools I like and that have features that speed up and help my work, instead of hindering it.

      Translating in MemSource might be OK for people who deal with simple documents are unaccustomed to better tools. For someone who knows what better CAT tools can do, it is a nightmare.

      Delete
  2. Hi Riccardo,
    This is Vaclav from Memsource support team. If you can spare some time with us, perhaps we could set up a quick online call some time next week to discuss any of the downsides of using Memsource that you see. We do listen to users' feedback and it is our ambition to build Memsource into a tool designed for both LSPs and especially translators.
    Could you please contact me on vb@memsource.com? Thank you!

    ReplyDelete
    Replies
    1. Hi Vaclav,
      I'd be happy to have an online call with you to talk about MemSource.

      Delete
  3. seems so complicated i just use an
    online translating software like babylon-software.com

    ReplyDelete
  4. Thank you, Ricardo. This was very useful and helped me a lot. I'm not particularly knowledgeable about Regex, but managed to make it work with the help of this article. Thanks again.

    ReplyDelete
  5. Thank you, Riccardo, that was really useful!

    ReplyDelete
  6. What would be a rule for {1} and {1}? \{\d+\} is not working.

    ReplyDelete
    Replies
    1. Your regex formula should work... if you could send me a sample file I could take a look and see why it doesn't.

      Delete
    2. It's not working in the preview (not displayed in the “Result” field of the “Tag current document” window). However, when actually applied, it works properly.

      Delete
  7. BTW, what about the 'Translated' status in mxliff? All segments in imported mxliffs have the 'Not started' status, regardless of their state in the original mxliff file (Translated, Locked etc.) Is there any workaround to assign respective attributes to them when importing?

    ReplyDelete
    Replies
    1. Hi Lion9,

      I don't know how one could also get the status when translating in a tool other than Memsource... I'm sure that if Kilgray wanted to, they could retrieve the necessaryy information from the Memsource xliff file -- of perhaps Memsource could change something in their xliff file so that other tools also could read the status of the segment. However, I believe that is not likely to happen (after all Memsource is more interested in getting people using their tool, than in permitting people to tranlsate their files using other tools).
      Someone more knowledgeable than me in memoQ could perhaps suggest a workaround.

      Delete
  8. Hi Riccardo,

    This was very useful! But you only mention how to protect the opening tags, what about the closing tags (for instance <b} and <i} )? I don't know a single thing about RegEx, but I'd really appreciate your help on this!

    Birgitte

    ReplyDelete
    Replies
    1. Hi Birgitte,
      If you look at the last screenshot above, you'll see that the closing tags are already included in my example... but you are right, I didn't specifically indicate how to deal with them: I said
      "Repeat, adding all the different types of tags you have in your document."
      so, if, following my example, the way to protect the opening tags is
      \{[a-z]{1,2}>.
      The corresponding way to protect the closing ones is
      <[a-z]{1,2}\}.

      Delete
  9. Has anybody seen such a mistake with mxliffs: joined-P341-J1-2-3-ru-en-T.mxliff: Some content from the XLIFF file has not been imported because the file's language pair does not match the project's languages. The file's language pair is Russian - English?

    As a result, not a single segment is imported :(

    ReplyDelete
    Replies
    1. Hi Lion9,

      Have you checked whether the languages in your project are in fact different from the languages in your xliff file?

      Depending on the tool, even a slight difference may prevent your tool from working with a file, if the languages pr sub-languages are different.

      I had a similar experiences years ago when I tried to use an EN_US>ITA memory to translate an EN_CN>ITA file.

      If there is indeed a difference, you can solve the problem in various way one is to open the xliff file in a text editor and search and replace the language codes.

      Delete

Thank you for your comment!

Unfortunately, comment spam has grown to the point that all comments need to be moderated. All legitimate comments will be published as soon as possible.