How to fix a corrupt Translation Memory whose encoding somehow changed from binary to ANSI?

A few month ago, one of my colleagues asked me to fix a Translation Memory (de-DE_ru-RU). He does not know who has been doing what with this file, so unfortunately we are not able to trace back what process might  have damaged this file.

It is not possible to open the Translation Memory in SDL Trados Studio (2011/2014/2015). When I try to open it in Trados Studio, I receive an error message, saying that the file is not a valid Translation Memory.

The next thing I tried was to export entries as TMX (using standalone tools such as SDLTm Convert) or to fix it using TM Repair. I even tried to familarise myself with SQLite3, but no chance. Finally, I found out that the encoding of the Translation Memory was changed from binary to ANSI, as you you can see from the following image (Good TM vs. Broken TM):

Does any of you know how to fix this problem?

  • Hello Amanuel,

    You could try using the SDTM Repair app from the SDL AppStore.  This basically does an emergency dump through sql and rebuilds the TM.  If this doesn't work then you are probably not going to be able to repair it unless you know someone with the right tools, and skilled enough, to be able to extract the contents:

    Regards

    Paul

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • Hi Paul, thanks for the advice. But by "TM repair" I meant "SDLTM repair". This is what I tried in the first place.

    I received the following error message:

    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.IO.FileNotFoundException: Die Datei "C:\Program Files\SDL\OpenExchange Apps\SDLTM Repair\log_d5e41459-3bf7-46e6-a6a7-1a1d6f555d1b.txt" konnte nicht gefunden werden.
    Dateiname: "C:\Program Files\SDL\OpenExchange Apps\SDLTM Repair\log_d5e41459-3bf7-46e6-a6a7-1a1d6f555d1b.txt"
    bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
    bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
    bei System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
    bei System.IO.StreamReader..ctor(String path)
    bei SDLTMRepair.SDLTMRepair.btnRepair_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5485 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    SDLTMRepair
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Program%20Files/SDL/OpenExchange%20Apps/SDLTM%20Repair/SDLTMRepair.exe.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5491 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5485 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5495 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5485 (Win7SP1GDR.050727-5400).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.5420 (Win7SP1.050727-5400).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
  • Did you install this app as admin? Also are you operating on 32-bit or 64-bit?

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • Yes, I installed the app as admin and my computer operates on 32-bit.
  • This is what the error message looks like, when I click on the integrity check or repair button.

  • Hi

    I have seen the same error message as well when I tried to use this app. It even occurred on two different PCs, once with the 2014 version and once with the 2015 version of the app.

    However, it worked fine with anotherTM, so I guess that this error only appears with some TMs (maybe because they are so corrupted that even this app gives up[:)]

    Walter