📄 simplemot
字号:
#!/usr/bin/perl$inone = 0;$intran = 0;$total = 0;binmode(STDIN, ":raw");binmode(STDOUT, ":raw");while (<>) { if (!$inone && /^msgid/) { chop; $str = substr($_, 7, length($_) - 8); $inone = 1; } elsif ($inone && /^"/) { chop; $str .= substr($_, 1, length($_) - 2); } elsif ($inone) { $inone = 0; $str =~ s/\\n/\n/g; $str =~ s/\\t/\t/g; $str =~ s/\\"/"/g; # the string is complete -- calculate a hash $sum = 0; $xor = 0; for ($i = 0; $i < length($str); $i++) { $char = ord(substr($str, $i, 1)); $sum += $char; $xor ^= $char; } $total = ($sum << 16) | (($xor & 0xFF) << 8) | (length($str) & 0xFF); } if (!$intran && /^msgstr/) { chop; $tran = substr($_, 8, length($_) - 9); $intran = 1; } elsif ($intran && /^"/) { chop; $tran .= substr($_, 1, length($_) - 2); } elsif ($intran) { $intran = 0; $tran =~ s/\\n/\n/g; $tran =~ s/\\t/\t/g; $tran =~ s/\\"/"/g; if (!$total && $str) { print STDERR "Missing string for $tran"; exit 1 } elsif ($str && $tran) { print pack("Nn", $total, length($tran)); print $tran; #if ($tran < 60) { #printf STDERR ("0x%x %s\n", $total, $tran); #} } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -