* Re: [PATCH] Internationalization of git-gui
@ 2007-07-19 17:33 Brett Schwarz
2007-07-20 5:04 ` Shawn O. Pearce
2007-07-20 9:03 ` [PATCH] " Christian Stimming
0 siblings, 2 replies; 69+ messages in thread
From: Brett Schwarz @ 2007-07-19 17:33 UTC (permalink / raw)
To: Christian Stimming, git; +Cc: Paul Mackerras, Shawn O. Pearce
This is a good idea. However, I assume the _ proc is just sugar. It might be better to follow a more "standard" way for this, and just import the msgcat namespace, and then you can just use [mc]. For example:
package require msgcat
namespace import ::msgcat::*
.
.
.
.mbar add cascade -label [mc Repository] -menu .mbar.repository
Also, if the message catalogs are in a common location, then it might be worth looking into having gitk utilize these msg catalogs as well.
Thanks,
--brett
p.s. the frink tool (http://wiki.tcl.tk/2611) is supposed to be able to convert -text and -label switches to use msgcat...it might be worth looking into, instead of manually editing git-gui/gitk
----- Original Message ----
From: Christian Stimming <stimming@tuhh.de>
To: git@vger.kernel.org
Sent: Thursday, July 19, 2007 3:56:57 AM
Subject: [PATCH] Internationalization of git-gui
This is an initial patch of how internationalization (i18n) in git
could be done, starting with the git-gui application (because I need
that one in German to convince my workplace of switching to git).
Does this implementation look okay? If yes, I'd happily i18n'ize the
rest of git-gui and provide a full German translation as well.
Thanks,
Christian Stimming
____________________________________________________________________________________
Sick sense of humor? Visit Yahoo! TV's
Comedy with an Edge to see what's on, when.
http://tv.yahoo.com/collections/222
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-19 17:33 [PATCH] Internationalization of git-gui Brett Schwarz
@ 2007-07-20 5:04 ` Shawn O. Pearce
2007-07-20 8:56 ` Christian Stimming
2007-07-20 9:03 ` [PATCH] " Christian Stimming
1 sibling, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-20 5:04 UTC (permalink / raw)
To: Brett Schwarz; +Cc: Christian Stimming, git, Paul Mackerras
Brett Schwarz <brett_schwarz@yahoo.com> wrote:
> This is a good idea. However, I assume the _ proc is just sugar. It
> might be better to follow a more "standard" way for this, and just
> import the msgcat namespace, and then you can just use [mc]. For
> example:
>
> package require msgcat
> namespace import ::msgcat::*
> .
> .
> .
> .mbar add cascade -label [mc Repository] -menu .mbar.repository
Not just better, I'd prefer it. The proc name "_" is cute but
is just too darn short. I would much prefer to use "mc" and just
say that "mc" in all of git-gui's namespaces is reserved for the
message catalog, much as "cb" is already reserved for setting up
callbacks for Tcl/Tk event handlers.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 5:04 ` Shawn O. Pearce
@ 2007-07-20 8:56 ` Christian Stimming
2007-07-21 2:17 ` Shawn O. Pearce
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-20 8:56 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
Quoting "Shawn O. Pearce" <spearce@spearce.org>:
> Brett Schwarz <brett_schwarz@yahoo.com> wrote:
>> This is a good idea. However, I assume the _ proc is just sugar. It
>> might be better to follow a more "standard" way for this, and just
>> import the msgcat namespace, and then you can just use [mc].
>>
>> package require msgcat
>> namespace import ::msgcat::*
>> .
>> .
>> .mbar add cascade -label [mc Repository] -menu .mbar.repository
>
> Not just better, I'd prefer it. The proc name "_" is cute but
> is just too darn short. I would much prefer to use "mc" and just
> say that "mc" in all of git-gui's namespaces is reserved for the
> message catalog
I used (and prefer) "_" because that's the standard function name for
i18n'd strings when using gettext (talking about a "standard" way). In
that case the convention from C simply carries over to tcl/tk, and
programmers who have worked with gettext in C before, which uses
_("some message"), directly apply what they already know. [mc ..], on
the other hand, would be a tcl-only function name which doesn't give
too much of a hint of what this function does, except for those
programmers who happen to know that tcl's translation is done by a
package called msgcat. One might rather consider something like [tr
...], for "translate", or even [i18n ...].
That being said, I'm rather agnostic on which proc name you really
prefer. Just pick one.
Being a newcomer on this list, could you please explain to me how to
proceed with the i18n patches so far? Do you want to have patches
submitted after some further changes (which ones?) and/or in different
formats? Do you prefer to have all changes in a smaller number of
commit rather than split the way I did before? Should I wait for some
more days/weeks/whatever until you or particular other developers have
reviewed the patches? Thanks.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 8:56 ` Christian Stimming
@ 2007-07-21 2:17 ` Shawn O. Pearce
2007-07-21 7:50 ` Christian Stimming
0 siblings, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-21 2:17 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> I used (and prefer) "_" because that's the standard function name for
> i18n'd strings when using gettext (talking about a "standard" way).
I thought about this today. I almost want to use _, e.g:
proc _ {args} {
return [eval mc $args]
}
For the translation, but I don't think its worth the CPU cycles in
Tcl to eval mc via _ every time we need a string when it only is
saving us one keystroke on a function name, *and* we are breaking
tradition with Tcl.
So when in Rome, wear a toga. Or in this case, use [mc ...].
> Being a newcomer on this list, could you please explain to me how to
> proceed with the i18n patches so far?
Sure.
> Do you want to have patches
> submitted after some further changes (which ones?)
Yes. Here's a few to get started with and that are really obvious.
Some I'm just asking for more information on.
- Import msgcat::mc and use [mc] instead of [_].
- Please combine the second and third patches into a single change.
There is no reason to switch to [mc {}] only to switch to [mc ""].
- Please use mc's formatting support, rather than [format].
Its shorter code.
- Don't bother trying to translate the strings "Tools" (for the
Tools menu) or "Migrate" (for its only menu option). This block
of code doesn't even belong in git-gui. Its for my day-job and
is a custom hack that I need to strip out and carry as a local
patch there, rather than in the public distribution.
- In our Makefile we do the looping in GNU make using its
$(foreach) operator, rather than using the shell's for builtin.
In other words, can we have the catalog target look more like the
install target?
- Can ALL_LINGUAS be automatically built from the directory
contents of the po/ directory?
- Can we define a dist rule for the maintainer to build the catalog
files, so the maintainer can convert the .po -> .msg for Tcl and
the user doesn't need the GNU tools installed to build git-gui?
> and/or in different
> formats?
Please send one patch per email message, inline and not attached.
This way they are easy to review, respond to and comment on.
> Do you prefer to have all changes in a smaller number of
> commit rather than split the way I did before?
No, this series looks reasonably fine to me structurally.
Did you base the patches on git.git's git-gui/ subdirectory, or
did you base them on the git-gui.git repository? Technically all
patches for git-gui should be against the git-gui repository on
repo.or.cz, as git-gui is its own project. Periodic stable snapshots
are imported into git.git under the git-gui/ subdirectory, for the
ease of distribution with core git.
Dscho recently created a fork of git-gui.git here:
http://repo.or.cz/w/git-gui/git-gui-i18n.git
and added your patch series into it. But I'd like to see some
cleanups before it merges in, and I want to hold off on actually
applying it into git-gui 0.8.0 is released, which should be Real
Soon Now as I'm trying to make it into git 1.5.3, which is coming
Even Sooner Than I'd Hoped. ;-)
> Should I wait for some
> more days/weeks/whatever until you or particular other developers have
> reviewed the patches? Thanks.
I think we're settled on using [mc]. I'm fine with the *.po ->
*.msg thing, especially if the maintainer can produce them and
package the *.msg files in the release tarball, so that the enduser
doesn't need to worry about msgfmt working.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 2:17 ` Shawn O. Pearce
@ 2007-07-21 7:50 ` Christian Stimming
2007-07-21 8:03 ` Shawn O. Pearce
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 7:50 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
Thanks for the detailed feedback.
Am Samstag, 21. Juli 2007 04:17 schrieb Shawn O. Pearce:
> Christian Stimming <stimming@tuhh.de> wrote:
> > I used (and prefer) "_" because that's the standard function name for
> > i18n'd strings when using gettext (talking about a "standard" way).
>
> but I don't think its worth the CPU cycles in
> Tcl to eval mc via _ every time we need a string when it only is
> saving us one keystroke on a function name,
The actual lookup of the string in the translation catalog far outweighs the
discussion of one extra function evaluation, but if that's what you prefer -
> *and* we are breaking tradition with Tcl.
>
> So when in Rome, wear a toga. Or in this case, use [mc ...].
Ok.
> > Do you want to have patches
> > submitted after some further changes (which ones?)
>
> Yes. Here's a few to get started with and that are really obvious.
> Some I'm just asking for more information on.
>
> - Import msgcat::mc and use [mc] instead of [_].
Will do.
> - Please combine the second and third patches into a single change.
> There is no reason to switch to [mc {}] only to switch to [mc ""].
Will do.
> - Please use mc's formatting support, rather than [format].
> Its shorter code.
Didn't know about that (you know, C gettext doesn't have that), and I'll have
to check whether this might confuse xgettext on string extraction, but will
probably be done.
> - Don't bother trying to translate the strings "Tools" (for the
> Tools menu) or "Migrate" (for its only menu option). This block
> of code doesn't even belong in git-gui. Its for my day-job and
> is a custom hack that I need to strip out and carry as a local
> patch there, rather than in the public distribution.
Err... from looking at the code, it's not quite clear to me whether any code
parts like these are not publicly shown to the user. For that reason I rather
translated everything that was currently available in the file. But I'll
happily remove this from the patch.
> - In our Makefile we do the looping in GNU make using its
> $(foreach) operator, rather than using the shell's for builtin.
> In other words, can we have the catalog target look more like the
> install target?
Sure. I did it this way because I'm more used to the shell syntax, but I'll
change that.
> - Can ALL_LINGUAS be automatically built from the directory
> contents of the po/ directory?
Yes. I used this one because this variable always appears in gettext's
autoconf infrastructure, but it's not required here. Will remove it.
> - Can we define a dist rule for the maintainer to build the catalog
> files, so the maintainer can convert the .po -> .msg for Tcl and
> the user doesn't need the GNU tools installed to build git-gui?
Yes, I'll try to add that, but I'd need further feedback and testing whether
it actually works.
> > and/or in different
> > formats?
>
> Please send one patch per email message, inline and not attached.
> This way they are easy to review, respond to and comment on.
I'll try to do that, but at the workplace where I work on this issue I'm
forced to use a webmailer and I have to check whether this leaves the patches
intact.
> > Do you prefer to have all changes in a smaller number of
> > commit rather than split the way I did before?
>
> No, this series looks reasonably fine to me structurally.
>
> Did you base the patches on git.git's git-gui/ subdirectory,
Yes.
> or
> did you base them on the git-gui.git repository? Technically all
> patches for git-gui should be against the git-gui repository on
> repo.or.cz, as git-gui is its own project.
Will do.
> Dscho recently created a fork of git-gui.git here:
>
> http://repo.or.cz/w/git-gui/git-gui-i18n.git
>
> and added your patch series into it. But I'd like to see some
> cleanups before it merges in, and I want to hold off on actually
> applying it into git-gui 0.8.0 is released,
Was this meant to say "hold off until git-gui 0.8.0 is released"? Sure, no
problem.
I'll submit an updated set of patches by beginning of next week. Thank you
very much for the feedback.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 7:50 ` Christian Stimming
@ 2007-07-21 8:03 ` Shawn O. Pearce
2007-07-21 12:33 ` [PATCH 1/5] " Christian Stimming
0 siblings, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-21 8:03 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> Thanks for the detailed feedback.
Thanks for working on this! Its something I knew we need to do,
but hadn't brought myself to do, because I speak English, and pretty
much only English. Unless Tcl counts. ;-)
> Am Samstag, 21. Juli 2007 04:17 schrieb Shawn O. Pearce:
> >
> > Please send one patch per email message, inline and not attached.
> > This way they are easy to review, respond to and comment on.
>
> I'll try to do that, but at the workplace where I work on this issue I'm
> forced to use a webmailer and I have to check whether this leaves the patches
> intact.
Can you push to the mob branch on repo.or.cz? Or setup your own
git-gui fork repository there? Or someplace? If so you can still
copy and paste the message into email for quick review and comment,
but I can actually pull the Git objects from a repository, and I
know Git won't corrupt things.
> > Dscho recently created a fork of git-gui.git here:
> >
> > http://repo.or.cz/w/git-gui/git-gui-i18n.git
> >
> > and added your patch series into it. But I'd like to see some
> > cleanups before it merges in, and I want to hold off on actually
> > applying it into git-gui 0.8.0 is released,
>
> Was this meant to say "hold off until git-gui 0.8.0 is released"? Sure, no
> problem.
More or less. I'm interested in this series, so I'm happy to get the
patches. But I won't put them into 0.8.0, as I think it is too late
in the development period. Especially for a build system change.
I've had too many bugs because of changes to the Makefile in prior
versions of git-gui. But I am hoping that they will be among the
very first things applied after I tag 0.8.0 and start the 0.9.0
development cycle. :-)
> I'll submit an updated set of patches by beginning of next week. Thank you
> very much for the feedback.
Thanks.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 8:03 ` Shawn O. Pearce
@ 2007-07-21 12:33 ` Christian Stimming
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
` (2 more replies)
0 siblings, 3 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 12:33 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
>From 18d783abd85e074c302c5e7979dfb242b3c6c386 Mon Sep 17 00:00:00 2001
From: Christian Stimming <chs@ckiste.goetheallee>
Date: Sat, 21 Jul 2007 13:51:48 +0200
Subject: [PATCH] Initialize msgcat (gettext).
Use [mc ...] as function name for translating user messages.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
This patch starts over from before the first i18n patch has been applied and
takes into account all discussion with Shawn. Currently I don't quite know
how to apply these patches to the "mob" branch because one would have
to first revert those patches from me that have been applied there... Thanks.
git-gui.sh | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index c5ff7c8..0c5ca46 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -108,6 +108,12 @@ if {$idx ne {}} {
}
unset -nocomplain oguirel idx fd
+## Internationalization (i18n) through msgcat and gettext. See
+## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
+package require msgcat
+::msgcat::mcload [file join $oguilib msgs]
+namespace import ::msgcat::mc
+
######################################################################
##
## read only globals
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH 2/5] Internationalization of git-gui
2007-07-21 12:33 ` [PATCH 1/5] " Christian Stimming
@ 2007-07-21 12:34 ` Christian Stimming
2007-07-21 12:36 ` [PATCH 3/5] " Christian Stimming
2007-07-22 7:45 ` [PATCH 2/5] " Shawn O. Pearce
2007-07-21 14:22 ` [PATCH 1/5] " Johannes Schindelin
2007-07-22 7:38 ` Shawn O. Pearce
2 siblings, 2 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 12:34 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
>From d2d2dde44790c3d239d69d7250e9949b6ff002c2 Mon Sep 17 00:00:00 2001
From: Christian Stimming <chs@ckiste.goetheallee>
Date: Sat, 21 Jul 2007 14:21:34 +0200
Subject: [PATCH] Mark strings for translation.
The procedure [mc ...] will translate the strings through msgcat.
Strings must be enclosed in quotes, not in braces, because otherwise
xgettext cannot extract them properly, although on the Tcl side both
delimiters would work fine.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
Here I marked much more strings than in the previous patch, and as discussed
the procedure [mc ...] is used for translation. Actually I think this pretty much
caught all occurrences of user-visible strings in *this* file; there will be many
more strings in all the other files, of course.
git-gui.sh | 170 ++++++++++++++++++++++++++++++------------------------------
1 files changed, 85 insertions(+), 85 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index 0c5ca46..95dac55 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1653,18 +1653,18 @@ set ui_comm {}
# -- Menu Bar
#
menu .mbar -tearoff 0
-.mbar add cascade -label Repository -menu .mbar.repository
-.mbar add cascade -label Edit -menu .mbar.edit
+.mbar add cascade -label [mc Repository] -menu .mbar.repository
+.mbar add cascade -label [mc Edit] -menu .mbar.edit
if {[is_enabled branch]} {
- .mbar add cascade -label Branch -menu .mbar.branch
+ .mbar add cascade -label [mc Branch] -menu .mbar.branch
}
if {[is_enabled multicommit] || [is_enabled singlecommit]} {
- .mbar add cascade -label Commit -menu .mbar.commit
+ .mbar add cascade -label [mc Commit] -menu .mbar.commit
}
if {[is_enabled transport]} {
- .mbar add cascade -label Merge -menu .mbar.merge
- .mbar add cascade -label Fetch -menu .mbar.fetch
- .mbar add cascade -label Push -menu .mbar.push
+ .mbar add cascade -label [mc Merge] -menu .mbar.merge
+ .mbar add cascade -label [mc Fetch] -menu .mbar.fetch
+ .mbar add cascade -label [mc Push] -menu .mbar.push
}
. configure -menu .mbar
@@ -1673,7 +1673,7 @@ if {[is_enabled transport]} {
menu .mbar.repository
.mbar.repository add command \
- -label {Browse Current Branch's Files} \
+ -label [mc "Browse Current Branch's Files"] \
-command {browser::new $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Browse \$current_branch's Files\" ;#"
.mbar.repository add command \
@@ -1682,69 +1682,69 @@ trace add variable current_branch write ".mbar.repository entryconf [.mbar.repos
.mbar.repository add separator
.mbar.repository add command \
- -label {Visualize Current Branch's History} \
+ -label [mc "Visualize Current Branch's History"] \
-command {do_gitk $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Visualize \$current_branch's History\" ;#"
.mbar.repository add command \
- -label {Visualize All Branch History} \
+ -label [mc "Visualize All Branch History"] \
-command {do_gitk --all}
.mbar.repository add separator
if {[is_enabled multicommit]} {
- .mbar.repository add command -label {Database Statistics} \
+ .mbar.repository add command -label [mc "Database Statistics"] \
-command do_stats
- .mbar.repository add command -label {Compress Database} \
+ .mbar.repository add command -label [mc "Compress Database"] \
-command do_gc
- .mbar.repository add command -label {Verify Database} \
+ .mbar.repository add command -label [mc "Verify Database"] \
-command do_fsck_objects
.mbar.repository add separator
if {[is_Cygwin]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [mc "Create Desktop Icon"] \
-command do_cygwin_shortcut
} elseif {[is_Windows]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [mc "Create Desktop Icon"] \
-command do_windows_shortcut
} elseif {[is_MacOSX]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [mc "Create Desktop Icon"] \
-command do_macosx_app
}
}
-.mbar.repository add command -label Quit \
+.mbar.repository add command -label [mc Quit] \
-command do_quit \
-accelerator $M1T-Q
# -- Edit Menu
#
menu .mbar.edit
-.mbar.edit add command -label Undo \
+.mbar.edit add command -label [mc Undo] \
-command {catch {[focus] edit undo}} \
-accelerator $M1T-Z
-.mbar.edit add command -label Redo \
+.mbar.edit add command -label [mc Redo] \
-command {catch {[focus] edit redo}} \
-accelerator $M1T-Y
.mbar.edit add separator
-.mbar.edit add command -label Cut \
+.mbar.edit add command -label [mc Cut] \
-command {catch {tk_textCut [focus]}} \
-accelerator $M1T-X
-.mbar.edit add command -label Copy \
+.mbar.edit add command -label [mc Copy] \
-command {catch {tk_textCopy [focus]}} \
-accelerator $M1T-C
-.mbar.edit add command -label Paste \
+.mbar.edit add command -label [mc Paste] \
-command {catch {tk_textPaste [focus]; [focus] see insert}} \
-accelerator $M1T-V
-.mbar.edit add command -label Delete \
+.mbar.edit add command -label [mc Delete] \
-command {catch {[focus] delete sel.first sel.last}} \
-accelerator Del
.mbar.edit add separator
-.mbar.edit add command -label {Select All} \
+.mbar.edit add command -label [mc "Select All"] \
-command {catch {[focus] tag add sel 0.0 end}} \
-accelerator $M1T-A
@@ -1753,29 +1753,29 @@ menu .mbar.edit
if {[is_enabled branch]} {
menu .mbar.branch
- .mbar.branch add command -label {Create...} \
+ .mbar.branch add command -label [mc "Create..."] \
-command branch_create::dialog \
-accelerator $M1T-N
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Checkout...} \
+ .mbar.branch add command -label [mc "Checkout..."] \
-command branch_checkout::dialog \
-accelerator $M1T-O
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Rename...} \
+ .mbar.branch add command -label [mc "Rename..."] \
-command branch_rename::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Delete...} \
+ .mbar.branch add command -label [mc "Delete..."] \
-command branch_delete::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Reset...} \
+ .mbar.branch add command -label [mc "Reset..."] \
-command merge::reset_hard
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
@@ -1787,7 +1787,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
menu .mbar.commit
.mbar.commit add radiobutton \
- -label {New Commit} \
+ -label [mc "New Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value new
@@ -1795,7 +1795,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add radiobutton \
- -label {Amend Last Commit} \
+ -label [mc "Amend Last Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value amend
@@ -1804,40 +1804,40 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
.mbar.commit add separator
- .mbar.commit add command -label Rescan \
+ .mbar.commit add command -label [mc Rescan] \
-command do_rescan \
-accelerator F5
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Add To Commit} \
+ .mbar.commit add command -label [mc "Add To Commit"] \
-command do_add_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Add Existing To Commit} \
+ .mbar.commit add command -label [mc "Add Existing To Commit"] \
-command do_add_all \
-accelerator $M1T-I
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Unstage From Commit} \
+ .mbar.commit add command -label [mc "Unstage From Commit"] \
-command do_unstage_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Revert Changes} \
+ .mbar.commit add command -label [mc "Revert Changes"] \
-command do_revert_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add separator
- .mbar.commit add command -label {Sign Off} \
+ .mbar.commit add command -label [mc "Sign Off"] \
-command do_signoff \
-accelerator $M1T-S
- .mbar.commit add command -label Commit \
+ .mbar.commit add command -label [mc Commit] \
-command do_commit \
-accelerator $M1T-Return
lappend disable_on_lock \
@@ -1848,12 +1848,12 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
#
if {[is_enabled branch]} {
menu .mbar.merge
- .mbar.merge add command -label {Local Merge...} \
+ .mbar.merge add command -label [mc "Local Merge..."] \
-command merge::dialog \
-accelerator $M1T-M
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
- .mbar.merge add command -label {Abort Merge...} \
+ .mbar.merge add command -label [mc "Abort Merge..."] \
-command merge::reset_hard
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
@@ -1865,28 +1865,28 @@ if {[is_enabled transport]} {
menu .mbar.fetch
menu .mbar.push
- .mbar.push add command -label {Push...} \
+ .mbar.push add command -label [mc "Push..."] \
-command do_push_anywhere \
-accelerator $M1T-P
- .mbar.push add command -label {Delete...} \
+ .mbar.push add command -label [mc "Delete..."] \
-command remote_branch_delete::dialog
}
if {[is_MacOSX]} {
# -- Apple Menu (Mac OS X only)
#
- .mbar add cascade -label Apple -menu .mbar.apple
+ .mbar add cascade -label [mc Apple] -menu .mbar.apple
menu .mbar.apple
- .mbar.apple add command -label "About [appname]" \
+ .mbar.apple add command -label [mc "About %s" appname] \
-command do_about
- .mbar.apple add command -label "Options..." \
+ .mbar.apple add command -label [mc "Options..."] \
-command do_options
} else {
# -- Edit Menu
#
.mbar.edit add separator
- .mbar.edit add command -label {Options...} \
+ .mbar.edit add command -label [mc "Options..."] \
-command do_options
# -- Tools Menu
@@ -1921,11 +1921,11 @@ if {[is_MacOSX]} {
# -- Help Menu
#
-.mbar add cascade -label Help -menu .mbar.help
+.mbar add cascade -label [mc Help] -menu .mbar.help
menu .mbar.help
if {![is_MacOSX]} {
- .mbar.help add command -label "About [appname]" \
+ .mbar.help add command -label [mc "About %s" appname] \
-command do_about
}
@@ -1962,7 +1962,7 @@ if {[file isfile $doc_path]} {
}
if {$browser ne {}} {
- .mbar.help add command -label {Online Documentation} \
+ .mbar.help add command -label [mc "Online Documentation"] \
-command [list exec $browser $doc_url &]
}
unset browser doc_path doc_url
@@ -2078,7 +2078,7 @@ frame .branch \
-borderwidth 1 \
-relief sunken
label .branch.l1 \
- -text {Current Branch:} \
+ -text [mc "Current Branch:"] \
-anchor w \
-justify left
label .branch.cb \
@@ -2099,7 +2099,7 @@ pack .vpane -anchor n -side top -fill both -expand 1
# -- Index File List
#
frame .vpane.files.index -height 100 -width 200
-label .vpane.files.index.title -text {Staged Changes (Will Be Committed)} \
+label .vpane.files.index.title -text [mc "Staged Changes (Will Be Committed)"] \
-background lightgreen
text $ui_index -background white -borderwidth 0 \
-width 20 -height 10 \
@@ -2119,7 +2119,7 @@ pack $ui_index -side left -fill both -expand 1
# -- Working Directory File List
#
frame .vpane.files.workdir -height 100 -width 200
-label .vpane.files.workdir.title -text {Unstaged Changes (Will Not Be Committed)} \
+label .vpane.files.workdir.title -text [mc "Unstaged Changes (Will Not Be Committed)"] \
-background lightsalmon
text $ui_workdir -background white -borderwidth 0 \
-width 20 -height 10 \
@@ -2160,29 +2160,29 @@ label .vpane.lower.commarea.buttons.l -text {} \
pack .vpane.lower.commarea.buttons.l -side top -fill x
pack .vpane.lower.commarea.buttons -side left -fill y
-button .vpane.lower.commarea.buttons.rescan -text {Rescan} \
+button .vpane.lower.commarea.buttons.rescan -text [mc Rescan] \
-command do_rescan
pack .vpane.lower.commarea.buttons.rescan -side top -fill x
lappend disable_on_lock \
{.vpane.lower.commarea.buttons.rescan conf -state}
-button .vpane.lower.commarea.buttons.incall -text {Add Existing} \
+button .vpane.lower.commarea.buttons.incall -text [mc "Add Existing"] \
-command do_add_all
pack .vpane.lower.commarea.buttons.incall -side top -fill x
lappend disable_on_lock \
{.vpane.lower.commarea.buttons.incall conf -state}
-button .vpane.lower.commarea.buttons.signoff -text {Sign Off} \
+button .vpane.lower.commarea.buttons.signoff -text [mc "Sign Off"] \
-command do_signoff
pack .vpane.lower.commarea.buttons.signoff -side top -fill x
-button .vpane.lower.commarea.buttons.commit -text {Commit} \
+button .vpane.lower.commarea.buttons.commit -text [mc Commit] \
-command do_commit
pack .vpane.lower.commarea.buttons.commit -side top -fill x
lappend disable_on_lock \
{.vpane.lower.commarea.buttons.commit conf -state}
-button .vpane.lower.commarea.buttons.push -text {Push} \
+button .vpane.lower.commarea.buttons.push -text [mc Push] \
-command do_push_anywhere
pack .vpane.lower.commarea.buttons.push -side top -fill x
@@ -2193,14 +2193,14 @@ frame .vpane.lower.commarea.buffer.header
set ui_comm .vpane.lower.commarea.buffer.t
set ui_coml .vpane.lower.commarea.buffer.header.l
radiobutton .vpane.lower.commarea.buffer.header.new \
- -text {New Commit} \
+ -text [mc "New Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value new
lappend disable_on_lock \
[list .vpane.lower.commarea.buffer.header.new conf -state]
radiobutton .vpane.lower.commarea.buffer.header.amend \
- -text {Amend Last Commit} \
+ -text [mc "Amend Last Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value amend
@@ -2212,12 +2212,12 @@ label $ui_coml \
proc trace_commit_type {varname args} {
global ui_coml commit_type
switch -glob -- $commit_type {
- initial {set txt {Initial Commit Message:}}
- amend {set txt {Amended Commit Message:}}
- amend-initial {set txt {Amended Initial Commit Message:}}
- amend-merge {set txt {Amended Merge Commit Message:}}
- merge {set txt {Merge Commit Message:}}
- * {set txt {Commit Message:}}
+ initial {set txt [mc "Initial Commit Message:"]}
+ amend {set txt [mc "Amended Commit Message:"]}
+ amend-initial {set txt [mc "Amended Initial Commit Message:"]}
+ amend-merge {set txt [mc "Amended Merge Commit Message:"]}
+ merge {set txt [mc "Merge Commit Message:"]}
+ * {set txt [mc "Commit Message:"]}
}
$ui_coml conf -text $txt
}
@@ -2246,23 +2246,23 @@ pack .vpane.lower.commarea.buffer -side left -fill y
set ctxm .vpane.lower.commarea.buffer.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Cut} \
+ -label [mc Cut] \
-command {tk_textCut $ui_comm}
$ctxm add command \
- -label {Copy} \
+ -label [mc Copy] \
-command {tk_textCopy $ui_comm}
$ctxm add command \
- -label {Paste} \
+ -label [mc Paste] \
-command {tk_textPaste $ui_comm}
$ctxm add command \
- -label {Delete} \
+ -label [mc Delete] \
-command {$ui_comm delete sel.first sel.last}
$ctxm add separator
$ctxm add command \
- -label {Select All} \
+ -label [mc "Select All"] \
-command {focus $ui_comm;$ui_comm tag add sel 0.0 end}
$ctxm add command \
- -label {Copy All} \
+ -label [mc "Copy All"] \
-command {
$ui_comm tag add sel 0.0 end
tk_textCopy $ui_comm
@@ -2270,7 +2270,7 @@ $ctxm add command \
}
$ctxm add separator
$ctxm add command \
- -label {Sign Off} \
+ -label [mc "Sign Off"] \
-command do_signoff
bind_button3 $ui_comm "tk_popup $ctxm %X %Y"
@@ -2320,7 +2320,7 @@ pack .vpane.lower.diff.header.path -fill x
set ctxm .vpane.lower.diff.header.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Copy} \
+ -label [mc Copy] \
-command {
clipboard clear
clipboard append \
@@ -2388,19 +2388,19 @@ $ui_diff tag raise sel
set ctxm .vpane.lower.diff.body.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Refresh} \
+ -label [mc Refresh] \
-command reshow_diff
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Copy} \
+ -label [mc Copy] \
-command {tk_textCopy $ui_diff}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Select All} \
+ -label [mc "Select All"] \
-command {focus $ui_diff;$ui_diff tag add sel 0.0 end}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Copy All} \
+ -label [mc "Copy All"] \
-command {
$ui_diff tag add sel 0.0 end
tk_textCopy $ui_diff
@@ -2409,44 +2409,44 @@ $ctxm add command \
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label {Apply/Reverse Hunk} \
+ -label [mc "Apply/Reverse Hunk"] \
-command {apply_hunk $cursorX $cursorY}
set ui_diff_applyhunk [$ctxm index last]
lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state]
$ctxm add separator
$ctxm add command \
- -label {Decrease Font Size} \
+ -label [mc "Decrease Font Size"] \
-command {incr_font_size font_diff -1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Increase Font Size} \
+ -label [mc "Increase Font Size"] \
-command {incr_font_size font_diff 1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label {Show Less Context} \
+ -label [mc "Show Less Context"] \
-command {if {$repo_config(gui.diffcontext) >= 1} {
incr repo_config(gui.diffcontext) -1
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Show More Context} \
+ -label [mc "Show More Context"] \
-command {if {$repo_config(gui.diffcontext) < 99} {
incr repo_config(gui.diffcontext)
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
-$ctxm add command -label {Options...} \
+$ctxm add command -label [mc "Options..."] \
-command do_options
bind_button3 $ui_diff "
set cursorX %x
set cursorY %y
if {\$ui_index eq \$current_diff_side} {
- $ctxm entryconf $ui_diff_applyhunk -label {Unstage Hunk From Commit}
+ $ctxm entryconf $ui_diff_applyhunk -label [mc {Unstage Hunk From Commit}]
} else {
- $ctxm entryconf $ui_diff_applyhunk -label {Stage Hunk For Commit}
+ $ctxm entryconf $ui_diff_applyhunk -label [mc {Stage Hunk For Commit}]
}
tk_popup $ctxm %X %Y
"
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
@ 2007-07-21 12:36 ` Christian Stimming
2007-07-21 12:37 ` Christian Stimming
2007-07-22 7:45 ` [PATCH 2/5] " Shawn O. Pearce
1 sibling, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 12:36 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
>From cf68c8b36399d46f63e417e99c6783411213a55a Mon Sep 17 00:00:00 2001
From: Christian Stimming <chs@ckiste.goetheallee>
Date: Sat, 21 Jul 2007 14:17:07 +0200
Subject: [PATCH] Makefile rules for translation catalog generation and installation.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
As discussed I've replaced the shell for() by the GNU make foreach. Also, there
isn't an ALL_LINGUAS variable anymore; we simply use all *.po files under po/.
Makefile | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index 1bac6fe..52975a7 100644
--- a/Makefile
+++ b/Makefile
@@ -103,6 +103,21 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
$(GITGUI_BUILT_INS): git-gui
$(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
+XGETTEXT ?= xgettext
+msgsdir ?= $(libdir)/msgs
+msgsdir_SQ = $(subst ','\'',$(msgsdir))
+PO_TEMPLATE = po/git-gui.pot
+ALL_POFILES = $(wildcard po/*.po)
+ALL_MSGFILES = $(subst .po,.msg,$(ALL_POFILES))
+
+$(PO_TEMPLATE): $(SCRIPT_SH) $(ALL_LIBFILES)
+ $(XGETTEXT) -kmc -LTcl -o $@ $(SCRIPT_SH) $(ALL_LIBFILES)
+update-po:: $(PO_TEMPLATE)
+ $(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) )
+$(ALL_MSGFILES): %.msg : %.po
+ @echo Generating catalog $@
+ msgfmt --statistics --tcl $< -l $(basename $(notdir $<)) -d $(dir $@)
+
lib/tclIndex: $(ALL_LIBFILES)
$(QUIET_INDEX)if echo \
$(foreach p,$(PRELOAD_FILES),source $p\;) \
@@ -136,7 +151,7 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
echo 1>$@ "$$VARS"; \
fi
-all:: $(ALL_PROGRAMS) lib/tclIndex
+all:: $(ALL_PROGRAMS) lib/tclIndex $(ALL_MSGFILES)
install: all
$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)
@@ -145,6 +160,8 @@ install: all
$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)
$(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'
$(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
+ $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1)
+ $(QUIET)$(foreach p,$(ALL_MSGFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true
dist-version:
@mkdir -p $(TARDIR)
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 12:36 ` [PATCH 3/5] " Christian Stimming
@ 2007-07-21 12:37 ` Christian Stimming
2007-07-21 12:41 ` [PATCH 5/5] " Christian Stimming
` (2 more replies)
0 siblings, 3 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 12:37 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
From 37241c4142c6bfe18e94a1891dbf1a9d1ee2953d Mon Sep 17 00:00:00 2001
From: Christian Stimming <chs@ckiste.goetheallee>
Date: Sat, 21 Jul 2007 14:18:14 +0200
Subject: [PATCH] Initial German translation for testing of i18n.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
And a new German translation, so far 100% but many more strings are to come.
po/de.po | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 265 insertions(+), 0 deletions(-)
create mode 100644 po/de.po
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..0592836
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,265 @@
+# Translation of git-gui to German.
+# Copyright (C) 2007 Linux Torvalds
+# This file is distributed under the same license as the git package.
+# Christian Stimming <stimming@tuhh.de>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: git-gui\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-19 15:10+0200\n"
+"PO-Revision-Date: 2007-07-19 15:11+0200\n"
+"Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: git-gui.sh:1621
+msgid "Repository"
+msgstr "Projektarchiv"
+
+#: git-gui.sh:1622
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: git-gui.sh:1624
+msgid "Branch"
+msgstr "Zweig"
+
+#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
+msgid "Commit"
+msgstr "Übertragen"
+
+#: git-gui.sh:1630
+msgid "Merge"
+msgstr "Zusammenführen"
+
+#: git-gui.sh:1631
+msgid "Fetch"
+msgstr "Holen"
+
+#: git-gui.sh:1632 git-gui.sh:2140
+msgid "Push"
+msgstr "Schieben"
+
+#: git-gui.sh:1641
+msgid "Browse Current Branch"
+msgstr "Aktuellen Zweig durchblättern"
+
+#: git-gui.sh:1647
+msgid "Visualize Current Branch"
+msgstr "Aktuellen Zweig darstellen"
+
+#: git-gui.sh:1651
+msgid "Visualize All Branches"
+msgstr "Alle Zweige darstellen"
+
+#: git-gui.sh:1656
+msgid "Database Statistics"
+msgstr "Datenbankstatistik"
+
+#: git-gui.sh:1659
+msgid "Compress Database"
+msgstr "Datenbank komprimieren"
+
+#: git-gui.sh:1662
+msgid "Verify Database"
+msgstr "Datenbank prüfen"
+
+#: git-gui.sh:1669 git-gui.sh:1673 git-gui.sh:1677
+msgid "Create Desktop Icon"
+msgstr "Desktop-Icon erstellen"
+
+#: git-gui.sh:1682
+msgid "Quit"
+msgstr "Beenden"
+
+#: git-gui.sh:1689
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: git-gui.sh:1692
+msgid "Redo"
+msgstr "Wiederholen"
+
+#: git-gui.sh:1696 git-gui.sh:2204
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: git-gui.sh:1699 git-gui.sh:2207 git-gui.sh:2278 git-gui.sh:2350
+msgid "Copy"
+msgstr "Kopieren"
+
+#: git-gui.sh:1702 git-gui.sh:2210
+msgid "Paste"
+msgstr "Einfügen"
+
+#: git-gui.sh:1705 git-gui.sh:2213
+msgid "Delete"
+msgstr "Löschen"
+
+#: git-gui.sh:1709 git-gui.sh:2217 git-gui.sh:2354
+msgid "Select All"
+msgstr "Alle auswählen"
+
+#: git-gui.sh:1718
+msgid "Create..."
+msgstr "Erstellen..."
+
+#: git-gui.sh:1724
+msgid "Checkout..."
+msgstr "Auschecken..."
+
+#: git-gui.sh:1730
+msgid "Rename..."
+msgstr "Umbenennen..."
+
+#: git-gui.sh:1735 git-gui.sh:1833
+msgid "Delete..."
+msgstr "Löschen..."
+
+#: git-gui.sh:1740
+msgid "Reset..."
+msgstr "Zurücksetzen..."
+
+#: git-gui.sh:1752 git-gui.sh:2151
+msgid "New Commit"
+msgstr "Neu übertragen"
+
+#: git-gui.sh:1760 git-gui.sh:2158
+msgid "Amend Last Commit"
+msgstr "Letzte Übertragung ergänzen"
+
+#: git-gui.sh:1769 git-gui.sh:2118
+msgid "Rescan"
+msgstr "Neu laden"
+
+#: git-gui.sh:1775
+msgid "Add To Commit"
+msgstr "Zur Bereitstellung hinzufügen"
+
+#: git-gui.sh:1780
+msgid "Add Existing To Commit"
+msgstr "Existierendes zur Bereitstellung hinzufügen"
+
+#: git-gui.sh:1786
+msgid "Unstage From Commit"
+msgstr "Aus der Bereitstellung herausnehmen"
+
+#: git-gui.sh:1791
+msgid "Revert Changes"
+msgstr "Änderungen verwerfen"
+
+#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
+msgid "Sign Off"
+msgstr "Freizeichnen"
+
+#: git-gui.sh:1813
+msgid "Local Merge..."
+msgstr "Lokales Zusammenführen..."
+
+#: git-gui.sh:1817
+msgid "Abort Merge..."
+msgstr "Zusammenführen abbrechen..."
+
+#: git-gui.sh:1830
+msgid "Push..."
+msgstr "Schieben..."
+
+#: git-gui.sh:1840
+msgid "Apple"
+msgstr "Apple"
+
+#: git-gui.sh:1843 git-gui.sh:1888
+#, tcl-format
+msgid "About %s"
+msgstr "Über %s"
+
+#: git-gui.sh:1845 git-gui.sh:1851 git-gui.sh:2396
+msgid "Options..."
+msgstr "Optionen..."
+
+#: git-gui.sh:1873
+msgid "Tools"
+msgstr "Werkzeuge"
+
+#: git-gui.sh:1875
+msgid "Migrate"
+msgstr "Migrieren"
+
+#: git-gui.sh:1884
+msgid "Help"
+msgstr "Hilfe"
+
+#: git-gui.sh:1925
+msgid "Online Documentation"
+msgstr "Online-Dokumentation"
+
+#: git-gui.sh:2036
+msgid "Current Branch:"
+msgstr "Aktueller Zweig:"
+
+#: git-gui.sh:2057
+msgid "Staged Changes (Will Be Committed)"
+msgstr "Bereitgestellte Änderungen (werden übertragen)"
+
+#: git-gui.sh:2077
+msgid "Unstaged Changes (Will Not Be Committed)"
+msgstr "Nicht bereitgestellte Änderungen (werden nicht übertragen)"
+
+#: git-gui.sh:2124
+msgid "Add Existing"
+msgstr "Existierendes hinzufügen"
+
+#: git-gui.sh:2170
+msgid "Initial Commit Message:"
+msgstr "Erstmalige Übertragungsmeldung"
+
+#: git-gui.sh:2171
+msgid "Amended Commit Message:"
+msgstr "Zur Übertragungsmeldung hinzufügen:"
+
+#: git-gui.sh:2172
+msgid "Amended Initial Commit Message:"
+msgstr "Zur erstmaligen Übertragungsmeldung hinzufügen:"
+
+#: git-gui.sh:2173
+msgid "Amended Merge Commit Message:"
+msgstr "Zur Zusammenführungs-Übertragungsmeldung hinzufügen:"
+
+#: git-gui.sh:2174
+msgid "Merge Commit Message:"
+msgstr "Übertragungsmeldung Zusammenführung:"
+
+#: git-gui.sh:2175
+msgid "Commit Message:"
+msgstr "Übertragungsmeldung:"
+
+#: git-gui.sh:2220 git-gui.sh:2358
+msgid "Copy All"
+msgstr "Alle kopieren"
+
+#: git-gui.sh:2346
+msgid "Refresh"
+msgstr "Aktualisieren"
+
+#: git-gui.sh:2367
+msgid "Apply/Reverse Hunk"
+msgstr "Änderung anwenden/umkehren"
+
+#: git-gui.sh:2373
+msgid "Decrease Font Size"
+msgstr "Schriftgröße verkleinern"
+
+#: git-gui.sh:2377
+msgid "Increase Font Size"
+msgstr "Schriftgröße vergrößern"
+
+#: git-gui.sh:2382
+msgid "Show Less Context"
+msgstr "Weniger Kontext anzeigen"
+
+#: git-gui.sh:2389
+msgid "Show More Context"
+msgstr "Mehr Kontext anzeigen"
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH 5/5] Internationalization of git-gui
2007-07-21 12:37 ` Christian Stimming
@ 2007-07-21 12:41 ` Christian Stimming
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
2007-07-22 7:47 ` [PATCH 3/5] Internationalization of git-gui Shawn O. Pearce
2 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 12:41 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
From f074190d3bf1c08cd833afaa7ba42731b1e7f572 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Sat, 21 Jul 2007 14:39:24 +0200
Subject: [PATCH] Add glossary to ensure consistent translations.
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
And last but not least an initial list of the most important terms throughout git
and git-gui; out of convenience I've already included my decisions on German
translation wordings but in the future those translations will probably be collected
elsewhere.
po/glossary.csv | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
create mode 100644 po/glossary.csv
diff --git a/po/glossary.csv b/po/glossary.csv
new file mode 100644
index 0000000..e6ffe46
--- /dev/null
+++ b/po/glossary.csv
@@ -0,0 +1,24 @@
+"English Term" "de translation"
+"amend" "ergänzen"
+"annotate" "annotieren"
+"branch" "Zweig, verzweigen"
+"checkout" "Auschecken"
+"commit" "übertragen (senden?, übergeben?)"
+"diff" "vergleichen"
+"fetch" "holen"
+"merge" "zusammenführen"
+"message" "Meldung"
+"pull" "ziehen (übernehmen?)"
+"push" "schieben (hochladen? verschicken?)"
+"redo" "Wiederholen"
+"repository" "Projektarchiv"
+"reset" "Zurücksetzen"
+"revert" "zurückkehren"
+"revision" "Revision"
+"sign off" "freizeichnen"
+"staging area" "Bereitstellung"
+"status" "Status"
+"tag" "Markierung, markieren"
+"undo" "Rückgängig"
+"update" "aktualisieren"
+"working copy" "Arbeitskopie"
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 12:37 ` Christian Stimming
2007-07-21 12:41 ` [PATCH 5/5] " Christian Stimming
@ 2007-07-21 13:46 ` David Kastrup
2007-07-21 16:27 ` Simon 'corecode' Schubert
` (2 more replies)
2007-07-22 7:47 ` [PATCH 3/5] Internationalization of git-gui Shawn O. Pearce
2 siblings, 3 replies; 69+ messages in thread
From: David Kastrup @ 2007-07-21 13:46 UTC (permalink / raw)
To: git
Christian Stimming <stimming@tuhh.de> writes:
> And a new German translation, so far 100% but many more strings are to come.
>
> po/de.po | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 265 insertions(+), 0 deletions(-)
> create mode 100644 po/de.po
I have somewhat different proposals which sound less awkward, I
think. Of course, it is always a matter of taste whether a technical
term should really be translated always, but assuming that, I'll make
some German proposals. Some may be tongue in cheek.
> +#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
> +msgid "Commit"
> +msgstr "Übertragen"
Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
passendes Substantiv zu finden. "Sendung"?
> +#: git-gui.sh:1631
> +msgid "Fetch"
> +msgstr "Holen"
Importieren (hauptsächlich, weil es zu Exportieren paßt und Schieben
häßlich ist)
> +#: git-gui.sh:1632 git-gui.sh:2140
> +msgid "Push"
> +msgstr "Schieben"
Exportieren
> +#: git-gui.sh:1641
> +msgid "Browse Current Branch"
> +msgstr "Aktuellen Zweig durchblättern"
Im aktuellen Zweig stöbern.
> +#: git-gui.sh:1659
> +msgid "Compress Database"
> +msgstr "Datenbank komprimieren"
Ganz Deutsch: verdichten.
> +
> +#: git-gui.sh:1662
> +msgid "Verify Database"
> +msgstr "Datenbank prüfen"
überprüfen (prüfen wäre eher zu "checking")
> +#: git-gui.sh:1669 git-gui.sh:1673 git-gui.sh:1677
> +msgid "Create Desktop Icon"
> +msgstr "Desktop-Icon erstellen"
Da gibt es sicher einen neudeutschen Ausdruck, aber als
Nichtwindowsnutzer mit Amilokale...
> +#: git-gui.sh:1689
> +msgid "Undo"
> +msgstr "Rückgängig"
Ach nein.
> +#: git-gui.sh:1692
> +msgid "Redo"
> +msgstr "Wiederholen"
Jetzt doch.
> +#: git-gui.sh:1709 git-gui.sh:2217 git-gui.sh:2354
> +msgid "Select All"
> +msgstr "Alle auswählen"
Alles auswählen zöge ich vor.
> +#: git-gui.sh:1724
> +msgid "Checkout..."
> +msgstr "Auschecken..."
Ausspielung.
> +#: git-gui.sh:1752 git-gui.sh:2151
> +msgid "New Commit"
> +msgstr "Neu übertragen"
Neue Sendung
> +#: git-gui.sh:1760 git-gui.sh:2158
> +msgid "Amend Last Commit"
> +msgstr "Letzte Übertragung ergänzen"
Letzte Sendung korrigieren.
> +#: git-gui.sh:1775
> +msgid "Add To Commit"
> +msgstr "Zur Bereitstellung hinzufügen"
Der Sendung hinzufügen.
> +#: git-gui.sh:1780
> +msgid "Add Existing To Commit"
> +msgstr "Existierendes zur Bereitstellung hinzufügen"
Der Sendung hinzufügen.
> +#: git-gui.sh:1786
> +msgid "Unstage From Commit"
> +msgstr "Aus der Bereitstellung herausnehmen"
Aus der Sendung entfernen.
> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
> +msgid "Sign Off"
> +msgstr "Freizeichnen"
Gegenzeichnen?
> +#: git-gui.sh:2057
> +msgid "Staged Changes (Will Be Committed)"
> +msgstr "Bereitgestellte Änderungen (werden übertragen)"
Einzupflegende Änderungen
> +#: git-gui.sh:2077
> +msgid "Unstaged Changes (Will Not Be Committed)"
> +msgstr "Nicht bereitgestellte Änderungen (werden nicht übertragen)"
Nicht einzupflegende Änderungen
So, jetzt geht mir die Luft aus.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
@ 2007-07-21 16:27 ` Simon 'corecode' Schubert
2007-07-21 17:41 ` David Kastrup
2007-07-21 18:50 ` Translation process (was: [PATCH 3/5] Internationalization of git-gui) Christian Stimming
2007-07-21 19:27 ` German translations " Christian Stimming
2 siblings, 1 reply; 69+ messages in thread
From: Simon 'corecode' Schubert @ 2007-07-21 16:27 UTC (permalink / raw)
To: David Kastrup; +Cc: git
David Kastrup wrote:
>> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
>> +msgid "Sign Off"
>> +msgstr "Freizeichnen"
>
> Gegenzeichnen?
Abzeichnen!
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 16:27 ` Simon 'corecode' Schubert
@ 2007-07-21 17:41 ` David Kastrup
0 siblings, 0 replies; 69+ messages in thread
From: David Kastrup @ 2007-07-21 17:41 UTC (permalink / raw)
To: git
Simon 'corecode' Schubert <corecode@fs.ei.tum.de> writes:
> David Kastrup wrote:
>>> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
>>> +msgid "Sign Off"
>>> +msgstr "Freizeichnen"
>>
>> Gegenzeichnen?
>
> Abzeichnen!
Absegnen. Ich denke mal, in der Form mit "Ab" ist das dermaßen
gebräuchlich, daß man damit keine religiösen Befindlichkeiten
verletzt.
Ansonsten: Abnicken oder Gutheißen.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: Translation process (was: [PATCH 3/5] Internationalization of git-gui)
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
2007-07-21 16:27 ` Simon 'corecode' Schubert
@ 2007-07-21 18:50 ` Christian Stimming
2007-07-21 19:27 ` German translations " Christian Stimming
2 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 18:50 UTC (permalink / raw)
To: David Kastrup; +Cc: git
Am Samstag, 21. Juli 2007 15:46 schrieb David Kastrup:
> Christian Stimming <stimming@tuhh.de> writes:
> > And a new German translation, so far 100% but many more strings are to
> > come.
>
> I have somewhat different proposals which sound less awkward, I
> think. Of course, it is always a matter of taste whether a technical
> term should really be translated always, but assuming that, I'll make
> some German proposals. Some may be tongue in cheek.
Thanks for the suggestions. However, I don't think it is of much worth to
discuss individual message translations *right now*; instead, here's what I
would propose instead:
The most difficult issue in a program translation is to find good translation
wordings for those key words which are used each and every time throughout
the program. Once you've decided on a particular translation for each of
these words, the rest is just grunt work. So the important part is to
translate these key words. Incidentally, I've added the file po/glossary.cvs
for exactly this purpose. In there you find my current collection of key
words that occur throughout git-gui (and git, for that matter), including a
set of proposed translations to German language. This should be the place
where the keyword translations should be discussed first. The discussion of
the actual translations should be deferred until after the glossary
translations have been discussed and agreed upon.
(I'm unsure whether the translations should be kept in the same glossary file;
in the glossary for the gnucash project [1] we've actually added an extra
directory and encourage translators to add an extra po file for their
glossary translations. However, the glossary of gnucash has more than 150
terms and many of them require to be defined clearly as well, as translators
would otherwise be unable to translate them concisely. In git-gui, the
glossary is 25 terms so far and I think the git documentation already
contains enough definitions of all of them. Nevertheless, maybe it would make
a better structure if the translations of the glossary are kept in a separate
po file for each language. Hm.)
In short: Please discuss the glossary first, and not the actual de.po message
file. Once the glossary has been decided upon, the de.po will be adapted, and
*after that* a discussion of de.po makes sense. But not before that.
Regards,
Christian
[1]
http://svn.gnucash.org/trac/browser/gnucash/trunk/po/glossary/gnc-glossary.txt
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations (was: [PATCH 3/5] Internationalization of git-gui)
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
2007-07-21 16:27 ` Simon 'corecode' Schubert
2007-07-21 18:50 ` Translation process (was: [PATCH 3/5] Internationalization of git-gui) Christian Stimming
@ 2007-07-21 19:27 ` Christian Stimming
2007-07-21 19:57 ` German translations David Kastrup
2007-07-21 20:09 ` David Kastrup
2 siblings, 2 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 19:27 UTC (permalink / raw)
To: David Kastrup; +Cc: git
Am Samstag, 21. Juli 2007 15:46 schrieb David Kastrup:
> Christian Stimming <stimming@tuhh.de> writes:
> > And a new German translation, so far 100% but many more strings are to
> > come.
>
> I have somewhat different proposals which sound less awkward, I
> think. Of course, it is always a matter of taste whether a technical
> term should really be translated always, but assuming that, I'll make
> some German proposals. Some may be tongue in cheek.
Thanks for additional word proposals. I'll discuss these and the two followups
in German below.
> > +#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
> > +msgid "Commit"
> > +msgstr "Übertragen"
>
> Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
> passendes Substantiv zu finden. "Sendung"?
Richtig - eine Kombination Substantiv/Verb wird benötigt. Ich habe im
Glossar "übertragen (senden?, übergeben?)". Ersteres wird bei TortoiseSVN
benutzt. Im Prinzip gehen die anderen auch; bei "Sendung"/"senden" befürchte
ich aber zu viele Mehrdeutigkeiten, wenn man z.B. davon redet. den commit
über TCP wohin senden will. Die Sendung wohin senden? Andererseits hat man
bei Übertragung das gleiche Problem.
> > +#: git-gui.sh:1631
> > +msgid "Fetch"
> > +msgstr "Holen"
>
> Importieren (hauptsächlich, weil es zu Exportieren paßt und Schieben
> häßlich ist)
Importieren ist bereits für "git-{cvs,svn}import" reserviert, kann also hier
nicht verwendet werden. Deswegen wird was anderes benötigt. Für fetch und
pull gleichermaßen würden holen/ziehen/übernehmen gehen und man muss sich
halt auf eine Zuordnung festlegen.
> > +#: git-gui.sh:1632 git-gui.sh:2140
> > +msgid "Push"
> > +msgstr "Schieben"
>
> Exportieren
Dito - bereits reserviert für git-cvsexport u.ä., also hier nicht benutzbar.
Deswegen momentan dieses, ich bin aber auch nicht glücklich damit. Siehe
Glossar: "schieben (hochladen? verschicken?)"
> > +#: git-gui.sh:1641
> > +msgid "Browse Current Branch"
> > +msgstr "Aktuellen Zweig durchblättern"
>
> Im aktuellen Zweig stöbern.
stöbern für "to browse"? Das ist aber definitiv nicht das, was normalerweise
als Übersetzung von "to browse" gewählt wird. Da ist man eben bei blättern.
Außerdem ist "stöbern" hart an der Grenze zur Flapsigkeit, die man (im
Gegensatz zum engl. Original) bei deutscher Software unbedingt vermeiden
muss.
> > +#: git-gui.sh:1659
> > +msgid "Compress Database"
> > +msgstr "Datenbank komprimieren"
>
> Ganz Deutsch: verdichten.
Alle E-Mail-Programme reden aber bereits von komprimieren (was in den Motoren
schon immer ein deutscher Begriff war), so dass ich hier auch dabei bleiben
würde.
> > +#: git-gui.sh:1662
> > +msgid "Verify Database"
> > +msgstr "Datenbank prüfen"
>
> überprüfen (prüfen wäre eher zu "checking")
"to verify" -> überprüfen? Ok.
> > +#: git-gui.sh:1709 git-gui.sh:2217 git-gui.sh:2354
> > +msgid "Select All"
> > +msgstr "Alle auswählen"
>
> Alles auswählen zöge ich vor.
Kommt auf den Kontext an - was soll denn ausgewählt werden? "Alle Sendungen"
oder "Alles, was sichtbar ist"...
> > +#: git-gui.sh:1724
> > +msgid "Checkout..."
> > +msgstr "Auschecken..."
>
> Ausspielung.
Äh... nein. Auschecken ist auch nicht so toll (auch hier übernommen von
TortoiseSVN), aber was besseres hab ich noch nicht gefunden.
> > +#: git-gui.sh:2057
> > +msgid "Staged Changes (Will Be Committed)"
> > +msgstr "Bereitgestellte Änderungen (werden übertragen)"
>
> Einzupflegende Änderungen
Nein, hier muss irgendwie die "staging area" mit auftauchen, denn so lautet
die Beschriftung der linken Listbox. Da ich die mit "Bereitstellung" gewählt
habe, muss das Wort hier wieder auftauchen.
> > David Kastrup wrote:
> >>> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
> >>> +msgid "Sign Off"
> >>> +msgstr "Freizeichnen"
> >>
> >> Gegenzeichnen?
> >
> > Abzeichnen!
>
> Absegnen. Ich denke mal, in der Form mit "Ab" ist das dermaßen
> gebräuchlich, daß man damit keine religiösen Befindlichkeiten
> verletzt.
>
> Ansonsten: Abnicken oder Gutheißen.
Absegnen ist zu flapsig, Abnicken und Gutheißen erst recht. Gegenzeichnen
lässt nicht erahnen, dass man seine eigenen commits ja auch "sign off" soll
(wie z.B. in git.git/Documents/SubmittingPatches erklärt). Abzeichnen wäre
okay, aber das ist Freizeichnen auch.
Gruß
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations
2007-07-21 19:27 ` German translations " Christian Stimming
@ 2007-07-21 19:57 ` David Kastrup
2007-07-22 13:16 ` Christian Stimming
2007-07-22 14:52 ` Edgar Toernig
2007-07-21 20:09 ` David Kastrup
1 sibling, 2 replies; 69+ messages in thread
From: David Kastrup @ 2007-07-21 19:57 UTC (permalink / raw)
To: Christian Stimming; +Cc: git
Christian Stimming <stimming@tuhh.de> writes:
> Am Samstag, 21. Juli 2007 15:46 schrieb David Kastrup:
>> Christian Stimming <stimming@tuhh.de> writes:
>> > And a new German translation, so far 100% but many more strings are to
>> > come.
>>
>> I have somewhat different proposals which sound less awkward, I
>> think. Of course, it is always a matter of taste whether a technical
>> term should really be translated always, but assuming that, I'll make
>> some German proposals. Some may be tongue in cheek.
>
> Thanks for additional word proposals. I'll discuss these and the two
> followups in German below.
>
>> > +#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
>> > +msgid "Commit"
>> > +msgstr "Übertragen"
>>
>> Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
>> passendes Substantiv zu finden. "Sendung"?
>
> Richtig - eine Kombination Substantiv/Verb wird benötigt. Ich habe im
> Glossar "übertragen (senden?, übergeben?)". Ersteres wird bei TortoiseSVN
> benutzt. Im Prinzip gehen die anderen auch; bei "Sendung"/"senden" befürchte
> ich aber zu viele Mehrdeutigkeiten, wenn man z.B. davon redet. den commit
> über TCP wohin senden will. Die Sendung wohin senden? Andererseits hat man
> bei Übertragung das gleiche Problem.
Ich habe was: Einspielen, Ausspielen, Einspielung, Ausspielung.
Symmetrisch, verständlich, als Verb und Substantiv zu gebrauchen.
>> > +#: git-gui.sh:1631
>> > +msgid "Fetch"
>> > +msgstr "Holen"
>>
>> Importieren (hauptsächlich, weil es zu Exportieren paßt und Schieben
>> häßlich ist)
>
> Importieren ist bereits für "git-{cvs,svn}import" reserviert, kann
> also hier nicht verwendet werden.
Ok.
> Deswegen wird was anderes benötigt. Für fetch und pull gleichermaßen
> würden holen/ziehen/übernehmen gehen und man muss sich halt auf eine
> Zuordnung festlegen.
fetch = anfordern, pull = übernehmen?
>> > +#: git-gui.sh:1632 git-gui.sh:2140
>> > +msgid "Push"
>> > +msgstr "Schieben"
>>
>> Exportieren
>
> Dito - bereits reserviert für git-cvsexport u.ä., also hier nicht
> benutzbar. Deswegen momentan dieses, ich bin aber auch nicht
> glücklich damit. Siehe Glossar: "schieben (hochladen? verschicken?)"
Ausliefern? Durchgeben?
>> > +#: git-gui.sh:1641
>> > +msgid "Browse Current Branch"
>> > +msgstr "Aktuellen Zweig durchblättern"
>>
>> Im aktuellen Zweig stöbern.
>
> stöbern für "to browse"? Das ist aber definitiv nicht das, was
> normalerweise als Übersetzung von "to browse" gewählt wird. Da ist
> man eben bei blättern.
Aber das wäre "leafing through" und ist eben auf Bücher beschränkt.
> Außerdem ist "stöbern" hart an der Grenze zur Flapsigkeit, die man
> (im Gegensatz zum engl. Original) bei deutscher Software unbedingt
> vermeiden muss.
Finde ich nicht, aber bei Interfaces ist natürlich die
Mehrheitsmeinung ausschlaggebend. "wühlen" wäre flapsig. Etwas
hochsprachlicher wäre noch "durchforsten", aber das trägt uns
natürlich den Zorn der Förster für den Begriffsmißbrauch zu.
"erkunden" wäre auch noch möglich.
>> > +#: git-gui.sh:2057
>> > +msgid "Staged Changes (Will Be Committed)"
>> > +msgstr "Bereitgestellte Änderungen (werden übertragen)"
>>
>> Einzupflegende Änderungen
>
> Nein, hier muss irgendwie die "staging area" mit auftauchen, denn so
> lautet die Beschriftung der linken Listbox. Da ich die mit
> "Bereitstellung" gewählt habe, muss das Wort hier wieder auftauchen.
Sehe ich zwar nicht so.
>> > David Kastrup wrote:
>> >>> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
>> >>> +msgid "Sign Off"
>> >>> +msgstr "Freizeichnen"
>> >>
>> >> Gegenzeichnen?
>> >
>> > Abzeichnen!
>>
>> Absegnen. Ich denke mal, in der Form mit "Ab" ist das dermaßen
>> gebräuchlich, daß man damit keine religiösen Befindlichkeiten
>> verletzt.
>>
>> Ansonsten: Abnicken oder Gutheißen.
>
> Absegnen ist zu flapsig, Abnicken und Gutheißen erst recht.
Abnicken ja, aber Gutheißen ist nun wirklich ein hochsprachlicher
Begriff.
> Abzeichnen wäre okay, aber das ist Freizeichnen auch.
Freizeichnen ist viel zu nischensprachlich. Mit Abzeichnen könnte ich
leben, obwohl ich Gutheißen besser fände.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations
2007-07-21 19:57 ` German translations David Kastrup
@ 2007-07-22 13:16 ` Christian Stimming
2007-07-22 14:52 ` Edgar Toernig
1 sibling, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-22 13:16 UTC (permalink / raw)
To: David Kastrup; +Cc: git
Am Samstag, 21. Juli 2007 21:57 schrieb David Kastrup:
> > Thanks for additional word proposals. I'll discuss these and the two
> > followups in German below.
> >
> >> > +#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
> >> > +msgid "Commit"
> >> > +msgstr "Übertragen"
> >>
> >> Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
> >> passendes Substantiv zu finden. "Sendung"?
> >
> > Ich habe im Glossar "übertragen (senden?, übergeben?)". .
>
> Ich habe was: Einspielen, Ausspielen, Einspielung, Ausspielung.
> Symmetrisch, verständlich, als Verb und Substantiv zu gebrauchen.
Einspielen und Einspielung sind auch Möglichkeiten, aber bisher finde ich das
noch nicht überzeugender als die Übertragung.
Für was ist Ausspielung gemeint? Checkout? Für mich klingt
ausspielen/Ausspielung hauptsächlich nach einer Pokerrunde (oder eher
destruktiv, "dieser Mitarbeiter hat im Projekt wirklich ausgespielt") und
nicht nach dem Ablegen in Akten oder dem Rüberschicken zum Archiv-Server.
Aber stimmt, "checkout" braucht noch einen Begriff und bisher habe ich auch
keinen überzeugenden Vorschlag.
> > Deswegen wird was anderes benötigt. Für fetch und pull gleichermaßen
> > würden holen/ziehen/übernehmen gehen und man muss sich halt auf eine
> > Zuordnung festlegen.
>
> fetch = anfordern, pull = übernehmen?
Klingt gut, ok, vielen Dank.
> >> > +#: git-gui.sh:1632 git-gui.sh:2140
> >> > +msgid "Push"
> >> > +msgstr "Schieben"
> >
> > Glossar: "schieben (hochladen? verschicken?)"
>
> Ausliefern? Durchgeben?
Ausliefern ist gut, danke.
> >> > +#: git-gui.sh:1641
> >> > +msgid "Browse Current Branch"
> >> > +msgstr "Aktuellen Zweig durchblättern"
> >>
> >> Im aktuellen Zweig stöbern.
> >
> > stöbern für "to browse"? Das ist aber definitiv nicht das, was
> > normalerweise als Übersetzung von "to browse" gewählt wird. Da ist
> > man eben bei blättern.
>
> Aber das wäre "leafing through" und ist eben auf Bücher beschränkt.
Von den Büchern kommt die Bedeutung her, ja, aber browse und leafing through
sind halt beide ein blättern, da sehe ich keinen Widerspruch zur möglichen
Verwendung hier.
> "wühlen" wäre flapsig. Etwas
> hochsprachlicher wäre noch "durchforsten", aber das trägt uns
> natürlich den Zorn der Förster für den Begriffsmißbrauch zu.
> "erkunden" wäre auch noch möglich.
Beim Erkunden fehlt mir die Bedeutung, dass man da einzelne Schritte einen
nach dem anderen durchgehen kann. Das finde ich im Blättern weiterhin am
besten wiederzuerkennen. Dann noch eher durchforsten als erkunden.
> >> > David Kastrup wrote:
> >> >>> +#: git-gui.sh:1798 git-gui.sh:2130 git-gui.sh:2228
> >> >>> +msgid "Sign Off"
> >> >>> +msgstr "Freizeichnen"
> >> >>
> >> >> Gegenzeichnen?
> >> >
> >> > Abzeichnen!
> >>
> >> Absegnen. Ich denke mal, in der Form mit "Ab" ist das dermaßen
> >> gebräuchlich, daß man damit keine religiösen Befindlichkeiten
> >> verletzt.
> >>
> >> Ansonsten: Abnicken oder Gutheißen.
> >
> > Absegnen ist zu flapsig, Abnicken und Gutheißen erst recht.
>
> Abnicken ja, aber Gutheißen ist nun wirklich ein hochsprachlicher
> Begriff.
>
> > Abzeichnen wäre okay, aber das ist Freizeichnen auch.
>
> Freizeichnen ist viel zu nischensprachlich. Mit Abzeichnen könnte ich
> leben, obwohl ich Gutheißen besser fände.
Abzeichnen ist ok.
Am Samstag, 21. Juli 2007 22:09 schrieb David Kastrup:
> After a view of the glossary:
>
> "amend" "ergänzen"
> ist nicht ganz korrekt. "nachbessern" wäre da erheblich besser.
Ok.
> "message" würde ich als "Nachricht" statt "Meldung" übersetzen.
Irgendwie Geschmackssache. Man muss sich das ein bisschen im Kontext
vorstellen: "Die Meldung zur Einspielung/Übertragung", "Die Nachricht zur
Einspielung/Übertragung", ich würde da erstmal bei Meldung bleiben.
> "revert" "zurückkehren" würde ich eher als "revidieren" oder
> "aufheben" bezeichnen.
"revidieren" ist gut.
> "revision" ist wohl schlicht eine "Version" statt der "Revision", die
> einem das Finanzamt ins Haus bringt.
Auch das ist gut, allerdings frage ich mich natürlich auch, warum das Dingens
dann nicht auch gleich auf Englisch "version" heißt :-)
Bisheriger Zwischenstand wird im glossary.csv nachgetragen; zur Anpassung von
de.po hab ich noch keine Zeit gehabt, kommt aber sobald neue Strings drin
sind.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations
2007-07-21 19:57 ` German translations David Kastrup
2007-07-22 13:16 ` Christian Stimming
@ 2007-07-22 14:52 ` Edgar Toernig
2007-07-23 19:20 ` Christian Stimming
1 sibling, 1 reply; 69+ messages in thread
From: Edgar Toernig @ 2007-07-22 14:52 UTC (permalink / raw)
To: David Kastrup; +Cc: Christian Stimming, git
> >> > +#: git-gui.sh:1627 git-gui.sh:1802 git-gui.sh:2134
> >> > +msgid "Commit"
> >> > +msgstr "Übertragen"
> >>
> >> Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
> >> passendes Substantiv zu finden. "Sendung"?
> [...]
> Ich habe was: Einspielen, Ausspielen, Einspielung, Ausspielung.
> Symmetrisch, verständlich, als Verb und Substantiv zu gebrauchen.
>
> [usw]
Das ist genau der Grund, warum ich normalerweise keine deutschen
Lokalisierungen benutze - total unverstaendlicher Kauderwelsch.
Denkt doch bitte mal an die Zielgruppe! Das sind Techniker, keine
Grossmuetter. Ihr duerft Fachvokabular benutzen! Und gerade hier
wird die Zielgruppe schon englische Dokumentation gelesen haben.
Solch zwanghaft eingedeutschten Begriffe verwirren da nur.
Also sagt doch bitte einfach "der Commit" und "comitten" wie es
jeder Techniker macht. Ihr duerft auch "das Repository", "der
Index" und mMn auch ruhig "der Branch" benutzen.
Verstaendlichkeit, Klarheit, Exaktheit - das ist das oberste Ziel!
Wir sind doch keine Franzosen ;-)
Ciao, ET.
PS: bzgl. "Sign Off": "Gutheißen" ist zu lasch - das entspricht
dem Ack'ed-by.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations
2007-07-22 14:52 ` Edgar Toernig
@ 2007-07-23 19:20 ` Christian Stimming
0 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-23 19:20 UTC (permalink / raw)
To: Edgar Toernig; +Cc: David Kastrup, git
Am Sonntag, 22. Juli 2007 16:52 schrieb Edgar Toernig:
> > >> > +msgid "Commit"
> > >> > +msgstr "Übertragen"
> > >>
> > >> Einpflegen ist als Verb gebräuchlich, aber dann ist es schwer, ein
> > >> passendes Substantiv zu finden. "Sendung"?
> >
> > Ich habe was: Einspielen, Ausspielen, Einspielung, Ausspielung.
>
> Das ist genau der Grund, warum ich normalerweise keine deutschen
> Lokalisierungen benutze - total unverstaendlicher Kauderwelsch.
>
> Denkt doch bitte mal an die Zielgruppe!
Ja, genau das sag ich doch.
> Das sind Techniker, keine
> Grossmuetter. Ihr duerft Fachvokabular benutzen! Und gerade hier
> wird die Zielgruppe schon englische Dokumentation gelesen haben.
Nein. Die Zielgruppe der deutschen Übersetzung sind jene Techniker, die
partout mit Englisch auf Kriegsfuß stehen. Jaja, solche gibt es. Und für
solche muss man überlegen, ob es deutsche Begriffe gibt, die man in der
gleichen Bedeutung verwenden kann. Das geht nicht so spontan - also bitte
erstmal abwarten und selber überlegen. Die englischen Begriffe sind als
fallback immer noch möglich, aber erstmal wird überlegt.
Ich bin auch für Anregungen dankbar, wie andere Übersetzer das denn gelöst
haben. Das erwähnte TortoiseSVN mit einer IMHO gelungenen deutschen Doku hat
commit=übertragen gewählt, ist aber bei checkout=auschecken geblieben. Die
anderen SVN-Clients, bei denen man einen deutsche Übersetzung sehen kann,
bieten da leider nur mindere Qualität und haben praktisch sämtliche
Schlüsselworte auf Englisch gelassen.
> Solch zwanghaft eingedeutschten Begriffe verwirren da nur.
> Also sagt doch bitte einfach "der Commit" und "comitten" wie es
> jeder Techniker macht. Ihr duerft auch "das Repository", "der
> Index" und mMn auch ruhig "der Branch" benutzen.
Nein. Wenn dir diese englischen Begriffe lieber sind, dann bleib gerne bei
LANG=C bzw. en und fertig. Hier wird erstmal diskutiert, ob sich nicht doch
deutsche Begriffe finden lassen. Es ist ja nicht so, als ob hier das
allererste Mal ein SCM auf deutsch erklärt werden müsste.
> Verstaendlichkeit, Klarheit, Exaktheit - das ist das oberste Ziel!
- der deutschen Übersetzung, richtig! Wer das mit den englischen Begriffen
erreichen will, bleibt bei LANG=C.
> PS: bzgl. "Sign Off": "Gutheißen" ist zu lasch - das entspricht
> dem Ack'ed-by.
Ich finde da den Vorschlag "abzeichnen" bisher am besten.
Gruß
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: German translations
2007-07-21 19:27 ` German translations " Christian Stimming
2007-07-21 19:57 ` German translations David Kastrup
@ 2007-07-21 20:09 ` David Kastrup
1 sibling, 0 replies; 69+ messages in thread
From: David Kastrup @ 2007-07-21 20:09 UTC (permalink / raw)
To: Christian Stimming; +Cc: git
After a view of the glossary:
"amend" "ergänzen"
ist nicht ganz korrekt. "nachbessern" wäre da erheblich besser.
"message" würde ich als "Nachricht" statt "Meldung" übersetzen.
"revert" "zurückkehren" würde ich eher als "revidieren" oder
"aufheben" bezeichnen.
"revision" ist wohl schlicht eine "Version" statt der "Revision", die
einem das Finanzamt ins Haus bringt.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-21 12:37 ` Christian Stimming
2007-07-21 12:41 ` [PATCH 5/5] " Christian Stimming
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
@ 2007-07-22 7:47 ` Shawn O. Pearce
2007-07-22 8:05 ` Junio C Hamano
2 siblings, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-22 7:47 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> Subject: [PATCH] Initial German translation for testing of i18n.
...
> diff --git a/po/de.po b/po/de.po
> new file mode 100644
> index 0000000..0592836
> --- /dev/null
> +++ b/po/de.po
> @@ -0,0 +1,265 @@
> +# Translation of git-gui to German.
> +# Copyright (C) 2007 Linux Torvalds
I didn't realize Linus wrote German. ;-)
Or are you assigning the copyright to Linus, much as other chunks
of Git are copyrighted by Linus?
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-22 7:47 ` [PATCH 3/5] Internationalization of git-gui Shawn O. Pearce
@ 2007-07-22 8:05 ` Junio C Hamano
2007-07-22 12:16 ` Christian Stimming
0 siblings, 1 reply; 69+ messages in thread
From: Junio C Hamano @ 2007-07-22 8:05 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Christian Stimming, Brett Schwarz, git, Paul Mackerras
"Shawn O. Pearce" <spearce@spearce.org> writes:
> Christian Stimming <stimming@tuhh.de> wrote:
>> Subject: [PATCH] Initial German translation for testing of i18n.
> ...
>> diff --git a/po/de.po b/po/de.po
>> new file mode 100644
>> index 0000000..0592836
>> --- /dev/null
>> +++ b/po/de.po
>> @@ -0,0 +1,265 @@
>> +# Translation of git-gui to German.
>> +# Copyright (C) 2007 Linux Torvalds
>
> I didn't realize Linus wrote German. ;-)
>
> Or are you assigning the copyright to Linus, much as other chunks
> of Git are copyrighted by Linus?
The convention for xx.po, judging from the way template pot file
is written out, is to name the package's copyright holder, not
translation's, on that line. So Linus does not have to have
anything to do with the German part, but I think the appropriate
name to place there is yours.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-22 8:05 ` Junio C Hamano
@ 2007-07-22 12:16 ` Christian Stimming
2007-07-22 12:44 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-22 12:16 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Shawn O. Pearce, Brett Schwarz, git, Paul Mackerras
Am Sonntag, 22. Juli 2007 10:05 schrieb Junio C Hamano:
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> > Christian Stimming <stimming@tuhh.de> wrote:
> >> Subject: [PATCH] Initial German translation for testing of i18n.
> >> diff --git a/po/de.po b/po/de.po
> >> new file mode 100644
> >> index 0000000..0592836
> >> --- /dev/null
> >> +++ b/po/de.po
> >> @@ -0,0 +1,265 @@
> >> +# Translation of git-gui to German.
> >> +# Copyright (C) 2007 Linux Torvalds
> >
> > I didn't realize Linus wrote German. ;-)
> >
> > Or are you assigning the copyright to Linus, much as other chunks
> > of Git are copyrighted by Linus?
>
> The convention for xx.po, judging from the way template pot file
> is written out, is to name the package's copyright holder, not
> translation's, on that line.
Exactly. That line should say that even though I have been the author of
de.po, I still assign copyright (or the assign-able parts of it) to the
package's copyright owner, which in this case is Linus. As Junio says, this
is a suggestion from gettext, and I'd simply follow it here.
> So Linus does not have to have anything to do with the German part,
> but I think the appropriate name to place there is yours.
s/yours/his/ ? Otherwise this sentence sounds like a contradiction to the
previous one...
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-22 12:16 ` Christian Stimming
@ 2007-07-22 12:44 ` Johannes Schindelin
2007-07-22 12:57 ` Christian Stimming
0 siblings, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-22 12:44 UTC (permalink / raw)
To: Christian Stimming
Cc: Junio C Hamano, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sun, 22 Jul 2007, Christian Stimming wrote:
> Am Sonntag, 22. Juli 2007 10:05 schrieb Junio C Hamano:
> > "Shawn O. Pearce" <spearce@spearce.org> writes:
> > > Christian Stimming <stimming@tuhh.de> wrote:
> > >> Subject: [PATCH] Initial German translation for testing of i18n.
> > >> diff --git a/po/de.po b/po/de.po
> > >> new file mode 100644
> > >> index 0000000..0592836
> > >> --- /dev/null
> > >> +++ b/po/de.po
> > >> @@ -0,0 +1,265 @@
> > >> +# Translation of git-gui to German.
> > >> +# Copyright (C) 2007 Linux Torvalds
> > >
> > > I didn't realize Linus wrote German. ;-)
> > >
> > > Or are you assigning the copyright to Linus, much as other chunks
> > > of Git are copyrighted by Linus?
> >
> > The convention for xx.po, judging from the way template pot file
> > is written out, is to name the package's copyright holder, not
> > translation's, on that line.
>
> Exactly. That line should say that even though I have been the author of
> de.po, I still assign copyright (or the assign-able parts of it) to the
> package's copyright owner, which in this case is Linus. As Junio says,
> this is a suggestion from gettext, and I'd simply follow it here.
How about Junio instead? Linus created Git, but Junio is the official
maintainer (by mutual agreement).
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-22 12:44 ` Johannes Schindelin
@ 2007-07-22 12:57 ` Christian Stimming
2007-07-22 13:06 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-22 12:57 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Junio C Hamano, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Am Sonntag, 22. Juli 2007 14:44 schrieb Johannes Schindelin:
> > > >> Subject: [PATCH] Initial German translation for testing of i18n.
> > > >> diff --git a/po/de.po b/po/de.po
> > > >> new file mode 100644
> > > >> index 0000000..0592836
> > > >> --- /dev/null
> > > >> +++ b/po/de.po
> > > >> @@ -0,0 +1,265 @@
> > > >> +# Translation of git-gui to German.
> > > >> +# Copyright (C) 2007 Linux Torvalds
> > > >
> > > > I didn't realize Linus wrote German. ;-)
> > > >
> > > > Or are you assigning the copyright to Linus, much as other chunks
> > > > of Git are copyrighted by Linus?
> > >
> > > The convention for xx.po, judging from the way template pot file
> > > is written out, is to name the package's copyright holder, not
> > > translation's, on that line.
> >
> > Exactly. That line should say that even though I have been the author of
> > de.po, I still assign copyright (or the assign-able parts of it) to the
> > package's copyright owner, which in this case is Linus. As Junio says,
> > this is a suggestion from gettext, and I'd simply follow it here.
>
> How about Junio instead? Linus created Git, but Junio is the official
> maintainer (by mutual agreement).
Then the copyright line should probably better read
Copyright (C) 2007 Shawn Pearce, et al.
because that's what the copyright for the other git-gui files say.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 3/5] Internationalization of git-gui
2007-07-22 12:57 ` Christian Stimming
@ 2007-07-22 13:06 ` Johannes Schindelin
0 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-22 13:06 UTC (permalink / raw)
To: Christian Stimming
Cc: Junio C Hamano, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sun, 22 Jul 2007, Christian Stimming wrote:
> Am Sonntag, 22. Juli 2007 14:44 schrieb Johannes Schindelin:
>
> > [Christian, I think, wrote]
> >
> > > That line should say that even though I have been the author of
> > > de.po, I still assign copyright (or the assign-able parts of it) to
> > > the package's copyright owner, which in this case is Linus. As Junio
> > > says, this is a suggestion from gettext, and I'd simply follow it
> > > here.
> >
> > How about Junio instead? Linus created Git, but Junio is the official
> > maintainer (by mutual agreement).
>
> Then the copyright line should probably better read
>
> Copyright (C) 2007 Shawn Pearce, et al.
>
> because that's what the copyright for the other git-gui files say.
Oops. Yes, of course.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 2/5] Internationalization of git-gui
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
2007-07-21 12:36 ` [PATCH 3/5] " Christian Stimming
@ 2007-07-22 7:45 ` Shawn O. Pearce
2007-07-22 12:24 ` Christian Stimming
1 sibling, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-22 7:45 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> Subject: [PATCH] Mark strings for translation.
>
> The procedure [mc ...] will translate the strings through msgcat.
...
> Here I marked much more strings than in the previous patch, and as discussed
> the procedure [mc ...] is used for translation. Actually I think this pretty much
> caught all occurrences of user-visible strings in *this* file; there will be many
> more strings in all the other files, of course.
Almost. I noticed two that you did miss, and its because they are
totally weird. We may want to rewrite this block of code first...
> @@ -1673,7 +1673,7 @@ if {[is_enabled transport]} {
> menu .mbar.repository
>
> .mbar.repository add command \
> - -label {Browse Current Branch's Files} \
> + -label [mc "Browse Current Branch's Files"] \
> -command {browser::new $current_branch}
> trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Browse \$current_branch's Files\" ;#"
> .mbar.repository add command \
> @@ -1682,69 +1682,69 @@ trace add variable current_branch write ".mbar.repository entryconf [.mbar.repos
> .mbar.repository add separator
>
> .mbar.repository add command \
> - -label {Visualize Current Branch's History} \
> + -label [mc "Visualize Current Branch's History"] \
> -command {do_gitk $current_branch}
> trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Visualize \$current_branch's History\" ;#"
> .mbar.repository add command \
See those two trace lines? These things are setting up hooks to
change the menu item's label on the fly, so that the current branch
name is shown in the item label. These will also need to use mc to
translate the string. But they are in a double quoted string and will
be eval'd later by Tcl, so we actually need something like:
- trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Visualize \$current_branch's History\" ;#"
+ trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \[mc \"Visualize \$current_branch's History\"\] ;#"
These are (I think) the only two places in all of git-gui where
this wierdness happens. Converting this trace pair to a normal
procedure may make it easier to manage for translation.
> - .mbar.apple add command -label "About [appname]" \
> + .mbar.apple add command -label [mc "About %s" appname] \
Bug. This needs to be:
+ .mbar.apple add command -label [mc "About %s" [appname]] \
You lost one level of [] there when you did the replacement.
I only noticed this during a fast scan through while deleting text.
I'll have to reread this patch more carefully later, before I apply
(or merge) it, to make sure we don't have more such cases.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 2/5] Internationalization of git-gui
2007-07-22 7:45 ` [PATCH 2/5] " Shawn O. Pearce
@ 2007-07-22 12:24 ` Christian Stimming
0 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-22 12:24 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
Am Sonntag, 22. Juli 2007 09:45 schrieb Shawn O. Pearce:
> > Here I marked much more strings than in the previous patch, and as
> > discussed the procedure [mc ...] is used for translation.
>
> Almost. I noticed two that you did miss, and its because they are
> totally weird. We may want to rewrite this block of code first...
Yes, I've noticed those two run-time strings as well; I simply deferred them
to be dealt with at a later point in time. As you already say, they will have
to be rewritten before they can be translated. Probably an extra layer of
[format ...] will do.
> > @@ -1682,69 +1682,69 @@ trace add variable current_branch write
> > ".mbar.repository entryconf [.mbar.repos .mbar.repository add separator
> >
> > .mbar.repository add command \
> > - -label {Visualize Current Branch's History} \
> > + -label [mc "Visualize Current Branch's History"] \
> > -command {do_gitk $current_branch}
> > trace add variable current_branch write ".mbar.repository entryconf
> > [.mbar.repository index last] -label \"Visualize \$current_branch's
> > History\" ;#" .mbar.repository add command \
>
> But they are in a double quoted string and will
> be eval'd later by Tcl, so we actually need something like:
>
> - trace add variable current_branch write ".mbar.repository entryconf
> [.mbar.repository index last] -label \"Visualize \$current_branch's
> History\" ;#" + trace add variable current_branch write ".mbar.repository
> entryconf [.mbar.repository index last] -label \[mc \"Visualize
> \$current_branch's History\"\] ;#"
Err... I didn't get the latter one, but as I said, this can be deferred until
later.
> > - .mbar.apple add command -label "About [appname]" \
> > + .mbar.apple add command -label [mc "About %s" appname] \
>
> Bug. This needs to be:
>
> + .mbar.apple add command -label [mc "About %s" [appname]] \
>
> You lost one level of [] there when you did the replacement.
Oops, sorry, you are right. Also, I didn't test quite thoroughly after the
s/_/mc/ replacement, compared to the original _ introduction, where I already
caught this one once before.
> I only noticed this during a fast scan through while deleting text.
> I'll have to reread this patch more carefully later, before I apply
> (or merge) it, to make sure we don't have more such cases.
The appname thing was the only occurrence in this file, but it occurs several
times.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 12:33 ` [PATCH 1/5] " Christian Stimming
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
@ 2007-07-21 14:22 ` Johannes Schindelin
2007-07-21 19:41 ` Junio C Hamano
2007-07-22 7:38 ` Shawn O. Pearce
2 siblings, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 14:22 UTC (permalink / raw)
To: Christian Stimming; +Cc: Shawn O. Pearce, Brett Schwarz, git, Paul Mackerras
[-- Attachment #1: Type: TEXT/PLAIN, Size: 6232 bytes --]
Hi,
On Sat, 21 Jul 2007, Christian Stimming wrote:
> This patch starts over from before the first i18n patch has been applied
> and takes into account all discussion with Shawn. Currently I don't
> quite know how to apply these patches to the "mob" branch because one
> would have to first revert those patches from me that have been applied
> there... Thanks.
Usually you solve this by forcing a non-fastforwarding push. IOW you
really revert part of the history. You would not even have had to call
"git revert" or "git reset", since you started from a defined commit,
d36cd968378cd3e509434b1b9f43f1417fdba57e.
_However_: Junio already pushed into the 'mob' branch, and if you would
have forced a non-fastforwarding push, this commit would have been lost.
At least from the repo's POV.
So the only real option that makes sense is for you to register as a user
at repo.or.cz, send me your user name, and for me to add you as user so
that you can push into your own branch easily.
FWIW, this is what I did with your patch series:
- I looked at the first diff to find out which version of git-gui.sh it
was based on:
diff --git a/git-gui.sh b/git-gui.sh
index c5ff7c8..0c5ca46 100755
--- a/git-gui.sh
+++ b/git-gui.sh
Ah, okay, git-gui.sh was at c5ff7c8. What commit was that? Ask "git
log --raw":
...
commit d36cd968378cd3e509434b1b9f43f1417fdba57e
Author: Shawn O. Pearce <spearce@spearce.org>
Date: Thu Jul 19 00:43:16 2007 -0400
git-gui: Avoid unnecessary global statements when possible
[commit message]
:100755 100755 0aabfba... c5ff7c8... M git-gui.sh
Good. So it is based on d36cd968. (If my decorate patch would be in
'master', I could have told you an easy name like "shawn/master~3" or
some such).
- I started a new branch:
git checkout -b christian-new d36cd968
- Then I saved all your mails into an own mbox with my mail program. I
had to edit that mbox a little, since you sent the complete headers in
the body, not in the mail header. So I just stripped all the
mail headers and only left the ones from the mail bodies.
- After that I applied the patches with
git am -i <mbox-file>
I like the interactive mode, especially since Pine likes to add a dummy
mail at the beginning of the mbox file, which I do not want to commit,
of course ;-)
- There were no conflicts at all, and just to see that nothing untoward
happened, I compared the diffstats with "git log --stat shawn/master.."
Come to think of it, it's even easier to check the object name of the
new git-gui.sh: "git ls-files --stage" says
...
100755 95dac55[...] 0 git-gui.sh
Worked. (I could also have said "git log --raw" to see that.)
- Just a quick "make && ./git-gui" test. Ooops:
$ LC_ALL=C make
Generating catalog po/de.msg
msgfmt --statistics --tcl po/de.po -l de -d po/
po/de.po:32:9: invalid multibyte sequence
po/de.po:36:18: invalid multibyte sequence
po/de.po:48:32: invalid multibyte sequence
...
Looking into line 32 I see an ISO-8859-1 'ü'. But in the header it says
that it's UTF-8. Just a quick try: change that to ISO-8859-1, and
'make' says:
$ LC_ALL=C make
Generating catalog po/de.msg
msgfmt --statistics --tcl po/de.po -l de -d po/
62 translated messages.
Much better.
Okay, let's fix that up. First stash the changes:
$ git stash encoding fix
Then find out which commit added po/de.msg:
$ git log -1 po/de.po
...
Initial German translation [...]
Now on to editing the patch series:
$ git rebase -i HEAD~5
Mark "Initial German translation [...]" with the command "edit" instead
of "pick". Save, and wait for half a second.
...
You can amend the commit now, with
git commit --amend
Apply the stashed changes, and make sure that it's what I want:
$ git stash apply
...
$ git diff
...
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
...
Yes! Amend the commit, and for good measure, sign off on it (after
reading it, of course):
$ git commit --amend -s po/de.po
Mention that the encoding was changed by me, so if it is wrong, it is
all my fault, not yours.
Now finish "rebasing"...
$ git rebase --continue
Make sure that it works now:
$ make libdir=$(pwd)/lib && ./git-gui
Yep. Everything's fine.
(Usually I go through this procedure in less than 3 minutes, but today I
took more than double that, since I wrote this email explaining my
actions...)
- Push to repo.or.cz (which is my 'origin' remote):
$ git push origin HEAD:refs/heads/christian-new
- Now for the real fun: rebase it on top of Shawn's new master:
# I have installed a remote 'shawn' pointing to git-gui.git
$ git fetch shawn
$ git rebase shawn/master
...
Worked. Just like that. Brilliant.
- Let's just cherry-pick Junio's change, which is the latest commit in
origin/mob:
$ git cherry-pick origin/mob
Auto-merged Makefile
CONFLICT (content): Merge conflict in Makefile
Automatic cherry-pick failed. After resolving the conflicts,
mark the corrected paths with 'git-add <paths>'
and commit the result.
When commiting, use the option '-c 2d29ab2' to retain authorship
and message.
Conflict in Makefile. Okay, no problem, edit it. Ah, of course, Shawn
asked for automatic inferring of the available languages, while Junio
added "ja". Just take the current version (the version between "<<<<"
and "====").
$ git add -u
$ git commit -c 2d29ab2
- Make the current revision my new 'master'. That branch already exists,
and I am on 'christian-new', though. No problem:
$ git branch -M christian-new master
(But if you do that with "-M", which means _force_ rename, make sure
twice that this is really what you want.)
- Push it.
$ git push origin +master
...
refs/heads/master: da7b699[...] -> cc2b761b[...]
The "+" is necessary, since I rebased it...
If there were more pushers than just me, I'd verify that da7b699 is
indeed the old state of my master:
$ git reflog
...
d36cd96... HEAD@{20}: checkout: moving from master to christian-new
da7b699... HEAD@{21}: commit [...]
Yep.
Good. Happy.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 14:22 ` [PATCH 1/5] " Johannes Schindelin
@ 2007-07-21 19:41 ` Junio C Hamano
2007-07-21 19:50 ` Christian Stimming
2007-07-21 21:12 ` [PATCH 1/5] Internationalization of git-gui Johannes Schindelin
0 siblings, 2 replies; 69+ messages in thread
From: Junio C Hamano @ 2007-07-21 19:41 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Christian Stimming, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> ...
> - Make the current revision my new 'master'. That branch already exists,
> and I am on 'christian-new', though. No problem:
>
> $ git branch -M christian-new master
>
> (But if you do that with "-M", which means _force_ rename, make sure
> twice that this is really what you want.)
>
> - Push it.
>
> $ git push origin +master
> ...
> refs/heads/master: da7b699[...] -> cc2b761b[...]
>
> The "+" is necessary, since I rebased it...
>
> If there were more pushers than just me, I'd verify that da7b699 is
> indeed the old state of my master:
>
> $ git reflog
> ...
> d36cd96... HEAD@{20}: checkout: moving from master to christian-new
> da7b699... HEAD@{21}: commit [...]
>
> Yep.
>
> Good. Happy.
Two questions and a half.
- The above means git-gui-i18n.git's master is rebased. Is
that the intention? IOW, people are supposed to work on it
with fetch+rebase, not fetch+merge (= pull)?
- It seems that the tip of 'mob' now is out of sync wrt
'master'. What's the plan to update it with framework
changes made in 'master' (e.g. addition of po/glossary.csv)?
While I think keeping a reference for consistent translation
(within one language's *.po file) is a useful practice,
the po/glossary.csv file on 'master' seems a way suboptimal
solution. Currently it is:
$ file po/glossary.csv
po/glossary.csv: ISO-8859 text
$ head -n 1 po/glossary.csv
"English Term" "de translation"
which implies that other languages will be added at the end
separated with <TAB>?
There are two HUGE problems with that.
* Supporting many languages means looooong lines in that file.
Translators for languages later on the line would have hard
time updating or looking at that file.
* Mixed encodings. What if next language wants its strings in
UTF-8? How would you have that and ISO-8859 on a same line?
I would suggest having one glossary file per language.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 19:41 ` Junio C Hamano
@ 2007-07-21 19:50 ` Christian Stimming
2007-07-21 21:20 ` Johannes Schindelin
2007-07-21 21:28 ` Junio C Hamano
2007-07-21 21:12 ` [PATCH 1/5] Internationalization of git-gui Johannes Schindelin
1 sibling, 2 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-21 19:50 UTC (permalink / raw)
To: Junio C Hamano
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Am Samstag, 21. Juli 2007 21:41 schrieb Junio C Hamano:
> While I think keeping a reference for consistent translation
> (within one language's *.po file) is a useful practice,
> the po/glossary.csv file on 'master' seems a way suboptimal
> solution. Currently it is:
>
> $ file po/glossary.csv
> po/glossary.csv: ISO-8859 text
Oops. I created it with utf8 locally. Must have turned into latin1 either in
my mailer or during Johannes' mbox tweaking.
(Also, the de.po was created in utf8 here and must have been messed up during
transmission. Johannes, for future reference: All i18n files should probably
be submitted as utf8, and if they have a different encoding, the submitter
better gave a clear sign this was intentional.)
> $ head -n 1 po/glossary.csv
> "English Term" "de translation"
>
> which implies that other languages will be added at the end
> separated with <TAB>?
>
> There are two HUGE problems with that.
>
> * Supporting many languages means looooong lines in that file.
> Translators for languages later on the line would have hard
> time updating or looking at that file.
>
> * Mixed encodings. What if next language wants its strings in
> UTF-8? How would you have that and ISO-8859 on a same line?
>
> I would suggest having one glossary file per language.
Agreed. I propose to throw away the "add glossary" patch and I'll resubmit,
this time in a separate po/glossary/ directory, where each language will get
a po file for the glossary.
As I've written in another thread: In the glossary for the gnucash project [1]
we've actually added an extra
directory and encourage translators to add an extra po file for their
glossary translations. However, the glossary of gnucash has more than 150
terms and many of them require to be defined clearly as well, as translators
would otherwise be unable to translate them concisely. In git-gui, the
glossary is 25 terms so far and I think the git documentation already
contains enough definitions of all of them. Nevertheless, maybe it would make
a better structure if the translations of the glossary are kept in a separate
po file for each language.
Christian
[1]
http://svn.gnucash.org/trac/browser/gnucash/trunk/po/glossary/gnc-glossary.txt
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 19:50 ` Christian Stimming
@ 2007-07-21 21:20 ` Johannes Schindelin
2007-07-21 21:28 ` Junio C Hamano
1 sibling, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 21:20 UTC (permalink / raw)
To: Christian Stimming
Cc: Junio C Hamano, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sat, 21 Jul 2007, Christian Stimming wrote:
> Am Samstag, 21. Juli 2007 21:41 schrieb Junio C Hamano:
> > While I think keeping a reference for consistent translation
> > (within one language's *.po file) is a useful practice,
> > the po/glossary.csv file on 'master' seems a way suboptimal
> > solution. Currently it is:
> >
> > $ file po/glossary.csv
> > po/glossary.csv: ISO-8859 text
>
> Oops. I created it with utf8 locally. Must have turned into latin1 either in
> my mailer or during Johannes' mbox tweaking.
D'oh. I think it was my tweaking. But now, with 'mob' in place, there
are less chances for me to fsck up.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 19:50 ` Christian Stimming
2007-07-21 21:20 ` Johannes Schindelin
@ 2007-07-21 21:28 ` Junio C Hamano
2007-07-21 21:35 ` Johannes Schindelin
` (2 more replies)
1 sibling, 3 replies; 69+ messages in thread
From: Junio C Hamano @ 2007-07-21 21:28 UTC (permalink / raw)
To: Christian Stimming
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Christian Stimming <stimming@tuhh.de> writes:
>> There are two HUGE problems with that.
>>
>> * Supporting many languages means looooong lines in that file.
>> Translators for languages later on the line would have hard
>> time updating or looking at that file.
>>
>> * Mixed encodings. What if next language wants its strings in
>> UTF-8? How would you have that and ISO-8859 on a same line?
>>
>> I would suggest having one glossary file per language.
>
> Agreed. I propose to throw away the "add glossary" patch and I'll resubmit,
> this time in a separate po/glossary/ directory, where each language will get
> a po file for the glossary.
>
> As I've written in another thread: In the glossary for the gnucash project [1]
> we've actually added an extra
> directory and encourage translators to add an extra po file for their
> glossary translations. However, the glossary of gnucash has more than 150
> terms and many of them require to be defined clearly as well, as translators
> would otherwise be unable to translate them concisely. In git-gui, the
> glossary is 25 terms so far and I think the git documentation already
> contains enough definitions of all of them. Nevertheless, maybe it would make
> a better structure if the translations of the glossary are kept in a separate
> po file for each language.
Actually, I would even suggest that we should NOT have a
separate glossary file at all, if gettext suite allows what I
outline below.
How about having it as a part of header comment in each of the
xx.po file?
The division of labor I think would make sense for message l10n
process goes like this:
- The software developer (primarily Shawn): responsible for
marking messages subject to i18n;
- The i18n coordinator (could be Shawn but anybody else can
volunteer; as things stand, I think Christian and Johannes
are doing this): responsible for running "make
po/git-gui.pot; make update-po" from time to time in order to
keep po/*.po in sync with the vocabulary.
initially, populate "glossary" part in po/git-gui.pot;
as needed, add entries "glossary" part in po/git-gui.pot, and
(if possible) add corresponding placeholders to po/*.po;
- Translators (one for each language): responsible for updating
po/xx.po file;
initially, start by copying po/git-gui.pot to create
po/xx.po;
maintainance of "glossary" part of po/xx.po could also be
made this person's responsibility instead of i18n
coordinator's.
This way, the translators do not have to be so familiar with the
gettext toolchain nor even have to have gettext installed.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 21:28 ` Junio C Hamano
@ 2007-07-21 21:35 ` Johannes Schindelin
2007-07-22 13:35 ` Christian Stimming
2007-07-23 20:16 ` [PATCH] Add glossary that can be converted into a po file for each language Christian Stimming
2 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 21:35 UTC (permalink / raw)
To: Junio C Hamano
Cc: Christian Stimming, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sat, 21 Jul 2007, Junio C Hamano wrote:
> The division of labor I think would make sense for message l10n
> process goes like this:
>
> - The software developer (primarily Shawn): responsible for
> marking messages subject to i18n;
>
> - The i18n coordinator (could be Shawn but anybody else can
> volunteer; as things stand, I think Christian and Johannes
> are doing this): responsible for running "make
> po/git-gui.pot; make update-po" from time to time in order to
> keep po/*.po in sync with the vocabulary.
>
> initially, populate "glossary" part in po/git-gui.pot;
>
> as needed, add entries "glossary" part in po/git-gui.pot, and
> (if possible) add corresponding placeholders to po/*.po;
>
> - Translators (one for each language): responsible for updating
> po/xx.po file;
>
> initially, start by copying po/git-gui.pot to create
> po/xx.po;
>
> maintainance of "glossary" part of po/xx.po could also be
> made this person's responsibility instead of i18n
> coordinator's.
>
> This way, the translators do not have to be so familiar with the
> gettext toolchain nor even have to have gettext installed.
Makes tons of sense to me.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 21:28 ` Junio C Hamano
2007-07-21 21:35 ` Johannes Schindelin
@ 2007-07-22 13:35 ` Christian Stimming
2007-07-22 14:29 ` Johannes Schindelin
2007-07-23 20:16 ` [PATCH] Add glossary that can be converted into a po file for each language Christian Stimming
2 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-22 13:35 UTC (permalink / raw)
To: Junio C Hamano
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Am Samstag, 21. Juli 2007 23:28 schrieb Junio C Hamano:
> > Agreed. I propose to throw away the "add glossary" patch and I'll
> > resubmit, this time in a separate po/glossary/ directory, where each
> > language will get a po file for the glossary.
>
> Actually, I would even suggest that we should NOT have a
> separate glossary file at all, if gettext suite allows what I
> outline below.
>
> How about having it as a part of header comment in each of the
> xx.po file?
I don't think this would work well. In particular, you don't get all the nice
gettext *merging* features that you only get with a full-blown po file.
> The division of labor I think would make sense for message l10n
> process goes like this:
>
> - The software developer (primarily Shawn): responsible for
> marking messages subject to i18n;
Yes, except those developers who don't happen to be translators as well tend
to forget the markups. I don't blame anyone for doing so - just keep in mind
that translators have to give feedback about missing markups, and they
hopefully will do so.
> - The i18n coordinator (could be Shawn but anybody else can
> volunteer; as things stand, I think Christian and Johannes
> are doing this): responsible for running "make
> po/git-gui.pot; make update-po" from time to time in order to
> keep po/*.po in sync with the vocabulary.
Actually, please DO NOT RUN update-po except right before a new tarball is
being packaged and distributed! It sucks royally if I have updated my de.po
translation, only to discover someone has run update-po on the server and I
have to figure out how to get out of the de.po conflicts. There will be
conflicts after each and every update-po because the line numbers in the po
file will have changed inevitably -- but the actualy content in terms of
messages might be completely unchanged.
For that reason, please use the update-po rule AS SELDOM AS POSSIBLE. Thanks a
lot.
> initially, populate "glossary" part in po/git-gui.pot;
>
> as needed, add entries "glossary" part in po/git-gui.pot, and
> (if possible) add corresponding placeholders to po/*.po;
Again, this doesn't work well, and depending on the po file editor that is
used by a translator they might not see this comment block anyway. I would
instead propose a subdirectory po/glossary; a CSV file that contains the
terms itself; a csv-to-po converter script that will turn the terms into a
git-gui-glossary.pot; and a po file for each language.
> - Translators (one for each language): responsible for updating
> po/xx.po file;
>
> initially, start by copying po/git-gui.pot to create
> po/xx.po;
>
> maintainance of "glossary" part of po/xx.po could also be
> made this person's responsibility instead of i18n
> coordinator's.
>
> This way, the translators do not have to be so familiar with the
> gettext toolchain nor even have to have gettext installed.
Translators who are unfamiliar with gettext are a mixed blessing. Anyone is
able to contribute a bunch of initial string translations, especially if
there hasn't been a translation before. But if someone or a team wants to
achieve a really *high-quality*, 100%, consistent, and understandable
translation, the translators must be able to test the translation a lot,
which implies they must be able to generate the .msg files, which requires
the gettext toolchain anyway. For that reason I wouldn't spent too much
effort to enable translation work without gettext tools; instead, I'd rather
encourage to optimize the setup for those translators that have the full
toolchain available.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-22 13:35 ` Christian Stimming
@ 2007-07-22 14:29 ` Johannes Schindelin
0 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-22 14:29 UTC (permalink / raw)
To: Christian Stimming
Cc: Junio C Hamano, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sun, 22 Jul 2007, Christian Stimming wrote:
> Am Samstag, 21. Juli 2007 23:28 schrieb Junio C Hamano:
>
> > - The i18n coordinator (could be Shawn but anybody else can
> > volunteer; as things stand, I think Christian and Johannes
> > are doing this): responsible for running "make
> > po/git-gui.pot; make update-po" from time to time in order to
> > keep po/*.po in sync with the vocabulary.
>
> Actually, please DO NOT RUN update-po except right before a new tarball
> is being packaged and distributed! It sucks royally if I have updated my
> de.po translation, only to discover someone has run update-po on the
> server and I have to figure out how to get out of the de.po conflicts.
I plan to work on that. It seems to be pretty easy to define a sane merge
behaviour, and we have gitattributes: by setting "*.po diff=po merge=po"
we can provide a custom merge program, just for .po files.
> > - Translators (one for each language): responsible for updating
> > po/xx.po file;
> >
> > initially, start by copying po/git-gui.pot to create
> > po/xx.po;
> >
> > maintainance of "glossary" part of po/xx.po could also be
> > made this person's responsibility instead of i18n
> > coordinator's.
> >
> > This way, the translators do not have to be so familiar with the
> > gettext toolchain nor even have to have gettext installed.
>
> Translators who are unfamiliar with gettext are a mixed blessing. [...]
> I wouldn't spent too much effort to enable translation work without
> gettext tools; instead, I'd rather encourage to optimize the setup for
> those translators that have the full toolchain available.
You need not work on the "without gettext toolchain" part; I will. Let's
see how far I get ;-)
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* [PATCH] Add glossary that can be converted into a po file for each language.
2007-07-21 21:28 ` Junio C Hamano
2007-07-21 21:35 ` Johannes Schindelin
2007-07-22 13:35 ` Christian Stimming
@ 2007-07-23 20:16 ` Christian Stimming
2007-07-24 1:48 ` Junio C Hamano
2007-07-24 6:56 ` Junio C Hamano
2 siblings, 2 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-23 20:16 UTC (permalink / raw)
To: Junio C Hamano
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Signed-off-by: Christian Stimming <stimming@tuhh.de>
---
Am Samstag, 21. Juli 2007 23:28 schrieb Junio C Hamano:
> >> I would suggest having one glossary file per language.
> >
> > Agreed. I propose to throw away the "add glossary" patch and I'll
> > resubmit, this time in a separate po/glossary/ directory, where each
> > language will get a po file for the glossary.
>
> Actually, I would even suggest that we should NOT have a
> separate glossary file at all, if gettext suite allows what I
> outline below.
>
> How about having it as a part of header comment in each of the
> xx.po file?
As I already wrote: Having a glossary in the header of the po file has
some (IMHO serious) drawbacks. For that reason I've pushed this patch
to the mob branch: It contains one tab-separated text file with the relevant
terms *plus their definition* (for now, pulled from
git/Documentation/glossary.txt). As an example, you also see the German
glossary translation - and having the definition available there as well (and
having it updated by running make update-po) is indeed a huge advantage.
po/glossary/Makefile | 9 ++
po/glossary/de.po | 151 ++++++++++++++++++++++++++++++++++++++
po/glossary/git-gui-glossary.txt | 34 +++++++++
po/glossary/txt-to-pot.sh | 48 ++++++++++++
4 files changed, 242 insertions(+), 0 deletions(-)
create mode 100644 po/glossary/Makefile
create mode 100644 po/glossary/de.po
create mode 100644 po/glossary/git-gui-glossary.txt
create mode 100755 po/glossary/txt-to-pot.sh
diff --git a/po/glossary/Makefile b/po/glossary/Makefile
new file mode 100644
index 0000000..749aa2e
--- /dev/null
+++ b/po/glossary/Makefile
@@ -0,0 +1,9 @@
+PO_TEMPLATE = git-gui-glossary.pot
+
+ALL_POFILES = $(wildcard *.po)
+
+$(PO_TEMPLATE): $(subst .pot,.txt,$(PO_TEMPLATE))
+ ./txt-to-pot.sh $< > $@
+
+update-po:: git-gui-glossary.pot
+ $(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) ; )
diff --git a/po/glossary/de.po b/po/glossary/de.po
new file mode 100644
index 0000000..0d07f68
--- /dev/null
+++ b/po/glossary/de.po
@@ -0,0 +1,151 @@
+# Translation of git-gui glossary to German
+# Copyright (C) 2007 Shawn Pearce, et al.
+# This file is distributed under the same license as the git package.
+# Christian Stimming <stimming@tuhh.de>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: git-gui glossary\n"
+"PO-Revision-Date: 2007-07-23 22:07+0200\n"
+"Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
+"Language-Team: German \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+msgid ""
+"English Term (Dear translator: This file will never be visible to the user!)"
+msgstr "Deutsche Übersetzung"
+
+#. ""
+msgid "amend"
+msgstr "nachbessern (ergänzen)"
+
+#. ""
+msgid "annotate"
+msgstr "annotieren"
+
+#. "A 'branch' is an active line of development."
+msgid "branch [noun]"
+msgstr "Zweig"
+
+#. ""
+msgid "branch [verb]"
+msgstr "verzweigen"
+
+#. ""
+msgid "checkout [noun]"
+msgstr "Auscheck? Ausspielung? Abruf?"
+
+#. "The action of updating the working tree to a revision which was stored in the object database."
+msgid "checkout [verb]"
+msgstr "auschecken? ausspielen? abrufen?"
+
+#. "A single point in the git history."
+msgid "commit [noun]"
+msgstr "Übertragung (Sendung?, Übergabe?, Einspielung?, Ablagevorgang?)"
+
+#. "The action of storing a new snapshot of the project's state in the git history."
+msgid "commit [verb]"
+msgstr "übertragen (senden?, übergeben?, einspielen?, einpflegen?, ablegen?)"
+
+#. ""
+msgid "diff [noun]"
+msgstr "Vergleich"
+
+#. ""
+msgid "diff [verb]"
+msgstr "vergleichen"
+
+#. "A fast-forward is a special typ of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+msgid "fast forward merge"
+msgstr "Schnellzusammenführung"
+
+#. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+msgid "fetch"
+msgstr "anfordern (holen?)"
+
+#. "A collection of files. The index is a stored version of your working tree."
+msgid "index (in git-gui: staging area)"
+msgstr "Bereitstellung"
+
+#. "A successful merge results in the creation of a new commit representing the result of the merge."
+msgid "merge [noun]"
+msgstr "Zusammenführung"
+
+#. "To bring the contents of another branch into the current branch."
+msgid "merge [verb]"
+msgstr "zusammenführen"
+
+#. ""
+msgid "message"
+msgstr "Meldung (Nachricht?)"
+
+#. "Pulling a branch means to fetch it and merge it."
+msgid "pull"
+msgstr "übernehmen (ziehen?)"
+
+#. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+msgid "push"
+msgstr "ausliefern (hochladen? verschicken? schieben?)"
+
+#. ""
+msgid "redo"
+msgstr "wiederholen"
+
+#. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+msgid "repository"
+msgstr "Projektarchiv"
+
+#. ""
+msgid "reset"
+msgstr "zurücksetzen"
+
+#. ""
+msgid "revert"
+msgstr "revidieren (aufheben?, zurückkehren?)"
+
+#. "A particular state of files and directories which was stored in the object database."
+msgid "revision"
+msgstr "Version? Revision?"
+
+#. ""
+msgid "sign off"
+msgstr "abzeichnen (gegenzeichnen?, freizeichnen?, absegnen?)"
+
+#. ""
+msgid "staging area"
+msgstr "Bereitstellung"
+
+#. ""
+msgid "status"
+msgstr "Status"
+
+#. "A ref pointing to a tag or commit object"
+msgid "tag [noun]"
+msgstr "Markierung"
+
+#. ""
+msgid "tag [verb]"
+msgstr "markieren"
+
+#. "A regular git branch that is used to follow changes from another repository."
+msgid "tracking branch"
+msgstr "? Entfernter Zweig? Folgezweig?"
+
+#. ""
+msgid "undo"
+msgstr "rückgängig"
+
+#. ""
+msgid "update"
+msgstr "aktualisieren"
+
+#. ""
+msgid "verify"
+msgstr "überprüfen"
+
+#. "The tree of actual checked out files."
+msgid "working copy, working tree"
+msgstr "Arbeitskopie"
diff --git a/po/glossary/git-gui-glossary.txt b/po/glossary/git-gui-glossary.txt
new file mode 100644
index 0000000..e079bb2
--- /dev/null
+++ b/po/glossary/git-gui-glossary.txt
@@ -0,0 +1,34 @@
+"English Term (Dear translator: This file will never be visible to the user!)" "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+"amend" ""
+"annotate" ""
+"branch [noun]" "A 'branch' is an active line of development."
+"branch [verb]" ""
+"checkout [noun]" ""
+"checkout [verb]" "The action of updating the working tree to a revision which was stored in the object database."
+"commit [noun]" "A single point in the git history."
+"commit [verb]" "The action of storing a new snapshot of the project's state in the git history."
+"diff [noun]" ""
+"diff [verb]" ""
+"fast forward merge" "A fast-forward is a special typ of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+"fetch" "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+"index (in git-gui: staging area)" "A collection of files. The index is a stored version of your working tree."
+"merge [noun]" "A successful merge results in the creation of a new commit representing the result of the merge."
+"merge [verb]" "To bring the contents of another branch into the current branch."
+"message" ""
+"pull" "Pulling a branch means to fetch it and merge it."
+"push" "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+"redo" ""
+"repository" "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+"reset" ""
+"revert" ""
+"revision" "A particular state of files and directories which was stored in the object database."
+"sign off" ""
+"staging area" ""
+"status" ""
+"tag [noun]" "A ref pointing to a tag or commit object"
+"tag [verb]" ""
+"tracking branch" "A regular git branch that is used to follow changes from another repository."
+"undo" ""
+"update" ""
+"verify" ""
+"working copy, working tree" "The tree of actual checked out files."
diff --git a/po/glossary/txt-to-pot.sh b/po/glossary/txt-to-pot.sh
new file mode 100755
index 0000000..8a8f976
--- /dev/null
+++ b/po/glossary/txt-to-pot.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+# This is a very, _very_, simple script to convert a tab-separated
+# .txt file into a .pot/.po.
+# Its not clever but it took me 2 minutes to write :)
+# Michael Twomey <michael.twomey@ireland.sun.com>
+# 23 March 2001
+# with slight GnuCash modifications by Christian Stimming <stimming@tuhh.de>
+# 19 Aug 2001, 23 Jul 2007
+
+#check args
+if [ $# -eq 0 ]
+then
+ cat <<!
+Usage: `basename $0` git-gui-glossary.txt > git-gui-glossary.pot
+!
+ exit 1;
+fi
+
+GLOSSARY_CSV="$1";
+
+if [ ! -f "$GLOSSARY_CSV" ]
+then
+ echo "Can't find $GLOSSARY_CSV.";
+ exit 1;
+fi
+
+cat <<!
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: `date +'%Y-%m-%d %H:%M%z'`\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+!
+
+#Yes this is the most simple awk script you've ever seen :)
+awk -F'\t' '{if ($2 != "") print "#. "$2; print "msgid "$1; print "msgstr \"\"\n"}' \
+$GLOSSARY_CSV
--
1.5.2
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH] Add glossary that can be converted into a po file for each language.
2007-07-23 20:16 ` [PATCH] Add glossary that can be converted into a po file for each language Christian Stimming
@ 2007-07-24 1:48 ` Junio C Hamano
2007-07-24 6:56 ` Junio C Hamano
1 sibling, 0 replies; 69+ messages in thread
From: Junio C Hamano @ 2007-07-24 1:48 UTC (permalink / raw)
To: Christian Stimming
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Christian Stimming <stimming@tuhh.de> writes:
> As I already wrote: Having a glossary in the header of the po file has
> some (IMHO serious) drawbacks.
Yeah, that was me talking without knowing what are the usual
workflows with gettext toolchain. A separate glossary that
properly is PO is much nicer. We could even use that in the
help text.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Add glossary that can be converted into a po file for each language.
2007-07-23 20:16 ` [PATCH] Add glossary that can be converted into a po file for each language Christian Stimming
2007-07-24 1:48 ` Junio C Hamano
@ 2007-07-24 6:56 ` Junio C Hamano
2007-07-24 9:34 ` Christian Stimming
1 sibling, 1 reply; 69+ messages in thread
From: Junio C Hamano @ 2007-07-24 6:56 UTC (permalink / raw)
To: Christian Stimming
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Christian Stimming <stimming@tuhh.de> writes:
> diff --git a/po/glossary/git-gui-glossary.txt b/po/glossary/git-gui-glossary.txt
> new file mode 100644
> index 0000000..e079bb2
> --- /dev/null
> +++ b/po/glossary/git-gui-glossary.txt
> @@ -0,0 +1,34 @@
> +"English Term (Dear translator: This file will never be visible to the user!)" "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
> +"amend" ""
> +"annotate" ""
> +"branch [noun]" "A 'branch' is an active line of development."
> +"branch [verb]" ""
> +"checkout [noun]" ""
> +"checkout [verb]" "The action of updating the working tree to a revision which was stored in the object database."
> +"commit [noun]" "A single point in the git history."
I wonder.... couldn't this be written as a Tcl array that maps
word to its definition, marked with [mc] 'gettext'ese, perhaps,
glossary.tcl? Then perhaps git-gui can include it and have a
user-visible glossary as part of its help system.
Am I dreaming, or too drunk?
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Add glossary that can be converted into a po file for each language.
2007-07-24 6:56 ` Junio C Hamano
@ 2007-07-24 9:34 ` Christian Stimming
0 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-24 9:34 UTC (permalink / raw)
To: Junio C Hamano
Cc: Johannes Schindelin, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Quoting Junio C Hamano <gitster@pobox.com>:
>> +++ b/po/glossary/git-gui-glossary.txt
>> @@ -0,0 +1,34 @@
>> +"English Term (Dear translator: This file will never be visible to
>> the user!)" "English Definition (Dear translator: This file will
>> never be visible to the user! It should only serve as a tool for
>> you, the translator. Nothing more.)"
>> +"amend" ""
>> +"annotate" ""
>> +"branch [noun]" "A 'branch' is an active line of development."
>> +"branch [verb]" ""
>> +"checkout [noun]" ""
>> +"checkout [verb]" "The action of updating the working tree to a
>> revision which was stored in the object database."
>> +"commit [noun]" "A single point in the git history."
>
> I wonder.... couldn't this be written as a Tcl array that maps
> word to its definition, marked with [mc] 'gettext'ese, perhaps,
> glossary.tcl? Then perhaps git-gui can include it and have a
> user-visible glossary as part of its help system.
I'm not so sure about this idea. I'd expect the glossary definitions
for the translators to emphasize other issues than what a user-visible
glossary would explain. For the user, the glossary should explain what
each term means and what the user can *do* with this. For the
translator, the glossary should explain what each term means and where
it appears in the project (and which other terms it should be
distinguished from). Also, the translator glossary IMHO should collect
warnings about potential ambiguities as well (including the very clear
distinction between noun and verb). Whereas the user glossary is
probably much more verbose in what it explains, but doesn't emphasize
as much the clear differences between verb and noun and so on.
> Am I dreaming, or too drunk?
You tell me :-)
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 19:41 ` Junio C Hamano
2007-07-21 19:50 ` Christian Stimming
@ 2007-07-21 21:12 ` Johannes Schindelin
2007-07-21 22:36 ` Junio C Hamano
1 sibling, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 21:12 UTC (permalink / raw)
To: Junio C Hamano
Cc: Christian Stimming, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sat, 21 Jul 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > ...
> > - Make the current revision my new 'master'. That branch already exists,
> > and I am on 'christian-new', though. No problem:
> >
> > $ git branch -M christian-new master
> >
> > (But if you do that with "-M", which means _force_ rename, make sure
> > twice that this is really what you want.)
> >
> > - Push it.
> >
> > $ git push origin +master
> > ...
> > refs/heads/master: da7b699[...] -> cc2b761b[...]
> >
> > The "+" is necessary, since I rebased it...
> >
> > If there were more pushers than just me, I'd verify that da7b699 is
> > indeed the old state of my master:
> >
> > $ git reflog
> > ...
> > d36cd96... HEAD@{20}: checkout: moving from master to christian-new
> > da7b699... HEAD@{21}: commit [...]
> >
> > Yep.
> >
> > Good. Happy.
>
> Two questions and a half.
>
> - The above means git-gui-i18n.git's master is rebased. Is
> that the intention? IOW, people are supposed to work on it
> with fetch+rebase, not fetch+merge (= pull)?
Okay, you have me there. Usually I am the one saying "rebasing is bad".
So I'll refrain from that practice. From now on, 'master' will _not_ be
rebased. From time to time I will prepare 'for-shawn' branches, which are
"master rebased onto git-gui".
In related news, I will push to 'mob' whenever I update 'master'. I will
never force a push to 'mob', and neither should anybody else have to.
(Except in the case that you want to correct one of your pushes.)
> - It seems that the tip of 'mob' now is out of sync wrt
> 'master'. What's the plan to update it with framework
> changes made in 'master' (e.g. addition of po/glossary.csv)?
IMHO the best practice is to keep it up-to-date with 'master', as I
outlined above.
> [Half a question about po/glossary.csv]
This was answered by Christian, I guess.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 21:12 ` [PATCH 1/5] Internationalization of git-gui Johannes Schindelin
@ 2007-07-21 22:36 ` Junio C Hamano
2007-07-21 23:01 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Junio C Hamano @ 2007-07-21 22:36 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Christian Stimming, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>> Two questions and a half.
>>
>> - The above means git-gui-i18n.git's master is rebased. Is
>> that the intention? IOW, people are supposed to work on it
>> with fetch+rebase, not fetch+merge (= pull)?
>
> Okay, you have me there. Usually I am the one saying "rebasing is bad".
> So I'll refrain from that practice. From now on, 'master' will _not_ be
> rebased. From time to time I will prepare 'for-shawn' branches, which are
> "master rebased onto git-gui".
I did not mean to say "rebase is bad". Quite the contrary.
Rebase is bad for a repository meant for public consumption of
the under-development-snapshot, like git.git's 'master' and
'next'. For a repository like git-gui-i18n whose sole point is
to serve as a public gathering point of narrowly focused area of
development (only translation of messages), I actually think
"everybody fetches and rebases" workflow is perfectly fine, as
long as all participants understand what the expected workflows
are. My comment was more about making it clear what the policy
is to its intended audience.
Rebasing git-gui-i18n to keep its history clean would eventually
allow you to merge it directly into git-gui. But if you are not
aiming for that (and you said your plan is to cherry pick the
result, not to merge, which is fine), then rebasing would no buy
you anything, so I think it would be a reasonable and manageable
workflow to:
- people fork from 'mob', push back to 'mob';
- you
- build 'master' by cherry picking good bits from 'mob', and
- do your own fixups and framework changes on 'master',
- merge 'master' back to 'mob' to allow contributors to
adjust their work on the updated 'master' by simply
following 'mob',
- and eventually clean-up 'master' to make it mergeable and/or
applicable to git-gui itself.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 22:36 ` Junio C Hamano
@ 2007-07-21 23:01 ` Johannes Schindelin
0 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 23:01 UTC (permalink / raw)
To: Junio C Hamano
Cc: Christian Stimming, Shawn O. Pearce, Brett Schwarz, git,
Paul Mackerras
Hi,
On Sat, 21 Jul 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> Two questions and a half.
> >>
> >> - The above means git-gui-i18n.git's master is rebased. Is
> >> that the intention? IOW, people are supposed to work on it
> >> with fetch+rebase, not fetch+merge (= pull)?
> >
> > Okay, you have me there. Usually I am the one saying "rebasing is bad".
> > So I'll refrain from that practice. From now on, 'master' will _not_ be
> > rebased. From time to time I will prepare 'for-shawn' branches, which are
> > "master rebased onto git-gui".
>
> I did not mean to say "rebase is bad". Quite the contrary.
Yeah, I was not really precise. Rebase is only bad for branches that want
to be tracked.
As you can see from my work on rebase -i, I recently converted to an avid
user of rebase, from somebody who detested the feature a year ago.
> [...] I think it would be a reasonable and manageable workflow to:
>
> - people fork from 'mob', push back to 'mob';
>
> - you
> - build 'master' by cherry picking good bits from 'mob', and
> - do your own fixups and framework changes on 'master',
> - merge 'master' back to 'mob' to allow contributors to
> adjust their work on the updated 'master' by simply
> following 'mob',
>
> - and eventually clean-up 'master' to make it mergeable and/or
> applicable to git-gui itself.
I plan to pull and push from mob, from time to time
cherry-picking/rebasing and cleaning up to a branch called 'for-shawn'.
To keep things a little synchronised, I plan to make grafts at stages
where master^{tree} = for-shawn^{tree}, so that rebase is easier.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-21 12:33 ` [PATCH 1/5] " Christian Stimming
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
2007-07-21 14:22 ` [PATCH 1/5] " Johannes Schindelin
@ 2007-07-22 7:38 ` Shawn O. Pearce
2007-07-23 19:23 ` Christian Stimming
2 siblings, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-22 7:38 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> Subject: [PATCH] Initialize msgcat (gettext).
...
> diff --git a/git-gui.sh b/git-gui.sh
> index c5ff7c8..0c5ca46 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -108,6 +108,12 @@ if {$idx ne {}} {
> }
> unset -nocomplain oguirel idx fd
>
> +## Internationalization (i18n) through msgcat and gettext. See
> +## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
> +package require msgcat
> +::msgcat::mcload [file join $oguilib msgs]
> +namespace import ::msgcat::mc
> +
Thanks. We'll probably also want to modify the lib/class.tcl to
import ::msgcat::mc into the class namespace when it creates it.
I use that class thing throught most of git-gui, especially for
UI code. About 50% of git-gui has been converted to use class,
the other 50% is just global and is still in git-gui.sh. ;-)
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-22 7:38 ` Shawn O. Pearce
@ 2007-07-23 19:23 ` Christian Stimming
2007-07-24 14:57 ` Shawn O. Pearce
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-23 19:23 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Brett Schwarz, git, Paul Mackerras
Am Sonntag, 22. Juli 2007 09:38 schrieb Shawn O. Pearce:
> > +## Internationalization (i18n) through msgcat and gettext. See
> > +## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
> > +package require msgcat
> > +::msgcat::mcload [file join $oguilib msgs]
> > +namespace import ::msgcat::mc
>
> Thanks. We'll probably also want to modify the lib/class.tcl to
> import ::msgcat::mc into the class namespace when it creates it.
> I use that class thing throught most of git-gui, especially for
> UI code. About 50% of git-gui has been converted to use class,
> the other 50% is just global and is still in git-gui.sh. ;-)
As I was adding the markup in all the other files, I didn't have to add
another import statement anywhere else. Seems like the global mc procedure
works just fine.
In other words, if you think the mc procedure should be imported in another
place as well, please do so because I don't know your future plans with class
structure (and I also don't need to know for adding the i18n support right
now).
Thanks,
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH 1/5] Internationalization of git-gui
2007-07-23 19:23 ` Christian Stimming
@ 2007-07-24 14:57 ` Shawn O. Pearce
0 siblings, 0 replies; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-24 14:57 UTC (permalink / raw)
To: Christian Stimming; +Cc: Brett Schwarz, git, Paul Mackerras
Christian Stimming <stimming@tuhh.de> wrote:
> Am Sonntag, 22. Juli 2007 09:38 schrieb Shawn O. Pearce:
> > > +## Internationalization (i18n) through msgcat and gettext. See
> > > +## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
> > > +package require msgcat
> > > +::msgcat::mcload [file join $oguilib msgs]
> > > +namespace import ::msgcat::mc
> >
> > Thanks. We'll probably also want to modify the lib/class.tcl to
> > import ::msgcat::mc ...
>
> As I was adding the markup in all the other files, I didn't have to add
> another import statement anywhere else. Seems like the global mc procedure
> works just fine.
>
> In other words, if you think the mc procedure should be imported in another
> place as well, please do so because I don't know your future plans with class
> structure (and I also don't need to know for adding the i18n support right
> now).
Hmm. Actually that makes sense. We probably don't need to make
any changes, other than to make sure we don't override the "mc"
definition in any of the other UI namespaces, since it is currently
being inherited from :: (the global namespace).
Thanks.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-19 17:33 [PATCH] Internationalization of git-gui Brett Schwarz
2007-07-20 5:04 ` Shawn O. Pearce
@ 2007-07-20 9:03 ` Christian Stimming
1 sibling, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-20 9:03 UTC (permalink / raw)
To: Brett Schwarz; +Cc: git, Paul Mackerras, Shawn O. Pearce
Quoting Brett Schwarz <brett_schwarz@yahoo.com>:
> Also, if the message catalogs are in a common location, then it
> might be worth looking into having gitk utilize these msg catalogs
> as well.
You mean you suggest to re-use existing msg catalogs in addition to
ones that are created on our own? Well, from the i18n coordination
work in another project (gnucash) I wouldn't expect any noticable
benefit from doing so. The re-usable parts of translations are rather
limited, basically limited to the standard menu entries and some more
single-word strings (Yes/No/Cancel...). But even then re-using other
translations might already decrease the quality of your own
translation, because other translators of packages might already have
chosen a different translation for e.g. "Cancel". For that reason I
strongly suggest using one single msg catalog for one single project,
so that the translator is even able to make sure each word is
translated into the same translation throughout the project.
(I also strongly suggest creating and translating a glossary of the
important terms before starting to translate the msg catalog itself,
but that's a different issue.)
> p.s. the frink tool (http://wiki.tcl.tk/2611) is supposed to be able
> to convert -text and -label switches to use msgcat...it might be
> worth looking into, instead of manually editing git-gui/gitk
Thanks for the pointer. However, the -text and -label switches can be
found and edited rather easily by keyboard macros and such. More
important than this are some changes that are necessary in order to
obtain strings that are actually translatable, such as
- .mbar.apple add command -label "About [appname]" \
+ .mbar.apple add command -label [format [_ "About %s"] [appname]] \
and you will agree those can only be done manually anyway.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
@ 2007-07-21 16:29 Brett Schwarz
0 siblings, 0 replies; 69+ messages in thread
From: Brett Schwarz @ 2007-07-21 16:29 UTC (permalink / raw)
To: Christian Stimming
Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin, git
> ----- Original Message ----
> From: Christian Stimming <stimming@tuhh.de>
> To: Brett Schwarz <brett_schwarz@yahoo.com>
> Cc: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>; Shawn O. Pearce <spearce@spearce.org>; Johannes Schindelin <Johannes.Schindelin@gmx.de>; git@vger.kernel.org
> Sent: Friday, July 20, 2007 2:40:27 PM
> Subject: Re: [PATCH] Internationalization of git-gui
>
> Am Freitag, 20. Juli 2007 20:34 schrieb Brett Schwarz:
> > After the glossary of terms has been create, it is easy to create the
> > catalog file (assuming we use Tcl's standard mechanism). Each locale should
> > have it's own file, named <locale_name>.msg (for example, es.msg for
> > spanish). Inside that file, you just create entries for each glossary term
> > (the below assumes that the msgcat namespace was imported):
> >
> > mcset es Hello Hola
> > mcset es "Hello %s" "Hola %s"
>
> I beg your pardon, but I think you grossly misunderstood what I meant
> by "glossary". So before we end up in further confusion, let me clarify how
> the general translation approach works. I'll use gettext wording because
> that's what I know (from being the i18n guy in the gnucash project), but you
> can easily insert any other wording you like here.
>
Ok, perhaps I did misunderstand you. From below, now I do understand...thanks.
> #1 For the translation in general, there is the set of all user-visible
> strings in the source language (here: english). In gettext terms this is
> called the "PO template file", git-gui.pot, also called the message template
> file. This set of to-be-translated strings needs to be extracted from the
> source code, which can be done by the xgettext program.
>
> #2 For each target language, there is a human-readable mapping file that maps
> each source string (english) into the target language. In gettext terms this
> is the "PO file", de.po and it.po and ja.po and whatnot, also called the
> translation file. This is the *only* file translators actually work with.
> Gettext uses its PO file format here and a plethora of different tools exist
> to help translators editing these files. (Examples: emacs po-mode,
> KBabel, ...)
>
> #3 For each target language, the translation files are converted to a
> (potentially not human-readable) "compiled" mapping file, which is then read
> at program runtime and used for the actual translation. For the gettext po
> file format, the msgfmt program can convert this to Tcl's .msg files.
>
> If I understand correctly, your above suggestion implies that for Tcl msgcat,
> the file in #2 and #3 are one and the same? In my opinion this might make
> sense if and only if that file format is supported by at least as many
> translation tools and offers as flexible translation updates as gettext's po
> file format does. From my experience the po file format indeed offers a bunch
> of features that other translation file formats are missing but which are of
> significant help to the translator. That's why I would strongly suggest to do
> the actual translation inside a po file, and have it converted to the msg
> file afterwards.
>
Yes, for the msgcat files, you create just the mapping files...that's it. No intermediate steps. So, a workflow would look something like this:
1) Somebody creates the initial "template" file. This is usually in the source's language (i.e. english). This too is just a msgcat file. Note that this file is not strictly necessary, but helps other translators.
2) A translator copies the template file, to their target language file, and edits the text:
# cp en.msg es.msg
# vi es.msg
this
mcset en Hello Hello
get's changed to this
mcset es Hello Hola
etc
That's it. There is no compilation needed, and no need for a makefile entry.
Now, even though I think this approach is alot more simplier and straight forward, I do recognize that alot of people are probably accustomed to the po format, and since the actual generation of the msgcat files are only done by the maintainer, I don't really have anything against using the po format.
I know it's already been decided to use the po format, but I just wanted to make sure to follow up on this email.
Thanks,
--brett
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
@ 2007-07-20 18:34 Brett Schwarz
2007-07-20 21:40 ` Christian Stimming
0 siblings, 1 reply; 69+ messages in thread
From: Brett Schwarz @ 2007-07-20 18:34 UTC (permalink / raw)
To: Paolo Ciarrocchi, Shawn O. Pearce
Cc: Johannes Schindelin, Christian Stimming, git
After the glossary of terms has been create, it is easy to create the catalog file (assuming we use Tcl's standard mechanism). Each locale should have it's own file, named <locale_name>.msg (for example, es.msg for spanish). Inside that file, you just create entries for each glossary term (the below assumes that the msgcat namespace was imported):
mcset es Hello Hola
mcset es "Hello %s" "Hola %s"
.
.
.
You can find more out here if you like http://wiki.tcl.tk/msgcat
HTH,
--brett
----- Original Message ----
From: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>
To: Shawn O. Pearce <spearce@spearce.org>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>; Christian Stimming <stimming@tuhh.de>; git@vger.kernel.org
Sent: Friday, July 20, 2007 10:32:24 AM
Subject: Re: [PATCH] Internationalization of git-gui
On 7/20/07, Shawn O. Pearce <spearce@spearce.org> wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > On Thu, 19 Jul 2007, Christian Stimming wrote:
> >
> > > Does this implementation look okay?
> >
> > This is valuable work, but unfortunately, it does not follow the
> > recommendation in Documentation/SubmittingPatches at all.
> >
> > For starters, please send the patches inlined, one per mail. And you
> > might want to Cc the maintainer of git-gui (Shawn Pearce), too...
>
> I agree that internationalization of git-gui is worth doing.
> I've thought about working on it, but haven't yet because nobody
> else has seemed interested in having it done. Apparently someone
> is, so patches towards that end are most welcome.
Hi Shawn,
I volunteer to translate all the git-gui messages in Italian.
Just let me if you are interested and please give me an hint on how to
produce the translation so that you can incorporate it.
Thanks.
Regards,
--
Paolo
"Tutto cio' che merita di essere fatto,merita di essere fatto bene"
Philip Stanhope IV conte di Chesterfield
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
____________________________________________________________________________________
Yahoo! oneSearch: Finally, mobile search
that gives answers, not web links.
http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:34 Brett Schwarz
@ 2007-07-20 21:40 ` Christian Stimming
0 siblings, 0 replies; 69+ messages in thread
From: Christian Stimming @ 2007-07-20 21:40 UTC (permalink / raw)
To: Brett Schwarz; +Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin, git
Am Freitag, 20. Juli 2007 20:34 schrieb Brett Schwarz:
> After the glossary of terms has been create, it is easy to create the
> catalog file (assuming we use Tcl's standard mechanism). Each locale should
> have it's own file, named <locale_name>.msg (for example, es.msg for
> spanish). Inside that file, you just create entries for each glossary term
> (the below assumes that the msgcat namespace was imported):
>
> mcset es Hello Hola
> mcset es "Hello %s" "Hola %s"
I beg your pardon, but I think you grossly misunderstood what I meant
by "glossary". So before we end up in further confusion, let me clarify how
the general translation approach works. I'll use gettext wording because
that's what I know (from being the i18n guy in the gnucash project), but you
can easily insert any other wording you like here.
#1 For the translation in general, there is the set of all user-visible
strings in the source language (here: english). In gettext terms this is
called the "PO template file", git-gui.pot, also called the message template
file. This set of to-be-translated strings needs to be extracted from the
source code, which can be done by the xgettext program.
#2 For each target language, there is a human-readable mapping file that maps
each source string (english) into the target language. In gettext terms this
is the "PO file", de.po and it.po and ja.po and whatnot, also called the
translation file. This is the *only* file translators actually work with.
Gettext uses its PO file format here and a plethora of different tools exist
to help translators editing these files. (Examples: emacs po-mode,
KBabel, ...)
#3 For each target language, the translation files are converted to a
(potentially not human-readable) "compiled" mapping file, which is then read
at program runtime and used for the actual translation. For the gettext po
file format, the msgfmt program can convert this to Tcl's .msg files.
If I understand correctly, your above suggestion implies that for Tcl msgcat,
the file in #2 and #3 are one and the same? In my opinion this might make
sense if and only if that file format is supported by at least as many
translation tools and offers as flexible translation updates as gettext's po
file format does. From my experience the po file format indeed offers a bunch
of features that other translation file formats are missing but which are of
significant help to the translator. That's why I would strongly suggest to do
the actual translation inside a po file, and have it converted to the msg
file afterwards.
On the other hand when I mentioned a "glossary", I was talking about a simple
text file that should collect the 15-20 most important single words from
within the project. Those words usually show up in many different translation
strings, and as a translator you would easily lose track of which word you
translated into which translation. (Example glossary terms: repository,
commit [both the verb and the noun, heh], fetch, pull, push.) That's why you
would first collect that glossary, then come up with a one-to-one translation
for each of the 20 words of the glossary, and *then* use that fixed wording
throughout all 200-500 message translations of the actual project.
Christian
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
@ 2007-07-20 18:15 Brett Schwarz
0 siblings, 0 replies; 69+ messages in thread
From: Brett Schwarz @ 2007-07-20 18:15 UTC (permalink / raw)
To: Christian Stimming; +Cc: git, Paul Mackerras, Shawn O. Pearce
[my apologies about top posting...my mail reader sucks]
Sure, I wasn't saying there would be for sure an advantage in re-using catalogs. That's why I said it *might* be worth looking into. Just a suggestion.
I agree that a glossary should be created first. That way, translators have a common set to work with.
Just a note about string substitution. msgcat has substitution built-in, so instead of this:
.mbar.apple add command -label [format [_ "About %s"] [appname]] \
You can do this:
.mbar.apple add command -label [_ "About %s" [appname]] \
Thanks,
--brett
----- Original Message ----
From: Christian Stimming <stimming@tuhh.de>
To: Brett Schwarz <brett_schwarz@yahoo.com>
Cc: git@vger.kernel.org; Paul Mackerras <paulus@samba.org>; Shawn O. Pearce <spearce@spearce.org>
Sent: Friday, July 20, 2007 2:03:54 AM
Subject: Re: [PATCH] Internationalization of git-gui
Quoting Brett Schwarz <brett_schwarz@yahoo.com>:
> Also, if the message catalogs are in a common location, then it
> might be worth looking into having gitk utilize these msg catalogs
> as well.
You mean you suggest to re-use existing msg catalogs in addition to
ones that are created on our own? Well, from the i18n coordination
work in another project (gnucash) I wouldn't expect any noticable
benefit from doing so. The re-usable parts of translations are rather
limited, basically limited to the standard menu entries and some more
single-word strings (Yes/No/Cancel...). But even then re-using other
translations might already decrease the quality of your own
translation, because other translators of packages might already have
chosen a different translation for e.g. "Cancel". For that reason I
strongly suggest using one single msg catalog for one single project,
so that the translator is even able to make sure each word is
translated into the same translation throughout the project.
(I also strongly suggest creating and translating a glossary of the
important terms before starting to translate the msg catalog itself,
but that's a different issue.)
> p.s. the frink tool (http://wiki.tcl.tk/2611) is supposed to be able
> to convert -text and -label switches to use msgcat...it might be
> worth looking into, instead of manually editing git-gui/gitk
Thanks for the pointer. However, the -text and -label switches can be
found and edited rather easily by keyboard macros and such. More
important than this are some changes that are necessary in order to
obtain strings that are actually translatable, such as
- .mbar.apple add command -label "About [appname]" \
+ .mbar.apple add command -label [format [_ "About %s"] [appname]] \
and you will agree those can only be done manually anyway.
Christian
____________________________________________________________________________________
Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7
^ permalink raw reply [flat|nested] 69+ messages in thread
* [PATCH] Internationalization of git-gui
@ 2007-07-19 10:56 Christian Stimming
2007-07-19 12:25 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Christian Stimming @ 2007-07-19 10:56 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 370 bytes --]
This is an initial patch of how internationalization (i18n) in git
could be done, starting with the git-gui application (because I need
that one in German to convince my workplace of switching to git).
Does this implementation look okay? If yes, I'd happily i18n'ize the
rest of git-gui and provide a full German translation as well.
Thanks,
Christian Stimming
[-- Attachment #2: 0001-Initialize-msgcat-gettext.patch --]
[-- Type: text/x-patch, Size: 851 bytes --]
>From ea66070d95061e623cb5430fe88efea653e511e0 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Thu, 19 Jul 2007 12:48:08 +0200
Subject: [PATCH] Initialize msgcat (gettext).
---
git-gui/git-gui.sh | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 2077261..c56a3f1 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -108,6 +108,12 @@ if {$idx ne {}} {
}
unset -nocomplain oguirel idx fd
+## Internationalization (i18n) through gettext. See
+## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
+package require msgcat
+::msgcat::mcload [file join $oguilib msgs]
+proc _ {s} {return [::msgcat::mc $s]}
+
######################################################################
##
## read only globals
--
1.5.3.rc2.4.g726f9
[-- Attachment #3: 0002-Mark-strings-for-translation.patch --]
[-- Type: text/x-patch, Size: 16181 bytes --]
>From 154d29786bdda205357595e22b3385d7cdb77453 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Thu, 19 Jul 2007 12:49:09 +0200
Subject: [PATCH] Mark strings for translation
---
git-gui/git-gui.sh | 154 ++++++++++++++++++++++++++--------------------------
1 files changed, 77 insertions(+), 77 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index c56a3f1..45b7ef1 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1618,18 +1618,18 @@ set ui_comm {}
# -- Menu Bar
#
menu .mbar -tearoff 0
-.mbar add cascade -label Repository -menu .mbar.repository
-.mbar add cascade -label Edit -menu .mbar.edit
+.mbar add cascade -label [_ Repository] -menu .mbar.repository
+.mbar add cascade -label [_ Edit] -menu .mbar.edit
if {[is_enabled branch]} {
- .mbar add cascade -label Branch -menu .mbar.branch
+ .mbar add cascade -label [_ Branch] -menu .mbar.branch
}
if {[is_enabled multicommit] || [is_enabled singlecommit]} {
- .mbar add cascade -label Commit -menu .mbar.commit
+ .mbar add cascade -label [_ Commit] -menu .mbar.commit
}
if {[is_enabled transport]} {
- .mbar add cascade -label Merge -menu .mbar.merge
- .mbar add cascade -label Fetch -menu .mbar.fetch
- .mbar add cascade -label Push -menu .mbar.push
+ .mbar add cascade -label [_ Merge] -menu .mbar.merge
+ .mbar add cascade -label [_ Fetch] -menu .mbar.fetch
+ .mbar add cascade -label [_ Push] -menu .mbar.push
}
. configure -menu .mbar
@@ -1638,75 +1638,75 @@ if {[is_enabled transport]} {
menu .mbar.repository
.mbar.repository add command \
- -label {Browse Current Branch} \
+ -label [_ {Browse Current Branch}] \
-command {browser::new $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Browse \$current_branch\" ;#"
.mbar.repository add separator
.mbar.repository add command \
- -label {Visualize Current Branch} \
+ -label [_ {Visualize Current Branch}] \
-command {do_gitk $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Visualize \$current_branch\" ;#"
.mbar.repository add command \
- -label {Visualize All Branches} \
+ -label [_ {Visualize All Branches}] \
-command {do_gitk --all}
.mbar.repository add separator
if {[is_enabled multicommit]} {
- .mbar.repository add command -label {Database Statistics} \
+ .mbar.repository add command -label [_ {Database Statistics}] \
-command do_stats
- .mbar.repository add command -label {Compress Database} \
+ .mbar.repository add command -label [_ {Compress Database}] \
-command do_gc
- .mbar.repository add command -label {Verify Database} \
+ .mbar.repository add command -label [_ {Verify Database}] \
-command do_fsck_objects
.mbar.repository add separator
if {[is_Cygwin]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [_ {Create Desktop Icon}] \
-command do_cygwin_shortcut
} elseif {[is_Windows]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [_ {Create Desktop Icon}] \
-command do_windows_shortcut
} elseif {[is_MacOSX]} {
.mbar.repository add command \
- -label {Create Desktop Icon} \
+ -label [_ {Create Desktop Icon}] \
-command do_macosx_app
}
}
-.mbar.repository add command -label Quit \
+.mbar.repository add command -label [_ Quit] \
-command do_quit \
-accelerator $M1T-Q
# -- Edit Menu
#
menu .mbar.edit
-.mbar.edit add command -label Undo \
+.mbar.edit add command -label [_ Undo] \
-command {catch {[focus] edit undo}} \
-accelerator $M1T-Z
-.mbar.edit add command -label Redo \
+.mbar.edit add command -label [_ Redo] \
-command {catch {[focus] edit redo}} \
-accelerator $M1T-Y
.mbar.edit add separator
-.mbar.edit add command -label Cut \
+.mbar.edit add command -label [_ Cut] \
-command {catch {tk_textCut [focus]}} \
-accelerator $M1T-X
-.mbar.edit add command -label Copy \
+.mbar.edit add command -label [_ Copy] \
-command {catch {tk_textCopy [focus]}} \
-accelerator $M1T-C
-.mbar.edit add command -label Paste \
+.mbar.edit add command -label [_ Paste] \
-command {catch {tk_textPaste [focus]; [focus] see insert}} \
-accelerator $M1T-V
-.mbar.edit add command -label Delete \
+.mbar.edit add command -label [_ Delete] \
-command {catch {[focus] delete sel.first sel.last}} \
-accelerator Del
.mbar.edit add separator
-.mbar.edit add command -label {Select All} \
+.mbar.edit add command -label [_ {Select All}] \
-command {catch {[focus] tag add sel 0.0 end}} \
-accelerator $M1T-A
@@ -1715,29 +1715,29 @@ menu .mbar.edit
if {[is_enabled branch]} {
menu .mbar.branch
- .mbar.branch add command -label {Create...} \
+ .mbar.branch add command -label [_ {Create...}] \
-command branch_create::dialog \
-accelerator $M1T-N
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Checkout...} \
+ .mbar.branch add command -label [_ {Checkout...}] \
-command branch_checkout::dialog \
-accelerator $M1T-O
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Rename...} \
+ .mbar.branch add command -label [_ {Rename...}] \
-command branch_rename::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Delete...} \
+ .mbar.branch add command -label [_ {Delete...}] \
-command branch_delete::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label {Reset...} \
+ .mbar.branch add command -label [_ {Reset...}] \
-command merge::reset_hard
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
@@ -1749,7 +1749,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
menu .mbar.commit
.mbar.commit add radiobutton \
- -label {New Commit} \
+ -label [_ {New Commit}] \
-command do_select_commit_type \
-variable selected_commit_type \
-value new
@@ -1757,7 +1757,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add radiobutton \
- -label {Amend Last Commit} \
+ -label [_ {Amend Last Commit}] \
-command do_select_commit_type \
-variable selected_commit_type \
-value amend
@@ -1766,40 +1766,40 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
.mbar.commit add separator
- .mbar.commit add command -label Rescan \
+ .mbar.commit add command -label [_ Rescan] \
-command do_rescan \
-accelerator F5
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Add To Commit} \
+ .mbar.commit add command -label [_ {Add To Commit}] \
-command do_add_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Add Existing To Commit} \
+ .mbar.commit add command -label [_ {Add Existing To Commit}] \
-command do_add_all \
-accelerator $M1T-I
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Unstage From Commit} \
+ .mbar.commit add command -label [_ {Unstage From Commit}] \
-command do_unstage_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label {Revert Changes} \
+ .mbar.commit add command -label [_ {Revert Changes}] \
-command do_revert_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add separator
- .mbar.commit add command -label {Sign Off} \
+ .mbar.commit add command -label [_ {Sign Off}] \
-command do_signoff \
-accelerator $M1T-S
- .mbar.commit add command -label Commit \
+ .mbar.commit add command -label [_ Commit] \
-command do_commit \
-accelerator $M1T-Return
lappend disable_on_lock \
@@ -1810,11 +1810,11 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
#
if {[is_enabled branch]} {
menu .mbar.merge
- .mbar.merge add command -label {Local Merge...} \
+ .mbar.merge add command -label [_ {Local Merge...}] \
-command merge::dialog
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
- .mbar.merge add command -label {Abort Merge...} \
+ .mbar.merge add command -label [_ {Abort Merge...}] \
-command merge::reset_hard
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
@@ -1827,28 +1827,28 @@ if {[is_enabled transport]} {
menu .mbar.fetch
menu .mbar.push
- .mbar.push add command -label {Push...} \
+ .mbar.push add command -label [_ {Push...}] \
-command do_push_anywhere \
-accelerator $M1T-P
- .mbar.push add command -label {Delete...} \
+ .mbar.push add command -label [_ {Delete...}] \
-command remote_branch_delete::dialog
}
if {[is_MacOSX]} {
# -- Apple Menu (Mac OS X only)
#
- .mbar add cascade -label Apple -menu .mbar.apple
+ .mbar add cascade -label [_ Apple] -menu .mbar.apple
menu .mbar.apple
- .mbar.apple add command -label "About [appname]" \
+ .mbar.apple add command -label [format [_ "About %s"] [appname]] \
-command do_about
- .mbar.apple add command -label "Options..." \
+ .mbar.apple add command -label [_ "Options..."] \
-command do_options
} else {
# -- Edit Menu
#
.mbar.edit add separator
- .mbar.edit add command -label {Options...} \
+ .mbar.edit add command -label [_ {Options...}] \
-command do_options
# -- Tools Menu
@@ -1870,9 +1870,9 @@ if {[is_MacOSX]} {
rescan ui_ready
}
}
- .mbar add cascade -label Tools -menu .mbar.tools
+ .mbar add cascade -label [_ Tools] -menu .mbar.tools
menu .mbar.tools
- .mbar.tools add command -label "Migrate" \
+ .mbar.tools add command -label [_ "Migrate"] \
-command do_miga
lappend disable_on_lock \
[list .mbar.tools entryconf [.mbar.tools index last] -state]
@@ -1881,11 +1881,11 @@ if {[is_MacOSX]} {
# -- Help Menu
#
-.mbar add cascade -label Help -menu .mbar.help
+.mbar add cascade -label [_ Help] -menu .mbar.help
menu .mbar.help
if {![is_MacOSX]} {
- .mbar.help add command -label "About [appname]" \
+ .mbar.help add command -label [format [_ "About %s"] [appname]] \
-command do_about
}
@@ -1922,7 +1922,7 @@ if {[file isfile $doc_path]} {
}
if {$browser ne {}} {
- .mbar.help add command -label {Online Documentation} \
+ .mbar.help add command -label [_ {Online Documentation}] \
-command [list exec $browser $doc_url &]
}
unset browser doc_path doc_url
@@ -2167,12 +2167,12 @@ label $ui_coml \
proc trace_commit_type {varname args} {
global ui_coml commit_type
switch -glob -- $commit_type {
- initial {set txt {Initial Commit Message:}}
- amend {set txt {Amended Commit Message:}}
- amend-initial {set txt {Amended Initial Commit Message:}}
- amend-merge {set txt {Amended Merge Commit Message:}}
- merge {set txt {Merge Commit Message:}}
- * {set txt {Commit Message:}}
+ initial {set txt [_ {Initial Commit Message:}]}
+ amend {set txt [_ {Amended Commit Message:}]}
+ amend-initial {set txt [_ {Amended Initial Commit Message:}]}
+ amend-merge {set txt [_ {Amended Merge Commit Message:}]}
+ merge {set txt [_ {Merge Commit Message:}]}
+ * {set txt [_ {Commit Message:}]}
}
$ui_coml conf -text $txt
}
@@ -2201,23 +2201,23 @@ pack .vpane.lower.commarea.buffer -side left -fill y
set ctxm .vpane.lower.commarea.buffer.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Cut} \
+ -label [_ {Cut}] \
-command {tk_textCut $ui_comm}
$ctxm add command \
- -label {Copy} \
+ -label [_ {Copy}] \
-command {tk_textCopy $ui_comm}
$ctxm add command \
- -label {Paste} \
+ -label [_ {Paste}] \
-command {tk_textPaste $ui_comm}
$ctxm add command \
- -label {Delete} \
+ -label [_ {Delete}] \
-command {$ui_comm delete sel.first sel.last}
$ctxm add separator
$ctxm add command \
- -label {Select All} \
+ -label [_ {Select All}] \
-command {focus $ui_comm;$ui_comm tag add sel 0.0 end}
$ctxm add command \
- -label {Copy All} \
+ -label [_ {Copy All}] \
-command {
$ui_comm tag add sel 0.0 end
tk_textCopy $ui_comm
@@ -2225,7 +2225,7 @@ $ctxm add command \
}
$ctxm add separator
$ctxm add command \
- -label {Sign Off} \
+ -label [_ {Sign Off}] \
-command do_signoff
bind_button3 $ui_comm "tk_popup $ctxm %X %Y"
@@ -2275,7 +2275,7 @@ pack .vpane.lower.diff.header.path -fill x
set ctxm .vpane.lower.diff.header.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Copy} \
+ -label [_ {Copy}] \
-command {
clipboard clear
clipboard append \
@@ -2343,19 +2343,19 @@ $ui_diff tag raise sel
set ctxm .vpane.lower.diff.body.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label {Refresh} \
+ -label [_ {Refresh}] \
-command reshow_diff
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Copy} \
+ -label [_ {Copy}] \
-command {tk_textCopy $ui_diff}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Select All} \
+ -label [_ {Select All}] \
-command {focus $ui_diff;$ui_diff tag add sel 0.0 end}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Copy All} \
+ -label [_ {Copy All}] \
-command {
$ui_diff tag add sel 0.0 end
tk_textCopy $ui_diff
@@ -2364,44 +2364,44 @@ $ctxm add command \
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label {Apply/Reverse Hunk} \
+ -label [_ {Apply/Reverse Hunk}] \
-command {apply_hunk $cursorX $cursorY}
set ui_diff_applyhunk [$ctxm index last]
lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state]
$ctxm add separator
$ctxm add command \
- -label {Decrease Font Size} \
+ -label [_ {Decrease Font Size}] \
-command {incr_font_size font_diff -1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Increase Font Size} \
+ -label [_ {Increase Font Size}] \
-command {incr_font_size font_diff 1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label {Show Less Context} \
+ -label [_ {Show Less Context}] \
-command {if {$repo_config(gui.diffcontext) >= 1} {
incr repo_config(gui.diffcontext) -1
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label {Show More Context} \
+ -label [_ {Show More Context}] \
-command {if {$repo_config(gui.diffcontext) < 99} {
incr repo_config(gui.diffcontext)
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
-$ctxm add command -label {Options...} \
+$ctxm add command -label [_ {Options...}] \
-command do_options
bind_button3 $ui_diff "
set cursorX %x
set cursorY %y
if {\$ui_index eq \$current_diff_side} {
- $ctxm entryconf $ui_diff_applyhunk -label {Unstage Hunk From Commit}
+ $ctxm entryconf $ui_diff_applyhunk -label [_ {Unstage Hunk From Commit}]
} else {
- $ctxm entryconf $ui_diff_applyhunk -label {Stage Hunk For Commit}
+ $ctxm entryconf $ui_diff_applyhunk -label [_ {Stage Hunk For Commit}]
}
tk_popup $ctxm %X %Y
"
--
1.5.3.rc2.4.g726f9
[-- Attachment #4: 0003-Enclose-strings-in-quotes-not-in-braces-so-that-xg.patch --]
[-- Type: text/x-patch, Size: 12418 bytes --]
>From 3ff00ecdabb82448b95ad3b9e738441236c0eb11 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Thu, 19 Jul 2007 12:49:11 +0200
Subject: [PATCH] Enclose strings in quotes, not in braces, so that xgettext finds them
---
git-gui/git-gui.sh | 104 ++++++++++++++++++++++++++--------------------------
1 files changed, 52 insertions(+), 52 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 45b7ef1..5eef35d 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1638,43 +1638,43 @@ if {[is_enabled transport]} {
menu .mbar.repository
.mbar.repository add command \
- -label [_ {Browse Current Branch}] \
+ -label [_ "Browse Current Branch"] \
-command {browser::new $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Browse \$current_branch\" ;#"
.mbar.repository add separator
.mbar.repository add command \
- -label [_ {Visualize Current Branch}] \
+ -label [_ "Visualize Current Branch"] \
-command {do_gitk $current_branch}
trace add variable current_branch write ".mbar.repository entryconf [.mbar.repository index last] -label \"Visualize \$current_branch\" ;#"
.mbar.repository add command \
- -label [_ {Visualize All Branches}] \
+ -label [_ "Visualize All Branches"] \
-command {do_gitk --all}
.mbar.repository add separator
if {[is_enabled multicommit]} {
- .mbar.repository add command -label [_ {Database Statistics}] \
+ .mbar.repository add command -label [_ "Database Statistics"] \
-command do_stats
- .mbar.repository add command -label [_ {Compress Database}] \
+ .mbar.repository add command -label [_ "Compress Database"] \
-command do_gc
- .mbar.repository add command -label [_ {Verify Database}] \
+ .mbar.repository add command -label [_ "Verify Database"] \
-command do_fsck_objects
.mbar.repository add separator
if {[is_Cygwin]} {
.mbar.repository add command \
- -label [_ {Create Desktop Icon}] \
+ -label [_ "Create Desktop Icon"] \
-command do_cygwin_shortcut
} elseif {[is_Windows]} {
.mbar.repository add command \
- -label [_ {Create Desktop Icon}] \
+ -label [_ "Create Desktop Icon"] \
-command do_windows_shortcut
} elseif {[is_MacOSX]} {
.mbar.repository add command \
- -label [_ {Create Desktop Icon}] \
+ -label [_ "Create Desktop Icon"] \
-command do_macosx_app
}
}
@@ -1706,7 +1706,7 @@ menu .mbar.edit
-command {catch {[focus] delete sel.first sel.last}} \
-accelerator Del
.mbar.edit add separator
-.mbar.edit add command -label [_ {Select All}] \
+.mbar.edit add command -label [_ "Select All"] \
-command {catch {[focus] tag add sel 0.0 end}} \
-accelerator $M1T-A
@@ -1715,29 +1715,29 @@ menu .mbar.edit
if {[is_enabled branch]} {
menu .mbar.branch
- .mbar.branch add command -label [_ {Create...}] \
+ .mbar.branch add command -label [_ "Create..."] \
-command branch_create::dialog \
-accelerator $M1T-N
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label [_ {Checkout...}] \
+ .mbar.branch add command -label [_ "Checkout..."] \
-command branch_checkout::dialog \
-accelerator $M1T-O
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label [_ {Rename...}] \
+ .mbar.branch add command -label [_ "Rename..."] \
-command branch_rename::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label [_ {Delete...}] \
+ .mbar.branch add command -label [_ "Delete..."] \
-command branch_delete::dialog
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
- .mbar.branch add command -label [_ {Reset...}] \
+ .mbar.branch add command -label [_ "Reset..."] \
-command merge::reset_hard
lappend disable_on_lock [list .mbar.branch entryconf \
[.mbar.branch index last] -state]
@@ -1749,7 +1749,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
menu .mbar.commit
.mbar.commit add radiobutton \
- -label [_ {New Commit}] \
+ -label [_ "New Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value new
@@ -1757,7 +1757,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add radiobutton \
- -label [_ {Amend Last Commit}] \
+ -label [_ "Amend Last Commit"] \
-command do_select_commit_type \
-variable selected_commit_type \
-value amend
@@ -1772,30 +1772,30 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label [_ {Add To Commit}] \
+ .mbar.commit add command -label [_ "Add To Commit"] \
-command do_add_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label [_ {Add Existing To Commit}] \
+ .mbar.commit add command -label [_ "Add Existing To Commit"] \
-command do_add_all \
-accelerator $M1T-I
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label [_ {Unstage From Commit}] \
+ .mbar.commit add command -label [_ "Unstage From Commit"] \
-command do_unstage_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
- .mbar.commit add command -label [_ {Revert Changes}] \
+ .mbar.commit add command -label [_ "Revert Changes"] \
-command do_revert_selection
lappend disable_on_lock \
[list .mbar.commit entryconf [.mbar.commit index last] -state]
.mbar.commit add separator
- .mbar.commit add command -label [_ {Sign Off}] \
+ .mbar.commit add command -label [_ "Sign Off"] \
-command do_signoff \
-accelerator $M1T-S
@@ -1810,11 +1810,11 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
#
if {[is_enabled branch]} {
menu .mbar.merge
- .mbar.merge add command -label [_ {Local Merge...}] \
+ .mbar.merge add command -label [_ "Local Merge..."] \
-command merge::dialog
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
- .mbar.merge add command -label [_ {Abort Merge...}] \
+ .mbar.merge add command -label [_ "Abort Merge..."] \
-command merge::reset_hard
lappend disable_on_lock \
[list .mbar.merge entryconf [.mbar.merge index last] -state]
@@ -1827,10 +1827,10 @@ if {[is_enabled transport]} {
menu .mbar.fetch
menu .mbar.push
- .mbar.push add command -label [_ {Push...}] \
+ .mbar.push add command -label [_ "Push..."] \
-command do_push_anywhere \
-accelerator $M1T-P
- .mbar.push add command -label [_ {Delete...}] \
+ .mbar.push add command -label [_ "Delete..."] \
-command remote_branch_delete::dialog
}
@@ -1848,7 +1848,7 @@ if {[is_MacOSX]} {
# -- Edit Menu
#
.mbar.edit add separator
- .mbar.edit add command -label [_ {Options...}] \
+ .mbar.edit add command -label [_ "Options..."] \
-command do_options
# -- Tools Menu
@@ -1922,7 +1922,7 @@ if {[file isfile $doc_path]} {
}
if {$browser ne {}} {
- .mbar.help add command -label [_ {Online Documentation}] \
+ .mbar.help add command -label [_ "Online Documentation"] \
-command [list exec $browser $doc_url &]
}
unset browser doc_path doc_url
@@ -2167,12 +2167,12 @@ label $ui_coml \
proc trace_commit_type {varname args} {
global ui_coml commit_type
switch -glob -- $commit_type {
- initial {set txt [_ {Initial Commit Message:}]}
- amend {set txt [_ {Amended Commit Message:}]}
- amend-initial {set txt [_ {Amended Initial Commit Message:}]}
- amend-merge {set txt [_ {Amended Merge Commit Message:}]}
- merge {set txt [_ {Merge Commit Message:}]}
- * {set txt [_ {Commit Message:}]}
+ initial {set txt [_ "Initial Commit Message:"]}
+ amend {set txt [_ "Amended Commit Message:"]}
+ amend-initial {set txt [_ "Amended Initial Commit Message:"]}
+ amend-merge {set txt [_ "Amended Merge Commit Message:"]}
+ merge {set txt [_ "Merge Commit Message:"]}
+ * {set txt [_ "Commit Message:"]}
}
$ui_coml conf -text $txt
}
@@ -2201,23 +2201,23 @@ pack .vpane.lower.commarea.buffer -side left -fill y
set ctxm .vpane.lower.commarea.buffer.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label [_ {Cut}] \
+ -label [_ Cut] \
-command {tk_textCut $ui_comm}
$ctxm add command \
- -label [_ {Copy}] \
+ -label [_ Copy] \
-command {tk_textCopy $ui_comm}
$ctxm add command \
- -label [_ {Paste}] \
+ -label [_ Paste] \
-command {tk_textPaste $ui_comm}
$ctxm add command \
- -label [_ {Delete}] \
+ -label [_ Delete] \
-command {$ui_comm delete sel.first sel.last}
$ctxm add separator
$ctxm add command \
- -label [_ {Select All}] \
+ -label [_ "Select All"] \
-command {focus $ui_comm;$ui_comm tag add sel 0.0 end}
$ctxm add command \
- -label [_ {Copy All}] \
+ -label [_ "Copy All"] \
-command {
$ui_comm tag add sel 0.0 end
tk_textCopy $ui_comm
@@ -2225,7 +2225,7 @@ $ctxm add command \
}
$ctxm add separator
$ctxm add command \
- -label [_ {Sign Off}] \
+ -label [_ "Sign Off"] \
-command do_signoff
bind_button3 $ui_comm "tk_popup $ctxm %X %Y"
@@ -2275,7 +2275,7 @@ pack .vpane.lower.diff.header.path -fill x
set ctxm .vpane.lower.diff.header.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label [_ {Copy}] \
+ -label [_ Copy] \
-command {
clipboard clear
clipboard append \
@@ -2343,19 +2343,19 @@ $ui_diff tag raise sel
set ctxm .vpane.lower.diff.body.ctxm
menu $ctxm -tearoff 0
$ctxm add command \
- -label [_ {Refresh}] \
+ -label [_ Refresh] \
-command reshow_diff
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label [_ {Copy}] \
+ -label [_ Copy] \
-command {tk_textCopy $ui_diff}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label [_ {Select All}] \
+ -label [_ "Select All"] \
-command {focus $ui_diff;$ui_diff tag add sel 0.0 end}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label [_ {Copy All}] \
+ -label [_ "Copy All"] \
-command {
$ui_diff tag add sel 0.0 end
tk_textCopy $ui_diff
@@ -2364,36 +2364,36 @@ $ctxm add command \
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label [_ {Apply/Reverse Hunk}] \
+ -label [_ "Apply/Reverse Hunk"] \
-command {apply_hunk $cursorX $cursorY}
set ui_diff_applyhunk [$ctxm index last]
lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state]
$ctxm add separator
$ctxm add command \
- -label [_ {Decrease Font Size}] \
+ -label [_ "Decrease Font Size"] \
-command {incr_font_size font_diff -1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label [_ {Increase Font Size}] \
+ -label [_ "Increase Font Size"] \
-command {incr_font_size font_diff 1}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
$ctxm add command \
- -label [_ {Show Less Context}] \
+ -label [_ "Show Less Context"] \
-command {if {$repo_config(gui.diffcontext) >= 1} {
incr repo_config(gui.diffcontext) -1
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add command \
- -label [_ {Show More Context}] \
+ -label [_ "Show More Context"] \
-command {if {$repo_config(gui.diffcontext) < 99} {
incr repo_config(gui.diffcontext)
reshow_diff
}}
lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
$ctxm add separator
-$ctxm add command -label [_ {Options...}] \
+$ctxm add command -label [_ "Options..."] \
-command do_options
bind_button3 $ui_diff "
set cursorX %x
--
1.5.3.rc2.4.g726f9
[-- Attachment #5: 0004-Initial-German-translation-for-testing-of-i18n.patch --]
[-- Type: text/x-patch, Size: 5071 bytes --]
>From 9b7ef0f5d5627e65e5ab354cf99c8939770416d9 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Thu, 19 Jul 2007 12:50:19 +0200
Subject: [PATCH] Initial German translation for testing of i18n.
---
git-gui/po/de.po | 249 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 249 insertions(+), 0 deletions(-)
create mode 100644 git-gui/po/de.po
diff --git a/git-gui/po/de.po b/git-gui/po/de.po
new file mode 100644
index 0000000..7a74329
--- /dev/null
+++ b/git-gui/po/de.po
@@ -0,0 +1,249 @@
+# Translation of git-gui to German.
+# Copyright (C) 2007 Linux Thorvalds
+# This file is distributed under the same license as the git package.
+# Christian Stimming <stimming@tuhh.de>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: git-gui\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-18 18:27+0200\n"
+"PO-Revision-Date: 2007-07-19 11:45+0200\n"
+"Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: git-gui.sh:1622
+msgid "Repository"
+msgstr ""
+
+#: git-gui.sh:1623
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: git-gui.sh:1625
+msgid "Branch"
+msgstr ""
+
+#: git-gui.sh:1628 git-gui.sh:1803
+msgid "Commit"
+msgstr ""
+
+#: git-gui.sh:1631
+msgid "Merge"
+msgstr ""
+
+#: git-gui.sh:1632
+msgid "Fetch"
+msgstr ""
+
+#: git-gui.sh:1633
+msgid "Push"
+msgstr ""
+
+#: git-gui.sh:1642
+msgid "Browse Current Branch"
+msgstr ""
+
+#: git-gui.sh:1648
+msgid "Visualize Current Branch"
+msgstr ""
+
+#: git-gui.sh:1652
+msgid "Visualize All Branches"
+msgstr ""
+
+#: git-gui.sh:1657
+msgid "Database Statistics"
+msgstr ""
+
+#: git-gui.sh:1660
+msgid "Compress Database"
+msgstr ""
+
+#: git-gui.sh:1663
+msgid "Verify Database"
+msgstr ""
+
+#: git-gui.sh:1670 git-gui.sh:1674 git-gui.sh:1678
+msgid "Create Desktop Icon"
+msgstr ""
+
+#: git-gui.sh:1683
+msgid "Quit"
+msgstr "Beenden"
+
+#: git-gui.sh:1690
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: git-gui.sh:1693
+msgid "Redo"
+msgstr ""
+
+#: git-gui.sh:1697 git-gui.sh:2205
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: git-gui.sh:1700 git-gui.sh:2208 git-gui.sh:2279 git-gui.sh:2351
+msgid "Copy"
+msgstr "Kopieren"
+
+#: git-gui.sh:1703 git-gui.sh:2211
+msgid "Paste"
+msgstr "Einfügen"
+
+#: git-gui.sh:1706 git-gui.sh:2214
+msgid "Delete"
+msgstr "Löschen"
+
+#: git-gui.sh:1710 git-gui.sh:2218 git-gui.sh:2355
+msgid "Select All"
+msgstr ""
+
+#: git-gui.sh:1719
+msgid "Create..."
+msgstr ""
+
+#: git-gui.sh:1725
+msgid "Checkout..."
+msgstr ""
+
+#: git-gui.sh:1731
+msgid "Rename..."
+msgstr ""
+
+#: git-gui.sh:1736 git-gui.sh:1834
+msgid "Delete..."
+msgstr "Löschen..."
+
+#: git-gui.sh:1741
+msgid "Reset..."
+msgstr ""
+
+#: git-gui.sh:1753
+msgid "New Commit"
+msgstr ""
+
+#: git-gui.sh:1761
+msgid "Amend Last Commit"
+msgstr ""
+
+#: git-gui.sh:1770
+msgid "Rescan"
+msgstr "Neu laden"
+
+#: git-gui.sh:1776
+msgid "Add To Commit"
+msgstr ""
+
+#: git-gui.sh:1781
+msgid "Add Existing To Commit"
+msgstr ""
+
+#: git-gui.sh:1787
+msgid "Unstage From Commit"
+msgstr ""
+
+#: git-gui.sh:1792
+msgid "Revert Changes"
+msgstr ""
+
+#: git-gui.sh:1799 git-gui.sh:2229
+msgid "Sign Off"
+msgstr ""
+
+#: git-gui.sh:1814
+msgid "Local Merge..."
+msgstr ""
+
+#: git-gui.sh:1818
+msgid "Abort Merge..."
+msgstr ""
+
+#: git-gui.sh:1831
+msgid "Push..."
+msgstr ""
+
+#: git-gui.sh:1841
+msgid "Apple"
+msgstr "Apple"
+
+#: git-gui.sh:1844 git-gui.sh:1889
+#, tcl-format
+msgid "About %s"
+msgstr ""
+
+#: git-gui.sh:1846 git-gui.sh:1852 git-gui.sh:2397
+msgid "Options..."
+msgstr ""
+
+#: git-gui.sh:1874
+msgid "Tools"
+msgstr "Werkzeuge"
+
+#: git-gui.sh:1876
+msgid "Migrate"
+msgstr ""
+
+#: git-gui.sh:1885
+msgid "Help"
+msgstr "Hilfe"
+
+#: git-gui.sh:1926
+msgid "Online Documentation"
+msgstr ""
+
+#: git-gui.sh:2171
+msgid "Initial Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2172
+msgid "Amended Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2173
+msgid "Amended Initial Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2174
+msgid "Amended Merge Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2175
+msgid "Merge Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2176
+msgid "Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2221 git-gui.sh:2359
+msgid "Copy All"
+msgstr "Alle kopieren"
+
+#: git-gui.sh:2347
+msgid "Refresh"
+msgstr "Aktualisieren"
+
+#: git-gui.sh:2368
+msgid "Apply/Reverse Hunk"
+msgstr ""
+
+#: git-gui.sh:2374
+msgid "Decrease Font Size"
+msgstr "Schriftgröße verkleinern"
+
+#: git-gui.sh:2378
+msgid "Increase Font Size"
+msgstr "Schriftgröße vergrößern"
+
+#: git-gui.sh:2383
+msgid "Show Less Context"
+msgstr ""
+
+#: git-gui.sh:2390
+msgid "Show More Context"
+msgstr ""
--
1.5.3.rc2.4.g726f9
[-- Attachment #6: 0005-Makefile-rules-for-message-catalog-generation-and-in.patch --]
[-- Type: text/x-patch, Size: 2073 bytes --]
>From a91dc11906f6ced938dc79bded2fa46fcc147524 Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Thu, 19 Jul 2007 12:50:32 +0200
Subject: [PATCH] Makefile rules for message catalog generation and installation.
---
git-gui/Makefile | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/git-gui/Makefile b/git-gui/Makefile
index 1bac6fe..f6a6ce3 100644
--- a/git-gui/Makefile
+++ b/git-gui/Makefile
@@ -103,6 +103,19 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
$(GITGUI_BUILT_INS): git-gui
$(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
+XGETTEXT ?= xgettext
+msgsdir ?= $(libdir)/msgs
+msgsdir_SQ = $(subst ','\'',$(msgsdir))
+PO_TEMPLATE = po/git-gui.pot
+ALL_LINGUAS = de
+
+$(PO_TEMPLATE): $(SCRIPT_SH) $(ALL_LIBFILES)
+ $(XGETTEXT) -k_ -LTcl -o $@ $(SCRIPT_SH) $(ALL_LIBFILES)
+update-po:: $(PO_TEMPLATE)
+ ( cd po ; for A in *.po ; do echo Updating $${A} ; msgmerge -U $${A} ../$(PO_TEMPLATE) ; done )
+catalogs:: $(PO_TEMPLATE)
+ ( cd po ; for A in $(ALL_LINGUAS) ; do echo Generating catalog $${A} ; msgfmt --statistics --tcl $${A}.po -l $${A} -d . ; done )
+
lib/tclIndex: $(ALL_LIBFILES)
$(QUIET_INDEX)if echo \
$(foreach p,$(PRELOAD_FILES),source $p\;) \
@@ -136,7 +149,7 @@ GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
echo 1>$@ "$$VARS"; \
fi
-all:: $(ALL_PROGRAMS) lib/tclIndex
+all:: $(ALL_PROGRAMS) lib/tclIndex catalogs
install: all
$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)
@@ -145,6 +158,8 @@ install: all
$(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)
$(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'
$(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
+ $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1)
+ $(QUIET)$(foreach p,$(ALL_LINGUAS), $(INSTALL_R0)po/$p.msg $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true
dist-version:
@mkdir -p $(TARDIR)
--
1.5.3.rc2.4.g726f9
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-19 10:56 Christian Stimming
@ 2007-07-19 12:25 ` Johannes Schindelin
2007-07-20 4:55 ` Shawn O. Pearce
0 siblings, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-19 12:25 UTC (permalink / raw)
To: Christian Stimming; +Cc: git, Shawn Pearce
Hi,
On Thu, 19 Jul 2007, Christian Stimming wrote:
> Does this implementation look okay?
This is valuable work, but unfortunately, it does not follow the
recommendation in Documentation/SubmittingPatches at all.
For starters, please send the patches inlined, one per mail. And you
might want to Cc the maintainer of git-gui (Shawn Pearce), too...
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-19 12:25 ` Johannes Schindelin
@ 2007-07-20 4:55 ` Shawn O. Pearce
2007-07-20 17:32 ` Paolo Ciarrocchi
0 siblings, 1 reply; 69+ messages in thread
From: Shawn O. Pearce @ 2007-07-20 4:55 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Christian Stimming, git
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> On Thu, 19 Jul 2007, Christian Stimming wrote:
>
> > Does this implementation look okay?
>
> This is valuable work, but unfortunately, it does not follow the
> recommendation in Documentation/SubmittingPatches at all.
>
> For starters, please send the patches inlined, one per mail. And you
> might want to Cc the maintainer of git-gui (Shawn Pearce), too...
I agree that internationalization of git-gui is worth doing.
I've thought about working on it, but haven't yet because nobody
else has seemed interested in having it done. Apparently someone
is, so patches towards that end are most welcome.
--
Shawn.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 4:55 ` Shawn O. Pearce
@ 2007-07-20 17:32 ` Paolo Ciarrocchi
2007-07-20 18:10 ` Junio C Hamano
0 siblings, 1 reply; 69+ messages in thread
From: Paolo Ciarrocchi @ 2007-07-20 17:32 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Johannes Schindelin, Christian Stimming, git
On 7/20/07, Shawn O. Pearce <spearce@spearce.org> wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > On Thu, 19 Jul 2007, Christian Stimming wrote:
> >
> > > Does this implementation look okay?
> >
> > This is valuable work, but unfortunately, it does not follow the
> > recommendation in Documentation/SubmittingPatches at all.
> >
> > For starters, please send the patches inlined, one per mail. And you
> > might want to Cc the maintainer of git-gui (Shawn Pearce), too...
>
> I agree that internationalization of git-gui is worth doing.
> I've thought about working on it, but haven't yet because nobody
> else has seemed interested in having it done. Apparently someone
> is, so patches towards that end are most welcome.
Hi Shawn,
I volunteer to translate all the git-gui messages in Italian.
Just let me if you are interested and please give me an hint on how to
produce the translation so that you can incorporate it.
Thanks.
Regards,
--
Paolo
"Tutto cio' che merita di essere fatto,merita di essere fatto bene"
Philip Stanhope IV conte di Chesterfield
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 17:32 ` Paolo Ciarrocchi
@ 2007-07-20 18:10 ` Junio C Hamano
2007-07-20 18:38 ` Johannes Schindelin
` (3 more replies)
0 siblings, 4 replies; 69+ messages in thread
From: Junio C Hamano @ 2007-07-20 18:10 UTC (permalink / raw)
To: Paolo Ciarrocchi
Cc: Shawn O. Pearce, Johannes Schindelin, Christian Stimming, git
"Paolo Ciarrocchi" <paolo.ciarrocchi@gmail.com> writes:
> I volunteer to translate all the git-gui messages in Italian.
>
> Just let me if you are interested and please give me an hint on how to
> produce the translation so that you can incorporate it.
Ah, am I expected to volunteer for Japanese part?
Unless yashi, yoshifuji, or nanako3 volunteer, although I do not
mind doing that myself, that is (if there are any Japanese
people I forgot, I apologize). I wonder how many people outside
English zone are regularly on the list...
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:10 ` Junio C Hamano
@ 2007-07-20 18:38 ` Johannes Schindelin
2007-07-20 18:47 ` Paolo Ciarrocchi
2007-07-20 19:02 ` Sam Ravnborg
` (2 subsequent siblings)
3 siblings, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-20 18:38 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Paolo Ciarrocchi, Shawn O. Pearce, Christian Stimming, git
Hi,
On Fri, 20 Jul 2007, Junio C Hamano wrote:
> "Paolo Ciarrocchi" <paolo.ciarrocchi@gmail.com> writes:
>
> > I volunteer to translate all the git-gui messages in Italian.
> >
> > Just let me if you are interested and please give me an hint on how to
> > produce the translation so that you can incorporate it.
>
> Ah, am I expected to volunteer for Japanese part?
>
> Unless yashi, yoshifuji, or nanako3 volunteer, although I do not
> mind doing that myself, that is (if there are any Japanese
> people I forgot, I apologize).
According to http://en.wikipedia.org/wiki/Japan, you forgot roughly
127,433,490 people ;-)
> I wonder how many people outside English zone are regularly on the
> list...
Here is one, but Christian already volunteered for the German part, I
understand...
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:38 ` Johannes Schindelin
@ 2007-07-20 18:47 ` Paolo Ciarrocchi
2007-07-20 19:06 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Paolo Ciarrocchi @ 2007-07-20 18:47 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Junio C Hamano, Shawn O. Pearce, Christian Stimming, git
On 7/20/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
[...]
> > I wonder how many people outside English zone are regularly on the
> > list...
I tried to verify the results of the survey I sent out last year:
http://git.or.cz/gitwiki/GitSurvey
unfortunately that page seems to be full of spam.
Ciao,
--
Paolo
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:47 ` Paolo Ciarrocchi
@ 2007-07-20 19:06 ` Johannes Schindelin
0 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-20 19:06 UTC (permalink / raw)
To: Paolo Ciarrocchi; +Cc: Junio C Hamano, Shawn O. Pearce, Christian Stimming, git
Hi,
On Fri, 20 Jul 2007, Paolo Ciarrocchi wrote:
> On 7/20/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> [...]
> > > I wonder how many people outside English zone are regularly on the
> > > list...
>
> I tried to verify the results of the survey I sent out last year:
> http://git.or.cz/gitwiki/GitSurvey
> unfortunately that page seems to be full of spam.
No longer. FWIW you can do it yourself: if you are logged in, there is a
"restore" link to the far right on the "Info" page of every wiki page.
Hth,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:10 ` Junio C Hamano
2007-07-20 18:38 ` Johannes Schindelin
@ 2007-07-20 19:02 ` Sam Ravnborg
2007-07-20 19:16 ` Xudong Guan
2007-07-21 8:12 ` しらいしななこ
3 siblings, 0 replies; 69+ messages in thread
From: Sam Ravnborg @ 2007-07-20 19:02 UTC (permalink / raw)
To: Junio C Hamano
Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin,
Christian Stimming, git
On Fri, Jul 20, 2007 at 11:10:42AM -0700, Junio C Hamano wrote:
> I wonder how many people outside
> English zone are regularly on the list...
>From a scandinavian country (Denmark) but really I would never use
a translated version. So some decent amount of pressure would
be needed to convince me to add danish :-)
Sam
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:10 ` Junio C Hamano
2007-07-20 18:38 ` Johannes Schindelin
2007-07-20 19:02 ` Sam Ravnborg
@ 2007-07-20 19:16 ` Xudong Guan
2007-07-21 8:12 ` しらいしななこ
3 siblings, 0 replies; 69+ messages in thread
From: Xudong Guan @ 2007-07-20 19:16 UTC (permalink / raw)
To: Junio C Hamano
Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin,
Christian Stimming, git
On 11:10 Fri 20 Jul , Junio C Hamano wrote:
> I wonder how many people outside
> English zone are regularly on the list...
I am a Chinese, subscribed today.
Xudong
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-20 18:10 ` Junio C Hamano
` (2 preceding siblings ...)
2007-07-20 19:16 ` Xudong Guan
@ 2007-07-21 8:12 ` しらいしななこ
2007-07-21 8:22 ` Junio C Hamano
3 siblings, 1 reply; 69+ messages in thread
From: しらいしななこ @ 2007-07-21 8:12 UTC (permalink / raw)
To: Junio C Hamano
Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin,
Christian Stimming, git
Quoting Junio C Hamano <gitster@pobox.com>:
> "Paolo Ciarrocchi" <paolo.ciarrocchi@gmail.com> writes:
>
>> I volunteer to translate all the git-gui messages in Italian.
>>
>> Just let me if you are interested and please give me an hint on how to
>> produce the translation so that you can incorporate it.
>
> Ah, am I expected to volunteer for Japanese part?
>
> Unless yashi, yoshifuji, or nanako3 volunteer, although I do not
> mind doing that myself, that is (if there are any Japanese
> people I forgot, I apologize). I wonder how many people outside
> English zone are regularly on the list...
I can help. What's involved?
--
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/
----------------------------------------------------------------------
Free pop3 email with a spam filter.
http://www.bluebottle.com/tag/5
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 8:12 ` しらいしななこ
@ 2007-07-21 8:22 ` Junio C Hamano
2007-07-21 13:21 ` Johannes Schindelin
2007-07-21 18:57 ` Paolo Ciarrocchi
0 siblings, 2 replies; 69+ messages in thread
From: Junio C Hamano @ 2007-07-21 8:22 UTC (permalink / raw)
To: しらいしななこ
Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin,
Christian Stimming, git
しらいしななこ <nanako3@bluebottle.com> writes:
> Quoting Junio C Hamano <gitster@pobox.com>:
>
>> Ah, am I expected to volunteer for Japanese part?
>>
>> Unless yashi, yoshifuji, or nanako3 volunteer, although I do not
>> mind doing that myself,...
>
> I can help. What's involved?
Wonderful.
As Johannes announced the 'mob' stuff, I think it would be
easiest to work there as others --- for this type of work, there
probably won't be much stepping on each other's toes involved as
long as there are not more than one translator per language.
What's involved to get a new language 'xy' started is roughly:
- Run 'make' once, to get po/git-gui.pot generated;
- Copy po/git-gui.pot to po/xy.po;
- Update the placeholder strings at the beginning of the
po/xy.po file appropriately.
- Add 'xy' to the list of languages to ALL_LINGUAS list in the
Makefile.
After that, add translations to the (initially empty) string on
the lines that begin with 'msgstr'. Set of msgid's need to be
kept in sync with the source as the translated software evolve,
but gettext framework hopefully will take care of most of the
chore.
I'll get on the 'mob' bandwagon and try to push out something
like the attached patch, so that you do not necessarily have to
have the whole gettext toolchain.
-- >8 --
This gets the ball started for Japanese translation, but as I am
lazy, I only translated three words. I took credit by placing
my name on the "Last-Translator" line, but shifted most of the
remaining work to Nana, who showed interest on the list, by
naming her at the beginnign of the file ;-)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
Makefile | 2 +-
po/ja.po | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 251 insertions(+), 1 deletions(-)
create mode 100644 po/ja.po
diff --git a/Makefile b/Makefile
index f6a6ce3..85d2c00 100644
--- a/Makefile
+++ b/Makefile
@@ -107,7 +107,7 @@ XGETTEXT ?= xgettext
msgsdir ?= $(libdir)/msgs
msgsdir_SQ = $(subst ','\'',$(msgsdir))
PO_TEMPLATE = po/git-gui.pot
-ALL_LINGUAS = de
+ALL_LINGUAS = de ja
$(PO_TEMPLATE): $(SCRIPT_SH) $(ALL_LIBFILES)
$(XGETTEXT) -k_ -LTcl -o $@ $(SCRIPT_SH) $(ALL_LIBFILES)
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..abfd4f1
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,250 @@
+# Translation of git-gui to Japanese
+# Copyright (C) 2007 Shawn Pearce
+# This file is distributed under the same license as the git-gui package.
+# しらいし ななこ <nanako3@bluebottle.com>, 2007.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: git-gui\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-07-21 01:23-0700\n"
+"PO-Revision-Date: 2007-07-21 01:23-0700\n"
+"Last-Translator: Junio C Hamano <gitster@pobox.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: git-gui.sh:1656
+msgid "Repository"
+msgstr "レポジトリ"
+
+#: git-gui.sh:1657
+msgid "Edit"
+msgstr "編集"
+
+#: git-gui.sh:1659
+msgid "Branch"
+msgstr "分岐"
+
+#: git-gui.sh:1662 git-gui.sh:1840
+msgid "Commit"
+msgstr ""
+
+#: git-gui.sh:1665
+msgid "Merge"
+msgstr ""
+
+#: git-gui.sh:1666
+msgid "Fetch"
+msgstr ""
+
+#: git-gui.sh:1667
+msgid "Push"
+msgstr ""
+
+#: git-gui.sh:1676
+msgid "Browse Current Branch's Files"
+msgstr ""
+
+#: git-gui.sh:1685
+msgid "Visualize Current Branch's History"
+msgstr ""
+
+#: git-gui.sh:1689
+msgid "Visualize All Branch History"
+msgstr ""
+
+#: git-gui.sh:1694
+msgid "Database Statistics"
+msgstr ""
+
+#: git-gui.sh:1697
+msgid "Compress Database"
+msgstr ""
+
+#: git-gui.sh:1700
+msgid "Verify Database"
+msgstr ""
+
+#: git-gui.sh:1707 git-gui.sh:1711 git-gui.sh:1715
+msgid "Create Desktop Icon"
+msgstr ""
+
+#: git-gui.sh:1720
+msgid "Quit"
+msgstr ""
+
+#: git-gui.sh:1727
+msgid "Undo"
+msgstr ""
+
+#: git-gui.sh:1730
+msgid "Redo"
+msgstr ""
+
+#: git-gui.sh:1734 git-gui.sh:2249
+msgid "Cut"
+msgstr ""
+
+#: git-gui.sh:1737 git-gui.sh:2252 git-gui.sh:2323 git-gui.sh:2395
+msgid "Copy"
+msgstr ""
+
+#: git-gui.sh:1740 git-gui.sh:2255
+msgid "Paste"
+msgstr ""
+
+#: git-gui.sh:1743 git-gui.sh:2258
+msgid "Delete"
+msgstr ""
+
+#: git-gui.sh:1747 git-gui.sh:2262 git-gui.sh:2399
+msgid "Select All"
+msgstr ""
+
+#: git-gui.sh:1756
+msgid "Create..."
+msgstr ""
+
+#: git-gui.sh:1762
+msgid "Checkout..."
+msgstr ""
+
+#: git-gui.sh:1768
+msgid "Rename..."
+msgstr ""
+
+#: git-gui.sh:1773 git-gui.sh:1871
+msgid "Delete..."
+msgstr ""
+
+#: git-gui.sh:1778
+msgid "Reset..."
+msgstr ""
+
+#: git-gui.sh:1790
+msgid "New Commit"
+msgstr ""
+
+#: git-gui.sh:1798
+msgid "Amend Last Commit"
+msgstr ""
+
+#: git-gui.sh:1807
+msgid "Rescan"
+msgstr ""
+
+#: git-gui.sh:1813
+msgid "Add To Commit"
+msgstr ""
+
+#: git-gui.sh:1818
+msgid "Add Existing To Commit"
+msgstr ""
+
+#: git-gui.sh:1824
+msgid "Unstage From Commit"
+msgstr ""
+
+#: git-gui.sh:1829
+msgid "Revert Changes"
+msgstr ""
+
+#: git-gui.sh:1836 git-gui.sh:2273
+msgid "Sign Off"
+msgstr ""
+
+#: git-gui.sh:1851
+msgid "Local Merge..."
+msgstr ""
+
+#: git-gui.sh:1856
+msgid "Abort Merge..."
+msgstr ""
+
+#: git-gui.sh:1868
+msgid "Push..."
+msgstr ""
+
+#: git-gui.sh:1878
+msgid "Apple"
+msgstr ""
+
+#: git-gui.sh:1881 git-gui.sh:1928
+#, tcl-format
+msgid "About %s"
+msgstr ""
+
+#: git-gui.sh:1883 git-gui.sh:1889 git-gui.sh:2441
+msgid "Options..."
+msgstr ""
+
+#: git-gui.sh:1913
+msgid "Tools"
+msgstr ""
+
+#: git-gui.sh:1915
+msgid "Migrate"
+msgstr ""
+
+#: git-gui.sh:1924
+msgid "Help"
+msgstr ""
+
+#: git-gui.sh:1965
+msgid "Online Documentation"
+msgstr ""
+
+#: git-gui.sh:2215
+msgid "Initial Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2216
+msgid "Amended Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2217
+msgid "Amended Initial Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2218
+msgid "Amended Merge Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2219
+msgid "Merge Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2220
+msgid "Commit Message:"
+msgstr ""
+
+#: git-gui.sh:2265 git-gui.sh:2403
+msgid "Copy All"
+msgstr ""
+
+#: git-gui.sh:2391
+msgid "Refresh"
+msgstr ""
+
+#: git-gui.sh:2412
+msgid "Apply/Reverse Hunk"
+msgstr ""
+
+#: git-gui.sh:2418
+msgid "Decrease Font Size"
+msgstr ""
+
+#: git-gui.sh:2422
+msgid "Increase Font Size"
+msgstr ""
+
+#: git-gui.sh:2427
+msgid "Show Less Context"
+msgstr ""
+
+#: git-gui.sh:2434
+msgid "Show More Context"
+msgstr ""
--
1.5.3.rc2.22.g69a9b
^ permalink raw reply related [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 8:22 ` Junio C Hamano
@ 2007-07-21 13:21 ` Johannes Schindelin
2007-07-21 18:57 ` Paolo Ciarrocchi
1 sibling, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 13:21 UTC (permalink / raw)
To: Junio C Hamano
Cc: しらいしななこ,
Paolo Ciarrocchi, Shawn O. Pearce, Christian Stimming, git
Hi,
On Sat, 21 Jul 2007, Junio C Hamano wrote:
> As Johannes announced the 'mob' stuff, I think it would be easiest to
> work there as others --- for this type of work, there probably won't be
> much stepping on each other's toes involved as long as there are not
> more than one translator per language.
Already merged into git-gui-i18n's master.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 8:22 ` Junio C Hamano
2007-07-21 13:21 ` Johannes Schindelin
@ 2007-07-21 18:57 ` Paolo Ciarrocchi
2007-07-21 21:25 ` Johannes Schindelin
1 sibling, 1 reply; 69+ messages in thread
From: Paolo Ciarrocchi @ 2007-07-21 18:57 UTC (permalink / raw)
To: Junio C Hamano
Cc: しらいしななこ,
Shawn O. Pearce, Johannes Schindelin, Christian Stimming, git
On 7/21/07, Junio C Hamano <gitster@pobox.com> wrote:
paolo@paolo-desktop:~/git-gui-i18n$ ls
git-gui.sh GIT-VERSION-GEN lib Makefile po
> - Run 'make' once, to get po/git-gui.pot generated;
paolo@paolo-desktop:~/git-gui-i18n$ make
GITGUI_VERSION = 0.8.GITGUI
* new locations or Tcl/Tk interpreter
GEN git-gui
BUILTIN git-citool
INDEX lib/
paolo@paolo-desktop:~/git-gui-i18n$ ls po/
de.msg de.po glossary.csv ja.msg ja.po
There is "po/git-gui.pot" file in my repository.
Am I doing something wrong?
Thanks!
Ciao,
--
Paolo
"Tutto cio' che merita di essere fatto,merita di essere fatto bene"
Philip Stanhope IV conte di Chesterfield
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 18:57 ` Paolo Ciarrocchi
@ 2007-07-21 21:25 ` Johannes Schindelin
2007-07-21 22:57 ` Junio C Hamano
0 siblings, 1 reply; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-21 21:25 UTC (permalink / raw)
To: Paolo Ciarrocchi
Cc: Junio C Hamano,
しらいしななこ,
Shawn O. Pearce, Christian Stimming, git
Hi,
On Sat, 21 Jul 2007, Paolo Ciarrocchi wrote:
> On 7/21/07, Junio C Hamano <gitster@pobox.com> wrote:
>
> paolo@paolo-desktop:~/git-gui-i18n$ ls
> git-gui.sh GIT-VERSION-GEN lib Makefile po
>
>
> > - Run 'make' once, to get po/git-gui.pot generated;
>
> paolo@paolo-desktop:~/git-gui-i18n$ make
> GITGUI_VERSION = 0.8.GITGUI
> * new locations or Tcl/Tk interpreter
> GEN git-gui
> BUILTIN git-citool
> INDEX lib/
>
> paolo@paolo-desktop:~/git-gui-i18n$ ls po/
> de.msg de.po glossary.csv ja.msg ja.po
>
> There is "po/git-gui.pot" file in my repository.
My fault. I was rebasing Junio's patch on top of Christian's new series.
Alas, the PO_TEMPLATE was no longer created by default.
Should be fixed now.
Thanks,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 21:25 ` Johannes Schindelin
@ 2007-07-21 22:57 ` Junio C Hamano
2007-07-22 1:12 ` Johannes Schindelin
0 siblings, 1 reply; 69+ messages in thread
From: Junio C Hamano @ 2007-07-21 22:57 UTC (permalink / raw)
To: Johannes Schindelin
Cc: Paolo Ciarrocchi,
しらいしななこ,
Shawn O. Pearce, Christian Stimming, git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>> paolo@paolo-desktop:~/git-gui-i18n$ ls po/
>> de.msg de.po glossary.csv ja.msg ja.po
>>
>> There is "po/git-gui.pot" file in my repository.
>
> My fault. I was rebasing Junio's patch on top of Christian's new series.
> Alas, the PO_TEMPLATE was no longer created by default.
>
> Should be fixed now.
Note that if everybody agrees that the division of labor between
the developer, the i18n coordinator and translators I suggested
in the earlier message is the way to go, po/git-gui.pot should
be managed by the i18n coordinator and revision tracked in-tree.
Simple "make" should not try to update it for ordinary people,
but we can have a "i18n coordinator only" maintenance target to
update it.
That way, translators do not have to touch anything other than
their own po/xx.po files.
^ permalink raw reply [flat|nested] 69+ messages in thread
* Re: [PATCH] Internationalization of git-gui
2007-07-21 22:57 ` Junio C Hamano
@ 2007-07-22 1:12 ` Johannes Schindelin
0 siblings, 0 replies; 69+ messages in thread
From: Johannes Schindelin @ 2007-07-22 1:12 UTC (permalink / raw)
To: Junio C Hamano
Cc: Paolo Ciarrocchi,
しらいしななこ,
Shawn O. Pearce, Christian Stimming, git
Hi,
On Sat, 21 Jul 2007, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> paolo@paolo-desktop:~/git-gui-i18n$ ls po/
> >> de.msg de.po glossary.csv ja.msg ja.po
> >>
> >> There is "po/git-gui.pot" file in my repository.
> >
> > My fault. I was rebasing Junio's patch on top of Christian's new series.
> > Alas, the PO_TEMPLATE was no longer created by default.
> >
> > Should be fixed now.
>
> Note that if everybody agrees that the division of labor between
> the developer, the i18n coordinator and translators I suggested
> in the earlier message is the way to go, po/git-gui.pot should
> be managed by the i18n coordinator and revision tracked in-tree.
> Simple "make" should not try to update it for ordinary people,
> but we can have a "i18n coordinator only" maintenance target to
> update it.
>
> That way, translators do not have to touch anything other than
> their own po/xx.po files.
Done.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 69+ messages in thread
end of thread, other threads:[~2007-07-24 14:57 UTC | newest]
Thread overview: 69+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-19 17:33 [PATCH] Internationalization of git-gui Brett Schwarz
2007-07-20 5:04 ` Shawn O. Pearce
2007-07-20 8:56 ` Christian Stimming
2007-07-21 2:17 ` Shawn O. Pearce
2007-07-21 7:50 ` Christian Stimming
2007-07-21 8:03 ` Shawn O. Pearce
2007-07-21 12:33 ` [PATCH 1/5] " Christian Stimming
2007-07-21 12:34 ` [PATCH 2/5] " Christian Stimming
2007-07-21 12:36 ` [PATCH 3/5] " Christian Stimming
2007-07-21 12:37 ` Christian Stimming
2007-07-21 12:41 ` [PATCH 5/5] " Christian Stimming
2007-07-21 13:46 ` [PATCH 3/5] " David Kastrup
2007-07-21 16:27 ` Simon 'corecode' Schubert
2007-07-21 17:41 ` David Kastrup
2007-07-21 18:50 ` Translation process (was: [PATCH 3/5] Internationalization of git-gui) Christian Stimming
2007-07-21 19:27 ` German translations " Christian Stimming
2007-07-21 19:57 ` German translations David Kastrup
2007-07-22 13:16 ` Christian Stimming
2007-07-22 14:52 ` Edgar Toernig
2007-07-23 19:20 ` Christian Stimming
2007-07-21 20:09 ` David Kastrup
2007-07-22 7:47 ` [PATCH 3/5] Internationalization of git-gui Shawn O. Pearce
2007-07-22 8:05 ` Junio C Hamano
2007-07-22 12:16 ` Christian Stimming
2007-07-22 12:44 ` Johannes Schindelin
2007-07-22 12:57 ` Christian Stimming
2007-07-22 13:06 ` Johannes Schindelin
2007-07-22 7:45 ` [PATCH 2/5] " Shawn O. Pearce
2007-07-22 12:24 ` Christian Stimming
2007-07-21 14:22 ` [PATCH 1/5] " Johannes Schindelin
2007-07-21 19:41 ` Junio C Hamano
2007-07-21 19:50 ` Christian Stimming
2007-07-21 21:20 ` Johannes Schindelin
2007-07-21 21:28 ` Junio C Hamano
2007-07-21 21:35 ` Johannes Schindelin
2007-07-22 13:35 ` Christian Stimming
2007-07-22 14:29 ` Johannes Schindelin
2007-07-23 20:16 ` [PATCH] Add glossary that can be converted into a po file for each language Christian Stimming
2007-07-24 1:48 ` Junio C Hamano
2007-07-24 6:56 ` Junio C Hamano
2007-07-24 9:34 ` Christian Stimming
2007-07-21 21:12 ` [PATCH 1/5] Internationalization of git-gui Johannes Schindelin
2007-07-21 22:36 ` Junio C Hamano
2007-07-21 23:01 ` Johannes Schindelin
2007-07-22 7:38 ` Shawn O. Pearce
2007-07-23 19:23 ` Christian Stimming
2007-07-24 14:57 ` Shawn O. Pearce
2007-07-20 9:03 ` [PATCH] " Christian Stimming
-- strict thread matches above, loose matches on Subject: below --
2007-07-21 16:29 Brett Schwarz
2007-07-20 18:34 Brett Schwarz
2007-07-20 21:40 ` Christian Stimming
2007-07-20 18:15 Brett Schwarz
2007-07-19 10:56 Christian Stimming
2007-07-19 12:25 ` Johannes Schindelin
2007-07-20 4:55 ` Shawn O. Pearce
2007-07-20 17:32 ` Paolo Ciarrocchi
2007-07-20 18:10 ` Junio C Hamano
2007-07-20 18:38 ` Johannes Schindelin
2007-07-20 18:47 ` Paolo Ciarrocchi
2007-07-20 19:06 ` Johannes Schindelin
2007-07-20 19:02 ` Sam Ravnborg
2007-07-20 19:16 ` Xudong Guan
2007-07-21 8:12 ` しらいしななこ
2007-07-21 8:22 ` Junio C Hamano
2007-07-21 13:21 ` Johannes Schindelin
2007-07-21 18:57 ` Paolo Ciarrocchi
2007-07-21 21:25 ` Johannes Schindelin
2007-07-21 22:57 ` Junio C Hamano
2007-07-22 1:12 ` Johannes Schindelin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).