All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 1/2] po/de.po: add German translation
@ 2010-09-15  7:33 Christian Stimming
  2010-09-15  9:47 ` Thomas Rast
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Christian Stimming @ 2010-09-15  7:33 UTC (permalink / raw)
  To: trast, jk, avarab; +Cc: git

Dear Thomas, Jan, et al.,

thanks for the discussion of an initial git translation to German. I  
appreciate the efforts to translate not only the gui tools of git, but  
also the command line commands as well. I completely agree with  
Thomas' proposal to discuss and agree on a glossary of terms *first*,  
and *secondly* preparing the actual translation - otherwise it will be  
impossible to create a consistent translation.

As you might guess, as the (initial) translator of git-gui I've been  
through this discussion before [1] and as you have noticed, I have  
decided to take a translation approach different from what you have  
recently discussed here. I deliberately tried to translate as much of  
the terms into German as possible. I do not agree about the importance  
of statements on this mailing list like "This translation translates  
too much terms - I cannot find the commands I'm used to". The point of  
a translation is to enable the usage of a program to people who do  
*not* know the original language. This is the target audience. By  
definition, this excludes anyone who participates on *this* mailing  
list from the target audience: Obviously you not only speak English  
very well, but you are daily familiar with the English git wording for  
the concepts inside this VCS. Then let me repeat: A translation is not  
for you. You know, the bait and the fisherman and the fish and such.  
Instead, a translation is for people who do neither know nor  
understand the English wording for the git concepts. For this target  
audience, the goal is to find a set of terms for the different git  
concepts which makes the concepts most easily accessible for their  
language. This may or may not include terms which are left at English  
words.

Having said that, I would also take the following inspiration with a  
grain of salt:

> You said on IRC that you left all English terms that
> are also used on
> http://de.wikipedia.org/wiki/Versionskontrolle

Wikipedia is a bad reference for measuring the importance of certain  
things. I (or you) could have easily adapted that article to my point  
of view before continuing the discussion. However, in this particular  
case that article doesn't even mention many of the terms which need to  
be discussed in a git glossary.

Having said that as well, I admit the translation of the command line  
tools is somewhat more difficult than a GUI tool, because many of the  
git concepts appear as English words in the command itself. Hence, I  
admit it is much more difficult to decide on a non-English  
translation, but having to mention the English term all the time  
because that's the command which needs to be used. And for sure we  
won't want to translate the (main porcelain) command names. Hence, the  
decision on terms which are left in English can surely be decided  
differently here than in the GUI tools.

After this introduction, I would like to comment on a few of the  
proposed German glossary translations; the IMHO easier ones first:

>  branch                Branch (m.)

I'd go for "Zweig". It's even on the wikipedia page and it perfectly  
represents the concept.

>  index                 Index

I'd strongly vote for not using "Index". The "Index" is where the  
"Bundesprüfstelle für jugendgefährdende Schriften" puts the  
Ballerspiele on. Don't let the identical word fool you into thinking  
this is a worthwhile translation. Also, the English term is a bad  
naming anyway IMHO. I'd use git-gui's replacement (staging area) and  
use "Bereitstellung" here as well. Feel free to propose something  
different, but please not "Index". Git isn't FSK18.

>  commit (noun, verb)                Commit/committen

That's a hard one. It sounds terrible to use "committen" in German. I  
would strongly vote for not using this word directly, but I admit I  
also don't have a completely convincing alternative.

>  revision              Revision

Die "Revision" kommt ins Haus, um die Bücher zu prüfen. Honestly,  
please don't use that word in German. Why not "Version"?

>  tag                   Tag

Der heutige Tag oder der morgige Tag? What's the problem with  
"Markierung"? This is exactky the git concept which is meant.

>  tree                  Tree

I would not understand what the "Tree" in German should be. Any German  
word instead?

Many other of the proposals are just fine and very good. Keep up the  
good work!

Regards,

Christian Stimming


[1] http://article.gmane.org/gmane.comp.version-control.git/58315

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15  7:33 [PATCH 1/2] po/de.po: add German translation Christian Stimming
@ 2010-09-15  9:47 ` Thomas Rast
  2010-09-15 11:51   ` Michael J Gruber
  2010-09-15 11:10 ` Michael J Gruber
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 22+ messages in thread
From: Thomas Rast @ 2010-09-15  9:47 UTC (permalink / raw)
  To: Christian Stimming; +Cc: jk, avarab, git

Hi Christian

Christian Stimming wrote:
> 
> As you might guess, as the (initial) translator of git-gui I've been  
> through this discussion before [1] and as you have noticed, I have  
> decided to take a translation approach different from what you have  
> recently discussed here. I deliberately tried to translate as much of  
> the terms into German as possible. I do not agree about the importance  
> of statements on this mailing list like "This translation translates  
> too much terms - I cannot find the commands I'm used to". 
[...]
> Instead, a translation is for people who do neither know nor  
> understand the English wording for the git concepts. For this target  
> audience, the goal is to find a set of terms for the different git  
> concepts which makes the concepts most easily accessible for their  
> language. This may or may not include terms which are left at English  
> words.

Maybe there should be two sets of translations then.

I'm only half serious, but the problem here is what I said earlier in
the thread (referring to Jan's draft):

} In any case it roughly matches (or still stays slightly on the
} more-German side of) the colloquial usage in my group, if that is
} any indication.

"My group" is a bunch of CS researchers, so I can't say they fall
outside the description above.  However, in our work we observe a very
funny split between translating and keeping the terms in English:

  graph                               Graph
  vertex                              Knoten
  edge                                Kante
  directed                            gerichtet
  DAG (directed acyclic graph)        DAG
  independent set                     independent set
  cut (vertex, edge)                  cut (vertex, edge)
  degree                              Grad
  matching                            Matching
  tree                                Baum
  MST (minimum spanning tree)         MST (minimaler Spannbaum)

There are German terms for all the untranslated ones, but I rarely
hear them in practical usage.  Books probably go for a full
translation since they want to be normative (how should I know, it's
been a while since I used a German book), but lectures stick to the
half-translated version.

And much like the average computer scientist around here uses a number
of English terms even in German informal speech, I suspect the average
German user of git would not translate *every* term.  Unless you are
aiming for a normative usage, in which case we would also have to
translate the theory (manpages, books) using the same terms...

I'll leave it at that for my $0.02, since as you note, I'm not
actually the intended audience.

By the way:

> >  index                 Index
> 
> I'd strongly vote for not using "Index". The "Index" is where the  
> "Bundesprüfstelle für jugendgefährdende Schriften" puts the  
> Ballerspiele on. Don't let the identical word fool you into thinking  
> this is a worthwhile translation. Also, the English term is a bad  
> naming anyway IMHO. I'd use git-gui's replacement (staging area) and  
> use "Bereitstellung" here as well. Feel free to propose something  
> different, but please not "Index". Git isn't FSK18.

I guess I will have to go for a de_CH translation then.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15  7:33 [PATCH 1/2] po/de.po: add German translation Christian Stimming
  2010-09-15  9:47 ` Thomas Rast
@ 2010-09-15 11:10 ` Michael J Gruber
  2010-09-15 16:54   ` Andreas Schwab
  2010-09-15 11:44 ` Thomas Hochstein
  2010-09-16 10:57 ` Jan Krüger
  3 siblings, 1 reply; 22+ messages in thread
From: Michael J Gruber @ 2010-09-15 11:10 UTC (permalink / raw)
  To: Christian Stimming; +Cc: trast, jk, avarab, git

Christian Stimming venit, vidit, dixit 15.09.2010 09:33:
> Dear Thomas, Jan, et al.,
> 
> thanks for the discussion of an initial git translation to German. I  
> appreciate the efforts to translate not only the gui tools of git, but  
> also the command line commands as well. I completely agree with  
> Thomas' proposal to discuss and agree on a glossary of terms *first*,  
> and *secondly* preparing the actual translation - otherwise it will be  
> impossible to create a consistent translation.

I've been holding back a post titled "Halt the l10n madness" in my
mental drafts folder for a while, and I'm happy the issue has been
raised now. I guess I'm not the only one passing (out) on seeing "PATCH
0/159"...

I totally agree on the glossary first approach. I'm just seeing that the
actual translations do not undergo much discussion, and I hope that it
would be different for a glossary.


>>  branch                Branch (m.)
> 
> I'd go for "Zweig". It's even on the wikipedia page and it perfectly  
> represents the concept.

+1

Zweig, of course, what else? :)

The main abstract concept underlying not only Git's revision control is
that of a direct acylcic graph (DAG). There are established translations
for that concept in combinatorics, which we should follow.

> 
>>  index                 Index
> 
> I'd strongly vote for not using "Index". The "Index" is where the  
> "Bundesprüfstelle für jugendgefährdende Schriften" puts the  
> Ballerspiele on. Don't let the identical word fool you into thinking  
> this is a worthwhile translation. Also, the English term is a bad  
> naming anyway IMHO. I'd use git-gui's replacement (staging area) and  
> use "Bereitstellung" here as well. Feel free to propose something  
> different, but please not "Index". Git isn't FSK18.

This reasoning - while certainly entertaining - reflects a very limited
view on German vocabulary. I don't think the Bundesprüfstelle has been
around in the 19th century when (or earlier) this word made it into the
German language.

In fact, "Index" is a "Verzeichnis" (in the sense of registry), and its
latin root "indicare" which resonates in the original meaning of the
German "Index" (announce, make known, indicate) makes it the perfect
translation of the word "index" as we use it in Git.

"Register" would also make sense, but whenever there is a German word
with the same root (index/Index) which is not a "false friend" we should
go for that.

Note that we should not overemphasise the issue of connotations, or Git
should really be FSK16, i.e. PG or stricter - I mean, Git's idea of the
result of "committing is

1 files changed, 1 insertions(+), 0 deletions(-)

Makes you think differently about "commit early, commit often." ;)


> 
>>  commit (noun, verb)                Commit/committen
> 
> That's a hard one. It sounds terrible to use "committen" in German. I  
> would strongly vote for not using this word directly, but I admit I  
> also don't have a completely convincing alternative.

"Eintrag", "eintragen"

Here, Git itself leaves the picture of trees and DAGs (or else a commit
would be a vertex or node).

> 
>>  revision              Revision
> 
> Die "Revision" kommt ins Haus, um die Bücher zu prüfen. Honestly,  
> please don't use that word in German. Why not "Version"?

+1
Again, that reflects a limited view of the use of "Revision", but I have
no objection against "Version". Even our existing glossary says that a
"revision" is what other scms call a "version".

> 
>>  tag                   Tag
> 
> Der heutige Tag oder der morgige Tag? What's the problem with  
> "Markierung"? This is exactky the git concept which is meant.

"Markierung" is OK, but I'd go for the shorter "Marke" as in "Marke
setzen" etc. Even the connotation with "Briefmarke" is beneficial, as
you tag something by putting a label on it, just like a stamp.

> 
>>  tree                  Tree
> 
> I would not understand what the "Tree" in German should be. Any German  
> word instead?

"Baum"! It's the combinatorics term for an undirected acyclic graph,
it's the literal translation, and it's established also in the context
where we mostly use it in Git: "Verzeichnisbaum" (directory tree)

> 
> Many other of the proposals are just fine and very good. Keep up the  
> good work!

I guess I'll have to revisit that, it was probably among some 159
patches or so I marked read in one thread...

Cheers/Tschüß,
Michael

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15  7:33 [PATCH 1/2] po/de.po: add German translation Christian Stimming
  2010-09-15  9:47 ` Thomas Rast
  2010-09-15 11:10 ` Michael J Gruber
@ 2010-09-15 11:44 ` Thomas Hochstein
  2010-09-16 10:57 ` Jan Krüger
  3 siblings, 0 replies; 22+ messages in thread
From: Thomas Hochstein @ 2010-09-15 11:44 UTC (permalink / raw)
  To: git

Christian Stimming schrieb:

>  I do not agree about the importance  
> of statements on this mailing list like "This translation translates  
> too much terms - I cannot find the commands I'm used to". The point of  
> a translation is to enable the usage of a program to people who do  
> *not* know the original language. This is the target audience. 

I don't agree. I prefer to use localized/translated software [1], even
though I'm able to speak English, because it's just easier to use, but
I strongly consider translated technical terms nearly unusable - you
lose a common base for communication with other people and you can't
use most documentation any longer as it'll be in English or at least
use the original, non-translated technical terms. So I think the
target audience for a German translation is neither only nor primarily
people not understanding English [2] but all those who do speak
English but prefer a localized environment.

Don't let us get back to the times where a "computer" was a
"Rechenmaschine", the CPU a "Zentralrecheneinheit" or email
"elektronische Post" ...

-thh

[1] And German translations of books, movies etc. - mostly, that is.
[2] You won't get far in IT if you're not able to understand at least
some English, I think.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15  9:47 ` Thomas Rast
@ 2010-09-15 11:51   ` Michael J Gruber
  0 siblings, 0 replies; 22+ messages in thread
From: Michael J Gruber @ 2010-09-15 11:51 UTC (permalink / raw)
  To: Thomas Rast; +Cc: Christian Stimming, jk, avarab, git

Thomas Rast venit, vidit, dixit 15.09.2010 11:47:
> Hi Christian
> 
> Christian Stimming wrote:
>>
>> As you might guess, as the (initial) translator of git-gui I've been  
>> through this discussion before [1] and as you have noticed, I have  
>> decided to take a translation approach different from what you have  
>> recently discussed here. I deliberately tried to translate as much of  
>> the terms into German as possible. I do not agree about the importance  
>> of statements on this mailing list like "This translation translates  
>> too much terms - I cannot find the commands I'm used to". 
> [...]
>> Instead, a translation is for people who do neither know nor  
>> understand the English wording for the git concepts. For this target  
>> audience, the goal is to find a set of terms for the different git  
>> concepts which makes the concepts most easily accessible for their  
>> language. This may or may not include terms which are left at English  
>> words.
> 
> Maybe there should be two sets of translations then.
> 
> I'm only half serious, but the problem here is what I said earlier in
> the thread (referring to Jan's draft):
> 
> } In any case it roughly matches (or still stays slightly on the
> } more-German side of) the colloquial usage in my group, if that is
> } any indication.
> 
> "My group" is a bunch of CS researchers, so I can't say they fall
> outside the description above.  However, in our work we observe a very
> funny split between translating and keeping the terms in English:
> 
>   graph                               Graph
>   vertex                              Knoten
>   edge                                Kante
>   directed                            gerichtet
>   DAG (directed acyclic graph)        DAG
>   independent set                     independent set
>   cut (vertex, edge)                  cut (vertex, edge)
>   degree                              Grad
>   matching                            Matching
>   tree                                Baum
>   MST (minimum spanning tree)         MST (minimaler Spannbaum)
> 
> There are German terms for all the untranslated ones, but I rarely
> hear them in practical usage.  Books probably go for a full
> translation since they want to be normative (how should I know, it's
> been a while since I used a German book), but lectures stick to the
> half-translated version.

Any active graduate student or researcher is used to English articles
and books and doesn't need a translation at all, or could do completely
with a translated glossary.

I assume we do the (extensive!) translation work for people who could
not use Git without a translation. And that mandates translating as much
as possible (including man pages...).

As far as the various disciplines go, CS is always on the side of
importing more terms from English rather than translating. If we agree
that a group of CS researchers is the target I'm fine with it - but it
would imply backing out l10n ;)

Note that I don't want to create any bad feelings against the l10n
efforts. If it is done then I want it to be done right and not rushed, a
bad one does more harm than anything. I probably won't be contributing
to translations of commands, but I'm in for the glossary to help it have
a sound start.

Michael

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15 11:10 ` Michael J Gruber
@ 2010-09-15 16:54   ` Andreas Schwab
  0 siblings, 0 replies; 22+ messages in thread
From: Andreas Schwab @ 2010-09-15 16:54 UTC (permalink / raw)
  To: Michael J Gruber; +Cc: Christian Stimming, trast, jk, avarab, git

Michael J Gruber <git@drmicha.warpmail.net> writes:

> Christian Stimming venit, vidit, dixit 15.09.2010 09:33:
>> 
>>>  revision              Revision
>> 
>> Die "Revision" kommt ins Haus, um die Bücher zu prüfen. Honestly,  
>> please don't use that word in German. Why not "Version"?
>
> +1
> Again, that reflects a limited view of the use of "Revision", but I have
> no objection against "Version". Even our existing glossary says that a
> "revision" is what other scms call a "version".

A more literal translation would be "Änderung", which I think isn't all
that bad.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-15  7:33 [PATCH 1/2] po/de.po: add German translation Christian Stimming
                   ` (2 preceding siblings ...)
  2010-09-15 11:44 ` Thomas Hochstein
@ 2010-09-16 10:57 ` Jan Krüger
  2010-09-16 11:09   ` Ævar Arnfjörð Bjarmason
  2010-09-16 11:51   ` Michael J Gruber
  3 siblings, 2 replies; 22+ messages in thread
From: Jan Krüger @ 2010-09-16 10:57 UTC (permalink / raw)
  To: Christian Stimming; +Cc: trast, avarab, git

Christian Stimming <stimming@tuhh.de> wrote:

> As you might guess, as the (initial) translator of git-gui I've been  
> through this discussion before [1] and as you have noticed, I have  
> decided to take a translation approach different from what you have  
> recently discussed here. I deliberately tried to translate as much
> of the terms into German as possible. I do not agree about the
> importance of statements on this mailing list like "This translation
> translates too much terms - I cannot find the commands I'm used to".
> The point of a translation is to enable the usage of a program to
> people who do *not* know the original language.

Please explain how translating all terms makes it easier for Germans to
work with git. As far as I am concerned, all the terms you tried so
hard to translate are technical terms, i.e. their full meaning cannot be
readily understood without an explanation. That is the reason why we
have a glossary for those terms even in the English original.

Translating these terms into German does not change anything about
that. All terms still need to be explained.

There is some slight potential gain in that perhaps *some* translated
words will be more easily associated with their corresponding
explanations due to the imagery they use, but at the same time there is
a cost. I have never met anyone with experience with revision control
who used Germanized technical terms. If you never introduce new folks
to the terms that are actually used, they are in for a whole world of
communication problems.

There has always been opposition to borrowing words from other
languages, but it's the way language develops. Nobody says
"Haareschneider" or "Senf-Eier-Paste" or "dünne Nudelteigfäden". Nobody
says "Kompaktscheibe" or "Systemstartverwalter" or
"grafisches Dokumentabtastgerät". If I used those words out of the
conviction that rigorously translating everything is a good thing,
people who have difficulty understanding me if I casually used some of
those (and I can think of lots more).

I don't actually think that translating words is bad, but I'd rather
keep the original word than translate it to something that either
doesn't map to the concept half as well or something that is simply
extremely unwieldy.

There are quite a few examples in the git-gui translation that I
consider extremely unwieldy, and in my initial translation of git
itself I tried very hard to avoid translations like "Bereitstellung
(zum Eintragen)", where I have absolutely no idea what that is supposed
to mean. I don't want to turn this into a critique of git-gui's
translation, though. 

> [...] a translation is for people who do neither know nor understand
> the English wording for the git concepts.

Yes, but when you are first introduced to the words as an English
speaker, you don't understand the concepts either. This part of the
learning curve cannot be eliminated.

> Wikipedia is a bad reference for measuring the importance of certain  
> things. I (or you) could have easily adapted that article to my
> point of view before continuing the discussion.

But neither of us have, right? We're adults, after all. You're free to
assume that Wikipedia doesn't reflect some kind of social consensus. I
do assume that, moreso than I assume that Wikipedia is accurate.

> However, in this particular case that article doesn't even mention
> many of the terms which need to be discussed in a git glossary.

Of course not... but it reflects a tendency for terms to not be
translated.

> >  branch                Branch (m.)  
>
> I'd go for "Zweig". It's even on the wikipedia page and it perfectly  
> represents the concept.

My main reason for not translating this one is that we have a command
called "branch" and since people need to learn what it means anyway,
and we're certainly not going to change the command names in different
languages, translating the term in other uses just means that German
users have to remember two different words for the same thing. Similar
reasoning applies to some other terms.

> >  index                 Index
> 
> I'd strongly vote for not using "Index". The "Index" is where the  
> "Bundesprüfstelle für jugendgefährdende Schriften" puts the  
> Ballerspiele on. Don't let the identical word fool you into thinking  
> this is a worthwhile translation. Also, the English term is a bad  
> naming anyway IMHO. I'd use git-gui's replacement (staging area) and  
> use "Bereitstellung" here as well. Feel free to propose something  
> different, but please not "Index". Git isn't FSK18.

So we should strike the word "Index" from casual and professional usage
when referring to the reference section of a book?

> 
> >  commit (noun, verb)                Commit/committen
> 
> That's a hard one. It sounds terrible to use "committen" in German.

True, but it beats the alternatives. I seriously can't think of any
German word that is equivalent to "commit" in the sense that we use it;
neither verb nor noun form. The command name reasoning applies here,
too.

> >  revision              Revision
> 
> Die "Revision" kommt ins Haus, um die Bücher zu prüfen. Honestly,  
> please don't use that word in German. Why not "Version"?

Sure, why not... though there are a *lot* of other meanings for the word
in German.

> >  tag                   Tag
> 
> Der heutige Tag oder der morgige Tag? What's the problem with  
> "Markierung"? This is exactky the git concept which is meant.

I believe that the English "tag" is a much better metaphor than the
German "Markierung". One use of "tag" refers to a small label that is
attached to, for example, baggage. This is exactly the concept we have
in git. "Markierung" doesn't come close at all to describing the same
concept. Conflicts markers are "Markierungen"; tags are not.
The command name reasoning applies here, too.

> >  tree                  Tree
> 
> I would not understand what the "Tree" in German should be. Any
> German word instead?

Okay, fair enough.

Anyway, to conclude: I appreciate the feedback, but I think translating
all words is not as conducive to making git accessible to Germans as you
think.

-Jan

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 10:57 ` Jan Krüger
@ 2010-09-16 11:09   ` Ævar Arnfjörð Bjarmason
  2010-09-16 11:29     ` Jens Lehmann
  2010-09-16 11:51   ` Michael J Gruber
  1 sibling, 1 reply; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-09-16 11:09 UTC (permalink / raw)
  To: Jan Krüger; +Cc: Christian Stimming, trast, git

On Thu, Sep 16, 2010 at 10:57, Jan Krüger <jk@jk.gs> wrote:

> My main reason for not translating this one is that we have a command
> called "branch" and since people need to learn what it means anyway,
> and we're certainly not going to change the command names in different
> languages [...] "Markierung" doesn't come close at all to describing the same
> concept. Conflicts markers are "Markierungen"; tags are not.
> The command name reasoning applies here, too.

FWIW we could translate the command names if we wanted to, but whether
to do that or not is something we'll have to look at in due time.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 11:09   ` Ævar Arnfjörð Bjarmason
@ 2010-09-16 11:29     ` Jens Lehmann
  2010-09-16 11:51       ` Ævar Arnfjörð Bjarmason
  2010-09-16 14:52       ` Junio C Hamano
  0 siblings, 2 replies; 22+ messages in thread
From: Jens Lehmann @ 2010-09-16 11:29 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Jan Krüger, Christian Stimming, trast, git

Am 16.09.2010 13:09, schrieb Ævar Arnfjörð Bjarmason:
> On Thu, Sep 16, 2010 at 10:57, Jan Krüger <jk@jk.gs> wrote:
> 
>> My main reason for not translating this one is that we have a command
>> called "branch" and since people need to learn what it means anyway,
>> and we're certainly not going to change the command names in different
>> languages [...] "Markierung" doesn't come close at all to describing the same
>> concept. Conflicts markers are "Markierungen"; tags are not.
>> The command name reasoning applies here, too.
> 
> FWIW we could translate the command names if we wanted to, but whether
> to do that or not is something we'll have to look at in due time.

Are you seriously thinking about translating the "git branch" command
into "git zweig"??? Locale-specific batch files should be real fun ...

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 11:29     ` Jens Lehmann
@ 2010-09-16 11:51       ` Ævar Arnfjörð Bjarmason
  2010-09-16 14:52       ` Junio C Hamano
  1 sibling, 0 replies; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-09-16 11:51 UTC (permalink / raw)
  To: Jens Lehmann; +Cc: Jan Krüger, Christian Stimming, trast, git

On Thu, Sep 16, 2010 at 11:29, Jens Lehmann <Jens.Lehmann@web.de> wrote:
> Am 16.09.2010 13:09, schrieb Ævar Arnfjörð Bjarmason:
>> On Thu, Sep 16, 2010 at 10:57, Jan Krüger <jk@jk.gs> wrote:
>>
>>> My main reason for not translating this one is that we have a command
>>> called "branch" and since people need to learn what it means anyway,
>>> and we're certainly not going to change the command names in different
>>> languages [...] "Markierung" doesn't come close at all to describing the same
>>> concept. Conflicts markers are "Markierungen"; tags are not.
>>> The command name reasoning applies here, too.
>>
>> FWIW we could translate the command names if we wanted to, but whether
>> to do that or not is something we'll have to look at in due time.
>
> Are you seriously thinking about translating the "git branch" command
> into "git zweig"???

I am. I don't think we should do it, I'm just saying we can.

    char *allowed_names[] = { "branch", _("branch"), NULL };

Right now we only talk to the user in their native language, but we
could extend that so that the user can also talk to us.

> Locale-specific batch files should be real fun ...

We'd only translate the porcelain commands, and document that using
the translated versions anywhere but interactively on the command-line
is a bad idea.

But to re-iterate, I'm not saying we should do it, just that it would
be easy to add it if we want to, and it would presumably be easier to
use a translated git in if we did this.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 10:57 ` Jan Krüger
  2010-09-16 11:09   ` Ævar Arnfjörð Bjarmason
@ 2010-09-16 11:51   ` Michael J Gruber
  2010-09-16 16:48     ` Jan Krüger
  1 sibling, 1 reply; 22+ messages in thread
From: Michael J Gruber @ 2010-09-16 11:51 UTC (permalink / raw)
  To: Jan Krüger; +Cc: Christian Stimming, trast, avarab, git

Jan Krüger venit, vidit, dixit 16.09.2010 12:57:
> Christian Stimming <stimming@tuhh.de> wrote:
> 
>> As you might guess, as the (initial) translator of git-gui I've been  
>> through this discussion before [1] and as you have noticed, I have  
>> decided to take a translation approach different from what you have  
>> recently discussed here. I deliberately tried to translate as much
>> of the terms into German as possible. I do not agree about the
>> importance of statements on this mailing list like "This translation
>> translates too much terms - I cannot find the commands I'm used to".
>> The point of a translation is to enable the usage of a program to
>> people who do *not* know the original language.
> 
> Please explain how translating all terms makes it easier for Germans to
> work with git. As far as I am concerned, all the terms you tried so
> hard to translate are technical terms, i.e. their full meaning cannot be
> readily understood without an explanation. That is the reason why we
> have a glossary for those terms even in the English original.
> 
> Translating these terms into German does not change anything about
> that. All terms still need to be explained.

Absolutely true, and absolutely irrelevant for the decision whether to
translate these, since they need to be explained in any case.

> 
> There is some slight potential gain in that perhaps *some* translated
> words will be more easily associated with their corresponding
> explanations due to the imagery they use,

The aim of a good translation is to reproduce the concept, not the word.
I assume we're talking about a (mostly) non-English speaking target
audience here, and for them associating meaning with terms in their
native language is certainly easier.

...
> There are quite a few examples in the git-gui translation that I
> consider extremely unwieldy, and in my initial translation of git
> itself I tried very hard to avoid translations like "Bereitstellung
> (zum Eintragen)", where I have absolutely no idea what that is supposed
> to mean. I don't want to turn this into a critique of git-gui's
> translation, though. 
[For the record, I don't like that translation either.]

>> I'd go for "Zweig". It's even on the wikipedia page and it perfectly  
>> represents the concept.
> 
> My main reason for not translating this one is that we have a command
> called "branch" and since people need to learn what it means anyway,
> and we're certainly not going to change the command names in different
> languages, translating the term in other uses just means that German
> users have to remember two different words for the same thing. Similar
> reasoning applies to some other terms.

I really have to oppose this reasoning. Are you seriously suggesting we
should not translate the following words as a matter of principle?

add
am (OK, I'm kidding here)
annotate
apply
archive
bisect
blame
branch
bundle
cat (...)
check
checkout
cherry(-pick)
clean
clone
commit
config
count
daemon
describe
diff
fast
fetch
filter
for
format
get
grep
gui
hash
help
index
init
log
lost
mailinfo
mailsplit
merge
mergetool
name
notes
pack
parse
patch
peek
prune
pull
push
read
rebase
receive
reflog
relink
remote
repack
replace
repo
request
reset
revert
rev
send
shell
shortlog
show
stage
stash
status
submodule
symbolic
tag
tar
unpack
update
upload
var
verify
web
write

We simply need a principle we can follow, which produces readable text,
and which helps those in need of a translation. Those with a reasonable
passive understanding of English don't need a translation at all. Some
suggestions to follow:

- Identify term categories which are already in use in the English
version, such as "combinatorial graphs".

- Within each category, look for established translations in that field;
in any case, keep the categorical associations for the translation.

- Translate concepts, not words. If there are several choices, favour
the one which is linguistically close to the English Git glossary.
There's a good chance this will happen quite often with German.

>>>  tag                   Tag
>>
>> Der heutige Tag oder der morgige Tag? What's the problem with  
>> "Markierung"? This is exactky the git concept which is meant.
> 
> I believe that the English "tag" is a much better metaphor than the
> German "Markierung". One use of "tag" refers to a small label that is
> attached to, for example, baggage. This is exactly the concept we have
> in git. "Markierung" doesn't come close at all to describing the same
> concept. Conflicts markers are "Markierungen"; tags are not.

That's exactly why I suggested "Marke", see my earlier reply also for
the other terms. It conveys the same multiple metaphorical associations.

You know, there's a reason why translating is a profession. You need to
be proficient in both languages, as well as creative. In fact, I don't
think the majority of people are proficient enough for that even in
their native language (as a translation target), but every native
speaker thinks he or she is, of course. (This is a general remark not
aimed at anyone specifically.)

Michael

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 11:29     ` Jens Lehmann
  2010-09-16 11:51       ` Ævar Arnfjörð Bjarmason
@ 2010-09-16 14:52       ` Junio C Hamano
  2010-09-16 15:05         ` Jens Lehmann
  1 sibling, 1 reply; 22+ messages in thread
From: Junio C Hamano @ 2010-09-16 14:52 UTC (permalink / raw)
  To: Jens Lehmann
  Cc: Ævar Arnfjörð Bjarmason, Jan Krüger,
	Christian Stimming, trast, git

Jens Lehmann <Jens.Lehmann@web.de> writes:

> Am 16.09.2010 13:09, schrieb Ævar Arnfjörð Bjarmason:
>> On Thu, Sep 16, 2010 at 10:57, Jan Krüger <jk@jk.gs> wrote:
>> 
>>> My main reason for not translating this one is that we have a command
>>> called "branch" and since people need to learn what it means anyway,
>>> and we're certainly not going to change the command names in different
>>> languages [...] "Markierung" doesn't come close at all to describing the same
>>> concept. Conflicts markers are "Markierungen"; tags are not.
>>> The command name reasoning applies here, too.
>> 
>> FWIW we could translate the command names if we wanted to, but whether
>> to do that or not is something we'll have to look at in due time.
>
> Are you seriously thinking about translating the "git branch" command
> into "git zweig"??? Locale-specific batch files should be real fun ...

Perhaps "dumme zweig"?  IOW, shouldn't "git" itself be translated in such
a case?

People, please stop being ridiculous.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 14:52       ` Junio C Hamano
@ 2010-09-16 15:05         ` Jens Lehmann
  0 siblings, 0 replies; 22+ messages in thread
From: Jens Lehmann @ 2010-09-16 15:05 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Ævar Arnfjörð Bjarmason, Jan Krüger,
	Christian Stimming, trast, git

Am 16.09.2010 16:52, schrieb Junio C Hamano:
> Jens Lehmann <Jens.Lehmann@web.de> writes:
>> Are you seriously thinking about translating the "git branch" command
>> into "git zweig"??? Locale-specific batch files should be real fun ...
> 
> Perhaps "dumme zweig"?  IOW, shouldn't "git" itself be translated in such
> a case?
> 
> People, please stop being ridiculous.

Yup, and just in case people misunderstood me: I was being sarcastic.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 11:51   ` Michael J Gruber
@ 2010-09-16 16:48     ` Jan Krüger
  2010-09-17  7:23       ` Michael J Gruber
  0 siblings, 1 reply; 22+ messages in thread
From: Jan Krüger @ 2010-09-16 16:48 UTC (permalink / raw)
  To: Michael J Gruber; +Cc: Christian Stimming, trast, avarab, git

Michael J Gruber <git@drmicha.warpmail.net> wrote:

> > Translating these terms into German does not change anything about
> > that. All terms still need to be explained.
> 
> Absolutely true, and absolutely irrelevant for the decision whether to
> translate these, since they need to be explained in any case.

The argument for translating them in the first place was that that
makes it easier to understand the text. My argument was that the
translated terms are not more understandable because they still need to
be explained. How is that irrelevant? I consider the original argument
refuted, and unless you have a different argument for translating them,
I will continue to translate terms only if I find a reasonable
equivalent in German.

> The aim of a good translation is to reproduce the concept, not the
> word. I assume we're talking about a (mostly) non-English speaking
> target audience here, and for them associating meaning with terms in
> their native language is certainly easier.

I have not seen a whole lot of good translations, though. Most of them
don't represent the original concept nearly as well as the original
word. Most of the time the metaphorical expressiveness is worlds apart.

> >> I'd go for "Zweig". It's even on the wikipedia page and it
> >> perfectly represents the concept.
> > 
> > My main reason for not translating this one is that we have a
> > command called "branch" and since people need to learn what it
> > means anyway, and we're certainly not going to change the command
> > names in different languages, translating the term in other uses
> > just means that German users have to remember two different words
> > for the same thing. Similar reasoning applies to some other terms.
> 
> I really have to oppose this reasoning. Are you seriously suggesting
> we should not translate the following words as a matter of principle?

I would indeed keep quite a few of them as they are. But you're
right, the fact that they would likely be kept as command names just
makes me feel better about keeping them untranslated; the main reason
is that I can't find good translations. Let's step through them one
by one, against my better judgement.

> add

This one is straightforward enough, I have to admit. "Hinzufügen" is
exactly the concept we're looking for here.

> am (OK, I'm kidding here)

"pa" für "Postfach anwenden"? ;)

> apply

I believe that "anwenden" is indeed frequently used in this context.

> archive

There exists an exactly equivalent word in German, so that's wonderful.

> bisect

This will be translated to "halbieren" over my cold, dead body.

> blame

Can't think of anything right now, but my intuition says that this can
be translated gracefully; perhaps not in one word, but who cares.

> branch

I actually think that "Zweig" is not a perfect translation here.
"Zweig" is commonly used in the context of describing trees. The git
history is not in tree form, though. Instead, I think the concept of a
branch in the road is a better fit; it's natural for a road to branch
off and later rejoin whatever road it branched off of. A translation of
that might be "Abzweig", but I would prefer a word that doesn't
currently sound stilted.

> bundle

I'd argue that the word "Bundle" is already used in German technical
lingo.

> cat (...)

Those (and some others in your list) tend to be plumbing commands. I
don't think we need to think about them quite as hard as about
porcelain.

> checkout

There is no good equivalent in German (that I know of). Actually the
original term is not very good in the first place. It seems to be using
borrowing "checkout" in the sense as used in, for example, a library.

(Actually, "auschecken" exists (listed in my dictionary of choice, at
least) and is probably close enough...)

> cherry(-pick)

This is a tricky one. "Pflücken" is certainly not an ideal translation;
"herauspicken" is closer but a bit awkward to integrate into a sentence.

> clean

Straightforward translation: "aufräumen".

> clone

German equivalent exists: "klonen/Klon".

> commit

This is about the most complicated term there is. This word unites so
many meanings it's not even funny. The most relevant ones which I
see reflected in git are:

- commit to memory
- commit to a decision
- commit someone to a mental institution (and aren't there enough
  commits where you feel a bit like that?)
- commit a crime

Note that I'm just using these as examples of what "commit" can mean,
and I see all of these meanings reflected in git's usage in one way or
another.

Now try and find a German word that has the same kind of overall
meaning. I'll wait.

Another important reason why I really wouldn't change this one
("Commit/committen") is that it's widely used like that in German
already. By introducing new users to some kind of Germanized metaphor,
you end up creating a communication barrier between existing experts
and new users. I think that should be avoided at all costs.

This is also the reason why I oppose the argument that a translation
should exclusively cater to new users who don't speak English. I
believe that the meaning of translation should at least be easily
apparent to existing German users. The example "Bereitstellung (zum
Eintragen)" that I already gave from git-gui shows how not to do that.
It took me at least a minute to figure out what that meant.

People who don't share my point of view have not responded to this
argument so far, but I believe that it's crucially important.

> config
> count
> describe

Straightforward.

> daemon

I wouldn't translate this one. It's a crafted word; there's no reason
to replace it with a non-crafted word in German. Also it's commonly
used by German UNIX experts anyway.

> diff

The whole point of this word is to be short. It's close enough to the
German "Differenz" that I would keep it, even as a verb ("diffen").
Again, this form is crafted anyway.

(No, it's not okay to call it "differenzieren". You'll drive math folks
to homicide if you do that. ;))

> fetch

I already translated this one.

> filter

The German word is the same.

> format

Again, this is difficult. In prose I would just call it "Patch
erstellen".

> grep

Another crafted word. I'd keep it. Any UNIX user will know it anyway.

> gui

Nobody ever translates this acronym.

> hash

"Hash" is a widely used technical term in German.

> help
> index
> init

Straightforward.

> log

"Protokoll" seems a bit cumbersome but is close enough to the original
concept.

> lost

I'm beginning to figure out how you generated this list...

> merge

Again, there is no real equivalent in German. I would be all in favour
of going with a more elaborate translation if that wouldn't make
certain things extremely convoluted ("Zusammenführungscommit"?).

> name

Did you even read this part of your mail? ;)

> notes

Straightforward.

> pack

Less so. Used as a noun, most straightforward translations will clash
with "archive" or "repository" or whatever. "Paket" clashes with its
usual meaning of "packet", especially in contexts like "receive pack".

I would really like to translate this one (it seems like it shouldn't
be too hard), but I don't have any decent ideas.

> patch

Customarily used in German.

> pull

Another tricky one. I haven't quite decided yet whether "ziehen" is an
accurate translation. I'd probably try to cheat by rephrasing sentences
that use this word.

> push

Same thing.

> rebase

Tricky. This is another crafted word. I believe the best chance of
doing it justice would be in crafting a word with a German base that's
very similar to this. Lacking of a good solution, I'd keep the original
word.

> reflog

Another crafted one. Developers tend to know the term "log", so I'd
keep this one, especially since it'll be hard to find something else
that can be shortened this much.

> remote

I haven't translated this one yet. I guess it would map nicely to
"extern", though then we'd lose the noun meaning of the original.

> reset

Straightforward, though "reset" doesn't really describe very well what
it does in the first place.

> revert

Literally translating this one out of the dictionary will end up being
incorrect. "Zurücknehmen" would be closer.

> rev

Christian's "Versionsangabe" seems like a good fit.

> show

Straightforward.

> stage

I translated this to "vormerken".

> stash

Tricky. Since some of the original git lingo is fairly casual, though,
I might go with "bunkern". And if anyone complains about connotations
of war, I'll scream.

> status

Used in German.

> submodule

I certainly don't have any good idea here.

> We simply need a principle we can follow, which produces readable
> text, and which helps those in need of a translation. Those with a
> reasonable passive understanding of English don't need a translation
> at all. Some suggestions to follow:
> 
> - Identify term categories which are already in use in the English
> version, such as "combinatorial graphs".

We usually use only a very small part of each taxonomy (see, for
example, the word "branch" which is *not* used by us as it is in graph
theory), so this doesn't help as much as it might seem. I agree that
reusing well-established translated taxonomies is a good thing, though.

> - Translate concepts, not words. If there are several choices, favour
> the one which is linguistically close to the English Git glossary.

I agree with this too, as long as it's done *well*. That includes
setting a "maximum distance" between the original and the translations.
A rough fit (e.g. commit <-> eintragen, stage <-> bereitstellen and
many others) should be rejected as not really making things better.

> > I believe that the English "tag" is a much better metaphor than the
> > German "Markierung". One use of "tag" refers to a small label that
> > is attached to, for example, baggage. This is exactly the concept
> > we have in git. "Markierung" doesn't come close at all to
> > describing the same concept. Conflicts markers are "Markierungen";
> > tags are not.
> 
> That's exactly why I suggested "Marke", see my earlier reply also for
> the other terms. It conveys the same multiple metaphorical
> associations.

I disagree. Arguably, the strongest association is
"Briefmarke" (postage stamp), probably followed by
"Erkennungsmarke/Markenzeichen" (trademark) and perhaps
"Plakette" (insignia). None of these reflect what a "tag" is about:
(more or less) loosely attaching an identifier to a revision, as in the
case of a baggage tag or a dog tag. What's more, the word "Tag" is
already widely used in German version control lingo. For example, the
German translation of the SVN red book uses it.

> You know, there's a reason why translating is a profession. You need
> to be proficient in both languages, as well as creative. In fact, I
> don't think the majority of people are proficient enough for that
> even in their native language (as a translation target), but every
> native speaker thinks he or she is, of course. (This is a general
> remark not aimed at anyone specifically.)

The whole profession argument has never sat well with me. I know
hobbyists who have ten times the skills of some professionals. I agree
that translating is a nontrivial task, though... and I, personally,
will not be involved in anything less than a very good translation. I
have outlined what I perceive as shortcomings in a number of
suggestions made here. I'll be glad to look at alternative suggestions,
but so far, for a number of terms, I haven't seen a satisfactory
alternative to adopting the English ones.

(FWIW, I've bounced some of the more controversial of my translations
off a couple of git users, but also off a graduate of German language
and literature studies who uses neither git nor English. I'm just
mentioning that due to your totally-not-aimed-at-anyone remark, though;
I don't think it should actually make any difference.)

At any rate, I will stop working on translating git as long as this
discussion goes on. And, of course, should you guys end up insisting on
bad translations, I'll leave you to writing it that way. Under
protest. :)

-Jan

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-16 16:48     ` Jan Krüger
@ 2010-09-17  7:23       ` Michael J Gruber
  0 siblings, 0 replies; 22+ messages in thread
From: Michael J Gruber @ 2010-09-17  7:23 UTC (permalink / raw)
  To: Jan Krüger; +Cc: Christian Stimming, trast, avarab, git

[snipping most parts to make this shorter]

Jan Krüger venit, vidit, dixit 16.09.2010 18:48:
> Michael J Gruber <git@drmicha.warpmail.net> wrote:
> 
>>> Translating these terms into German does not change anything about
>>> that. All terms still need to be explained.
>>
>> Absolutely true, and absolutely irrelevant for the decision whether to
>> translate these, since they need to be explained in any case.
> 
> The argument for translating them in the first place was that that
> makes it easier to understand the text. My argument was that the
> translated terms are not more understandable because they still need to
> be explained. How is that irrelevant? I consider the original argument

If it makes no difference then it is irrelevant for the decision. It's
neither pro nor con, other arguments have to be brought up.

>> I really have to oppose this reasoning. Are you seriously suggesting
>> we should not translate the following words as a matter of principle?
> 
> I would indeed keep quite a few of them as they are. But you're
> right, the fact that they would likely be kept as command names just
> makes me feel better about keeping them untranslated; the main reason
> is that I can't find good translations. Let's step through them one
> by one, against my better judgement.

This was not meant as a list to be worked through, but as an argument
that the principle "do not translate command names at all" (i.e. in *no*
context) is not viable.

>>> I believe that the English "tag" is a much better metaphor than the
>>> German "Markierung". One use of "tag" refers to a small label that
>>> is attached to, for example, baggage. This is exactly the concept
>>> we have in git. "Markierung" doesn't come close at all to
>>> describing the same concept. Conflicts markers are "Markierungen";
>>> tags are not.
>>
>> That's exactly why I suggested "Marke", see my earlier reply also for
>> the other terms. It conveys the same multiple metaphorical
>> associations.
> 
> I disagree. Arguably, the strongest association is
> "Briefmarke" (postage stamp), probably followed by
> "Erkennungsmarke/Markenzeichen" (trademark) and perhaps
> "Plakette" (insignia). None of these reflect what a "tag" is about:
> (more or less) loosely attaching an identifier to a revision, as in the
> case of a baggage tag or a dog tag. What's more, the word "Tag" is

dog tag is Hundemarke. I really think Marke conveys most meanings of
tag, especially those relevant to the meaning of tag in Git context. If
you insist on translating all aspects and connotations of a word then
there is no translation at all.

> already widely used in German version control lingo. For example, the
> German translation of the SVN red book uses it.
> 
>> You know, there's a reason why translating is a profession. You need
>> to be proficient in both languages, as well as creative. In fact, I
>> don't think the majority of people are proficient enough for that
>> even in their native language (as a translation target), but every
>> native speaker thinks he or she is, of course. (This is a general
>> remark not aimed at anyone specifically.)
> 
> The whole profession argument has never sat well with me. I know
> hobbyists who have ten times the skills of some professionals. I agree

I talked about "profession", not about hobbyists vs. professionals. And
I don't like it when you turn around my words in my mouth.

> that translating is a nontrivial task, though... and I, personally,
> will not be involved in anything less than a very good translation. I
> have outlined what I perceive as shortcomings in a number of
> suggestions made here. I'll be glad to look at alternative suggestions,
> but so far, for a number of terms, I haven't seen a satisfactory
> alternative to adopting the English ones.
> 
> (FWIW, I've bounced some of the more controversial of my translations
> off a couple of git users, but also off a graduate of German language
> and literature studies who uses neither git nor English. I'm just
> mentioning that due to your totally-not-aimed-at-anyone remark, though;

You can take that for face-value - it was not aimed at anyone, and you
have no reason to claim otherwise.

> I don't think it should actually make any difference.)
> 
> At any rate, I will stop working on translating git as long as this
> discussion goes on. And, of course, should you guys end up insisting on
> bad translations, I'll leave you to writing it that way. Under
> protest. :)

We simply have to decide about a concept, about an approach first, about
what is "bad" and what is "good" (for the yet to be determined target
audience) as you put it, before flooding the single de.po with
translation pieces without an agreement on a glossary for the main terms.

But, given the direction this discussion is taking now, I'm really
pessimistic that this is going to happen. Maybe switching to DE would
help, I dunno.

Michael

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-06 16:24     ` Jens Lehmann
@ 2010-09-06 19:58       ` Tilo Schwarz
  0 siblings, 0 replies; 22+ messages in thread
From: Tilo Schwarz @ 2010-09-06 19:58 UTC (permalink / raw)
  To: git

On Mon, 06 Sep 2010 18:24:58 +0200, Jens Lehmann <Jens.Lehmann@web.de>  
wrote:

> Am 06.09.2010 17:41, schrieb Thomas Rast:
>> I already like the translation way better than the one that
>> gitk/git-gui have, because it doesn't try so hard to translate *every*
>> term.
>
> Full Ack, I can't find my way through git-gui or gitk when I forget
> to start them with "LC_ALL=C" (And when you use git mainly via these
> guis, you will have to learn /every/ git command again when you
> start using the command line). IMHO terms that have a special in git
> should not be translated, so I would even vote for leaving terms like
> "fetch", "fast-forward" and maybe even "tracking-branch" as they are.

Full Ack again! Many german IT people use many english special terms daily  
(like compiler, linker, terminal, interrupt). Normally the translation of  
the special terms generates confusion all over the place. That's why I  
also start git-gui or gitk only in english (and the manpages too, by the  
way).

Thus the git special terms should not be translated, even though I might  
be helpful to have a glossary which explains, what a "fast-forward" is.

--
Regards,


     Tilo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-06 15:41   ` Thomas Rast
  2010-09-06 16:09     ` Jan Krüger
  2010-09-06 16:24     ` Jens Lehmann
@ 2010-09-06 17:15     ` Ævar Arnfjörð Bjarmason
  2 siblings, 0 replies; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-09-06 17:15 UTC (permalink / raw)
  To: Thomas Rast; +Cc: git, Junio C Hamano, Jan Krüger, Sam Reed, Jeff King

On Mon, Sep 6, 2010 at 15:41, Thomas Rast <trast@student.ethz.ch> wrote:
> Hi Jan
>
> First off thanks for taking on the mammoth job of translating this.  I
> skimmed the entire file, and apart from the comments below everything
> looks sane, though I may of course have missed something.
>
> I already like the translation way better than the one that
> gitk/git-gui have, because it doesn't try so hard to translate *every*
> term.  Maybe it would help to make a little translation glossary,
> here's a start:
>
>  bare repository       Lager-Repository
>  blob object           Blob-Objekt
>  branch                Branch (m.)
>  checkout              auschecken
>  commit                Commit/committen
>  commit object         Commit-Objekt
>  dangling ...          ... zeigt ins Leere
>  detached HEAD         von HEAD abgetrennt  [but see below]
>  directory             Verzeichnis
>  fast-forward          Update ohne Merge
>  fetch                 holen
>  file system           Dateisystem
>  index                 Index
>  merge                 Merge
>  object                Objekt
>  origin                Ursprung
>  parent                [unused, but would be interesting]
>  pull                  [dito]
>  push                  push [though only used as the command name so far]
>  reference             Referenz
>  reflog                Reflog
>  refspec               Refspec
>  repository            Repository
>  resolve               auflösen
>  revision              Revision
>  tag                   Tag
>  tracking branch       ... verfolgt ...
>  tree                  Tree
>  unmerged              verbleibende Konflikte
>  upstream branch       Ursprung [note collision with "origin"]
>  working tree          Arbeitsverzeichnis

git-gui/po/glossary/git-gui-glossary.txt also has something like
that. It would be useful to merge this and that into some
documentation in a top-level po/ glossary.

>> +#, c-format
>> +msgid ""
>> +" Lines starting\n"
>> +"# with '#' will be kept; you may remove them yourself if you want to.\n"
>> +"# An empty message aborts the commit.\n"
>> +msgstr ""
>> +" Zeilen, die mit '#'\n"
>> +"# anfangen, werden beibehalten; du kannst sie selbst entfernen, wenn du\n"
>> +"willst. Ein leerer Kommentar bricht den Commit ab.\n"
>
> The last line lacks a #.

Something msgfmt --check wouldn't flag, but running the test suite
under German would (I plan to add support for that down the line).

>> +msgid "Fast-forward"
>> +msgstr "Update ohne Merge"
>
> Clever!

I think Fast-forward should be changed to "Update without merge" in
the English version, although that might not be viable at this point.

It would probably improve Git for newbies a lot if we clearly told
them during every "git pull" that whether we did a merge or not by
using wording to that effect consistently.

A lot of people coming from svn/perforce/cvs don't understand why they
keep getting merge commits on "git pull", wording might help there.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-06 16:09     ` Jan Krüger
@ 2010-09-06 17:06       ` Ævar Arnfjörð Bjarmason
  0 siblings, 0 replies; 22+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-09-06 17:06 UTC (permalink / raw)
  To: Jan Krüger; +Cc: Thomas Rast, git, Junio C Hamano, Sam Reed, Jeff King

On Mon, Sep 6, 2010 at 16:09, Jan Krüger <jk@jk.gs> wrote:
> Hi Thomas,
>
> thanks for your comments so far. I pretty much agree with all of your
> thoughts, so below I'm going to focus on those where I have something
> to say in addition to that.
>
>> > +#, c-format
>> > +msgid "nothing added to commit but untracked files present%s\n"
>> > +msgstr "keine Änderungen für den Commit vorgemerkt, aber
>> > unberücksichtigte Dateien vorhanden\n"
>>
>> Loses the %s (which is used for advice).
>
> That's me being careless. I will add an additional check to my workflow
> to prevent format string bugs from happening again.

As noted on IRC this would also be flagged by a compile error if we
were using `msgfmt --check` in the Makefile:

    -   $(QUIET_MSGFMT)$(MSGFMT) -o $@ $<
    +   $(QUIET_MSGFMT)$(MSGFMT) --check -o $@ $<

I'll add that along with some other planned fixes after Junio pulls
the outstanding stuff we have queued up.

It'll break compatibility with Solaris gettext. There are ways to work
around that, but I think we should just drop support for it
anyway. GNU gettext is needed anyway if we want libintl-perl and some
of the fancier gettext features.

Solaris support was always something I was using for an extra sanity
check, not something I planned to support, and the extra effort of
doing so isn't worth the effort I think.

>> [way earlier, and same goes for "by us" -> "hier" [lit. "here"]]
>> > +msgid "deleted by them:"
>> > +msgstr "dort gelöscht:"
>> [lit. "deleted there"]
>> > +
>> [...]
>> > +#, c-format
>> > +msgid "behind %d] "
>> > +msgstr "nur dort %d] "
>> [lit. "only there"]
>>
>> This had me pause for a moment.  The concepts of "[merge side] theirs"
>> and "behind" are quite different; is it a good idea to translate these
>> to the same?
>>
>> Especially so since later on you translate
>>
>> > +#, c-format
>> > +msgid "path '%s' does not have our version"
>> > +msgstr "Pfad '%s' hat keine Version 'von uns' im Index"
>> [lit. "... 'of us' ..."]
>>
>> I do agree that the best I can come up with, "von den anderen
>> gelöscht", would be quite awkward.
>
> This was one of the more difficult things to decide on while
> translating. Both are difficult to translate into something that
> "flows", and individually I think both work okay the way I decided to
> translate them (but see the next paragraph), but of course it would be
> preferrable to distinguish the two different concepts better. I'll be
> grateful for any suggestions.
>
> The real problem, I think, is that "ours" and "theirs" are misnomers in
> the original terminology. A good translation, I think, will not try
> to translate them literally... that would get us from misnomers to
> misnomers that also don't lend themselves well to the target
> language. :) The question, then, is how to rephrase the messages
> elegantly without removing them all too far from the original idea.
>
> This would be easier if "ours" and "theirs" always referred to the same
> concept... but they mean different things for merge vs. rebase, for
> instance.

Let's keep in mind that one of the major benefits of the gettext
series is that it's bringing focus to issues like this. Ideally we'd
like to fix those issues in the English originals, not just route
around the damage.

(I don't know if theirs/ours is such a case, but generally speaking..)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-06 15:41   ` Thomas Rast
  2010-09-06 16:09     ` Jan Krüger
@ 2010-09-06 16:24     ` Jens Lehmann
  2010-09-06 19:58       ` Tilo Schwarz
  2010-09-06 17:15     ` Ævar Arnfjörð Bjarmason
  2 siblings, 1 reply; 22+ messages in thread
From: Jens Lehmann @ 2010-09-06 16:24 UTC (permalink / raw)
  To: Thomas Rast
  Cc: avarab, git, Junio C Hamano, Jan Krüger, Sam Reed, Jeff King

Am 06.09.2010 17:41, schrieb Thomas Rast:
> I already like the translation way better than the one that
> gitk/git-gui have, because it doesn't try so hard to translate *every*
> term.

Full Ack, I can't find my way through git-gui or gitk when I forget
to start them with "LC_ALL=C" (And when you use git mainly via these
guis, you will have to learn /every/ git command again when you
start using the command line). IMHO terms that have a special in git
should not be translated, so I would even vote for leaving terms like
"fetch", "fast-forward" and maybe even "tracking-branch" as they are.

But however, translations should be consistent between gitk/git-gui
and the command line, no? E.g. tracking branch is "Übernahmezweig"
(whatever that means) there and "verfolgter Branch" here ... :-/


> [probably out of order, I found it while compiling the glossary]
>> +msgid "detached HEAD"
>> +msgstr "von HEAD abgetrennt"
> 
> That's not strictly speaking true; HEAD always points to a commit
> except in an unborn branch, and in any case (this is from commit.c)
> points to a commit after this message is output.  You could try
> "abgetrennter HEAD", "entkoppelter HEAD" or so...

Yup, maybe "abgelöster HEAD" or "loser HEAD" (even if the latter may
sound funny when parsed in English ;-)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-06 15:41   ` Thomas Rast
@ 2010-09-06 16:09     ` Jan Krüger
  2010-09-06 17:06       ` Ævar Arnfjörð Bjarmason
  2010-09-06 16:24     ` Jens Lehmann
  2010-09-06 17:15     ` Ævar Arnfjörð Bjarmason
  2 siblings, 1 reply; 22+ messages in thread
From: Jan Krüger @ 2010-09-06 16:09 UTC (permalink / raw)
  To: Thomas Rast; +Cc: avarab, git, Junio C Hamano, Sam Reed, Jeff King

Hi Thomas,

thanks for your comments so far. I pretty much agree with all of your
thoughts, so below I'm going to focus on those where I have something
to say in addition to that.

> > +#, c-format
> > +msgid "nothing added to commit but untracked files present%s\n"
> > +msgstr "keine Änderungen für den Commit vorgemerkt, aber
> > unberücksichtigte Dateien vorhanden\n"
> 
> Loses the %s (which is used for advice).

That's me being careless. I will add an additional check to my workflow
to prevent format string bugs from happening again.

> [way earlier, and same goes for "by us" -> "hier" [lit. "here"]]
> > +msgid "deleted by them:"
> > +msgstr "dort gelöscht:"
> [lit. "deleted there"]
> > +
> [...]
> > +#, c-format
> > +msgid "behind %d] "
> > +msgstr "nur dort %d] "
> [lit. "only there"]
> 
> This had me pause for a moment.  The concepts of "[merge side] theirs"
> and "behind" are quite different; is it a good idea to translate these
> to the same?
> 
> Especially so since later on you translate
> 
> > +#, c-format
> > +msgid "path '%s' does not have our version"
> > +msgstr "Pfad '%s' hat keine Version 'von uns' im Index"
> [lit. "... 'of us' ..."]
> 
> I do agree that the best I can come up with, "von den anderen
> gelöscht", would be quite awkward.

This was one of the more difficult things to decide on while
translating. Both are difficult to translate into something that
"flows", and individually I think both work okay the way I decided to
translate them (but see the next paragraph), but of course it would be
preferrable to distinguish the two different concepts better. I'll be
grateful for any suggestions.

The real problem, I think, is that "ours" and "theirs" are misnomers in
the original terminology. A good translation, I think, will not try
to translate them literally... that would get us from misnomers to
misnomers that also don't lend themselves well to the target
language. :) The question, then, is how to rephrase the messages
elegantly without removing them all too far from the original idea.

This would be easier if "ours" and "theirs" always referred to the same
concept... but they mean different things for merge vs. rebase, for
instance.

> [probably out of order, I found it while compiling the glossary]
> > +msgid "detached HEAD"
> > +msgstr "von HEAD abgetrennt"
> 
> That's not strictly speaking true; HEAD always points to a commit
> except in an unborn branch, and in any case (this is from commit.c)
> points to a commit after this message is output.  You could try
> "abgetrennter HEAD", "entkoppelter HEAD" or so...

Good catch. I think I might go with something a bit more verbose.
Perhaps something along the lines of "nicht Teil eines definierten
Branches", though obviously that exact phrase is a bit clunky...

-Jan

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/2] po/de.po: add German translation
  2010-09-04  0:49 ` [PATCH 1/2] po/de.po: add German translation avarab
@ 2010-09-06 15:41   ` Thomas Rast
  2010-09-06 16:09     ` Jan Krüger
                       ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Thomas Rast @ 2010-09-06 15:41 UTC (permalink / raw)
  To: avarab; +Cc: git, Junio C Hamano, Jan Krüger, Sam Reed, Jeff King

Hi Jan

First off thanks for taking on the mammoth job of translating this.  I
skimmed the entire file, and apart from the comments below everything
looks sane, though I may of course have missed something.

I already like the translation way better than the one that
gitk/git-gui have, because it doesn't try so hard to translate *every*
term.  Maybe it would help to make a little translation glossary,
here's a start:

  bare repository       Lager-Repository
  blob object           Blob-Objekt
  branch                Branch (m.)
  checkout              auschecken
  commit                Commit/committen
  commit object         Commit-Objekt
  dangling ...          ... zeigt ins Leere
  detached HEAD         von HEAD abgetrennt  [but see below]
  directory             Verzeichnis
  fast-forward          Update ohne Merge
  fetch                 holen
  file system           Dateisystem
  index                 Index
  merge                 Merge
  object                Objekt
  origin                Ursprung
  parent                [unused, but would be interesting]
  pull                  [dito]
  push                  push [though only used as the command name so far]
  reference             Referenz
  reflog                Reflog
  refspec               Refspec
  repository            Repository
  resolve               auflösen
  revision              Revision
  tag                   Tag
  tracking branch       ... verfolgt ...
  tree                  Tree
  unmerged              verbleibende Konflikte
  upstream branch       Ursprung [note collision with "origin"]
  working tree          Arbeitsverzeichnis

As I said, I agree with the general idea of leaving certain terms
untranslated.  You said on IRC that you left all English terms that
are also used on

  http://de.wikipedia.org/wiki/Versionskontrolle

which seems a sound rule.  In any case it roughly matches (or still
stays slightly on the more-German side of) the colloquial usage in my
group, if that is any indication.

avarab@gmail.com wrote:
> +#, c-format
> +msgid "nothing added to commit but untracked files present%s\n"
> +msgstr "keine Änderungen für den Commit vorgemerkt, aber unberücksichtigte Dateien vorhanden\n"

Loses the %s (which is used for advice).

> +#, c-format
> +msgid "unexpected diff status %c"
> +msgstr "unerwarteter Diff-Status %s"

Changes the format type.

[way earlier, and same goes for "by us" -> "hier" [lit. "here"]]
> +msgid "deleted by them:"
> +msgstr "dort gelöscht:"
[lit. "deleted there"]
> +
[...]
> +#, c-format
> +msgid "behind %d] "
> +msgstr "nur dort %d] "
[lit. "only there"]

This had me pause for a moment.  The concepts of "[merge side] theirs"
and "behind" are quite different; is it a good idea to translate these
to the same?

Especially so since later on you translate

> +#, c-format
> +msgid "path '%s' does not have our version"
> +msgstr "Pfad '%s' hat keine Version 'von uns' im Index"
[lit. "... 'of us' ..."]

I do agree that the best I can come up with, "von den anderen
gelöscht", would be quite awkward.

> +msgid "You are on a branch yet to be born"
> +msgstr "Der aktive Branch ist noch nicht angelegt"

ISTR you asked about this on IRC, very nice solution.

> +msgid "--patch is incompatible with all other options"
> +msgstr "--patch verträgt sich nicht mit allen anderen Optionen"

Nit: "... den restlichen Optionen" would be less ambiguous as to how
many of them you can give until it conflicts with --patch.

> +#, c-format
> +msgid "Remote branch %s not found in upstream %s, using HEAD instead"
> +msgstr ""
> +"Remote-branch %s nicht in Ursprung %s gefunden, benutze stattdessen HEAD"
["Ursprung" is literally "origin"]

This also has a slight danger of confusion with the canonical upstream
'origin'.

> +#, c-format
> +msgid ""
> +" Lines starting\n"
> +"# with '#' will be kept; you may remove them yourself if you want to.\n"
> +"# An empty message aborts the commit.\n"
> +msgstr ""
> +" Zeilen, die mit '#'\n"
> +"# anfangen, werden beibehalten; du kannst sie selbst entfernen, wenn du\n"
> +"willst. Ein leerer Kommentar bricht den Commit ab.\n"

The last line lacks a #.

> +msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
> +msgstr ""
> +"Pfade angegeben ohne ausdrückliches -i oder -o angegeben, ich nehme -o an..."

There's a stray "angegeben".

> +# FIXME: ich hab keine Ahnung, worum es hier geht
> +#, c-format
> +msgid "'%s': short read %s"
> +msgstr "'%s': short read %s"

Judging from the code, the file size changed between lstat() and
read_in_full(), and/or read() failed to read the end of the file.
Maybe "unvollständig gelesen".

> +msgid "You cannot combine --no-ff with --ff-only."
> +msgstr "Du kannst --no-ff nicht mit --ff-only kombinieren (wirklich wahr)."

:-)

> +#, c-format
> +msgid "%s - not something we can merge"
> +msgstr "%s ist etwas, das wir nicht mergen können"

That's the message you get if you say "git merge nonexistent" in an
unborn branch, so the implication (in the German version) that %s
exists is not accurate.  Maybe "Ich kann mit %s nichts anfangen" or
"%s taugt nicht für einen Merge"?

> +msgid "Fast-forward"
> +msgstr "Update ohne Merge"

Clever!

> +#, c-format
> +msgid "Pushing to %s\n"
> +msgstr "Übertrag zu %s\n"

"Übertrage"?

[probably out of order, I found it while compiling the glossary]
> +msgid "detached HEAD"
> +msgstr "von HEAD abgetrennt"

That's not strictly speaking true; HEAD always points to a commit
except in an unborn branch, and in any case (this is from commit.c)
points to a commit after this message is output.  You could try
"abgetrennter HEAD", "entkoppelter HEAD" or so...

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/2] po/de.po: add German translation
  2010-09-03 18:22 [GIT PULL] New ab/i18n series and builtin fixes Ævar Arnfjörð Bjarmason
@ 2010-09-04  0:49 ` avarab
  2010-09-06 15:41   ` Thomas Rast
  0 siblings, 1 reply; 22+ messages in thread
From: avarab @ 2010-09-04  0:49 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Jan Krüger, Sam Reed, Jeff King,
	Ævar Arnfjörð Bjarmason

From: Jan Krüger <jk@jk.gs>

Translate all the translatable messages currently in Git, except for
the 10 TEST messages that shouldn't be translated.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 po/de.po | 1888 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1888 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..2f178f5
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,1888 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Git\n"
+"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
+"POT-Creation-Date: 2010-09-03 15:45+0200\n"
+"Last-Translator: Jan Krüger <jk@jk.gs>\n"
+"Language-Team: Git Mailing List <git@vger.kernel.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "# Unmerged paths:"
+msgstr "# Verbleibende Konflikte in Pfaden:"
+
+#, c-format
+msgid "#   (use \"git reset %s <file>...\" to unstage)"
+msgstr ""
+"#   (benutze \"git reset %s <Datei>\", um die Änderungen nicht mehr "
+"vorzumerken)"
+
+msgid "#   (use \"git rm --cached <file>...\" to unstage)"
+msgstr ""
+"#   (benutze \"git rm --cached <Datei>\", um die Datei nicht mehr "
+"vorzumerken)"
+
+msgid "#   (use \"git add/rm <file>...\" as appropriate to mark resolution)"
+msgstr ""
+"#   (benutze \"git add/rm <Datei>...\", um den Konflikt als gelöst zu "
+"markieren)"
+
+msgid "# Changes to be committed:"
+msgstr "# Vorgemerkte Änderungen für den nächsten Commit:"
+
+msgid "# Changed but not updated:"
+msgstr "# Geändert, aber nicht für den nächsten Commit vorgemerkt:"
+
+msgid "#   (use \"git add <file>...\" to update what will be committed)"
+msgstr ""
+"#   (benutze \"git add <Datei>...\", um den aktuellen Stand vorzumerken)"
+
+msgid "#   (use \"git add/rm <file>...\" to update what will be committed)"
+msgstr ""
+"#   (benutze entsprechend \"git add/rm <Datei>...\", um den aktuellen Stand "
+"vorzumerken)"
+
+msgid ""
+"#   (use \"git checkout -- <file>...\" to discard changes in working "
+"directory)"
+msgstr ""
+"#   (benutze \"git checkout -- <Datei>...\", um Änderungen in der Datei zu "
+"verwerfen)"
+
+msgid "#   (commit or discard the untracked or modified content in submodules)"
+msgstr ""
+"#   (committe oder verwerfe die unberücksichtigten Dateien oder Änderungen "
+"in Submodules)"
+
+#, c-format
+msgid "# %s files:"
+msgstr "# %s Dateien:"
+
+#, c-format
+msgid "#   (use \"git %s <file>...\" to include in what will be committed)"
+msgstr ""
+"#   (benutze \"git %s <Datei>...\", um zu vorgemerkten Dateien hinzuzufügen)"
+
+msgid "bug"
+msgstr "Bug"
+
+msgid "both deleted:"
+msgstr "beide gelöscht:"
+
+msgid "added by us:"
+msgstr "hier hinzugefügt:"
+
+msgid "deleted by them:"
+msgstr "dort gelöscht:"
+
+msgid "added by them:"
+msgstr "dort hinzugefügt:"
+
+msgid "deleted by us:"
+msgstr "hier gelöscht:"
+
+msgid "both added:"
+msgstr "bei beiden hinzugefügt:"
+
+msgid "both modified:"
+msgstr "bei beiden geändert:"
+
+msgid "new commits, "
+msgstr "neue Commits, "
+
+msgid "modified content, "
+msgstr "veränderte Dateien, "
+
+msgid "untracked content, "
+msgstr "unberücksichtigte Dateien, "
+
+#, c-format
+msgid "new file:   %s"
+msgstr "neue Datei: %s"
+
+#, c-format
+msgid "copied:     %s -> %s"
+msgstr "kopiert:    %s -> %s"
+
+#, c-format
+msgid "deleted:    %s"
+msgstr "gelöscht:   %s"
+
+#, c-format
+msgid "modified:   %s"
+msgstr "geändert:   %s"
+
+#, c-format
+msgid "renamed:    %s -> %s"
+msgstr "umbenannt:  %s -> %s"
+
+#, c-format
+msgid "typechange: %s"
+msgstr "neuer Typ:  %s"
+
+#, c-format
+msgid "unknown:    %s"
+msgstr "unbekannt:  %s"
+
+#, c-format
+msgid "unmerged:   %s"
+msgstr "Konflikt:   %s"
+
+#, c-format
+msgid "bug: unhandled diff status %c"
+msgstr "Bug: nicht behandelter Diff-Status %c"
+
+msgid "On branch "
+msgstr "Aktueller Branch: "
+
+msgid "Not currently on any branch."
+msgstr "Aktuell ist kein Branch aktiv."
+
+msgid "# Initial commit"
+msgstr "# Erster Commit"
+
+msgid "Untracked"
+msgstr "Unberücksichtigte"
+
+msgid "add"
+msgstr "add"
+
+msgid "Ignored"
+msgstr "Ignorierte"
+
+msgid "add -f"
+msgstr "add -f"
+
+#, c-format
+msgid "# Untracked files not listed%s\n"
+msgstr "# Unberücksichtigte Dateien werden nicht aufgeführt%s\n"
+
+msgid " (use -u option to show untracked files)"
+msgstr " (benutze die Option -u, um sie anzuzeigen)"
+
+#, c-format
+msgid "# No changes\n"
+msgstr "# Keine Änderungen\n"
+
+#, c-format
+msgid "no changes added to commit%s\n"
+msgstr "keine Änderungen für den Commit vorgemerkt\n"
+
+msgid " (use \"git add\" and/or \"git commit -a\")"
+msgstr " (benutze \"git add\" und/oder \"git commit -a\")"
+
+#, c-format
+msgid "nothing added to commit but untracked files present%s\n"
+msgstr "keine Änderungen für den Commit vorgemerkt, aber unberücksichtigte Dateien vorhanden\n"
+
+msgid " (use \"git add\" to track)"
+msgstr " (benutze \"git add\", um sie zu berücksichtigen)"
+
+msgid " (create/copy files and use \"git add\" to track)"
+msgstr " (erstelle Dateien und benutze \"git add\", um sie zu berücksichtigen)"
+
+#, c-format
+msgid "nothing to commit%s\n"
+msgstr "nichts zu committen%s\n"
+
+msgid " (use -u to show untracked files)"
+msgstr " (benutze -u, um unberücksichtigte Datei anzuzeigen)"
+
+msgid " (working directory clean)"
+msgstr " (Arbeitsverzeichnis sauber)"
+
+msgid "HEAD (no branch)"
+msgstr "HEAD (kein Branch)"
+
+msgid "Initial commit on "
+msgstr "Erster Commit in "
+
+msgid "behind "
+msgstr "nur dort "
+
+msgid "ahead "
+msgstr "nur hier "
+
+msgid ", behind "
+msgstr "nur dort "
+
+#, c-format
+msgid "unexpected diff status %c"
+msgstr "unerwarteter Diff-Status %s"
+
+msgid "updating files failed"
+msgstr "Aktualisieren der Dateien ist fehlgeschlagen"
+
+#, c-format
+msgid "remove '%s'\n"
+msgstr "entferne '%s'\n"
+
+#, c-format
+msgid "Path '%s' is in submodule '%.*s'"
+msgstr "Pfad '%s' ist im Submodule '%.*s'"
+
+msgid "Unstaged changes after refreshing the index:"
+msgstr "Nicht vorgemerkte Änderungen nach Aktualisieren des Indexes:"
+
+#, c-format
+msgid "pathspec '%s' did not match any files"
+msgstr "Pfadangabe '%s' passt auf keine Dateien"
+
+#, c-format
+msgid "'%s' is beyond a symbolic link"
+msgstr "'%s' befindet sich jenseits eines symbolischen Links"
+
+msgid "Could not read the index"
+msgstr "Konnte den Index nicht auslesen"
+
+#, c-format
+msgid "Could not open '%s' for writing."
+msgstr "Konnte '%s' nicht zum Schreiben öffnen."
+
+msgid "Could not write patch"
+msgstr "Konnte keinen Patch erstellen"
+
+# Keine genaue Übersetzung, aber IMO im Kontext passend --jk@jk.gs
+#, c-format
+msgid "Could not stat '%s'"
+msgstr "Konnte '%s' nicht mehr finden"
+
+msgid "Empty patch. Aborted."
+msgstr "Leerer Patch. Breche ab."
+
+#, c-format
+msgid "Could not apply '%s'"
+msgstr "Konnte '%s' nicht anwenden"
+
+#, c-format
+msgid "Use -f if you really want to add them.\n"
+msgstr "Benutze -f, wenn du sie wirklich hinzufügen willst.\n"
+
+msgid "no files added"
+msgstr "keine Dateien hinzugefügt"
+
+msgid "adding files failed"
+msgstr "Das Hinzufügen der Dateien ist fehlgeschlagen"
+
+msgid "-A and -u are mutually incompatible"
+msgstr "-A und -u vertragen sich nicht"
+
+msgid "Option --ignore-missing can only be used together with --dry-run"
+msgstr "Option --ignore-missing kann nur zusammen mit --dry-run benutzt werden"
+
+#, c-format
+msgid "Nothing specified, nothing added.\n"
+msgstr "Nichts angegeben, nichts hinzugefügt.\n"
+
+#, c-format
+msgid "Maybe you wanted to say 'git add .'?\n"
+msgstr "Vielleicht wolltest du 'git add .' benutzen?\n"
+
+msgid "index file corrupt"
+msgstr "Indexdatei beschädigt"
+
+msgid "Unable to write new index file"
+msgstr "Konnte keine neue Indexdatei anlegen"
+
+#, c-format
+msgid ""
+"deleting branch '%s' that has been merged to\n"
+"         '%s', but it is not yet merged to HEAD."
+msgstr ""
+"lösche Branch '%', der nach '%s' gemerged wurde,\n"
+"         aber er ist noch nicht nach HEAD gemerged."
+
+#, c-format
+msgid ""
+"not deleting branch '%s' that is not yet merged to\n"
+"         '%s', even though it is merged to HEAD."
+msgstr ""
+"lösche Branch '%s' nicht, der noch nicht nach '%s' gemerged\n"
+"wurde, auch wenn er schon nach HEAD gemerged wurde."
+
+#. TRANSLATORS: This is "remote " in "remote branch '%s' not found"
+msgid "remote "
+msgstr "Remote-"
+
+msgid "cannot use -a with -d"
+msgstr "du kannst -a und -d nicht zusammen benutzen"
+
+msgid "Couldn't look up commit object for HEAD"
+msgstr "Konnte Commit-Objekt für HEAD nicht finden"
+
+#, c-format
+msgid "Cannot delete the branch '%s' which you are currently on."
+msgstr "Du kannst den aktiven Branch '%s' nicht löschen."
+
+#, c-format
+msgid "%sbranch '%s' not found."
+msgstr "%sBranch '%s' nicht gefunden."
+
+#, c-format
+msgid "Couldn't look up commit object for '%s'"
+msgstr "Konnte Commit-Objekt für '%s' nicht finden"
+
+#, c-format
+msgid ""
+"The branch '%s' is not fully merged.\n"
+"If you are sure you want to delete it, run 'git branch -D %s'."
+msgstr ""
+"Der Branch '%s' ist nicht komplett gemerged.\n"
+"Wenn du ihn trotzdem löschen willst, benutze 'git branch -D %s'."
+
+#, c-format
+msgid "Error deleting %sbranch '%s'"
+msgstr "Fehler beim Löschen von %sBranch '%s'"
+
+#, c-format
+msgid "Deleted %sbranch %s (was %s).\n"
+msgstr "%sBranch '%s' gelöscht (war %s).\n"
+
+msgid "Update of config-file failed"
+msgstr "Konfigurationsdatei konnte nicht aktualisiert werden"
+
+#, c-format
+msgid "branch '%s' does not point at a commit"
+msgstr "Branch '%s' zeigt nicht auf einen Commit"
+
+#, c-format
+msgid "behind %d] "
+msgstr "nur dort %d] "
+
+#, c-format
+msgid "ahead %d] "
+msgstr "nur hier %d] "
+
+#, c-format
+msgid "ahead %d, behind %d] "
+msgstr "nur hier %d, nur dort %d] "
+
+msgid "(no branch)"
+msgstr "(kein Branch)"
+
+msgid "some refs could not be read"
+msgstr "einige Einträge konnten nicht gelesen werden"
+
+msgid "cannot rename the current branch while not on any."
+msgstr ""
+"kann den aktuellen Branch nicht umbenennen, wenn es keinen aktuellen Branch "
+"gibt."
+
+#, c-format
+msgid "Invalid branch name: '%s'"
+msgstr "Ungültiger Name für Branch: '%s'"
+
+#, c-format
+msgid "A branch named '%s' already exists."
+msgstr "Einen Branch namens '%s' gibt es schon."
+
+msgid "Branch rename failed"
+msgstr "Umbenennung des Branches fehlgeschlagen"
+
+#, c-format
+msgid "Renamed a misnamed branch '%s' away"
+msgstr "Ungültigen Branchnamen '%s' durch Umbenennen in Ordnung gebracht"
+
+#, c-format
+msgid "Branch renamed to %s, but HEAD is not updated!"
+msgstr "Branch umbenannt nach %s, aber HEAD nicht aktualisiert!"
+
+msgid "Branch is renamed, but update of config-file failed"
+msgstr ""
+"Branch wurde umbenannt, aber die Konfigurationsdatei konnte nicht "
+"aktualisiert werden"
+
+#, c-format
+msgid "malformed object name %s"
+msgstr "ungültiger Objektname %s"
+
+msgid "Failed to resolve HEAD as a valid ref."
+msgstr "Konnte HEAD nicht als gültige Referenze auflösen."
+
+msgid "HEAD not found below refs/heads!"
+msgstr "HEAD zeigt nicht auf eine Referenz unter refs/heads!"
+
+msgid "-a and -r options to 'git branch' do not make sense with a branch name"
+msgstr ""
+"Die Optionen -a und -r für 'git branch' ergeben keinen Sinn zusammen mit "
+"einem Branchnamen"
+
+#, c-format
+msgid "path '%s' does not have our version"
+msgstr "Pfad '%s' hat keine Version 'von uns' im Index"
+
+#, c-format
+msgid "path '%s' does not have their version"
+msgstr "Pfad '%s' hat keine Version 'von denen' im Index"
+
+#, c-format
+msgid "path '%s' does not have all three versions"
+msgstr "Pfad '%s' hat keine drei verschiedenen Versionen im Index"
+
+#, c-format
+msgid "path '%s' does not have all 3 versions"
+msgstr "Pfad '%s' hat keine drei verschiedenen Versionen im Index"
+
+#, c-format
+msgid "path '%s': cannot merge"
+msgstr "Pfad '%s': kann nicht mergen"
+
+#, c-format
+msgid "Unable to add merge result for '%s'"
+msgstr "Kann Merge-Ergebnis für '%s' nicht hinzufügen"
+
+#, c-format
+msgid "make_cache_entry failed for path '%s'"
+msgstr "make_cache_entry fehlgeschlagen für Pfad '%s'"
+
+msgid "corrupt index file"
+msgstr "beschädigte Indexdatei"
+
+#, c-format
+msgid "path '%s' is unmerged"
+msgstr "Pfad '%s' enthält Konflikte"
+
+msgid "unable to write new index file"
+msgstr "kann keine neue Indexdatei anlegen"
+
+msgid "diff_setup_done failed"
+msgstr "diff_setup_done fehlgeschlagen"
+
+msgid "you need to resolve your current index first"
+msgstr "du musst zuerst Konflikte im aktuellen Index auflösen"
+
+#, c-format
+msgid "Can not do reflog for '%s'\n"
+msgstr "Kann Reflog für '%s' nicht einrichten\n"
+
+#, c-format
+msgid "Already on '%s'\n"
+msgstr "'%s' ist schon aktiv\n"
+
+#, c-format
+msgid "Switched to and reset branch '%s'\n"
+msgstr "Zu Branch '%s' gewechselt und Inhalt überschrieben\n"
+
+#, c-format
+msgid "Switched to a new branch '%s'\n"
+msgstr "Zu neuem Branch '%s' gewechselt\n"
+
+#, c-format
+msgid "Switched to branch '%s'\n"
+msgstr "Zu Branch '%s' gewechselt\n"
+
+msgid "HEAD is now at"
+msgstr "HEAD zeigt jetzt auf"
+
+msgid "You are on a branch yet to be born"
+msgstr "Der aktive Branch ist noch nicht angelegt"
+
+msgid "Previous HEAD position was"
+msgstr "HEAD zeigte vorher auf"
+
+msgid "-B cannot be used with -b"
+msgstr "-B kann nicht mit -b kombiniert werden"
+
+msgid "--patch is incompatible with all other options"
+msgstr "--patch verträgt sich nicht mit allen anderen Optionen"
+
+msgid "--track needs a branch name"
+msgstr "--track braucht einen Branchnamen"
+
+msgid "Missing branch name; try -b"
+msgstr "Fehlender Branchname; versuch's mit -b"
+
+msgid "--orphan and -b|-B are mutually exclusive"
+msgstr "--orphan und -b|-B vertragen sich nicht"
+
+msgid "--orphan cannot be used with -t"
+msgstr "--orphan kann nicht mit -t kombiniert werden"
+
+msgid "git checkout: -f and -m are incompatible"
+msgstr "git checkout: -f und -m sind nicht kompatibel"
+
+#. case (1)
+#, c-format
+msgid "invalid reference: %s"
+msgstr "ungültige Referenz: %s"
+
+#. case (1): want a tree
+#, c-format
+msgid "reference is not a tree: %s"
+msgstr "Referenz ist kein Tree: %s"
+
+msgid "invalid path specification"
+msgstr "ungültige Pfadangabe"
+
+#, c-format
+msgid ""
+"git checkout: updating paths is incompatible with switching branches.\n"
+"Did you intend to checkout '%s' which can not be resolved as commit?"
+msgstr ""
+"git checkout: Pfade aktualisieren und den Branch wechseln kann nicht\n"
+"kombiniert werden. Wolltest du '%s' (das wir nicht als Commit\n"
+"finden können) auschecken?"
+
+msgid "git checkout: updating paths is incompatible with switching branches."
+msgstr ""
+"git checkout: Pfade aktualisieren und den Branch wechseln kann nicht "
+"kombiniert werden."
+
+msgid ""
+"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
+"checking out of the index."
+msgstr ""
+"git checkout: --ours/--theirs, --force und --merge ergeben keinen Sinn, "
+"wenn\n"
+"Pfade aus dem Index ausgecheckt werden."
+
+#, c-format
+msgid "git checkout: we do not like '%s' as a branch name."
+msgstr "git checkout: '%s' ist kein gültiger Branchname."
+
+#, c-format
+msgid "git checkout: branch %s already exists"
+msgstr "git checkout: den Branch '%s' gibt es schon"
+
+msgid "Cannot switch branch to a non-commit."
+msgstr "Kann einen Branch nicht auf etwas anderes als einen Commit umbiegen."
+
+msgid "--ours/--theirs is incompatible with switching branches."
+msgstr "--ours/--theirs können nicht beim Branch-wechseln benutzt werden."
+
+#, c-format
+msgid "reference repository '%s' is not a local directory."
+msgstr "Referenz-Repository '%s' ist kein lokales Verzeichnis."
+
+#, c-format
+msgid "failed to open '%s'"
+msgstr "konnte '%s' nicht öffnen"
+
+#, c-format
+msgid "failed to create directory '%s'"
+msgstr "konnte Verzeichnis '%s' nicht anlegen"
+
+#, c-format
+msgid "failed to stat '%s'"
+msgstr "konnte '%s' nicht finden/prüfen"
+
+#, c-format
+msgid "%s exists and is not a directory"
+msgstr "%s existiert und ist kein Verzeichnis"
+
+#, c-format
+msgid "failed to stat %s\n"
+msgstr "konnte '%s' nicht finden/prüfen\n"
+
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "konnte '%s' nicht entfernen"
+
+#, c-format
+msgid "failed to create link '%s'"
+msgstr "konnte Link '%s' nicht anlegen"
+
+#, c-format
+msgid "failed to copy file to '%s'"
+msgstr "konnte Datei nicht nach '%s' kopieren"
+
+#, c-format
+msgid "done.\n"
+msgstr "fertig.\n"
+
+msgid "Too many arguments."
+msgstr "Zu viele Parameter."
+
+msgid "You must specify a repository to clone."
+msgstr "Du musst ein Quell-Repository angeben."
+
+#, c-format
+msgid "--bare and --origin %s options are incompatible."
+msgstr "--bare und --origin %s sind nicht kombinierbar."
+
+#, c-format
+msgid "destination path '%s' already exists and is not an empty directory."
+msgstr "Zielfpad '%s' existiert schon und ist kein leeres Verzeichnis."
+
+#, c-format
+msgid "working tree '%s' already exists."
+msgstr "Arbeitsverzeichnis '%s' existiert schon."
+
+#, c-format
+msgid "could not create leading directories of '%s'"
+msgstr "konnte übergeordnete Verzeichnisse für '%s' nicht anlegen"
+
+#, c-format
+msgid "could not create work tree dir '%s'."
+msgstr "konnte Verzeichnis '%s' im Arbeitsverzeichnis nicht anlegen."
+
+#, c-format
+msgid "Cloning into bare repository %s"
+msgstr "Klone in Lager-Repository %s"
+
+#, c-format
+msgid "Cloning into %s"
+msgstr "Klone nach %s"
+
+#, c-format
+msgid "Don't know how to clone %s"
+msgstr "Ich weiß nicht, wie man %s klonen kann"
+
+#, c-format
+msgid "Remote branch %s not found in upstream %s, using HEAD instead"
+msgstr ""
+"Remote-branch %s nicht in Ursprung %s gefunden, benutze stattdessen HEAD"
+
+msgid "You appear to have cloned an empty repository."
+msgstr "Du hast anscheinend ein leeres Repository geklont."
+
+msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
+msgstr ""
+"Ursprungs-HEAD verweist auf fehlende Referenz, kann keinen Checkout machen.\n"
+
+msgid ""
+"Your name and email address were configured automatically based\n"
+"on your username and hostname. Please check that they are accurate.\n"
+"You can suppress this message by setting them explicitly:\n"
+"\n"
+"    git config --global user.name \"Your Name\"\n"
+"    git config --global user.email you@example.com\n"
+"\n"
+"If the identity used for this commit is wrong, you can fix it with:\n"
+"\n"
+"    git commit --amend --author='Your Name <you@example.com>'\n"
+msgstr ""
+"Dein Name und deine E-Mail-Adresse wurden automatisch übernommen aus\n"
+"deinem Benutzernamen und Hostnamen. Bitte prüfe, ob sie korrekt sind.\n"
+"Du kannst diese Nachricht loswerden, indem du sie ausdrücklich einstellst:\n"
+"\n"
+"    git config --global user.name \"Dein Name\"\n"
+"    git config --global user.email du@example.com\n"
+"\n"
+"Falls die Angaben nicht stimmten, kannst du sie im angelegten Commit\n"
+"nachträglich korrigieren mit:\n"
+"\n"
+"    git commit --amend --author='Dein Name <du@example.com>'\n"
+
+msgid ""
+"You asked to amend the most recent commit, but doing so would make\n"
+"it empty. You can repeat your command with --allow-empty, or you can\n"
+"remove the commit entirely with \"git reset HEAD^\".\n"
+msgstr ""
+"Du willst den neuesten Commit nachbearbeiten, aber dadurch würde er leer\n"
+"werden. Du kannst deinen Befehl mit --allow-empty wiederholen oder den\n"
+"Commit mit \"git reset HEAD^\" komplett entfernen.\n"
+
+msgid "failed to unpack HEAD tree object"
+msgstr "konnte das HEAD-Tree-Objekt nicht entpacken"
+
+msgid "interactive add failed"
+msgstr "Interaktives 'add' fehlgeschlagen"
+
+msgid "unable to write new_index file"
+msgstr "konnte new_index-Datei nicht anlegen"
+
+msgid "cannot do a partial commit during a merge."
+msgstr ""
+"während eines Merges kannst du keinen Commit anlegen, der\n"
+"vorgemerkte Änderungen ignoriert."
+
+msgid "cannot read the index"
+msgstr "kann den Index nicht auslesen"
+
+msgid "unable to write temporary index file"
+msgstr "kann keine temporäre Indexdatei anlegen"
+
+msgid "could not parse HEAD commit"
+msgstr "konnte HEAD-Commit nicht analysieren"
+
+#, c-format
+msgid "invalid commit: %s"
+msgstr "ungültiger Commit: %s"
+
+msgid "malformed --author parameter"
+msgstr "ungültiger '--author'-Parameter"
+
+#, c-format
+msgid "(reading log message from standard input)\n"
+msgstr "(Commit-Kommentar wird von der Standardeingabe gelesen)\n"
+
+msgid "could not read log from standard input"
+msgstr "konnte Kommentar nicht von der Standardeingabe lesen"
+
+#, c-format
+msgid "could not read log file '%s'"
+msgstr "konnte Kommentardatei '%s' nicht lesen"
+
+msgid "commit has empty message"
+msgstr "der Commit-Kommentar ist leer"
+
+msgid "could not read MERGE_MSG"
+msgstr "konnte MERGE_MSG nicht lesen"
+
+msgid "could not read SQUASH_MSG"
+msgstr "konnte SQUASH_MSG nicht lesen"
+
+#, c-format
+msgid "could not read '%s'"
+msgstr "konnte '%s' nicht lesen"
+
+#, c-format
+msgid "could not open '%s'"
+msgstr "konnte '%s' nicht öffnen"
+
+msgid "could not write commit template"
+msgstr "konnte Kommentarvorlage nicht anlegen"
+
+#, c-format
+msgid ""
+"#\n"
+"# It looks like you may be committing a MERGE.\n"
+"# If this is not correct, please remove the file\n"
+"#\t%s\n"
+"# and try again.\n"
+"#\n"
+msgstr ""
+"#\n"
+"# Es sieht so aus, als ob du einen MERGE committen willst.\n"
+"# Falls das nicht stimmt, entferne bitte die Datei\n"
+"#\t%s\n"
+"# und versuch's noch einmal.\n"
+"#\n"
+
+#, c-format
+msgid ""
+"\n"
+"# Please enter the commit message for your changes."
+msgstr "\n# Bitte gib einen Commit-Kommentar für deine Änderungen an."
+
+#, c-format
+msgid ""
+" Lines starting\n"
+"# with '#' will be ignored, and an empty message aborts the commit.\n"
+msgstr ""
+" Zeilen, die mit '#'\n"
+"# anfangen, werden ignoriert, und ein leerer Kommentar bricht den Commit "
+"ab.\n"
+
+#, c-format
+msgid ""
+" Lines starting\n"
+"# with '#' will be kept; you may remove them yourself if you want to.\n"
+"# An empty message aborts the commit.\n"
+msgstr ""
+" Zeilen, die mit '#'\n"
+"# anfangen, werden beibehalten; du kannst sie selbst entfernen, wenn du\n"
+"willst. Ein leerer Kommentar bricht den Commit ab.\n"
+
+#, c-format
+msgid "%s# Author:    %s\n"
+msgstr "%s# Autor:     %s\n"
+
+#, c-format
+msgid "%s# Committer: %s\n"
+msgstr "%s# Committer: %s\n"
+
+msgid "Cannot read index"
+msgstr "Kann Index nicht auslesen"
+
+msgid "Error building trees"
+msgstr "Fehler beim Anlegen der Trees"
+
+#, c-format
+msgid "Please supply the message using either -m or -F option.\n"
+msgstr "Bitte gib den Kommentar mit der Option -m oder -F an.\n"
+
+#, c-format
+msgid "No existing author found with '%s'"
+msgstr "Kein bekannter Autor gefunden mit '%s'"
+
+#, c-format
+msgid "Invalid untracked files mode '%s'"
+msgstr "Ungültiger Modus für unberücksichtigte Dateien: '%s'"
+
+msgid "Using both --reset-author and --author does not make sense"
+msgstr "Es ist unsinnig, --reset-author und --author zusammen zu benutzen"
+
+msgid "You have nothing to amend."
+msgstr "Da ist nichts, was du nachbearbeiten könntest."
+
+msgid "You are in the middle of a merge -- cannot amend."
+msgstr "Du bist mitten in einem Merge; da kannst du nichts nachbearbeiten."
+
+msgid "Only one of -c/-C/-F can be used."
+msgstr "Nur eine der Optionen -c/-C/-F kann auf einmal benutzt werden."
+
+msgid "Option -m cannot be combined with -c/-C/-F."
+msgstr "Option -m kann nicht kombiniert werden mit -c/-C/-F."
+
+msgid "--reset-author can be used only with -C, -c or --amend."
+msgstr "--reset-author kann nur mit -C, -c oder --amend benutzt werden."
+
+#, c-format
+msgid "could not lookup commit %s"
+msgstr "konnte Commit %s nicht finden"
+
+#, c-format
+msgid "could not parse commit %s"
+msgstr "konnte Commit %s nicht analysieren"
+
+msgid "Only one of --include/--only/--all/--interactive can be used."
+msgstr ""
+"Nur eins von --include/--only/--all/--interactive kann auf einmal benutzt "
+"werden."
+
+msgid "No paths with --include/--only does not make sense."
+msgstr "Für --include/--only musst du Pfade angeben."
+
+msgid "Clever... amending the last one with dirty index."
+msgstr ""
+"Bearbeite letzten Commit nach, ohne Änderungen an Dateien zu übernehmen."
+
+msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
+msgstr ""
+"Pfade angegeben ohne ausdrückliches -i oder -o angegeben, ich nehme -o an..."
+
+#, c-format
+msgid "Invalid cleanup mode %s"
+msgstr "Ungültiger Aufräummodus (--cleanup) für den Commit-Kommentar"
+
+msgid "Paths with -a does not make sense."
+msgstr "Es ist unsinnig, mit -a Pfade anzugeben."
+
+msgid "Paths with --interactive does not make sense."
+msgstr "Es ist unsinnig, Pfade mit --interactive anzugeben."
+
+msgid "couldn't look up newly created commit"
+msgstr "konnte neu angelegten Commit nicht finden"
+
+msgid "could not parse newly created commit"
+msgstr "konnte neu angelegten Commit nicht analysieren"
+
+msgid "detached HEAD"
+msgstr "von HEAD abgetrennt"
+
+msgid " (root-commit)"
+msgstr " (erster Commit)"
+
+#, c-format
+msgid "could not open '%s' for reading"
+msgstr "konnte '%s' nicht zum Lesen öffnen"
+
+#, c-format
+msgid "Corrupt MERGE_HEAD file (%s)"
+msgstr "Beschädigte MERGE_HEAD-Datei (%s)"
+
+msgid "could not read MERGE_MODE"
+msgstr "konnte MERGE_MODE nicht auslesen"
+
+#, c-format
+msgid "could not read commit message: %s"
+msgstr "konnte Commit-Kommentar nicht lesen: %s"
+
+#, c-format
+msgid "Aborting commit due to empty commit message.\n"
+msgstr "Commit abgebrochen wegen leerem Kommentar.\n"
+
+msgid "failed to write commit object"
+msgstr "konnte Commit-Objekt nicht anlegen"
+
+msgid "cannot lock HEAD ref"
+msgstr "kann kein Lock für HEAD-Referenz anfordern"
+
+msgid "cannot update HEAD ref"
+msgstr "kann HEAD-Referenz nicht aktualisieren"
+
+msgid ""
+"Repository has been updated, but unable to write\n"
+"new_index file. Check that disk is not full or quota is\n"
+"not exceeded, and then \"git reset HEAD\" to recover."
+msgstr ""
+"Repository wurde aktualisiert, aber ich kann die new_index-Datei nicht\n"
+"anlegen. Stelle sicher, dass der Datenträger nicht voll ist und du deine\n"
+"Limits nicht überschreitest, und benutze \"git reset HEAD\" zum Reparieren."
+
+#, c-format
+msgid "'%s': not a regular file or symlink"
+msgstr "'%s': weder normale Datei noch Symlink"
+
+#, c-format
+msgid "invalid option: %s"
+msgstr "ungültige Option: %s"
+
+msgid "Not a git repository"
+msgstr "Kein git-Repository"
+
+msgid "No HEAD commit to compare with (yet)"
+msgstr "Es gibt (noch) keinen HEAD-Commit als Vergleich"
+
+#, c-format
+msgid "invalid object '%s' given."
+msgstr "ungültiges Objekt '%s' angegeben."
+
+#, c-format
+msgid "more than %d trees given: '%s'"
+msgstr "mehr als %d Trees angegeben: '%s'"
+
+#, c-format
+msgid "more than two blobs given: '%s'"
+msgstr "mehr als zwei Blobs angegeben: '%s'"
+
+#, c-format
+msgid "unhandled object '%s' given."
+msgstr "nicht unterstütztes Objekt '%s' angegeben."
+
+msgid "Couldn't find remote ref HEAD"
+msgstr "Konnte Remote-Referenz HEAD nicht finden"
+
+#, c-format
+msgid "object %s not found"
+msgstr "Objekt %s nicht gefunden"
+
+msgid "[up to date]"
+msgstr "[aktuell]"
+
+#.
+#. * If this is the head, and it's not okay to update
+#. * the head, and the old value of the head isn't empty...
+#.
+#, c-format
+msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
+msgstr "! %-*s %-*s -> %s  (kann nicht den aktuellen Branch überschreiben)"
+
+msgid "[rejected]"
+msgstr "[abgewiesen]"
+
+msgid "[tag update]"
+msgstr "[Tag-Update]"
+
+msgid "  (unable to update local ref)"
+msgstr "  (kann lokale Referenz nicht aktualisieren)"
+
+#, c-format
+msgid "cannot open %s: %s\n"
+msgstr "kann %s nicht öffnen: %s\n"
+
+msgid "branch"
+msgstr "Branch"
+
+msgid "tag"
+msgstr "Tag"
+
+msgid "remote branch"
+msgstr "Remote-Branch"
+
+#, c-format
+msgid "From %.*s\n"
+msgstr "Von %.*s\n"
+
+#, c-format
+msgid ""
+"some local refs could not be updated; try running\n"
+" 'git remote prune %s' to remove any old, conflicting branches"
+msgstr ""
+"ein paar lokale Referenzen konnten nicht aktualisiert werden; versuche,\n"
+"alte Branches, die evtl. im Weg sind, mit 'git remote prune %s' zu entfernen"
+
+msgid "could not run rev-list"
+msgstr "konnte rev-list nicht ausführen"
+
+#, c-format
+msgid "failed write to rev-list: %s"
+msgstr "konnte Daten nicht an rev-list übergeben: %s"
+
+#, c-format
+msgid "failed to close rev-list's stdin: %s"
+msgstr "konnte Standardeingabe von rev-list nicht schließen: %s"
+
+#, c-format
+msgid "   (%s will become dangling)\n"
+msgstr "   (%s wird auf nichts mehr zeigen)\n"
+
+#, c-format
+msgid "   (%s has become dangling)\n"
+msgstr "   (%s zeigt auf nichts mehr)\n"
+
+msgid "[deleted]"
+msgstr "[entfernt]"
+
+msgid "(none)"
+msgstr "(nichts)"
+
+#, c-format
+msgid "Refusing to fetch into current branch %s of non-bare repository"
+msgstr ""
+"Überschreiben des aktuellen Branches %s in Arbeits-Repository verweigert"
+
+#, c-format
+msgid "Don't know how to fetch from %s"
+msgstr "Ich weiß nicht, wie man von %s fetchen kann"
+
+#, c-format
+msgid "Option \"%s\" value \"%s\" is not valid for %s"
+msgstr "Option \"%s\" (Wert \"%s\") ist nicht gültig für %s"
+
+#, c-format
+msgid "Option \"%s\" is ignored for %s\n"
+msgstr "Option \"%s\" wird für %s ignoriert\n"
+
+#, c-format
+msgid "Fetching %s\n"
+msgstr "Hole %s\n"
+
+#, c-format
+msgid "Could not fetch %s"
+msgstr "Konnte %s nicht holen"
+
+msgid ""
+"No remote repository specified.  Please, specify either a URL or a\n"
+"remote name from which new revisions should be fetched."
+msgstr ""
+"Kein Ursprungs-Repository angebene. Bitte gib entweder eine URL oder einen\n"
+"Remote-Namen an, um die Quelle für neu geholte Revisionen festzulegen."
+
+msgid "You need to specify a tag name."
+msgstr "Du musst einen Tagnamen angeben."
+
+msgid "fetch --all does not take a repository argument"
+msgstr ""
+"fetch --all akzeptiert keine ausdrückliche Angabe eines Ursprungs-Repositorys"
+
+msgid "fetch --all does not make sense with refspecs"
+msgstr "fetch --all ergibt keinen Sinn mit Refspecs"
+
+#, c-format
+msgid "No such remote or remote group: %s"
+msgstr "Es gibt keinen Remote %s und auch keine entsprechende Remote-Grouppe"
+
+msgid "Fetching a group and specifying refspecs does not make sense"
+msgstr "Das Holen einer Gruppe unter Angabe von Refspecs ergibt keinen Sinn"
+
+#, c-format
+msgid "grep: failed to create thread: %s"
+msgstr "grep: konnte Thread nicht anlegen: %s"
+
+#, c-format
+msgid "'%s': unable to read %s"
+msgstr "'%s': kann %s nicht lesen"
+
+#, c-format
+msgid "'%s': %s"
+msgstr "'%s': %s"
+
+# FIXME: ich hab keine Ahnung, worum es hier geht
+#, c-format
+msgid "'%s': short read %s"
+msgstr "'%s': short read %s"
+
+#, c-format
+msgid "Failed to chdir: %s"
+msgstr "Konnte Verzeichnis nicht wechseln: %s"
+
+#, c-format
+msgid "unable to read tree (%s)"
+msgstr "kann Tree nicht lesen (%s)"
+
+#, c-format
+msgid "unable to grep from object of type %s"
+msgstr "kann Objekte des Typs %s nicht greppen"
+
+#, c-format
+msgid "switch `%c' expects a numerical value"
+msgstr "Option `%c' benötigt einen numerischen Wert"
+
+#, c-format
+msgid "cannot open '%s'"
+msgstr "kann '%s' nicht öffnen"
+
+msgid "no pattern given."
+msgstr "kein Suchmuster angegeben."
+
+msgid "cannot mix --fixed-strings and regexp"
+msgstr "kann --fixed-strings nicht mit regulärem Ausdruck kombinieren"
+
+#, c-format
+msgid "bad object %s"
+msgstr "ungültiges Objekt %s"
+
+msgid "--open-files-in-pager only works on the worktree"
+msgstr "--open-files-in-pager funktioniert nur im Arbeitsverzeichnis"
+
+msgid "--cached cannot be used with --no-index."
+msgstr "--cached kann nicht mit --no-index kombiniert werden."
+
+msgid "--no-index cannot be used with revs."
+msgstr "--no-index kann nicht mit der Angabe von Revisionen kombiniert werden."
+
+msgid "both --cached and trees are given."
+msgstr "Du hast sowohl --cached als auch Trees angegeben."
+
+#, c-format
+msgid "Could not make %s writable by group"
+msgstr "Konnte %s nicht für die Gruppe beschreibbar machen"
+
+#, c-format
+msgid "insanely long template name %s"
+msgstr "irrsinnig langer Vorlagen-Name %s"
+
+#, c-format
+msgid "cannot stat '%s'"
+msgstr "kann '%s' nicht finden/prüfen"
+
+#, c-format
+msgid "cannot stat template '%s'"
+msgstr "kann Vorlage '%s' nicht anlegen/prüfen"
+
+#, c-format
+msgid "cannot opendir '%s'"
+msgstr "kann Verzeichnis '%s' nicht auslesen"
+
+#, c-format
+msgid "cannot readlink '%s'"
+msgstr "kann Linkziel für '%s' nicht ermitteln"
+
+#, c-format
+msgid "insanely long symlink %s"
+msgstr "irrsinnig langer Symlink '%s'"
+
+#, c-format
+msgid "cannot symlink '%s' '%s'"
+msgstr "kann '%s' nicht von '%s' aus symlinken"
+
+#, c-format
+msgid "cannot copy '%s' to '%s'"
+msgstr "kann '%s' nicht nach '%s' kopieren"
+
+#, c-format
+msgid "ignoring template %s"
+msgstr "ignoriere Vorlage %s"
+
+#, c-format
+msgid "insanely long template path %s"
+msgstr "irrsinnig langer Vorlagen-Pfad %s"
+
+#, c-format
+msgid "templates not found %s"
+msgstr "Vorlagen nicht gefunden: %s"
+
+#, c-format
+msgid "not copying templates of a wrong format version %d from '%s'"
+msgstr "kopiere keine Vorlage in einer falschen Formatversion %d von '%s'"
+
+#, c-format
+msgid "insane git directory %s"
+msgstr "irrsinniges git-Verzeichnis %s"
+
+#. TRANSLATORS: The first '%s' is either "Reinitialized
+#. existing" or "Initialized empty", the second " shared" or
+#. "", and the last '%s%s' is the verbatim directory name.
+#, c-format
+msgid "%s%s Git repository in %s%s\n"
+msgstr "%s%s git-Repository in %s%s\n"
+
+msgid "Reinitialized existing"
+msgstr "Noch einmal neu initialisiert:"
+
+msgid "Initialized empty"
+msgstr "Neu angelegt:"
+
+msgid " shared"
+msgstr " gemeinsam benutztes"
+
+msgid "cannot tell cwd"
+msgstr "kann aktuelles Verzeichnis nicht ermitteln"
+
+#, c-format
+msgid "cannot mkdir %s"
+msgstr "cann Verzeichnis %s nicht anlegen"
+
+#, c-format
+msgid "cannot chdir to %s"
+msgstr "kann nicht in Verzeichnis %s wechseln"
+
+#, c-format
+msgid ""
+"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
+"dir=<directory>)"
+msgstr ""
+"%s (oder --work-tree=<Verzeichnis>) nicht erlaubt ohne %s (oder --git-"
+"dir=<Verzeichnis)"
+
+msgid "Cannot access current working directory"
+msgstr "Kann auf aktuelles Verzeichnis nicht zugreifen"
+
+#, c-format
+msgid "Cannot access work tree '%s'"
+msgstr "Kann auf Arbeitsverzeichnis '%s' nicht zugreifen"
+
+#, c-format
+msgid "invalid --decorate option: %s"
+msgstr "ungültige '--decorate'-Option: %s"
+
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "ungültiger Parameter: %s"
+
+#, c-format
+msgid "Final output: %d %s\n"
+msgstr "Endgültige Ausgabe: %d %s\n"
+
+msgid "revision walk setup failed"
+msgstr "Einrichtung der Revisionsverfolgung fehlgeschlagen"
+
+#, c-format
+msgid "Could not read object %s"
+msgstr "Konnte Objekt %s nicht lesen"
+
+#, c-format
+msgid "Unknown type: %d"
+msgstr "Unbekannter Typ: %d"
+
+msgid "format.headers without value"
+msgstr "format.headers ohne Wert"
+
+msgid "name of output directory is too long"
+msgstr "Name des Ausgabeverzeichnisses ist zu lang"
+
+#, c-format
+msgid "Cannot open patch file %s"
+msgstr "Kann Patch-Datei %s nicht öffnen"
+
+msgid "Need exactly one range."
+msgstr "Brauche genau eine Bereichsangabe."
+
+msgid "Not a range."
+msgstr "Keine gültige Bereichsangabe."
+
+msgid "Could not extract email from committer identity."
+msgstr "Konnte E-Mail-Adresse nicht aus der Committer-Angabe entnehmen."
+
+msgid ""
+"*** SUBJECT HERE ***\n"
+"\n"
+"*** BLURB HERE ***\n"
+msgstr ""
+"*** BETREFF HIER ***\n"
+"\n"
+"*** DETAILS HIER ***\n"
+
+msgid "Cover letter needs email format"
+msgstr "Begleittext muss im E-Mail-Format sein"
+
+#, c-format
+msgid "insane in-reply-to: %s"
+msgstr "irrsinniges in-reply-to: %s"
+
+msgid "Two output directories?"
+msgstr "Zwei Ausgabeverzeichnisse?"
+
+#, c-format
+msgid "bogus committer info %s"
+msgstr "merkwürdige Committer-Angabe %s"
+
+msgid "-n and -k are mutually exclusive."
+msgstr "-n und -k vertragen sich nicht."
+
+msgid "--subject-prefix and -k are mutually exclusive."
+msgstr "--subject-prefix und -k vertragen sich nicht."
+
+msgid "--name-only does not make sense"
+msgstr "--name-only ergibt keinen Sinn"
+
+msgid "--name-status does not make sense"
+msgstr "--name-status ergibt keinen Sinn"
+
+msgid "--check does not make sense"
+msgstr "--check ergibt keinen Sinn"
+
+msgid "standard output, or directory, which one?"
+msgstr "Standardausgabe oder Verzeichnis... entscheide dich!"
+
+#, c-format
+msgid "Could not create directory '%s'"
+msgstr "Konnte Verzeichnis '%s' nicht anlegen"
+
+msgid "Failed to create output files"
+msgstr "Konnte Ausgabedateien nicht anlegen"
+
+#, c-format
+msgid ""
+"Could not find a tracked remote branch, please specify <upstream> manually.\n"
+msgstr ""
+"Konnte keinen verfolgten Remote-Branch finden, bitte gib <Ursprung> selbst "
+"an.\n"
+
+#, c-format
+msgid "Unknown commit %s"
+msgstr "Unbekannter Commit %s"
+
+msgid "switch `m' requires a value"
+msgstr "Option `m' benötigt einen Wert"
+
+#, c-format
+msgid "Could not find merge strategy '%s'.\n"
+msgstr "Konnte Merge-Strategie '%s' nicht finden.\n"
+
+#, c-format
+msgid "Available strategies are:"
+msgstr "Verfügbare Strategien sind:"
+
+#, c-format
+msgid "Available custom strategies are:"
+msgstr "Verfügbare benutzerdefinierte Strategien sind:"
+
+msgid "could not run stash."
+msgstr "konnte 'stash' nicht ausführen."
+
+msgid "stash failed"
+msgstr "'stash' fehlgeschlagen"
+
+#, c-format
+msgid "not a valid object: %s"
+msgstr "kein gültiges Object: %s"
+
+msgid "read-tree failed"
+msgstr "read-tree fehlgeschlagen"
+
+msgid " (nothing to squash)"
+msgstr " (nichts zu kombinieren (--squash))"
+
+#, c-format
+msgid "Squash commit -- not updating HEAD\n"
+msgstr "Squash-Commit -- HEAD wird nicht aktualisiert\n"
+
+#, c-format
+msgid "Could not write to '%s'"
+msgstr "Konnte '%s' nicht beschreiben"
+
+msgid "Writing SQUASH_MSG"
+msgstr "Schreibe SQUASH_MSG"
+
+msgid "Finishing SQUASH_MSG"
+msgstr "Schließe SQUASH_MSG ab"
+
+#, c-format
+msgid "No merge message -- not updating HEAD\n"
+msgstr "Kein Merge-Kommentar -- HEAD wird nicht aktualisiert\n"
+
+#, c-format
+msgid "'%s' does not point to a commit"
+msgstr "'%s' zeigt nicht auf einen Commit"
+
+#, c-format
+msgid "Bad branch.%s.mergeoptions string: %s"
+msgstr "Ungültiger Wert für branch.%s.mergeoptions: %s"
+
+msgid "git write-tree failed to write a tree"
+msgstr "'git write-tree' konnte keinen Tree anlegen"
+
+msgid "failed to read the cache"
+msgstr "konnte den Index nicht auslesen"
+
+msgid "Unable to write index."
+msgstr "Konnte den Index nicht anlegen."
+
+msgid "Not handling anything other than two heads merge."
+msgstr "Ich erledige ausschließlich Merges mit zwei Quellen."
+
+#, c-format
+msgid "Unknown option for merge-recursive: -X%s"
+msgstr "Unbekannte Option für merge-recursive: -X%s"
+
+#, c-format
+msgid "unable to write %s"
+msgstr "konnte %s nicht beschreiben"
+
+#, c-format
+msgid "Wonderful.\n"
+msgstr "Wunderbar.\n"
+
+msgid "In-index merge"
+msgstr "Merge im Index"
+
+#, c-format
+msgid "Merge made by %s."
+msgstr "Merge produziert von '%s'."
+
+#, c-format
+msgid "Could not open '%s' for writing"
+msgstr "Konnte '%s' nicht zum Schreiben öffnen"
+
+#, c-format
+msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
+msgstr ""
+"Automatischer Merge fehlgeschlagen; behebe die Konflikte und committe das "
+"Ergebnis.\n"
+
+#, c-format
+msgid "'%s' is not a commit"
+msgstr "'%s' ist kein Commit"
+
+msgid ""
+"You have not concluded your merge (MERGE_HEAD exists).\n"
+"Please, commit your changes before you can merge."
+msgstr ""
+"Du hast deinen Merge nicht abgeschlossen (MERGE_HEAD existiert).\n"
+"Bitte committe deine Änderungen, bevor du einen weiteren Merge startest."
+
+msgid "You have not concluded your merge (MERGE_HEAD exists)."
+msgstr "Du hast deinen Merge nicht abgeschlossen (MERGE_HEAD existiert)."
+
+msgid "You cannot combine --squash with --no-ff."
+msgstr "Du kannst --squash nicht mit --no-ff kombinieren."
+
+msgid "You cannot combine --no-ff with --ff-only."
+msgstr "Du kannst --no-ff nicht mit --ff-only kombinieren (wirklich wahr)."
+
+# Die Originalumschreibung "exactly one commit" ist irreführend; es geht
+# natürlich um die gesamte History hinter diesem Commit
+msgid "Can merge only exactly one commit into empty head"
+msgstr "Kann nur exakt eine Historie in einen leeren Branch mergen"
+
+msgid "Squash commit into empty head not supported yet"
+msgstr "Squash-Commit in leeren Branch wird noch nicht unterstützt"
+
+msgid "Non-fast-forward commit does not make sense into an empty head"
+msgstr "Das Erzwingen eines Merge-Commits in einem leeren Branch ist unsinnig"
+
+#, c-format
+msgid "%s - not something we can merge"
+msgstr "%s ist etwas, das wir nicht mergen können"
+
+#.
+#. * If head can reach all the merge then we are up to date.
+#. * but first the most common case of merging one remote.
+#.
+msgid "Already up-to-date."
+msgstr "Bereits aktuell."
+
+#, c-format
+msgid "Updating %s..%s\n"
+msgstr "Aktualisiere %s..%s\n"
+
+msgid "Fast-forward"
+msgstr "Update ohne Merge"
+
+msgid " (no commit created; -m option ignored)"
+msgstr " (kein Commit angelegt; -m ignoriert)"
+
+#, c-format
+msgid "Trying really trivial in-index merge...\n"
+msgstr "Probiere simplen Merge im Index...\n"
+
+#, c-format
+msgid "Nope.\n"
+msgstr "Nö.\n"
+
+msgid "Already up-to-date. Yeeah!"
+msgstr "Bereits aktuell. Juchu!"
+
+msgid "Not possible to fast-forward, aborting."
+msgstr "Kann nicht ohne Merge-Commit aktualisieren, breche ab."
+
+#, c-format
+msgid "Rewinding the tree to pristine...\n"
+msgstr "Räume auf...\n"
+
+#, c-format
+msgid "Trying merge strategy %s...\n"
+msgstr "Probiere Merge-Strategie %s...\n"
+
+#, c-format
+msgid "No merge strategy handled the merge.\n"
+msgstr "Keine Merge-Strategie hat den Merge erledigt.\n"
+
+#, c-format
+msgid "Merge with strategy %s failed.\n"
+msgstr "Merge mit Strategie '%s' fehlgeschlagen.\n"
+
+#, c-format
+msgid "Using the %s to prepare resolving by hand.\n"
+msgstr "Benutze Strategie '%s', um auf manuelle Auflösung vorzubereiten.\n"
+
+#, c-format
+msgid "Automatic merge went well; stopped before committing as requested\n"
+msgstr ""
+"Automatischer Merge hat gut funktioniert; warte wie gewünscht vor dem "
+"Commit\n"
+
+#, c-format
+msgid "Checking rename of '%s' to '%s'\n"
+msgstr "Prüfe Umbenennen von '%s' nach '%s'\n"
+
+msgid "bad source"
+msgstr "ungültige Quelle"
+
+msgid "can not move directory into itself"
+msgstr "kann ein Verzeichnis nicht in sich selbst verschieben"
+
+msgid "cannot move directory over file"
+msgstr "kann Verzeichnis nicht an die Stelle einer Datei verschieben"
+
+#, c-format
+msgid "Huh? %.*s is in index?"
+msgstr "Hä? %.*s ist im Index?"
+
+msgid "source directory is empty"
+msgstr "Quellverzeichnis ist leer"
+
+msgid "not under version control"
+msgstr "nicht unter Versionskontrolle"
+
+msgid "destination exists"
+msgstr "Ziel existiert schon"
+
+#, c-format
+msgid "%s; will overwrite!"
+msgstr "%s; werde überschreiben!"
+
+msgid "Cannot overwrite"
+msgstr "Kann nicht überschreiben"
+
+msgid "multiple sources for the same target"
+msgstr "mehrere Quellen für das gleiche Ziel"
+
+#, c-format
+msgid "%s, source=%s, destination=%s"
+msgstr "%s, Quelle=%s, Ziel=%s"
+
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Benenne %s um nach %s\n"
+
+#, c-format
+msgid "renaming '%s' failed"
+msgstr "Umbenennen von '%s' fehlgeschlagen"
+
+msgid "tag shorthand without <tag>"
+msgstr "'tag'-Kurzschreibweise ohne <Tag>"
+
+msgid "--delete only accepts plain target ref names"
+msgstr "--delete akzeptiert nur einfache Referenzen, keine Refspecs"
+
+msgid "You are not currently on a branch."
+msgstr "Es ist momentan kein Branch aktiv."
+
+#, c-format
+msgid "The current branch %s is not tracking anything."
+msgstr "Der aktuelle Branch %s verfolgt keinen Branch."
+
+#, c-format
+msgid "The current branch %s is tracking multiple branches, refusing to push."
+msgstr "Der aktuelle Branch %s verfolgt mehrere Branches, 'push' verweigert."
+
+msgid ""
+"You didn't specify any refspecs to push, and push.default is \"nothing\"."
+msgstr ""
+"Du hast keine Refspecs angegeben und push.default ist auf 'nothing' gesetzt."
+
+#, c-format
+msgid "Pushing to %s\n"
+msgstr "Übertrag zu %s\n"
+
+#, c-format
+msgid "failed to push some refs to '%s'"
+msgstr "Übertragen einiger Referenzen zu '%s' fehlgeschlagen"
+
+# TODO: Verweis auf Manpage aktualisieren, sobald wir die auch übersetzen
+#, c-format
+msgid ""
+"To prevent you from losing history, non-fast-forward updates were rejected\n"
+"Merge the remote changes (e.g. 'git pull') before pushing again.  See the\n"
+"'Note about fast-forwards' section of 'git push --help' for details.\n"
+msgstr ""
+"Um zu verhindern, dass du Daten verlierst, wurden Updates, die einen\n"
+"Merge-Commit erfordern, zurückgewiesen. Merge die Änderungen im\n"
+"im Ursprungs-Repository (z.B. 'git pull'), bevor du es nochmal versuchst.\n"
+"Siehe den Abschnitt 'Note about fast-forwards' von 'git push --help' für\n"
+"mehr Informationen.\n"
+
+#, c-format
+msgid "bad repository '%s'"
+msgstr "ungültiges Repository '%s'"
+
+msgid "No destination configured to push to."
+msgstr "Kein Ziel für 'push' festgelegt."
+
+msgid "--all and --tags are incompatible"
+msgstr "--all und --tags vertragen sich nicht"
+
+msgid "--all can't be combined with refspecs"
+msgstr "--all kann nicht mit Refspecs kombiniert werden"
+
+msgid "--mirror and --tags are incompatible"
+msgstr "--mirror und --tags vertragen sich nicht"
+
+msgid "--mirror can't be combined with refspecs"
+msgstr "--mirror kann nicht mit Refspecs kombiniert werden"
+
+msgid "--all and --mirror are incompatible"
+msgstr "--all und --mirror vertragen sich nicht"
+
+msgid "--delete is incompatible with --all, --mirror and --tags"
+msgstr "--delete verträgt sich nicht mit --all, --mirror und --tags"
+
+msgid "--delete doesn't make sense without any refs"
+msgstr "--delete ergibt keinen Sinn ohne Angabe von Referenzen"
+
+# Originalwerte für diese Strings belassen wg. Übereinstimmung mit
+# Optionsnamen
+msgid "mixed"
+msgstr ""
+
+msgid "soft"
+msgstr ""
+
+msgid "hard"
+msgstr ""
+
+msgid "merge"
+msgstr ""
+
+msgid "keep"
+msgstr ""
+
+msgid "You do not have a valid HEAD."
+msgstr "Du hast kein gültiges HEAD."
+
+msgid "Failed to find tree of HEAD."
+msgstr "Konnte Tree von HEAD nicht finden."
+
+#, c-format
+msgid "Failed to find tree of %s."
+msgstr "Konnte Tree von %s nicht finden."
+
+msgid "Could not write new index file."
+msgstr "Konnte neue Indexdatei nicht anlegen."
+
+#, c-format
+msgid "HEAD is now at %s"
+msgstr "HEAD ist jetzt bei %s"
+
+msgid "Could not read index"
+msgstr "Konnte den Index nicht auslesen"
+
+msgid "Unstaged changes after reset:"
+msgstr "Nicht vorgemerkte Änderungen nach Reset:"
+
+#, c-format
+msgid "Reflog action message too long: %.*s..."
+msgstr "Aktionsbeschreibung im Reflog zu lang: %.*s..."
+
+#, c-format
+msgid "Cannot do a %s reset in the middle of a merge."
+msgstr "Kann keinen '%s'-Reset mitten in einem Merge machen."
+
+#, c-format
+msgid "Failed to resolve '%s' as a valid ref."
+msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
+
+#, c-format
+msgid "Could not parse object '%s'."
+msgstr "Konnte Objekt '%s' nicht einlesen."
+
+msgid "--patch is incompatible with --{hard,mixed,soft}"
+msgstr "--patch verträgt sich nicht mit --{hard,mixed,soft}"
+
+msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
+msgstr ""
+"--mixed mit Pfaden ist veraltet; benutze stattdessen 'git reset -- <Pfade>'."
+
+#, c-format
+msgid "Cannot do %s reset with paths."
+msgstr "Kann keinen '%s'-Reset mit Pfadangaben durchführen."
+
+#, c-format
+msgid "%s reset is not allowed in a bare repository"
+msgstr "'%s'-Reset ist in einem Lager-Repository nicht erlaubt"
+
+#, c-format
+msgid "Could not reset index file to revision '%s'."
+msgstr "Konnte Indexdatei nicht auf Revision '%s' zurücksetzen."
+
+#, c-format
+msgid ""
+"'%s' has staged content different from both the file and the HEAD\n"
+"(use -f to force removal)"
+msgstr ""
+"'%s' hat vorgemerkte Änderungen, die sich sowohl von der Datei\n"
+"als auch vom letzten Commit unterscheiden (-f, um trotzdem zu löschen)"
+
+#, c-format
+msgid ""
+"'%s' has changes staged in the index\n"
+"(use --cached to keep the file, or -f to force removal)"
+msgstr ""
+"'%s' hat Änderungen im Index vorgemerkt\n"
+"(--cached, um die Datei zu behalten, oder -f, um trotzdem zu löschen)"
+
+#, c-format
+msgid ""
+"'%s' has local modifications\n"
+"(use --cached to keep the file, or -f to force removal)"
+msgstr ""
+"'%s' hat Änderungen im Arbeitsverzeichnis\n"
+"(--cached, um die Datei zu behalten, oder -f, um trotzdem zu löschen)"
+
+#, c-format
+msgid "not removing '%s' recursively without -r"
+msgstr "entferne Verzeichnis '%s' nicht rekursiv ohne -r"
+
+#, c-format
+msgid "git rm: unable to remove %s"
+msgstr "git rm: kann %s nicht entfernen"
+
+#, c-format
+msgid "tag name too long: %.*s..."
+msgstr "Tagname zu lang: %.*s..."
+
+#, c-format
+msgid "tag '%s' not found."
+msgstr "Tag '%s' nicht gefunden."
+
+#, c-format
+msgid "Deleted tag '%s' (was %s)\n"
+msgstr "Tag '%s' gelöscht (war %s)\n"
+
+#, c-format
+msgid "could not verify the tag '%s'"
+msgstr "konnte den Tag '%s' nicht überprüfen"
+
+msgid "committer info too long."
+msgstr "Committer-Angabe zu lang."
+
+msgid "could not run gpg."
+msgstr "konnte gpg nicht ausführen."
+
+msgid "gpg did not accept the tag data"
+msgstr "gpg hat die Tag-Daten nicht angenommen"
+
+msgid "gpg failed to sign the tag"
+msgstr "gpg konnte den Tag nicht signieren"
+
+msgid ""
+"\n"
+"#\n"
+"# Write a tag message\n"
+"#\n"
+msgstr ""
+"\n"
+"#\n"
+"# Schreibe einen Tag-Kommentar\n"
+"#\n"
+
+#, c-format
+msgid "signing key value too long (%.10s...)"
+msgstr "Wert für Signatur-Key zu lang (%.10s...)"
+
+msgid "unable to sign the tag"
+msgstr "kann den Tag nicht signieren"
+
+msgid "unable to write tag file"
+msgstr "kann die Tag-Datei nicht anlegen"
+
+msgid "bad object type."
+msgstr "ungültiger Objekttyp."
+
+msgid "tag header too big."
+msgstr "Tag-Header zu groß."
+
+#, c-format
+msgid "could not create file '%s'"
+msgstr "konnte Datei '%s' nicht anlegen"
+
+msgid "no tag message?"
+msgstr "kein Tag-Kommentar?"
+
+#, c-format
+msgid "The tag message has been left in %s\n"
+msgstr "Der Tag-Kommentar wurde nach %s gesichert\n"
+
+msgid "-n option is only allowed with -l."
+msgstr "-n ist nur in Kombination mit -l erlaubt."
+
+msgid "--contains option is only allowed with -l."
+msgstr "--contains ist nur in Kombination mit -l erlaubt."
+
+msgid "only one -F or -m option is allowed."
+msgstr "entweder -F oder -m -- entscheide dich."
+
+#, c-format
+msgid "cannot read '%s'"
+msgstr "kann '%s' nicht auslesen"
+
+#, c-format
+msgid "could not open or read '%s'"
+msgstr "kann '%s' nicht öffnen oder auslesen"
+
+msgid "too many params"
+msgstr "zu viele Parameter"
+
+#, c-format
+msgid "'%s' is not a valid tag name."
+msgstr "'%s' ist kein gültiger Tagname."
+
+#, c-format
+msgid "tag '%s' already exists"
+msgstr "Tag '%s' existiert schon"
+
+#, c-format
+msgid "%s: cannot lock the ref"
+msgstr "%s: kann kein Lock für die Referenz anfordern"
+
+#, c-format
+msgid "%s: cannot update the ref"
+msgstr "%s: kann die Referenz nicht aktualisieren"
+
+#, c-format
+msgid "Updated tag '%s' (was %s)\n"
+msgstr "Tag '%s' aktualisiert (war %s)\n"
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+msgid "See 'git help COMMAND' for more information on a specific command."
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+msgid "TEST: A C test string"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, c-format
+msgid "TEST: A C test string %s"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, c-format
+msgid "TEST: Hello World!"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, c-format
+msgid "TEST: Old English Runes"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, c-format
+msgid "TEST: ‘single’ and “double” quotes"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+msgid "TEST: A Shell test string"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, sh-format
+msgid "TEST: A Shell test $variable"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+msgid "TEST: A Perl test string"
+msgstr ""
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
+#, perl-format
+msgid "TEST: A Perl test variable %s"
+msgstr ""
-- 
1.7.2.2.336.g704fc

^ permalink raw reply related	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2010-09-17  7:23 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-15  7:33 [PATCH 1/2] po/de.po: add German translation Christian Stimming
2010-09-15  9:47 ` Thomas Rast
2010-09-15 11:51   ` Michael J Gruber
2010-09-15 11:10 ` Michael J Gruber
2010-09-15 16:54   ` Andreas Schwab
2010-09-15 11:44 ` Thomas Hochstein
2010-09-16 10:57 ` Jan Krüger
2010-09-16 11:09   ` Ævar Arnfjörð Bjarmason
2010-09-16 11:29     ` Jens Lehmann
2010-09-16 11:51       ` Ævar Arnfjörð Bjarmason
2010-09-16 14:52       ` Junio C Hamano
2010-09-16 15:05         ` Jens Lehmann
2010-09-16 11:51   ` Michael J Gruber
2010-09-16 16:48     ` Jan Krüger
2010-09-17  7:23       ` Michael J Gruber
  -- strict thread matches above, loose matches on Subject: below --
2010-09-03 18:22 [GIT PULL] New ab/i18n series and builtin fixes Ævar Arnfjörð Bjarmason
2010-09-04  0:49 ` [PATCH 1/2] po/de.po: add German translation avarab
2010-09-06 15:41   ` Thomas Rast
2010-09-06 16:09     ` Jan Krüger
2010-09-06 17:06       ` Ævar Arnfjörð Bjarmason
2010-09-06 16:24     ` Jens Lehmann
2010-09-06 19:58       ` Tilo Schwarz
2010-09-06 17:15     ` Ævar Arnfjörð Bjarmason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.