Re: [PATCH 1/2] gitk: Import msgcat for translation support

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 1/2] gitk: Import msgcat for translation support

From: Brett Schwarz <hidden>
Date: 2016-06-15 22:43:24

----- Original Message ----
From: Paul Mackerras <redacted>
To: Christian Stimming <redacted>
Cc: git@vger.kernel.org
Sent: Friday, July 27, 2007 4:53:28 PM
Subject: Re: [PATCH 1/2] gitk: Import msgcat for translation support

Christian Stimming writes:
quoted
Import tcl's msgcat package to have the [mc...] procedure for  
translation available.
I would prefer

if {[catch {
    package require msgcat
    # rest of your new stuff
}]} {
    proc mc {str} {
    return $str
    }
}

so that everything still works if msgcat isn't available.  In other
words I don't want to introduce a possible regression by increasing
gitk's requirements.
Junio already replied to this, and he was correct. However, this made me think
of something (that probably should be in git-gui as well) to make it a little
more robust. We should check that the msg directory is where we think it is,
and either give a warning, or exit the app (I would vote for the former).

So, something like:

set msgdir [file join . msgs]      ;# or whatever this turns out to be
if {[file exists $msgdir]} {
    ::msgcat::mcload $msgdir
} else {
    puts stderr "WTF: can't find message catalog directory"
}

Or you could just use [catch] around the ::msgcat::mcload too.


Regards,
    --brett




       
____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/  

Re: [PATCH 1/2] gitk: Import msgcat for translation support

From: Christian Stimming <hidden>
Date: 2016-06-15 22:43:24

Am Samstag, 28. Juli 2007 09:28 schrieb Brett Schwarz:
quoted
quoted
Import tcl's msgcat package to have the [mc...] procedure for
translation available.
if {[catch {
    package require msgcat
    # rest of your new stuff
}]} {
    proc mc {str} {
    return $str
    }
}

so that everything still works if msgcat isn't available.  
Junio already replied to this, and he was correct. 
The conclusion is that tcl8.1 is old enough so that you can safely assume 
msgcat exists? Or rather: Gitk probably requires tcl8.1 anyway (is there a 
known required tcl version for gitk?), and hence this can be relied upon here 
as well.
However, this made me 
think of something (that probably should be in git-gui as well) to make it
a little more robust. We should check that the msg directory is where we
think it is, and either give a warning, or exit the app (I would vote for
the former).
From what I've seen during testing, if the directory passed to msgload doesn't 
exists, the function simply does nothing. Its documentation doesn't say what 
is going to happen on a non-existing directory, though:
http://www.tcl.tk/man/tcl8.4/TclCmd/msgcat.htm#M10
set msgdir [file join . msgs]      ;# or whatever this turns out to be
if {[file exists $msgdir]} {
    ::msgcat::mcload $msgdir
} else {
    puts stderr "WTF: can't find message catalog directory"
}

Or you could just use [catch] around the ::msgcat::mcload too.
I don't think [catch] changes anything, as the function rather seems to be 
no-op on nonexisting directory. So I think this wouldn't 
improve "robustness". I think this would only help in order to point out to 
the user that no translation has been found; however, it can't be known at 
this point whether this happens only because no translation exists, or 
whether there was some error in the installation. Probably only the latter is 
actually interesting to the user. 

Well, in conclusion I think the msgcat function is already robust enough and 
neither [catch] nor the directory checking buys us anything here.

Christian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help