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.
- 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).
- 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.
- 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 |
- In Document Import Options, change the filter from "Unknown" to "Xliff".
Select "XLIFF filter" |
- 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.
- 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).
- 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 |
- Save your configuration (to tag future projects).
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.
Hi Riccardo! What specific feature from MemoQ do you lack in Memsource? Did you try the desktop editor?
ReplyDeleteYou 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.
Hi Konstantin,
DeleteIn 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.
I agree with everything you said. I hate memsource and working with it is a nightmare, especially when I have access to better tools, such as MemoQ.
DeleteYears passed and memsource still sucks. We should charge more when the client chooses this tool.
DeleteHi Riccardo,
ReplyDeleteThis 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!
Hi Vaclav,
DeleteI'd be happy to have an online call with you to talk about MemSource.
I'm still wondering what the upsides of using memsource are...
Deleteseems so complicated i just use an
ReplyDeleteonline translating software like babylon-software.com
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.
ReplyDeleteThank you, Riccardo, that was really useful!
ReplyDeleteWhat would be a rule for {1} and {1}? \{\d+\} is not working.
ReplyDeleteYour regex formula should work... if you could send me a sample file I could take a look and see why it doesn't.
DeleteIt'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.
DeleteBTW, 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?
ReplyDeleteHi Lion9,
DeleteI 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.
Hi Riccardo,
ReplyDeleteThis 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
Hi Birgitte,
DeleteIf 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}\}.
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?
ReplyDeleteAs a result, not a single segment is imported :(
Hi Lion9,
DeleteHave 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.
Hi Riccardo! Thanks for this post. I have a similar issue with MemQ. And thanks for this post I managed to solve it though I am not much familiar with Regex.
ReplyDeleteNow the issue is how to export memory files to the cloud server.
Hello Ricardo. Do you know a way to import other keys than language ones also? I have something like this:
ReplyDelete"
enemies.name.s3_dwarf_axe
CHANGED. Gender: Male
"
But it's never imported.
Thank you!
Hi Elim,
ReplyDeleteI'm not sure I understand your question: what part of your example should be protected, and hat should be translated?
Hi Riccardo and first of all thank you.
ReplyDeleteI'm sorry if I wasn't clear. None of that should be translated, they're all comments I'd like to be imported. Maybe it's clearer if I copy the whole tu.
"
Dark Dwarf Scout
"
Thanks again!
Hi Elim,
DeleteThat didn't import correctly in Blogger (I assume it's because it contains tags that Blogger can't deal with).
If you could contact me via e-mail, and send me a copy of what material you can share, I'll be happy to take a look. You can email me at the following address: RSchiaffino {at} aliquantuminc.com
You can only import bilingual doc files in memsource now...
ReplyDeleteActually, I have re-imported an mxliff file in Memsource today (after translating it with MemoQ).
Delete