Vasco Almeida <vascomalmeida@xxxxxxx> writes: >Fix wrong use of append command in strings marked for translation. >According to Tcl/Tk Documentation [1], > append varName ?value value value ...? >appends all value arguments to the current value of variable varName. >This means that > append "[appname] ([reponame]): " [mc "File Viewer"] >is setting a variable named "[appname] ([reponame]): " to the output of >[mc "File Viewer"], rather than returning the concatenation of both >expressions as one might expect. > >The format for some strings enables, for instance, a French translator >to translate like "%s (%s) : Create Branch" (space before colon). >Conversely, strings already translated will be marked as fuzzy and the >translator must update them herself. > >For some cases, use alternative way for concatenation instead of using >strcat procedure defined in git-gui.sh. > >Reference: 31bb1d1 ("git-gui: Paper bag fix missing translated strings", >2007-09-14) fixes the same issue slightly differently. > >[1] http://www.tcl.tk/man/tcl/TclCmd/append.htm > >Signed-off-by: Vasco Almeida <vascomalmeida@xxxxxxx> >--- > lib/blame.tcl | 2 +- > lib/branch_checkout.tcl | 2 +- > lib/branch_create.tcl | 2 +- > lib/branch_delete.tcl | 2 +- > lib/branch_rename.tcl | 2 +- > lib/browser.tcl | 4 ++-- > lib/database.tcl | 2 +- > lib/diff.tcl | 11 +++++------ > lib/error.tcl | 4 ++-- > lib/merge.tcl | 2 +- > lib/remote_add.tcl | 2 +- > lib/remote_branch_delete.tcl | 2 +- > lib/shortcut.tcl | 6 +++--- > lib/tools_dlg.tcl | 6 +++--- > lib/transport.tcl | 2 +- > 15 files changed, 25 insertions(+), 26 deletions(-) > >diff --git a/lib/blame.tcl b/lib/blame.tcl >index b1d15f4..a1aeb8b 100644 >--- a/lib/blame.tcl >+++ b/lib/blame.tcl >@@ -70,7 +70,7 @@ constructor new {i_commit i_path i_jump} { > set path $i_path > > make_toplevel top w >- wm title $top [append "[appname] ([reponame]): " [mc "File Viewer"]] >+ wm title $top [mc "%s (%s): File Viewer" [appname] [reponame]] > > set font_w [font measure font_diff "0"] > >diff --git a/lib/branch_checkout.tcl b/lib/branch_checkout.tcl >index 2e459a8..d06037d 100644 >--- a/lib/branch_checkout.tcl >+++ b/lib/branch_checkout.tcl >@@ -13,7 +13,7 @@ constructor dialog {} { > global use_ttk NS > make_dialog top w > wm withdraw $w >- wm title $top [append "[appname] ([reponame]): " [mc "Checkout Branch"]] >+ wm title $top [mc "%s (%s): Checkout Branch" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/branch_create.tcl b/lib/branch_create.tcl >index 4bb9077..ba367d5 100644 >--- a/lib/branch_create.tcl >+++ b/lib/branch_create.tcl >@@ -20,7 +20,7 @@ constructor dialog {} { > > make_dialog top w > wm withdraw $w >- wm title $top [append "[appname] ([reponame]): " [mc "Create Branch"]] >+ wm title $top [mc "%s (%s): Create Branch" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/branch_delete.tcl b/lib/branch_delete.tcl >index 9aef0c9..a505163 100644 >--- a/lib/branch_delete.tcl >+++ b/lib/branch_delete.tcl >@@ -13,7 +13,7 @@ constructor dialog {} { > > make_dialog top w > wm withdraw $w >- wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch"]] >+ wm title $top [mc "%s (%s): Delete Branch" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/branch_rename.tcl b/lib/branch_rename.tcl >index 6e510ec..3a2d79a 100644 >--- a/lib/branch_rename.tcl >+++ b/lib/branch_rename.tcl >@@ -12,7 +12,7 @@ constructor dialog {} { > > make_dialog top w > wm withdraw $w >- wm title $top [append "[appname] ([reponame]): " [mc "Rename Branch"]] >+ wm title $top [mc "%s (%s): Rename Branch" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/browser.tcl b/lib/browser.tcl >index 0328338..1580493 100644 >--- a/lib/browser.tcl >+++ b/lib/browser.tcl >@@ -24,7 +24,7 @@ constructor new {commit {path {}}} { > global cursor_ptr M1B use_ttk NS > make_dialog top w > wm withdraw $top >- wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]] >+ wm title $top [mc "%s (%s): File Browser" [appname] [reponame]] > > if {$path ne {}} { > if {[string index $path end] ne {/}} { >@@ -272,7 +272,7 @@ constructor dialog {} { > global use_ttk NS > make_dialog top w > wm withdraw $top >- wm title $top [append "[appname] ([reponame]): " [mc "Browse Branch Files"]] >+ wm title $top [mc "%s (%s): Browse Branch Files" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > wm transient $top . >diff --git a/lib/database.tcl b/lib/database.tcl >index 8bd4b8e..8578308 100644 >--- a/lib/database.tcl >+++ b/lib/database.tcl >@@ -63,7 +63,7 @@ proc do_stats {} { > bind $w <Visibility> "grab $w; focus $w.buttons.close" > bind $w <Key-Escape> [list destroy $w] > bind $w <Key-Return> [list destroy $w] >- wm title $w [append "[appname] ([reponame]): " [mc "Database Statistics"]] >+ wm title $w [mc "%s (%s): Database Statistics" [appname] [reponame]] > wm deiconify $w > tkwait window $w > } >diff --git a/lib/diff.tcl b/lib/diff.tcl >index 0d56986..1228ce2 100644 >--- a/lib/diff.tcl >+++ b/lib/diff.tcl >@@ -220,10 +220,9 @@ proc show_other_diff {path w m cont_info} { > } > $ui_diff conf -state normal > if {$type eq {submodule}} { >- $ui_diff insert end [append \ >- "* " \ >- [mc "Git Repository (subproject)"] \ >- "\n"] d_info >+ $ui_diff insert end \ >+ "* [mc "Git Repository (subproject)"]\n" \ >+ d_info > } elseif {![catch {set type [exec file $path]}]} { > set n [string length $path] > if {[string equal -length $n $path $type]} { >@@ -608,7 +607,7 @@ proc apply_hunk {x y} { > puts -nonewline $p $current_diff_header > puts -nonewline $p [$ui_diff get $s_lno $e_lno] > close $p} err]} { >- error_popup [append $failed_msg "\n\n$err"] >+ error_popup "$failed_msg\n\n$err" > unlock_index > return > } >@@ -826,7 +825,7 @@ proc apply_range_or_line {x y} { > puts -nonewline $p $current_diff_header > puts -nonewline $p $wholepatch > close $p} err]} { >- error_popup [append $failed_msg "\n\n$err"] >+ error_popup "$failed_msg\n\n$err" > } > > unlock_index >diff --git a/lib/error.tcl b/lib/error.tcl >index 9b7d229..71dc860 100644 >--- a/lib/error.tcl >+++ b/lib/error.tcl >@@ -17,7 +17,7 @@ proc error_popup {msg} { > set cmd [list tk_messageBox \ > -icon error \ > -type ok \ >- -title [append "$title: " [mc "error"]] \ >+ -title [mc "%s: error" $title] \ > -message $msg] > if {[winfo ismapped [_error_parent]]} { > lappend cmd -parent [_error_parent] >@@ -33,7 +33,7 @@ proc warn_popup {msg} { > set cmd [list tk_messageBox \ > -icon warning \ > -type ok \ >- -title [append "$title: " [mc "warning"]] \ >+ -title [mc "%s: warning" $title] \ > -message $msg] > if {[winfo ismapped [_error_parent]]} { > lappend cmd -parent [_error_parent] >diff --git a/lib/merge.tcl b/lib/merge.tcl >index 460d32f..b2de109 100644 >--- a/lib/merge.tcl >+++ b/lib/merge.tcl >@@ -149,7 +149,7 @@ constructor dialog {} { > } > > make_dialog top w >- wm title $top [append "[appname] ([reponame]): " [mc "Merge"]] >+ wm title $top [mc "%s (%s): Merge" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/remote_add.tcl b/lib/remote_add.tcl >index 50029d0..480a6b3 100644 >--- a/lib/remote_add.tcl >+++ b/lib/remote_add.tcl >@@ -17,7 +17,7 @@ constructor dialog {} { > > make_dialog top w > wm withdraw $top >- wm title $top [append "[appname] ([reponame]): " [mc "Add Remote"]] >+ wm title $top [mc "%s (%s): Add Remote" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/remote_branch_delete.tcl b/lib/remote_branch_delete.tcl >index fcc06d0..5ba9fca 100644 >--- a/lib/remote_branch_delete.tcl >+++ b/lib/remote_branch_delete.tcl >@@ -26,7 +26,7 @@ constructor dialog {} { > global all_remotes M1B use_ttk NS > > make_dialog top w >- wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch Remotely"]] >+ wm title $top [mc "%s (%s): Delete Branch Remotely" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > } >diff --git a/lib/shortcut.tcl b/lib/shortcut.tcl >index 78878ef..135086b 100644 >--- a/lib/shortcut.tcl >+++ b/lib/shortcut.tcl >@@ -5,7 +5,7 @@ proc do_windows_shortcut {} { > global _gitworktree > set fn [tk_getSaveFile \ > -parent . \ >- -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ >+ -title [mc "%s (%s): Create Desktop Icon" [appname] [reponame]] \ > -initialfile "Git [reponame].lnk"] > if {$fn != {}} { > if {[file extension $fn] ne {.lnk}} { >@@ -37,7 +37,7 @@ proc do_cygwin_shortcut {} { > } > set fn [tk_getSaveFile \ > -parent . \ >- -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ >+ -title [mc "%s (%s): Create Desktop Icon" [appname] [reponame]] \ > -initialdir $desktop \ > -initialfile "Git [reponame].lnk"] > if {$fn != {}} { >@@ -69,7 +69,7 @@ proc do_macosx_app {} { > > set fn [tk_getSaveFile \ > -parent . \ >- -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ >+ -title [mc "%s (%s): Create Desktop Icon" [appname] [reponame]] \ > -initialdir [file join $env(HOME) Desktop] \ > -initialfile "Git [reponame].app"] > if {$fn != {}} { >diff --git a/lib/tools_dlg.tcl b/lib/tools_dlg.tcl >index 7eeda9d..c05413c 100644 >--- a/lib/tools_dlg.tcl >+++ b/lib/tools_dlg.tcl >@@ -19,7 +19,7 @@ constructor dialog {} { > global repo_config use_ttk NS > > make_dialog top w >- wm title $top [append "[appname] ([reponame]): " [mc "Add Tool"]] >+ wm title $top [mc "%s (%s): Add Tool" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > wm transient $top . >@@ -184,7 +184,7 @@ constructor dialog {} { > load_config 1 > > make_dialog top w >- wm title $top [append "[appname] ([reponame]): " [mc "Remove Tool"]] >+ wm title $top [mc "%s (%s): Remove Tool" [appname] [reponame]] > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > wm transient $top . >@@ -280,7 +280,7 @@ constructor dialog {fullname} { > } > > make_dialog top w -autodelete 0 >- wm title $top [append "[appname] ([reponame]): " $title] >+ wm title $top "[mc "%s (%s):" [appname] [reponame]] $title" > if {$top ne {.}} { > wm geometry $top "+[winfo rootx .]+[winfo rooty .]" > wm transient $top . >diff --git a/lib/transport.tcl b/lib/transport.tcl >index e5d211e..a1a424a 100644 >--- a/lib/transport.tcl >+++ b/lib/transport.tcl >@@ -226,7 +226,7 @@ proc do_push_anywhere {} { > bind $w <Visibility> "grab $w; focus $w.buttons.create" > bind $w <Key-Escape> "destroy $w" > bind $w <Key-Return> [list start_push_anywhere_action $w] >- wm title $w [append "[appname] ([reponame]): " [mc "Push"]] >+ wm title $w [mc "%s (%s): Push" [appname] [reponame]] > wm deiconify $w > tkwait window $w > } Well spotted! -- Pat Thoyts http://www.patthoyts.tk/ PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD