How to convert a TMX to tab-delimited using BBEdit?
Thread poster: Hans Lenting
Hans Lenting
Hans Lenting
Netherlands
Member (2006)
German to Dutch
Oct 27, 2022

Download BBEdit from: https://www.barebones.com. You'll need the upcoming version 4.6.2.

Replace « with < and » with >, save as a .textfactory file. Place it in the correct folder (/Users/YOURNAME/Library/Application Support/BBEdit/Text Filters/).

Run this text factory on a TMX file to convert it to a clean tab-del file.


«?xml version="1.0" encoding="UTF-8"?
... See more
Download BBEdit from: https://www.barebones.com. You'll need the upcoming version 4.6.2.

Replace « with < and » with >, save as a .textfactory file. Place it in the correct folder (/Users/YOURNAME/Library/Application Support/BBEdit/Text Filters/).

Run this text factory on a TMX file to convert it to a clean tab-del file.


«?xml version="1.0" encoding="UTF-8"?»
«!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"»
«plist version="1.0"»
«dict»
«key»TextTransformComponents«/key»
«array»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«true/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string» «/string»
«key»SearchString«/key»
«string»[\x{00}-\x{08}]|\x{0B}|\x{0C}|[\x{0E}-\x{1F}]|\x{F0B7}|\x{F0F0}«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»«/string»
«key»SearchString«/key»
«string»<[eb]pt.*?>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»«/string»
«key»SearchString«/key»
«string»<ph.*?>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»&«/string»
«key»SearchString«/key»
«string»&amp;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»<«/string»
«key»SearchString«/key»
«string»&lt;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»>«/string»
«key»SearchString«/key»
«string»&gt;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»'«/string»
«key»SearchString«/key»
«string»&apos;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»"«/string»
«key»SearchString«/key»
«string»&quot;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»«/string»
«key»SearchString«/key»
«string»&.*?;«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»ReplaceString«/key»
«string»«/string»
«key»SearchString«/key»
«string»_{2,}«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string» ⇥ «/string»
«key»SearchString«/key»
«string»\t«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string»xml:lang="DE-DE"><seg>«/string»
«key»SearchString«/key»
«string»xml:lang="DE-DE">(\n|.)*?<seg>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string»xml:lang="NL-NL"><seg>«/string»
«key»SearchString«/key»
«string»xml:lang="NL-NL">(\n|.)*?<seg>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string» ¶ «/string»
«key»SearchString«/key»
«string»(?<!</seg>|</prop>|</tuv>|</tu>|">)\n«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»ExcludeMatches«/key»
«true/»
«key»InvertMatchTest«/key»
«integer»1«/integer»
«key»SearchString«/key»
«string»<seg>«/string»
«key»UseGrep«/key»
«false/»
«/dict»
«key»ComponentName«/key»
«string»ProcessLinesContaining«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string»«/string»
«key»SearchString«/key»
«string»\s*<tuv xml:lang="DE-DE"><seg>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string»\n\t«/string»
«key»SearchString«/key»
«string»\s*<tuv xml:lang="NL-NL"><seg>«/string»
«key»UseGrep«/key»
«true/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string»
«/string»
«key»SearchString«/key»
«string»</seg>«/string»
«key»UseGrep«/key»
«false/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«dict»
«key»ComponentArguments«/key»
«dict»
«key»CaseSensitive«/key»
«false/»
«key»MatchWords«/key»
«false/»
«key»ReplaceString«/key»
«string» «/string»
«key»SearchString«/key»
«string»

«/string»
«key»UseGrep«/key»
«false/»
«/dict»
«key»ComponentName«/key»
«string»ReplaceAll«/string»
«key»Disabled«/key»
«false/»
«/dict»
«/array»
«key»TextTransformOptions«/key»
«dict»
«key»SaveMode«/key»
«string»ask «/string»
«key»SearchRecursive«/key»
«true/»
«key»TextFilesOnly«/key»
«true/»
«/dict»
«key»TextTransformSources«/key»
«array»
«dict»
«key»SourceNodeData«/key»
«string»file:///Users/hl/Desktop/untitled%20text%206.xml«/string»
«key»SourceNodeParentType«/key»
«string»«/string»
«key»SourceNodeType«/key»
«string»OpenDocument«/string»
«/dict»
«/array»
«key»com.barebones.DocumentType«/key»
«string»TextTransform«/string»
«/dict»
«/plist»


[Edited at 2022-10-27 05:17 GMT]
Collapse


 
Gerard de Noord
Gerard de Noord  Identity Verified
France
Local time: 10:02
Member (2003)
English to Dutch
+ ...
Why do you use question marks? Oct 28, 2022

Or, in other words, why do you post your answers as if they were questions?
Your main point seems to be sharing your knowledge, not asking us for solutions.

Cheers,
Gerard


Hans Lenting
 
Mr. Satan (X)
Mr. Satan (X)
English to Indonesian
GitHub Oct 28, 2022

That’s a long string of code, Hanzo-sensei. May I recommend creating a GitHub repo of your own?

 


To report site rules violations or get help, contact a site moderator:


You can also contact site staff by submitting a support request »

How to convert a TMX to tab-delimited using BBEdit?






Trados Studio 2022 Freelance
The leading translation software used by over 270,000 translators.

Designed with your feedback in mind, Trados Studio 2022 delivers an unrivalled, powerful desktop and cloud solution, empowering you to work in the most efficient and cost-effective way.

More info »
Wordfast Pro
Translation Memory Software for Any Platform

Exclusive discount for ProZ.com users! Save over 13% when purchasing Wordfast Pro through ProZ.com. Wordfast is the world's #1 provider of platform-independent Translation Memory software. Consistently ranked the most user-friendly and highest value

Buy now! »