Code

git-gui: Initialize Tcl's msgcat library for internationalization
authorShawn O. Pearce <spearce@spearce.org>
Sun, 2 Sep 2007 02:22:42 +0000 (22:22 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 2 Sep 2007 02:22:42 +0000 (22:22 -0400)
Tcl's msgcat library and corresponding mc procedure can locate a
translated string for any user message, provided that it is first
given a directory where the *.msg files are located containing the
translations.

During installation we will place the translations in lib/msgs/,
so we need to inform msgcat of this location once we determine it
during startup.  Our source code tree however will store all of
the translations within the po/ directory, so we need to special
case this variant.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh

index 4ea6e91b01c486e67943f990ea235a1bf8d0ac23..486d36ee19863e9804399f096fd337b452432464 100755 (executable)
@@ -51,8 +51,12 @@ set oguirel {@@GITGUI_RELATIVE@@}
 if {$oguirel eq {1}} {
        set oguilib [file dirname [file dirname [file normalize $argv0]]]
        set oguilib [file join $oguilib share git-gui lib]
+       set oguimsg [file join $oguilib msgs]
 } elseif {[string match @@* $oguirel]} {
        set oguilib [file join [file dirname [file normalize $argv0]] lib]
+       set oguimsg [file join [file dirname [file normalize $argv0]] po]
+} else {
+       set oguimsg [file join $oguilib msgs]
 }
 unset oguirel
 
@@ -74,6 +78,16 @@ if {![catch {set _verbose $env(GITGUI_VERBOSE)}]} {
        }
 }
 
+######################################################################
+##
+## Internationalization (i18n) through msgcat and gettext. See
+## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
+
+package require msgcat
+namespace import ::msgcat::mc
+::msgcat::mcload $oguimsg
+unset oguimsg
+
 ######################################################################
 ##
 ## read only globals