#!/usr/bin/perl -s use XML::DT ; my $filename = shift; our ($txt); use Data::Dumper; use XML::TMX::Writer; use strict; binmode(STDOUT,":utf8"); if($txt){ mktxt($filename) } else { mktmx($filename);} sub mktmx{ my $filename=shift; my $tmx = new XML::TMX::Writer(); $tmx->start_tmx(ID => 'ttx2tmx'); my %handler=( '-default' => sub{""}, #'Body' => sub{ }, # 1 occurrences; #'FrontMatter' => sub{ }, # 1 occurrences; #'Raw' => sub{ }, # 1 occurrences; #'TRADOStag' => sub{ }, # 1 occurrences; attributes: Version #'ToolSettings' => sub{ }, # 1 occurrences; attributes: CreationDate, CreationTool, CreationToolVersion 'Tu' => sub{ delete($v{MatchPercent}); delete($v{Origin}); $tmx->add_tu(SRCLANG => 'EN-GB', %v ); # print "\n\n",toxml() }, # 500 occurrences; attributes: Origin, MatchPercent 'Tuv' => sub{ father()->{$v{Lang}} = $c ; # "\n ".toxml; }, # 1000 occurrences; attributes: Lang #'UserSettings' => sub{ }, # 1 occurrences; attributes: O-Encoding, SourceDocumentPath, TargetLanguage, SourceLanguage, PlugInInfo, SettingsPath, SettingsRelativePath, TargetDefaultFont, SettingsName, DataType 'df' => sub{toxml }, # 16 occurrences; attributes: Font 'ut' => sub{$c =~ s!!}}!g; $c; } # 2897 occurrences; attributes: LeftEdge, Type, DisplayText, Style, RightEdge ); dt($filename,%handler); $tmx->end_tmx(); } sub mktxt { my $filename=shift; my $marcas = 0; my $iguais =0; my $vazias =0; my $tu = 0; my %handler=( '-default' => sub{""}, #'Body' => sub{ }, # 1 occurrences; #'FrontMatter' => sub{ }, # 1 occurrences; #'Raw' => sub{ }, # 1 occurrences; #'TRADOStag' => sub{ }, # 1 occurrences; attributes: Version #'ToolSettings' => sub{ }, # 1 occurrences; attributes: CreationDate, CreationTool, CreationToolVersion 'Tu' => sub{ delete($v{MatchPercent}); delete($v{Origin}); my @k = grep {/marca/} keys %v; if($v{$k[0]} != $v{$k[1]}){$marcas++} delete(@v{@k}); @k = grep {/content/} keys %v; if($v{$k[0]} eq $v{$k[1]}){$iguais++} delete(@v{@k}); $tu++; print "\n\n",toxml() }, # 500 occurrences; attributes: Origin, MatchPercent 'Tuv' => sub{ father()->{"content-$v{Lang}"}=$c ; unless($c =~ /\w/){$vazias++} "\n ".toxml; }, # 1000 occurrences; attributes: Lang #'UserSettings' => sub{ }, # 1 occurrences; attributes: O-Encoding, SourceDocumentPath, TargetLanguage, SourceLanguage, PlugInInfo, SettingsPath, SettingsRelativePath, TargetDefaultFont, SettingsName, DataType 'df' => sub{toxml }, # 16 occurrences; attributes: Font 'ut' => sub{$c =~ s!!}}!g; gfather()->{"marcas-".father()->{Lang}}++ ; $c; } # 2897 occurrences; attributes: LeftEdge, Type, DisplayText, Style, RightEdge ); dt($filename,%handler); print "\nTU=$tu\nMarcas erradas: $marcas\niguais=$iguais\nvazias=$vazias\n"; } #print dt($filename,%handler); __END__ $tmx->add_tu(SRCLANG => 'en', 'en' => 'some text', 'pt' => 'algum texto'); $tmx->add_tu(SRCLANG => 'en', 'en' => 'some text', 'pt' => 'algum texto', -note => [32, 34 ], -prop => { q => 23, aut => "jj"} ); $tmx->end_tmx();