svnno****@sourc*****
svnno****@sourc*****
2012年 5月 21日 (月) 22:08:39 JST
Revision: 40 http://sourceforge.jp/projects/miranda-jp/scm/svn/commits/40 Author: ttag Date: 2012-05-21 22:08:39 +0900 (Mon, 21 May 2012) Log Message: ----------- add I18N feature (experimental) Modified Paths: -------------- trunk/tools/BOMing/BOMing.tcl trunk/tools/BOMing/README.txt Added Paths: ----------- trunk/tools/BOMing/ja_JP.msg -------------- next part -------------- Modified: trunk/tools/BOMing/BOMing.tcl =================================================================== --- trunk/tools/BOMing/BOMing.tcl 2012-05-20 15:32:50 UTC (rev 39) +++ trunk/tools/BOMing/BOMing.tcl 2012-05-21 13:08:39 UTC (rev 40) @@ -25,62 +25,49 @@ # those of the authors and should not be interpreted as representing official # policies, either expressed or implied, of the Miranda-JP Project. # -# \x8F\x89\x8A\xFA\x95ϐ\x94 -set exts [list *.c *.cpp *.cxx *.h *.hxx]; # \x8F\x88\x97\x9D\x91Ώۃt\x83@\x83C\x83\x8B\x82\xCCglob\x83p\x83^\x81[\x83\x93 -set path [pwd]; # \x91Ώۃp\x83X\x82̏\x89\x8A\xFA\x92l -set msg {\x8F\x88\x97\x9D\x91Ώۃp\x83X\x82\xF0\x8Ew\x92肵\x82ĉ\xBA\x82\xB3\x82\xA2}; # \x95\\x8E\xA6\x83\x81\x83b\x83Z\x81[\x83W\x82̏\x89\x8A\xFA\x92l -set files 0; # \x8F\x88\x97\x9D\x91Ώۃt\x83@\x83C\x83\x8B\x90\x94 -set success 0; # \x90\xAC\x8C\xF7\x83t\x83@\x83C\x83\x8B\x90\x94 -set failed 0; # \x8E\xB8\x94s\x83t\x83@\x83C\x83\x8B\x90\x94 -set outside 0; # \x8F\x88\x97\x9D\x8Dς݃t\x83@\x83C\x83\x8B\x90\x94 +package require Tk +package require msgcat +catch [list msgcat::mcload [file dirname $argv0]]; # try to load msg file. + +# Variables +set exts [list *.c *.cpp *.cxx *.h *.hxx]; # glob pattern for source files +set path [pwd]; # initial value for target path +set msg [msgcat::mc {Select Source Folder}]; # initial value for message +set files 0; # All files +set success 0; # success files +set failed 0; # failure files +set outside 0; # processed files + # codeMenu - -# \x88\xF8\x90\x94 w tk_optionMenu \x82ɓn\x82\xB7\x83E\x83B\x83\x93\x83h\x83E\x96\xBC -# var \x93\xAF\x95ϐ\x94\x96\xBC -# \x8AT\x97v -# \x91S\x82Ă\xCCencoding name\x82\xF0\x91I\x91\xF0\x8E\x88\x82ɂ\xE0\x82\xC2optionMenu\x82\xAC\x82\xB7\x82\xE9\x83R\x81[\x83h\x95\xB6\x8E\x9A\x97\xF1 -# \x82\xAC\x82\xB7\x82\xE9\x81Bencoding names\x82͐\xAE\x97\xEA\x81Asystem encoding\x82\xAA\x90擪\x82ɒu\x82\xA9\x82\xEA\x82\xE9\x81B -# \x92ʏ\xED\x81A\x82\xB1\x82̃v\x83\x8D\x83V\x81[\x83W\x83\x83\x82̖߂\xE8\x92l\x82\xF0eval\x82\xB5\x82ėp\x82\xA2\x82\xE9\x81B proc codeMenu {w var} { - set allEncodings [lsort -dictionary [encoding names]]; # \x8E\xC0\x8Ds\x8E\x9E\x82ɃT\x83|\x81[\x83g\x82\xB3\x82\xEA\x82邷\x82ׂĂ\xCCencoding\x96\xBC - set defaultEncoding [encoding system]; # \x83V\x83X\x83e\x83\x80encoding\x82\xF0\x83f\x83t\x83H\x83\x8B\x83g\x82Ƃ\xB7\x82\xE9 - set cmd [list tk_optionMenu $w $var $defaultEncoding];# \x83R\x83}\x83\x93\x83h\x97\xF1\x82̍쐬\x8AJ\x8En + set allEncodings [lsort -dictionary [encoding names]]; # all of possible encoding names + set defaultEncoding [encoding system]; # sustem encoding as default + set cmd [list tk_optionMenu $w $var $defaultEncoding];# start of generation foreach i $allEncodings { if {![string equal $defaultEncoding $i]} { - lappend cmd $i; # \x90擪\x82ɕt\x89\xC1\x8Dς݂̃f\x83t\x83H\x83\x8B\x83gencoding\x96\xBC\x88ȊO\x82\xF0\x83R\x83}\x83\x93\x83h\x97\xF1\x82\xC9lappend + lappend cmd $i; } } - return $cmd; # \x8D쐬\x82\xB5\x82\xBD\x83R\x83}\x83\x93\x83h\x97\xF1\x82\xF0\x95Ԃ\xB7 + return $cmd; # return code string } # expandPath - -# \x88\xF8\x90\x94 path \x8F\x88\x97\x9D\x82\xF0\x8AJ\x8En\x82\xB7\x82\xE9\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x83p\x83X -# code \x83\\x81[\x83X\x96̂\xE0\x82Ƃ\xE0\x82Ƃ̕\xB6\x8E\x9A\x83R\x81[\x83h -# mode \x93\xAE\x8D샂\x81[\x83h fromUTF8|toUTF -# \x8AT\x97v -# \x8Ew\x92肵\x82\xBD\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x88ȉ\xBA\x82\xB7\x82ׂĂ̊K\x91w\x82ɑ\xB5\x82ĕϊ\xB7\x91Ώۃt\x83@\x83C\x83\x8B\x82ɕϊ\xB7\x8F\x88\x97\x9D\x82\xF0\x8E\x8E\x82݂\xE9 proc expandPath {path code mode} { - global files; # \x8F\x88\x97\x9D\x91Ώۃt\x83@\x83C\x83\x8B\x90\x94\x83J\x83E\x83\x93\x83^ - # \x8Ew\x92\xE8\x83p\x83X\x89\xBA\x82̂\xB7\x82ׂẴG\x83\x93\x83g\x83\x8A\x82ɑ\xB5\x81A + global files; foreach i [glob -nocomplain -- [file join $path *]] { - # \x82\xBB\x82ꂪ\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82Ȃ\xE7\x82\xCE if {[file isdirectory $i]} { - expandPath $i $code $mode; # expandPath\x8F\x88\x97\x9D\x82\xF0\x8DċN\x8E\xC0\x8Ds - continue; # \x82\xB5\x81A\x8E\x9F\x82̃G\x83\x93\x83g\x83\x8A\x82̏\x88\x97\x9D\x82\xD6 + expandPath $i $code $mode; + continue; } - # \x82\xBB\x82ꂪ\x92ʏ\xED\x83t\x83@\x83C\x83\x8B\x82ł\xA0\x82\xE8\x81A\x82\xA9\x82\x88\x97\x9D\x91Ώۂ̃p\x83^\x81[\x83\x93\x82Ɉ\xEA\x92v\x82\xB7\x82\xE9\x82Ȃ\xE7\x82A if {[file isfile $i] && [isFile $i]} { - incr files; # \x83J\x83E\x83\x93\x83^\x82\xF0\x90i\x82߁A - doConvertFile $i $code $mode; # \x82\xBB\x82̃t\x83@\x83C\x83\x8B\x82ɕϊ\xB7\x8F\x88\x97\x9D\x82\xF0\x8E\x8E\x82݂\xE9 + incr files; + doConvertFile $i $code $mode; } } } # isFile - -# \x88\xF8\x90\x94 path \x83`\x83F\x83b\x83N\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x96\xBC -# \x8AT\x97v -# \x8Ew\x92\xE8\x83t\x83@\x83C\x83\x8B path \x82\xAA\x83p\x83^\x81[\x83\x93\x83\x8A\x83X\x83g exts \x82̗v\x91f\x82̂\xA2\x82\xB8\x82ꂩ\x82Ƀ}\x83b\x83`\x82\xB7\x82\xE9\x82Ȃ\xE7\x82ΐ^\x82\xF0\x81A -# \x82\xA2\x82\xB8\x82\xEA\x82ɂ\xE0\x83}\x83b\x83`\x82\xB5\x82Ȃ\xA2\x82Ȃ\xE7\x82U\x82\xF0\x95Ԃ\xB7 proc isFile {path} { global exts foreach i $exts { @@ -92,70 +79,48 @@ } # doConvertFile -# \x88\xF8\x90\x94 path \x95ϊ\xB7\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x96\xBC -# code \x83\\x81[\x83X\x82̕\xB6\x8E\x9A\x83R\x81[\x83h -# mode \x93\xAE\x8D샂\x81[\x83h fromUTF8|toUTF -# \x8AT\x97v -# mode\x82\xAAtoUTF8\x82̏ꍇ\x82̓\\x81[\x83X\x83t\x83@\x83C\x83\x8Bpath\x82\x9A\x83R\x81[\x83hcode\x82Ɖ\xBC\x92肵\x82\xC4BOM\x95t\x82\xABUTF-8\x83R\x81[\x83h -# \x82ɏ㏑\x82\xAB\x95ϊ\xB7\x82\xB7\x82\xE9 -# \x82\xB7\x82ł\xC9BOM\x95t\x82\xABUTF-8\x82ƂȂ\xC1\x82Ă\xA2\x82\xE9\x8Fꍇ\x81A\x82\xA8\x82\xE6\x82у\\x81[\x83X\x83R\x81[\x83h\x82\xAA\x8A\xAE\x91S\x82\xC8ASCII\x83t\x83@\x83C\x83\x8B\x82ł\xA0\x82\xE9\x8Fꍇ\x81A -# \x82\xB7\x82Ȃ킿\x82\xB7\x82ł\xC9VC++\x82ŏ\x88\x97\x9D\x89\\x82Ȍ`\x8E\xAE\x82ƂȂ\xC1\x82Ă\xA2\x82\xE9\x8Fꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 -# mode\x82\xAAfromUTF8\x82̏ꍇ\x82́A\x83\\x81[\x83X\x83t\x83@\x83C\x83\x8Bpath\x82\x9A\x83R\x81[\x83hBOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x81A\x95\xB6\x8E\x9A\x83R\x81[\x83h -# code\x82ɏ㏑\x82\xAB\x95ϊ\xB7\x82\xB7\x82\xE9 -# \x82\xB1\x82̏ꍇ\x81Apath\x82\xAABOM\x95t\x82\xABUTF-8\x82łȂ\xAF\x82\xEA\x82Ή\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B\x82܂\xBDcode\x82\xAAASCII\x82̏ꍇ\x82\xE0\x89\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 -# \x92\x8D\x88ӁF\x82\xB1\x82̏\x88\x97\x9D\x82͔j\x89\xF3\x93I\x82ł\xA0\x82\xE9\x81B\x8F\x88\x97\x9D\x91Ώۂ̓o\x83b\x83N\x83A\x83b\x83v\x82\xF0\x82Ƃ\xC1\x82\xBD\x8C\xE3\x81A\x8F\x88\x97\x9D\x82\xF0\x8E\x8E\x82݂\xE7\x82\xEA\x82\xE9\x82ׂ\xAB\x82ł\xA0\x82\xE9 -# \x88Ӑ}\x82\xB5\x82Ȃ\xA2\x93\xAE\x8D삪\x94\xAD\x90\xB6\x82\xB5\x82\xBD\x8Fꍇ\x82́A\x8F\x88\x97\x9D\x91Ώۃ\\x81[\x83X\x96͔j\x89\xEA\x82\xE9\x89\\x90\xAB\x82\xAA\x82\xA0\x82\xE9 proc doConvertFile {path code mode} { global success failed outside global msg - # \x83t\x83@\x83C\x83\x8Bpath\x82̓\xE0\x97e\x82\xF0binary\x82œǂݍ\x9E\x82\xF1\x82ł\xB5\x82܂\xA4 if {[catch [list open $path] fp]} { - incr failed; # \x83t\x83@\x83C\x83\x8B\x82\xAA\x8AJ\x82\xAF\x82Ȃ\xAF\x82\xEA\x82G\x83\x89\x81[ - set msg "\x83G\x83\x89\x81[\x81F $fp"; update + incr failed; + set msg [msgcat::mc "Error: %s" $fp]; update return } - fconfigure $fp -encoding binary -translation auto; # \x83t\x83@\x83C\x83\x8B\x83`\x83\x83\x83l\x83\x8B\x82\xF0binary\x83\x82\x81[\x83h\x82ɐݒ\xE8 - set contents [read $fp]; # \x83t\x83@\x83C\x83\x8B\x93\xE0\x97e\x82\xF0\x88ꊇ\x93ǂݍ\x9E\x82\xDD - catch [list close $fp]; # \x83t\x83@\x83C\x83\x8B\x82\xF0\x95\xB6\x82\xE9 + fconfigure $fp -encoding binary -translation auto; + set contents [read $fp]; + catch [list close $fp]; - # \x93\xFC\x97̓t\x83@\x83C\x83\x8B\x82\xAAASCII\x83t\x83@\x83C\x83\x8B\x81A\x82\xA0\x82邢\x82͂\xB7\x82ł\xC9BOM\x95t\x82\xAB\x82\xA9\x92\xB2\x82ׂ\xE9 set isAscii [string is ascii $contents] set hasBOM [string match "\xef\xbb\xbf*" $contents] - # \x93\xFC\x97̓t\x83@\x83C\x83\x8B\x82\xAAASCII\x82Ȃ\xE7\x82R\x81[\x83h\x95ϊ\xB7\x82\xB5\x82Ȃ\xA2\x81B - # \x82\xB7\x82ł\xC9BOM\x95t\x82\xAB\x82Ȃ\xE7\x82\xCEBOM\x95t\x89\xC1\x8F\x88\x97\x9D\x82͂\xB5\x82Ȃ\xA2 - # BOM\x95t\x82\xAB\x82Ǝw\x92肳\x82ꂽ\x93\xFC\x97̓t\x83@\x83C\x83\x8B\x82\xAABOM\x96\xB3\x82\xB5\x82Ȃ\xE7\x82Ή\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B - # BOM\x95t\x82\xABUTF-8\x82\xCDASCII\x82ɂ͕ϊ\xB7\x82\xB5\x82Ȃ\xA2\x81B if { $isAscii || \ ( $hasBOM && ( [string equal "toUTF8" $mode]) || [string equal "ascii" $code] ) || \ ( ! $hasBOM && [string equal "fromUTF8" $mode] ) } { - incr outside; # \x91ΏۊO\x83J\x83E\x83\x93\x83^\x82\xF0\x83J\x83E\x83\x93\x83g\x83A\x83b\x83v + incr outside; return } - # \x8Fo\x97̓t\x83@\x83C\x83\x8B\x82\xF0\x8AJ\x82\xAD if {[catch [list open $path w] fp]} { - incr failed; # \x8AJ\x82\xAF\x82Ȃ\xAF\x82\xEA\x82G\x83\x89\x81[ - set msg "\x83G\x83\x89\x81[\x81F $fp"; update + incr failed; + set msg [msgcat::mc "Error: %s" $fp]; update return } - fconfigure $fp -encoding binary -translation auto; # \x8Fo\x97̓t\x83@\x83C\x83\x8B\x82\xE0binary\x83\x82\x81[\x83h + fconfigure $fp -encoding binary -translation auto; - # BOM\x95t\x82\xABUTF-8\x8Fo\x97͂Ȃ\xE7\x82\xCEBOM\x82\xF0\x82܂\xB8\x8Fo\x97\xCD if {[string equal "toUTF8" $mode]} { if {[catch [list puts -nonewline $fp "\xef\xbb\xbf"] err]} { - catch [list close $fp]; # \x83t\x83@\x83C\x83\x8B\x8Fo\x97͂ł\xAB\x82Ȃ\xAF\x82\xEA\x82G\x83\x89\x81[ - incr failed; # \x83G\x83\x89\x81[\x83J\x83E\x83\x93\x83^\x82\xF0\x83J\x83E\x83\x93\x83g\x83A\x83b\x83v - set msg "\x83G\x83\x89\x81[\x81F $err"; update + catch [list close $fp]; + incr failed; + set msg [msgcat::mc "Error: %s" $err]; update return } } - # BOM\x8D폜\x82Ȃ\xE7\x82폜\x82\xB7\x82\xE9 + if {$hasBOM && [string equal "fromUTF8" $mode]} { set contents [string range $contents 3 end] } - # \x93\xFC\x8Fo\x97̓R\x81[\x83h\x82\xF0\x8F\x88\x97\x9D\x82ɂ\xE6\x82茈\x92肷\x82\xE9 if {[string equal "toUTF8" $mode]} { set incode $code set outcode utf-8 @@ -163,28 +128,27 @@ set incode utf-8 set outcode $code } - # \x8Fo\x97\xCD if {[catch [list puts -nonewline $fp [encoding convertto $outcode [encoding convertfrom $incode $contents]]] err]} { - catch [list close $fp]; # \x95\xB6\x82\xEA\x82\xE9\x82Ƃ͌\xC0\x82\xE7\x82Ȃ\xA2 + catch [list close $fp]; incr failed - set msg "\x83G\x83\x89\x81[\x81F $err"; update + set msg [msgcat::mc "Error: %s" $err]; update return } if {[catch [list close $fp] err]} { - incr failed; # \x8Fo\x97̓t\x83@\x83C\x83\x8B\x82\xF0\x95\xB6\x82\xEA\x82Ȃ\xAF\x82\xEA\x82G\x83\x89\x81[ - set msg "\x83G\x83\x89\x81[\x81F $err"; update + incr failed; + set msg [msgcat::mc "Error: %s" $err]; update return } - incr success; # \x90\xAC\x8C\xF7\x83J\x83E\x83\x93\x83^\x82\xF0\x83J\x83E\x83\x93\x83g\x83A\x83b\x83v + incr success; } -# \x83E\x83B\x83W\x83F\x83b\x83g\x90\xB6\x90\xAC label .l -textvariable msg -anchor w frame .f1 -label .f1.l -text "\x8F\x88\x97\x9D\x91Ώۃp\x83X:" +label .f1.l -text [msgcat::mc "Source Folder:"] entry .f1.e -textvariable path -button .f1.b -text "\x8EQ\x8F\xC6" -command { - set path [tk_chooseDirectory -initialdir $path -title "\x8F\x88\x97\x9D\x91Ώۃt\x83H\x83\x8B\x83_\x82\xF0\x91I\x91\xF0"] +button .f1.b -text [msgcat::mc "Browse"] -command { + set path [tk_chooseDirectory -initialdir $path \ + -title [msgcat::mc "Select Source Folder"]] if {[string equal "" $path]} { set path [pwd] } @@ -193,38 +157,37 @@ pack .f1.b -side right pack .f1.e -side bottom -fill x -expand true frame .f2 -label .f2.l -text "\x83t\x83@\x83C\x83\x8B\x95\xB6\x8E\x9A\x83R\x81[\x83h" +label .f2.l -text [msgcat::mc "Convert Charset"] eval [codeMenu .f2.cm code] -button .f2.exec1 -text "\x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7" -command { - set ret [tk_dialog .d1 "\x8E\xC0\x8Ds\x8Am\x94F" \ - "\x83t\x83H\x83\x8B\x83_ $path \x88ȉ\xBA\x82̊g\x92\xA3\x8Eq $exts \x82̃t\x83@\x83C\x83\x8B\x91S\x82Ă̕\xB6\x8E\x9A\x83R\x81[\x83h\x82\xF0 $code \x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7\x82\xB5\x82܂\xB7\x82\xA9\x81H" \ - question 0 yes no] +button .f2.exec1 -text [msgcat::mc "to UTF-8 wih BOM"] -command { + set ret [tk_dialog .d1 [msgcat::mc "Confirm"] \ + [msgcat::mc "All files under %s with ext %s, Convert charset %s to UTF-8 with BOM, OK?" $path $exts $code] question 0 yes no] if {[string equal "0" $ret]} { - set files 0; set success 0; set failed 0; set outside 0; # \x8F\x89\x8A\xFA\x89\xBB - set msg "\x8F\x88\x97\x9D\x92\x86\x82ł\xB7"; update + set files 0; set success 0; set failed 0; set outside 0; # initialize + set msg [msgcat::mc "Converting"]; update expandPath $path $code toUTF8 - tk_dialog .d "\x8E\xC0\x8Ds\x8C\x8B\x89\xCA" \ - "$files \x8C̑Ώۃt\x83@\x83C\x83\x8B\x82̂\xA4\x82\xBF $success \x8C̃t\x83@\x83C\x83\x8B\x82̏\x88\x97\x9D\x82ɐ\xAC\x8C\xF7\x81A $failed \x8C̏\x88\x97\x9D\x82Ɏ\xB8\x94s\x81A$outside \x8C͑ΏۊO\x82ł\xB5\x82\xBD\x81B" info 0 ok + tk_dialog .d [msgcat::mc "Results"] \ + [msgcat::mc "All of targets: %s, Success: %s, Fail: %s, out of target: %s" $files $success $failed $outside] info 0 ok } - set msg {\x8F\x88\x97\x9D\x91Ώۃp\x83X\x82\xF0\x8Ew\x92肵\x82ĉ\xBA\x82\xB3\x82\xA2} + set msg [msgcat::mc "Select Source Folder"] } -button .f2.exec2 -text "\x82\xD6BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x95ϊ\xB7" -command { - set ret [tk_dialog .d1 "\x8E\xC0\x8Ds\x8Am\x94F" \ - "\x83t\x83H\x83\x8B\x83_ $path \x88ȉ\xBA\x82̊g\x92\xA3\x8Eq $exts \x82̃t\x83@\x83C\x83\x8B\x91S\x82Ă̕\xB6\x8E\x9A\x83R\x81[\x83h\x82\xF0 $code \x82\xD6BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x95ϊ\xB7\x82\xB5\x82܂\xB7\x82\xA9\x81H" \ +button .f2.exec2 -text [msgcat::mc "from UTF-8 with BOM"] -command { + set ret [tk_dialog .d1 [msgcat::mc "Confirm"] \ + [msgcat::mc "All files under %s with ext %s, Convert charset from UTF-8 with BOM to %s, OK?" $path $exts $code] \ question 0 yes no] if {[string equal "0" $ret]} { - set files 0; set success 0; set failed 0; set outside 0; # \x8F\x89\x8A\xFA\x89\xBB - set msg "\x8F\x88\x97\x9D\x92\x86\x82ł\xB7"; update + set files 0; set success 0; set failed 0; set outside 0; # initialize + set msg [msgcat::mc "Converting"]; update expandPath $path $code fromUTF8 - tk_dialog .d "\x8E\xC0\x8Ds\x8C\x8B\x89\xCA" \ - "$files \x8C̑Ώۃt\x83@\x83C\x83\x8B\x82̂\xA4\x82\xBF $success \x8C̃t\x83@\x83C\x83\x8B\x82̏\x88\x97\x9D\x82ɐ\xAC\x8C\xF7\x81A $failed \x8C̏\x88\x97\x9D\x82Ɏ\xB8\x94s\x81A$outside \x8C͑ΏۊO\x82ł\xB5\x82\xBD\x81B" info 0 ok + tk_dialog .d [msgcat::mc "Results"] \ + [msgcat::mc "All of targets: %s, Success: %s, Fail: %s, out of target: %s" $files $success $failed $outside] info 0 ok } - set msg {\x8F\x88\x97\x9D\x91Ώۃp\x83X\x82\xF0\x8Ew\x92肵\x82ĉ\xBA\x82\xB3\x82\xA2} + set msg [msgcat::mc "Select Source Folder"] } pack .f2.l -side left -fill y -expand true pack .f2.cm -side left -fill both -expand true pack .f2.exec1 .f2.exec2 -side top -fill y -expand true -button .exit -text "\x8FI\x97\xB9" -command {exit} +button .exit -text [msgcat::mc "Exit"] -command {exit} pack .l -fill both -expand true pack .f1 .f2 -fill x -expand true Modified: trunk/tools/BOMing/README.txt =================================================================== --- trunk/tools/BOMing/README.txt 2012-05-20 15:32:50 UTC (rev 39) +++ trunk/tools/BOMing/README.txt 2012-05-21 13:08:39 UTC (rev 40) @@ -76,31 +76,31 @@ \x8E\xC0\x8Ds\x82\xB7\x82\xE9\x82ƈȉ\xBA\x82̗l\x82ȃE\x83B\x83\x93\x83h\x83E\x82\xAA\x8AJ\x82\xAB\x82܂\xB7\x81B \x83\x81\x83b\x83Z\x81[\x83W\x81F\x82\xBD\x82Ƃ\xA6\x82Ώ\x88\x97\x9D\x92\x86\x82Ȃ\xE7\x81u\x8F\x88\x97\x9D\x92\x86\x82ł\xB7\x81v\x82Ƃ\xA2\x82\xA4\x95\\x8E\xA6\x82ɂȂ\xE8\x82܂\xB7 -\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x8F\x88\x97\x9D\x91Ώۃt\x83H\x83\x8B\x83_\x96\xBC\x82\xF0\x93\xFC\x97͂\xB7\x82\xE9\x83G\x83\x8A\x83A -\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x8D\xB6\x82ɃG\x83\x8A\x83A\x93\xFC\x97͂\xB7\x82\xE9\x91I\x91\xF0\x83_\x83C\x83\x84\x83\x8D\x83O\x82\xF0\x8AJ\x82\xAD -\x81@\x81@\x81\xAB\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 -\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\xA2 -\x84\xA0\x91Ώۃp\x83X\x82\xF0\x8Ew\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81@\x81\xAB\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81\xAB\x81@\x81@\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA1\x84\x9F\x84\x9F\x84\xA2\x84\xA0 -\x84\xA0\x8F\x88\x97\x9D\x91Ώۃp\x83X\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x8EQ\x8FƄ\xA0\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA4\x84\x9F\x84\x9F\x84\xA3\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0cp932 \x84\xAA\x84\xA0\x84\xA0\x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7\x84\xA0\x81\xA9\x84\x9F\x84\x9F\x84\x9F\x84\xA2 -\x84\xA0\x83t\x83@\x83C\x83\x8B\x95\xB6\x8E\x9A\x83R\x81[\x83h\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x82\xD6BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x95ϊ\xB7\x84\xA0\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x8FI\x97\xB9\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA0\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 -\x84\xA4\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x81@\x81@\x81@\x84\xA0 -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x8D\xB6\x83\x81\x83j\x83\x85\x81[\x82Ŏw\x92肳\x82ꂽ\x95\xB6\x8E\x9A\x83R\x81[\x83h -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7\x8E\xC0\x8Ds -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x8Bt\x95\xFB\x8C\xFC(BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x8Ew\x92\xE8\x83R\x81[\x83h)\x82ւ̕ϊ\xB7\x82\xF0\x8E\xC0\x8Ds -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 -\x81@\x81@\x81@\x84\xA0\x81@\x81@\x83\\x81[\x83X\x95\xB6\x8E\x9A\x83R\x81[\x83h\x8Ew\x92胁\x83j\x83\x85\x81[ +\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x8F\x88\x97\x9D\x91Ώۃt\x83H\x83\x8B\x83_\x96\xBC\x82\xF0\x93\xFC\x97͂\xB7\x82\xE9\x83G\x83\x8A\x83A +\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x8D\xB6\x82ɃG\x83\x8A\x83A\x93\xFC\x97͂\xB7\x82\xE9\x91I\x91\xF0\x83_\x83C\x83\x84\x83\x8D\x83O\x82\xF0\x8AJ\x82\xAD +\x81@\x81@\x81\xAB\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 +\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\xA2 +\x84\xA0\x8F\x88\x97\x9D\x91Ώۃt\x83H\x83\x8B\x83_\x82\xF0\x91I\x91\xF0\x81@\x81@\x81@\x81@\x81@\x81\xAB\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81\xAB\x81@\x81@\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA1\x84\x9F\x84\x9F\x84\xA2\x84\xA0 +\x84\xA0\x8F\x88\x97\x9D\x91Ώۃt\x83H\x83\x8B\x83_\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x8EQ\x8FƄ\xA0\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA4\x84\x9F\x84\x9F\x84\xA3\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0cp932 \x84\xAA\x84\xA0\x84\xA0\x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7\x84\xA0\x81\xA9\x84\x9F\x84\x9F\x84\x9F\x84\xA2 +\x84\xA0\x83t\x83@\x83C\x83\x8B\x95\xB6\x8E\x9A\x83R\x81[\x83h\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x82\xD6BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x95ϊ\xB7\x84\xA0\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x84\xA1\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA2\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x8FI\x97\xB9\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA0\x84\xA4\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x84\xA0\x81@\x81@\x81@\x84\xA0 +\x84\xA4\x84\x9F\x84\x9F\x81\xAA\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA0\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\x9F\x84\xA3\x81@\x81@\x81@\x84\xA0 +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x8D\xB6\x83\x81\x83j\x83\x85\x81[\x82Ŏw\x92肳\x82ꂽ\x95\xB6\x8E\x9A\x83R\x81[\x83h +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x82\xA9\x82\xE7BOM\x95t\x82\xABUTF-8\x82ɕϊ\xB7\x8E\xC0\x8Ds +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0\x8Bt\x95\xFB\x8C\xFC(BOM\x95t\x82\xABUTF-8\x82\xA9\x82\xE7\x8Ew\x92\xE8\x83R\x81[\x83h)\x82ւ̕ϊ\xB7\x82\xF0\x8E\xC0\x8Ds +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x81@\x84\xA0 +\x81@\x81@\x81@\x84\xA0\x81@\x81@\x81@\x81@\x83\\x81[\x83X\x95\xB6\x8E\x9A\x83R\x81[\x83h\x8Ew\x92胁\x83j\x83\x85\x81[ \x81@\x81@\x8FI\x97\xB9\x83{\x83^\x83\x93 3-2. \x94C\x88ӂ̕\xB6\x8E\x9A\x83R\x81[\x83h\x82̃\\x81[\x83X\x96\xF0BOMt\x95t\x82\xABUTF-8\x82Ɉꊇ\x95ϊ\xB7\x82\xB7\x82\xE9 @@ -148,3 +148,5 @@ http://miranda-jp.sourceforge.jp/ \x82܂ŁB +5. \x89\xFC\x94ŗ\x9A\x97\xF0 +2012/05/21 : msgcat \x83\x89\x83C\x83u\x83\x89\x83\x8A\x82\xF0\x97p\x82\xA2\x82č\x91\x8Dۉ\xBB\x82\xF0\x8E\xC0\x8E{ Added: trunk/tools/BOMing/ja_JP.msg =================================================================== --- trunk/tools/BOMing/ja_JP.msg (rev 0) +++ trunk/tools/BOMing/ja_JP.msg 2012-05-21 13:08:39 UTC (rev 40) @@ -0,0 +1,17 @@ +#-*- coding: utf-8; mode: tcl -*- +msgcat::mcmset ja_JP { + "All files under %s with ext %s, Convert charset %s to UTF-8 with BOM, OK?" "フォルダ %s 以下の拡張子 %s のファイル全ての文字コードを %s からBOM付きUTF-8に変換しますか?" + "All files under %s with ext %s, Convert charset from UTF-8 with BOM to %s, OK?" "フォルダ %s 以下の拡張子 %s のファイル全ての文字コードを %s へBOM付きUTF-8から変換しますか?" + "All of targets: %s, Success: %s, Fail: %s, out of target: %s" "%s 個の対象ファイルのうち %s 個のファイルの処理に成功、%s 個の処理に失敗、%s 個は対象外でした。" + "Browse" "参照" + "Convert Charset" "ファイル文字コード" + "Confirm" "実行確認" + "Converting" "処理中です" + "Error: %s" "エラー: %s" + "Exit" "終了" + "from UTF-8 with BOM" "へBOM付きUTF-8から変換" + "Results" "実行結果" + "Select Source Folder" "処理対象フォルダを選択" + "Source Folder:" "処理対象フォルダ:" + "to UTF-8 wih BOM" "からBOM付きUTF-8に変換" +}