Hi Ralf

I just realized that, unfortunately, your original message is far beyond
the message size limit on vger (100000 bytes according to [1]).  So
nobody outside of the Cc list has seen it...

Note for other readers: the glossary (also mentioned a few times below)
is at


We're using it to keep things consistent.

Ralf Thielow <ralf.thie...@gmail.com> writes:

>  msgid "git archive --list"
> -msgstr "git archive: NACK %s"
> +msgstr "git archive --list"

I suppose a literal command invocation shouldn't be translatable in the
first place.

>  #: archive.c:322
>  msgid "archive format"
> -msgstr ""
> +msgstr "Archivformat"

This is a bit tricky because you call a repository "Projektarchiv".  The
simplest solution I can come up with is replacing all instances of
"archive" in the messages of git-archive with "Ausgabe" (output).  Still
leaves the confusion between git-archive's name and the Projektarchiv,

>  #: archive.c:324
>  msgid "prepend prefix to each pathname in the archive"
> -msgstr ""
> +msgstr "stellt einen Prefix vor jeden Pfadnamen in dem Archiv"


>  #: archive.c:346 builtin/archive.c:95 builtin/notes.c:616
> -#, fuzzy
>  msgid "command"
> -msgstr "führe $command aus"
> +msgstr "Kommando"
>  #: archive.c:347 builtin/archive.c:96
>  msgid "path to the remote git-upload-archive command"
> -msgstr ""
> +msgstr "Pfad zum externen \"git-upload-archive\" Kommando"

In both of these it may be less strange to call it "Programm", since
you're supposed to give it the path to the git-upload-archive program.

>  #: wt-status.c:1040
> -#, fuzzy, c-format
> +#, c-format
>  msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
> -msgstr " (Erstelle/Kopiere Dateien und benutze \"git add\" zum Beobachten)"
> +msgstr ""
> +"nichts zum Eintragen (Erstelle/Kopiere Dateien und benutze \"git add\" zum "
> +"Beobachten)\n"
>  #: wt-status.c:1043 wt-status.c:1048
> -#, fuzzy, c-format
> +#, c-format
>  msgid "nothing to commit\n"
> -msgstr "nichts zum Eintragen%s\n"
> +msgstr "nichts zum Eintragen\n"

In these and others, "nichts einzutragen" would sound nicer.

>  #: builtin/add.c:322
> -#, fuzzy
>  msgid "interactive picking"
> -msgstr "interaktives Hinzufügen fehlgeschlagen"
> +msgstr "interaktives Pflücken"

"interaktives Auswählen" would let us reserve "pflücken" for
cherry-picking (and similar operations, e.g. in the TODO sheet of rebase

>  #: builtin/add.c:327
>  msgid "record only the fact that the path will be added later"
> -msgstr ""
> +msgstr "speichert nur den Fakt, dass der Pfad später hinzugefügt wird"

Fakt? :-)

How about:

  speichert nur, dass der Pfad später hinzugefügt werden soll

>  #: builtin/add.c:331
>  msgid "check if - even missing - files are ignored in dry run"
> -msgstr ""
> +msgstr "prüft ob - auch fehlende - Dateien im Trockenlauf ignoriert werden"

You called "dry run" a "Probelauf" earlier, which I liked better.

>  #: builtin/blame.c:2316
>  msgid "Show blame entries as we find them, incrementally"
> -msgstr ""
> +msgstr "Zeigt \"blame\"-Einträge wie gefunden, schrittweise"

Zeigt "blame"-Einträge schrittweise, während wir sie generieren

(or something along those lines, but "wie gefunden" makes no sense)

>  #: builtin/blame.c:2317
>  msgid "Show blank SHA-1 for boundary commits (Default: off)"
> -msgstr ""
> +msgstr "Zeigt leere SHA-1 für Grenzversionen (Standard: off)"
>  #: builtin/blame.c:2318
>  msgid "Do not treat root commits as boundaries (Default: off)"
> -msgstr ""
> +msgstr "Behandelt Ursprungsversionen nicht als Grenzen (Standard: off)"

"Standard: aus"?  It's not like it takes an argument "on" or "off".
This is in a lot of the messages of git-blame.

I added {root,boundary} commit to the glossary according to these.

>  #: builtin/blame.c:2331
>  msgid "Spend extra cycles to find better match"
> -msgstr ""
> +msgstr "führt zusätzliche Durchläufe für bessere Übereinstimmungen durch"

Cycles here does not mean "Durchläufe" (cycles through a loop) but CPU
cycles.  How about

  arbeite länger, um bessere Übereinstimmungen zu finden

>  #: builtin/branch.c:724
> -#, fuzzy
>  msgid "Generic options"
> -msgstr "Ungültige Option: %s"
> +msgstr "Generische Optionen"

Allgemeine Optionen?

>  #: builtin/branch.c:726
>  msgid "show hash and subject, give twice for upstream branch"
>  msgstr ""
> +"Zeigt Hash und Betreff, doppelte Angabe für Anzeige des externen "
> +"Übernahmezweiges"

I don't think I would understand the "doppelte Angabe".  How about

  Zeigt Hash und Betreff; -vv: zusätzlich externen Übernahmezweig

>  #: builtin/branch.c:727
>  msgid "suppress informational messages"
> -msgstr ""
> +msgstr "unterdrückt informatorische Meldungen"

I don't think that's a word.  "unterdrückt Informationsmeldungen"?

>  #: builtin/branch.c:762
> -#, fuzzy
>  msgid "force creation (when already exists)"
> -msgstr "externes Projektarchiv %s existiert bereits"
> +msgstr "erzwingt Erzeugung (wenn dieser bereits existiert)"

Erzeuge auch, wenn der Zweig bereits existiert?

Not a big difference, but avoids "Erzeugung".

>  #: builtin/branch.c:876
>  #, c-format
>  msgid "Branch '%s' has no upstream information"
> -msgstr ""
> +msgstr "Zweig '%s' hat keine Informationen zu einem externen Übernahmezweig"

The information bit sounds strange to me.

Zweig '%s' hat keinen externen Übernahmezweig gesetzt?

>  #: builtin/cat-file.c:273
>  msgid "for blob objects, run textconv on object's content"
> -msgstr ""
> +msgstr "für Blob-Objekte, führt \"textconv\" auf den Objektinhalt aus"

führt textconv auf dem Inhalt von Blob-Objekten aus?

I guess there's a deeper question hiding here: do we want to translate
textconv (the concept, not the config)?

>  #: builtin/checkout-index.c:204
>  msgid "when creating files, prepend <string>"
> -msgstr ""
> +msgstr "wenn Dateien erzeugt werden, stelle <Zeichenkette> voran"

This is a rather cryptic message.  Does it mean prepending something to
the content?  The original should probably say "... to their name" to
clarify, and then the German one would end in "vor ihren Namen" or

>  #: builtin/checkout-index.c:207
>  msgid "copy out the files from named stage"
> -msgstr ""
> +msgstr "kopiert Dateien von einer benannten Bereitstellung"

"Stage" in this context means the 0/1/2/3 thing where unmerged entries
differ from normal entries.  Thank the Git gods for overloading yet
another term heavily.

We don't have a translation for "stage" in the glossary.  The best I can
come up with is "Stufe", but if you can find something that evokes the
mental image of the "sides" of a merge, that would be better IMO.

> @@ -2709,19 +2702,19 @@ msgstr "Konnte Ergebnis der Zusammenführung von '%s' 
> nicht hinzufügen."
>  #: builtin/checkout.c:236 builtin/checkout.c:239 builtin/checkout.c:242
>  #: builtin/checkout.c:245
> -#, fuzzy, c-format
> +#, c-format
>  msgid "'%s' cannot be used with updating paths"
> -msgstr "%s: %s kann nicht mit %s benutzt werden"
> +msgstr "'%s' kann nicht mit der Aktualisierung von Pfaden benutzt werden"

Another one that is odd even in the original.  Does it update paths?
No, it updates the content of files matching the listed pathspecs.
"cannot be used with paths" would be nicer.

>  #: builtin/checkout.c:1013
>  msgid "create/reset and checkout a branch"
> -msgstr ""
> +msgstr "erzeugt/setzt neu und checkt einen Zweig aus"

I added 'reset = neu setzen' to the glossary.  I don't particularly like
it, but everything I can think about relates to overwriting and sounds
like an operation on _files_.

>  #: builtin/checkout.c:1014
> -#, fuzzy
>  msgid "create reflog for new branch"
> -msgstr "Zeigt an, erstellt oder entfernt Zweige"
> +msgstr "erzeugt Referenzprotokoll für einen neuen Zweig"

Für _den_ neuen Zweig?

>  #: builtin/checkout.c:1015
>  msgid "detach the HEAD at named commit"
> -msgstr ""
> +msgstr "löst die Zweigspitze (HEAD) zu benannter Version"

I like the angle of "lösen" (perhaps loslösen?) on detaching HEAD, but
it just doesn't fit with "zu" in my ears.

Once you settle on something, note that 'detach' is not in the glossary

>  #: builtin/checkout.c:1016
> -#, fuzzy
>  msgid "set upstream info for new branch"
> -msgstr "Kein entferntes Projektarchiv für Zweig '%s' konfiguriert."
> +msgstr "setzt Informationen zum externen Übernahmezweig für einen neuen 
> Zweig"

Für _den_ neuen Zweig (again).

>  #: builtin/checkout.c:1019
>  msgid "checkout our version for unmerged files"
> -msgstr ""
> +msgstr "checkt unsere Version für nicht zusammengeführte Dateien aus"
>  #: builtin/checkout.c:1021
>  msgid "checkout their version for unmerged files"
> -msgstr ""
> +msgstr "checkt ihre Version für nicht zusammengeführte Dateien aus"

You're translating 'our/their version' -> unsere/ihre Version.  Taken
just by itself I think it would be okay or at worst mildly confusing
(how about "unsere/ihre Seite [der Zusammenführung]"?).

However, in the wider context it is actually dangerous, because you are
overloading the (German) Version here.  It already means 'commit'!

>  #: builtin/checkout.c:1024
>  msgid "perform a 3-way merge with the new branch"
> -msgstr ""
> +msgstr "führt eine 3-Wege-Zusammenführung mit einem neuen Zweig aus"

Mit _dem_ neuen Zweig.  This one actually has the definite article in
the original, too.

However, speaking of the original, "with the target branch" would be
clearer.  The merge operation only makes sense if the branch already
exists, so it's not "new branch" in the sense of the previous group of
options, which apply to the _to-be-created_ branch.

>  #: builtin/checkout.c:1030
>  msgid "second guess 'git checkout no-such-branch'"
> -msgstr ""
> +msgstr "zweite Vermutung 'git checkout no-such-branch'"

Umm, no?  Second-guessing means doubting or criticising an earlier
decision, and dict.leo.org tells me that it can also be used in the
sense of predicting an action.  Either way, it has nothing to do with a

That being said, it's a help string for an undocumented option that only
makes sense as --no-guess (i.e. it's on by default).  You may as well
just leave it untranslated.

>  #: builtin/clean.c:51
>  msgid "do not print names of files removed"
> -msgstr ""
> +msgstr "gibt keine Namen von entfernten Dateien aus"
>  #: builtin/clean.c:55
> -#, fuzzy
>  msgid "remove whole directories"
> -msgstr "Zwei Ausgabeverzeichnisse?"
> +msgstr "entfernt ganze Verzeichnisse"
>  #: builtin/clean.c:58
>  msgid "remove ignored files, too"
> -msgstr ""
> +msgstr "entfernt auch ignorierte Dateien"
>  #: builtin/clean.c:60
>  msgid "remove only ignored files"
> -msgstr ""
> +msgstr "entfernt nur ignorierte Dateien"

entfernt -> gelöscht avoids the ambiguity with the whole remote
branch/repo business.

>  #: builtin/clone.c:76
>  msgid "don't use local hardlinks, always copy"
> -msgstr ""
> +msgstr "benutzt lokal keine harten Verknüpfungen, immer Kopien"

Wikipedia's "in other languages" points from en:hardlink to de:"harter
Link".  Not that I like this (I would have guessed it's "hardlink"
literally), but maybe we should stick to it since it's not Git's own

>  #: builtin/clone.c:78
> -#, fuzzy
>  msgid "setup as shared repository"
> -msgstr "Kein Git-Projektarchiv"
> +msgstr "Einrichtung als verteiltes Projektarchiv"
>  #: builtin/clone.c:86
>  msgid "reference repository"
> -msgstr ""
> +msgstr "referenziert Projektarchiv"

Both of these scare me a bit, but so do the English versions.  They're
very terse for options that should not be used unless you know what the
implications are.  Perhaps it should say "(see help)" or something.

>  #: builtin/clone.c:97 builtin/init-db.c:494
>  msgid "gitdir"
> -msgstr ""
> +msgstr "Git-Verzeichnis"


It doesn't have to be named like this, but that would clarify things.

>  #: builtin/column.c:27 builtin/column.c:28
> -#, fuzzy
>  msgid "layout to use"
> -msgstr "lokal nicht aktuell"
> +msgstr "zu verwendender Aufbau"


>  #: builtin/column.c:30
>  msgid "Padding space on left border"
> -msgstr ""
> +msgstr "Abstand zur linken Grenze"
>  #: builtin/column.c:31
>  msgid "Padding space on right border"
> -msgstr ""
> +msgstr "Abstand zur rechten Grenze"

border here means "Rand"!

>  #: builtin/commit.c:1399
>  msgid "the commit is authored by me now (used with -C/-c/--amend)"
> -msgstr ""
> +msgstr "diese Version ist jetzt von mir verfasst (benutzt mit -C/-c/--amend)"

"Ich bin jetzt der Autor der Version" or "Setze mich als Autor der
Version" would make much clearer which field is being updated by this.

>  #: builtin/commit.c:1411
>  msgid "add specified files to index for commit"
> -msgstr ""
> +msgstr "stellt angegebene Dateien zur Eintragung bereit"

This doesn't make very clear what is going on (it's the help for the
commit --include option).  Perhaps something entirely different from the
original, like

  Trägt die angegebenen Dateien zusätzlich zur Bereitstellung ein

  Trägt die angegebenen Dateien zusätzlich zu jenen in der Bereitstellung ein

would be better.

>  #: builtin/config.c:64
>  msgid "remove all matches: name [value-regex]"

Not your fault or area of expertise, but most of the git-config options
seem to suffer the problem that there cannot be two (or more)
argument descriptors in the help.

I.e., right now it looks like

    --get                 get value: name [value-regex]                         
    --get-all             get all values: key [value-regex]
    --get-regexp          get values for regexp: name-regex [value-regex]

So far it's understandable, if a bit hard to read.  But this is very

    --get-color <slot>    find the color configured: [default]

>  #: builtin/describe.c:406
>  msgid "use any tag in .git/refs/tags"
> -msgstr ""
> +msgstr "benutzt jede Markierung in .git/refs/tags"

alle Markierungen?

>  #: builtin/describe.c:416 builtin/name-rev.c:238
>  msgid "show abbreviated commit object as fallback"
> -msgstr ""
> +msgstr "zeigt als Reserve gekürztes Versionsobjekt"

fallback should be something like Ausweichlösung.  But how about

  zeigt gekürzte Versions-SHA, wenn sonst nichts zutrifft

>  #: builtin/fast-export.c:643
>  msgid "Dump marks to this file"
> -msgstr ""
> +msgstr "Anzeige von Kennzeichen für diese Datei"
>  #: builtin/fast-export.c:645
>  msgid "Import marks from this file"
> -msgstr ""
> +msgstr "Importiert Kennzeichen von dieser Datei"

How did you manage to nail the second one, but get the first one wrong?

The first one should be "Schreibe Kennzeichen in diese Datei".

I got as far as (all from) builtin/fetch.c.  I'll post the rest in one
or two more batches as I get around to it.


[1]  http://vger.kernel.org/majordomo-info.html

Thomas Rast
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to