]> asedeno.scripts.mit.edu Git - git.git/commitdiff
Merge git://repo.or.cz/git-gui
authorJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2007 08:00:56 +0000 (00:00 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2007 08:00:56 +0000 (00:00 -0800)
* git://repo.or.cz/git-gui: (96 commits)
  git-gui 0.9.0
  git-gui: Bind Meta-T for "Stage To Commit" menu action
  git-gui: Allow users to set font weights to bold
  git-gui: Update Japanese strings (part 2)
  git-gui: Update Japanese strings
  Updated russian translation of git-gui
  po2msg: actually output statistics
  po2msg: ignore untranslated messages
  po2msg: ignore entries marked with "fuzzy"
  git-gui: Protect against bad translation strings
  git-gui: Make sure we get errors from git-update-index
  More updates and corrections to the russian translation of git-gui
  Updated Russian translation.
  git-gui: Update German translation
  git-gui: Add more terms to glossary.
  git-gui: Paper bag fix the global config parsing
  git-gui: Honor a config.mak in git-gui's top level
  git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows
  git-gui: Support cloning Cygwin based work-dirs
  git-gui: Use proper Windows shortcuts instead of bat files
  ...

53 files changed:
1  2 
git-gui/.gitignore
git-gui/GIT-VERSION-GEN
git-gui/Makefile
git-gui/git-gui.sh
git-gui/lib/about.tcl
git-gui/lib/blame.tcl
git-gui/lib/branch_checkout.tcl
git-gui/lib/branch_create.tcl
git-gui/lib/branch_delete.tcl
git-gui/lib/branch_rename.tcl
git-gui/lib/browser.tcl
git-gui/lib/checkout_op.tcl
git-gui/lib/choose_repository.tcl
git-gui/lib/choose_rev.tcl
git-gui/lib/commit.tcl
git-gui/lib/console.tcl
git-gui/lib/database.tcl
git-gui/lib/date.tcl
git-gui/lib/diff.tcl
git-gui/lib/error.tcl
git-gui/lib/git-gui.ico
git-gui/lib/index.tcl
git-gui/lib/logo.tcl
git-gui/lib/merge.tcl
git-gui/lib/option.tcl
git-gui/lib/remote.tcl
git-gui/lib/remote_branch_delete.tcl
git-gui/lib/shortcut.tcl
git-gui/lib/status_bar.tcl
git-gui/lib/transport.tcl
git-gui/lib/win32.tcl
git-gui/lib/win32_shortcut.js
git-gui/macosx/AppMain.tcl
git-gui/macosx/Info.plist
git-gui/macosx/git-gui.icns
git-gui/po/.gitignore
git-gui/po/README
git-gui/po/de.po
git-gui/po/git-gui.pot
git-gui/po/glossary/Makefile
git-gui/po/glossary/de.po
git-gui/po/glossary/git-gui-glossary.pot
git-gui/po/glossary/git-gui-glossary.txt
git-gui/po/glossary/it.po
git-gui/po/glossary/txt-to-pot.sh
git-gui/po/glossary/zh_cn.po
git-gui/po/hu.po
git-gui/po/it.po
git-gui/po/ja.po
git-gui/po/po2msg.sh
git-gui/po/ru.po
git-gui/po/zh_cn.po
git-gui/windows/git-gui.sh

diff --combined git-gui/.gitignore
index 020b86deae9ee5e258ac42b2b44c8baae7015938,0000000000000000000000000000000000000000..6483b21cbfc73601602d628a2c609d3ca84f9e53
mode 100644,000000..100644
--- /dev/null
@@@ -1,5 -1,0 +1,8 @@@
- git-citool
++.DS_Store
++config.mak
++Git Gui.app*
++git-gui.tcl
 +GIT-VERSION-FILE
 +GIT-GUI-VARS
 +git-gui
 +lib/tclIndex
diff --combined git-gui/GIT-VERSION-GEN
index 9770b0bc27ae4dfd44f4bfcfc74946fabefdc127,0000000000000000000000000000000000000000..cfe46a857e5fd319fa6eb49474ddbb37bd47c537
mode 100755,000000..100755
--- /dev/null
@@@ -1,80 -1,0 +1,80 @@@
- DEF_VER=0.8.GITGUI
 +#!/bin/sh
 +
 +GVF=GIT-VERSION-FILE
++DEF_VER=0.9.GITGUI
 +
 +LF='
 +'
 +
 +tree_search ()
 +{
 +      head=$1
 +      tree=$2
 +      for p in $(git rev-list --parents --max-count=1 $head 2>/dev/null)
 +      do
 +              test $tree = $(git rev-parse $p^{tree} 2>/dev/null) &&
 +              vn=$(git describe --abbrev=4 $p 2>/dev/null) &&
 +              case "$vn" in
 +              gitgui-[0-9]*) echo $vn; break;;
 +              esac
 +      done
 +}
 +
 +# Always use the tarball version file if found, just
 +# in case we are somehow contained in a larger git
 +# repository that doesn't actually track our state.
 +# (At least one package manager is doing this.)
 +#
 +# We may be a subproject, so try looking for the merge
 +# commit that supplied this directory content if we are
 +# not at the toplevel.  We probably will always be the
 +# second parent in the commit, but we shouldn't rely on
 +# that fact.
 +#
 +# If we are at the toplevel or the merge assumption fails
 +# try looking for a gitgui-* tag.
 +
 +if test -f version &&
 +   VN=$(cat version)
 +then
 +      : happy
 +elif prefix="$(git rev-parse --show-prefix 2>/dev/null)"
 +   test -n "$prefix" &&
 +   head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
 +   tree=$(git rev-parse --verify "HEAD:$prefix" 2>/dev/null) &&
 +   VN=$(tree_search $head $tree)
 +   case "$VN" in
 +   gitgui-[0-9]*) : happy ;;
 +   *) (exit 1) ;;
 +   esac
 +then
 +      VN=$(echo "$VN" | sed -e 's/^gitgui-//;s/-/./g');
 +elif VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
 +   case "$VN" in
 +   gitgui-[0-9]*) : happy ;;
 +   *) (exit 1) ;;
 +   esac
 +then
 +      VN=$(echo "$VN" | sed -e 's/^gitgui-//;s/-/./g');
 +else
 +      VN="$DEF_VER"
 +fi
 +
 +dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
 +case "$dirty" in
 +'')
 +      ;;
 +*)
 +      VN="$VN-dirty" ;;
 +esac
 +
 +if test -r $GVF
 +then
 +      VC=$(sed -e 's/^GITGUI_VERSION = //' <$GVF)
 +else
 +      VC=unset
 +fi
 +test "$VN" = "$VC" || {
 +      echo >&2 "GITGUI_VERSION = $VN"
 +      echo "GITGUI_VERSION = $VN" >$GVF
 +}
diff --combined git-gui/Makefile
index 18e67501375c10beebd5ec3a4d73a07aedaca81f,0000000000000000000000000000000000000000..e8603192788fb0d8c83ff5ad33eb947cd77252b4
mode 100644,000000..100644
--- /dev/null
@@@ -1,185 -1,0 +1,309 @@@
- ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH))
 +all::
 +
 +# Define V=1 to have a more verbose compile.
 +#
++# Define NO_MSGFMT if you do not have msgfmt from the GNU gettext
++# package and want to use our rough pure Tcl po->msg translator.
++# TCL_PATH must be vaild for this to work.
++#
 +
 +GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
 +      @$(SHELL_PATH) ./GIT-VERSION-GEN
 +-include GIT-VERSION-FILE
 +
++uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
 +uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
 +
 +SCRIPT_SH = git-gui.sh
++GITGUI_MAIN := git-gui
 +GITGUI_BUILT_INS = git-citool
- RM_F      ?= rm -f
 +ALL_LIBFILES = $(wildcard lib/*.tcl)
 +PRELOAD_FILES = lib/class.tcl
++NONTCL_LIBFILES = \
++      lib/git-gui.ico \
++      $(wildcard lib/win32_*.js) \
++#end NONTCL_LIBFILES
 +
 +ifndef SHELL_PATH
 +      SHELL_PATH = /bin/sh
 +endif
 +
 +ifndef gitexecdir
 +      gitexecdir := $(shell git --exec-path)
 +endif
 +
 +ifndef sharedir
 +      sharedir := $(dir $(gitexecdir))share
 +endif
 +
 +ifndef INSTALL
 +      INSTALL = install
 +endif
 +
- REMOVE_F0  = $(RM_F) # space is required here
++RM_RF     ?= rm -rf
 +RMDIR     ?= rmdir
 +
 +INSTALL_D0 = $(INSTALL) -d -m755 # space is required here
 +INSTALL_D1 =
 +INSTALL_R0 = $(INSTALL) -m644 # space is required here
 +INSTALL_R1 =
 +INSTALL_X0 = $(INSTALL) -m755 # space is required here
 +INSTALL_X1 =
++INSTALL_A0 = find # space is required here
++INSTALL_A1 = | cpio -pud
 +INSTALL_L0 = rm -f # space is required here
 +INSTALL_L1 = && ln # space is required here
 +INSTALL_L2 =
 +INSTALL_L3 =
 +
 +REMOVE_D0  = $(RMDIR) # space is required here
 +REMOVE_D1  = || true
-       QUIET_GEN      = $(QUIET)echo '   ' GEN $@ &&
-       QUIET_BUILT_IN = $(QUIET)echo '   ' BUILTIN $@ &&
++REMOVE_F0  = $(RM_RF) # space is required here
 +REMOVE_F1  =
 +CLEAN_DST  = true
 +
 +ifndef V
 +      QUIET          = @
-       REMOVE_F1 = && echo '   ' REMOVE `basename "$$dst"` && $(RM_F) "$$dst"
++      QUIET_GEN      = $(QUIET)echo '   ' GEN '$@' &&
 +      QUIET_INDEX    = $(QUIET)echo '   ' INDEX $(dir $@) &&
++      QUIET_MSGFMT0  = $(QUIET)printf '    MSGFMT %12s ' $@ && v=`
++      QUIET_MSGFMT1  = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages//g'
 +      QUIET_2DEVNULL = 2>/dev/null
 +
 +      INSTALL_D0 = dir=
 +      INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m755 "$$dir"
 +      INSTALL_R0 = src=
 +      INSTALL_R1 = && echo '   ' INSTALL 644 `basename $$src` && $(INSTALL) -m644 $$src
 +      INSTALL_X0 = src=
 +      INSTALL_X1 = && echo '   ' INSTALL 755 `basename $$src` && $(INSTALL) -m755 $$src
++      INSTALL_A0 = src=
++      INSTALL_A1 = && echo '   ' INSTALL '   ' `basename "$$src"` && find "$$src" | cpio -pud
 +
 +      INSTALL_L0 = dst=
 +      INSTALL_L1 = && src=
 +      INSTALL_L2 = && dst=
 +      INSTALL_L3 = && echo '   ' 'LINK       ' `basename "$$dst"` '->' `basename "$$src"` && rm -f "$$dst" && ln "$$src" "$$dst"
 +
 +      CLEAN_DST = echo ' ' UNINSTALL
 +      REMOVE_D0 = dir=
 +      REMOVE_D1 = && echo ' ' REMOVE $$dir && test -d "$$dir" && $(RMDIR) "$$dir" || true
 +      REMOVE_F0 = dst=
- QUIET_BUILT_IN =
++      REMOVE_F1 = && echo '   ' REMOVE `basename "$$dst"` && $(RM_RF) "$$dst"
 +endif
 +
 +TCL_PATH   ?= tclsh
 +TCLTK_PATH ?= wish
++TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app
 +
 +ifeq ($(findstring $(MAKEFLAGS),s),s)
 +QUIET_GEN =
- exedir    = $(dir $(gitexecdir))share/git-gui/lib
- exedir_SQ = $(subst ','\'',$(exedir))
 +endif
 +
++-include config.mak
++
 +DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
 +gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
 +SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
 +TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH))
 +TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
++TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH)))
 +
 +gg_libdir ?= $(sharedir)/git-gui/lib
 +libdir_SQ  = $(subst ','\'',$(gg_libdir))
++libdir_SED = $(subst ','\'',$(subst \,\\,$(gg_libdir)))
++exedir     = $(dir $(gitexecdir))share/git-gui/lib
++
++GITGUI_SCRIPT   := $$0
++GITGUI_RELATIVE :=
++GITGUI_MACOSXAPP :=
++
++ifeq ($(exedir),$(gg_libdir))
++      GITGUI_RELATIVE := 1
++endif
++
++ifeq ($(uname_O),Cygwin)
++      GITGUI_SCRIPT := `cygpath --windows --absolute "$(GITGUI_SCRIPT)"`
++      ifeq ($(GITGUI_RELATIVE),)
++              gg_libdir := $(shell cygpath --windows --absolute "$(gg_libdir)")
++      endif
++endif
++ifeq ($(uname_S),Darwin)
++      ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y)
++              GITGUI_MACOSXAPP := YesPlease
++      endif
++endif
++ifneq (,$(findstring MINGW,$(uname_S)))
++      NO_MSGFMT=1
++      GITGUI_WINDOWS_WRAPPER := YesPlease
++endif
++
++ifdef GITGUI_MACOSXAPP
++GITGUI_MAIN := git-gui.tcl
++
++git-gui: GIT-VERSION-FILE GIT-GUI-VARS
++      $(QUIET_GEN)rm -f $@ $@+ && \
++      echo '#!$(SHELL_PATH_SQ)' >$@+ && \
++      echo 'if test "z$$*" = zversion ||' >>$@+ && \
++      echo '   test "z$$*" = z--version' >>$@+ && \
++      echo then >>$@+ && \
++      echo '  'echo \'git-gui version '$(GITGUI_VERSION)'\' >>$@+ && \
++      echo else >>$@+ && \
++      echo '  'exec \''$(libdir_SQ)/Git Gui.app/Contents/MacOS/Wish'\' \
++              '"$$0" "$$@"' >>$@+ && \
++      echo fi >>$@+ && \
++      chmod +x $@+ && \
++      mv $@+ $@
++
++Git\ Gui.app: GIT-VERSION-FILE GIT-GUI-VARS \
++              macosx/Info.plist \
++              macosx/git-gui.icns \
++              macosx/AppMain.tcl \
++              $(TKFRAMEWORK)/Contents/MacOS/Wish
++      $(QUIET_GEN)rm -rf '$@' '$@'+ && \
++      mkdir -p '$@'+/Contents/MacOS && \
++      mkdir -p '$@'+/Contents/Resources/Scripts && \
++      cp '$(subst ','\'',$(TKFRAMEWORK))/Contents/MacOS/Wish' \
++              '$@'+/Contents/MacOS && \
++      cp macosx/git-gui.icns '$@'+/Contents/Resources && \
++      sed -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
++              macosx/Info.plist \
++              >'$@'+/Contents/Info.plist && \
++      sed -e 's|@@gitexecdir@@|$(gitexecdir_SQ)|' \
++              -e 's|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
++              macosx/AppMain.tcl \
++              >'$@'+/Contents/Resources/Scripts/AppMain.tcl && \
++      mv '$@'+ '$@'
++endif
++
++ifdef GITGUI_WINDOWS_WRAPPER
++GITGUI_MAIN := git-gui.tcl
 +
- $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
++git-gui: windows/git-gui.sh
++      cp $< $@
++endif
 +
-       GITGUI_RELATIVE= && \
-       if test '$(exedir_SQ)' = '$(libdir_SQ)'; then \
-               if test "$(uname_O)" = Cygwin; \
-               then GITGUI_RELATIVE= ; \
-               else GITGUI_RELATIVE=1; \
-               fi; \
-       fi && \
++$(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS
 +      $(QUIET_GEN)rm -f $@ $@+ && \
-               -e 's|^ exec wish "$$0"| exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \
 +      sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-               -e 's|@@GITGUI_RELATIVE@@|'$$GITGUI_RELATIVE'|' \
-               -e $$GITGUI_RELATIVE's|@@GITGUI_LIBDIR@@|$(libdir_SQ)|' \
-               $@.sh >$@+ && \
++              -e '1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \
++              -e '1,30s|^ exec wish | exec '\''$(TCLTK_PATH_SED)'\'' |' \
 +              -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
- $(GITGUI_BUILT_INS): git-gui
-       $(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
++              -e 's|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \
++              -e '$(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
++              git-gui.sh >$@+ && \
 +      chmod +x $@+ && \
 +      mv $@+ $@
 +
- lib/tclIndex: $(ALL_LIBFILES)
++XGETTEXT   ?= xgettext
++ifdef NO_MSGFMT
++      MSGFMT ?= $(TCL_PATH) po/po2msg.sh
++else
++      MSGFMT ?= msgfmt
++endif
++
++msgsdir     = $(gg_libdir)/msgs
++msgsdir_SQ  = $(subst ','\'',$(msgsdir))
++PO_TEMPLATE = po/git-gui.pot
++ALL_POFILES = $(wildcard po/*.po)
++ALL_MSGFILES = $(subst .po,.msg,$(ALL_POFILES))
++
++$(PO_TEMPLATE): $(SCRIPT_SH) $(ALL_LIBFILES)
++      $(XGETTEXT) -kmc -LTcl -o $@ $(SCRIPT_SH) $(ALL_LIBFILES)
++update-po:: $(PO_TEMPLATE)
++      $(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) ; )
++$(ALL_MSGFILES): %.msg : %.po
++      $(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl $< -l $(basename $(notdir $<)) -d $(dir $@) $(QUIET_MSGFMT1)
 +
- # These can record GITGUI_VERSION
- $(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE GIT-GUI-VARS
- lib/tclIndex: GIT-GUI-VARS
++lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-VARS
 +      $(QUIET_INDEX)if echo \
 +        $(foreach p,$(PRELOAD_FILES),source $p\;) \
 +        auto_mkindex lib '*.tcl' \
 +      | $(TCL_PATH) $(QUIET_2DEVNULL); then : ok; \
 +      else \
 +       echo 1>&2 "    * $(TCL_PATH) failed; using unoptimized loading"; \
 +       rm -f $@ ; \
 +       echo '# Autogenerated by git-gui Makefile' >$@ && \
 +       echo >>$@ && \
 +       $(foreach p,$(PRELOAD_FILES) $(ALL_LIBFILES),echo '$(subst lib/,,$p)' >>$@ &&) \
 +       echo >>$@ ; \
 +      fi
 +
- all:: $(ALL_PROGRAMS) lib/tclIndex
 +TRACK_VARS = \
 +      $(subst ','\'',SHELL_PATH='$(SHELL_PATH_SQ)') \
 +      $(subst ','\'',TCL_PATH='$(TCL_PATH_SQ)') \
 +      $(subst ','\'',TCLTK_PATH='$(TCLTK_PATH_SQ)') \
 +      $(subst ','\'',gitexecdir='$(gitexecdir_SQ)') \
 +      $(subst ','\'',gg_libdir='$(libdir_SQ)') \
++      GITGUI_MACOSXAPP=$(GITGUI_MACOSXAPP) \
 +#end TRACK_VARS
 +
 +GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
 +      @VARS='$(TRACK_VARS)'; \
 +      if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
 +              echo 1>&2 "    * new locations or Tcl/Tk interpreter"; \
 +              echo 1>$@ "$$VARS"; \
 +      fi
 +
-       $(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
++ifdef GITGUI_MACOSXAPP
++all:: git-gui Git\ Gui.app
++endif
++ifdef GITGUI_WINDOWS_WRAPPER
++all:: git-gui
++endif
++all:: $(GITGUI_MAIN) lib/tclIndex $(ALL_MSGFILES)
 +
 +install: all
 +      $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(INSTALL_D1)
 +      $(QUIET)$(INSTALL_X0)git-gui $(INSTALL_X1) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
 +      $(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(INSTALL_L0)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L1)'$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' $(INSTALL_L2)'$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' $(INSTALL_L3) &&) true
++ifdef GITGUI_WINDOWS_WRAPPER
++      $(QUIET)$(INSTALL_R0)git-gui.tcl $(INSTALL_R1) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
++endif
 +      $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1)
 +      $(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)'
-       $(QUIET)$(foreach p,$(ALL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true
++ifdef GITGUI_MACOSXAPP
++      $(QUIET)$(INSTALL_A0)'Git Gui.app' $(INSTALL_A1) '$(DESTDIR_SQ)$(libdir_SQ)'
++      $(QUIET)$(INSTALL_X0)git-gui.tcl $(INSTALL_X1) '$(DESTDIR_SQ)$(libdir_SQ)'
++endif
++      $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true
++      $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1)
++      $(QUIET)$(foreach p,$(ALL_MSGFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true
 +
 +uninstall:
 +      $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
 +      $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui $(REMOVE_F1)
 +      $(QUIET)$(foreach p,$(GITGUI_BUILT_INS), $(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/$p $(REMOVE_F1) &&) true
++ifdef GITGUI_WINDOWS_WRAPPER
++      $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui.tcl $(REMOVE_F1)
++endif
 +      $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(libdir_SQ)'
 +      $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/tclIndex $(REMOVE_F1)
-       rm -f $(ALL_PROGRAMS) lib/tclIndex
-       rm -f GIT-VERSION-FILE GIT-GUI-VARS
++ifdef GITGUI_MACOSXAPP
++      $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)/Git Gui.app' $(REMOVE_F1)
++      $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/git-gui.tcl $(REMOVE_F1)
++endif
++      $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true
++      $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(msgsdir_SQ)'
++      $(QUIET)$(foreach p,$(ALL_MSGFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true
 +      $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(REMOVE_D1)
++      $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(REMOVE_D1)
 +      $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(REMOVE_D1)
 +      $(QUIET)$(REMOVE_D0)`dirname '$(DESTDIR_SQ)$(libdir_SQ)'` $(REMOVE_D1)
 +
 +dist-version:
 +      @mkdir -p $(TARDIR)
 +      @echo $(GITGUI_VERSION) > $(TARDIR)/version
 +
 +clean::
++      $(RM_RF) $(GITGUI_MAIN) lib/tclIndex po/*.msg
++      $(RM_RF) GIT-VERSION-FILE GIT-GUI-VARS
++ifdef GITGUI_MACOSXAPP
++      $(RM_RF) 'Git Gui.app'* git-gui
++endif
++ifdef GITGUI_WINDOWS_WRAPPER
++      $(RM_RF) git-gui
++endif
 +
 +.PHONY: all install uninstall dist-version clean
 +.PHONY: .FORCE-GIT-VERSION-FILE
 +.PHONY: .FORCE-GIT-GUI-VARS
diff --combined git-gui/git-gui.sh
index 9335a9761b458f5e8d75abf342630672751c7f2a,1fca11f278a89bb4d224738ed6dfca9822775a32..1fca11f278a89bb4d224738ed6dfca9822775a32
@@@ -6,11 -6,12 +6,12 @@@
        echo 'git-gui version @@GITGUI_VERSION@@'; \
        exit; \
   fi; \
-  exec wish "$0" -- "$@"
+  argv0=$0; \
+  exec wish "$argv0" -- "$@"
  
  set appvers {@@GITGUI_VERSION@@}
- set copyright {
- Copyright © 2006, 2007 Shawn Pearce, et. al.
+ set copyright [encoding convertfrom utf-8 {
+ Copyright Â© 2006, 2007 Shawn Pearce, et. al.
  
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
@@@ -24,7 -25,7 +25,7 @@@ GNU General Public License for more det
  
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA}
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA}]
  
  ######################################################################
  ##
@@@ -37,13 -38,31 +38,31 @@@ if {[catch {package require Tcl 8.4} er
        tk_messageBox \
                -icon error \
                -type ok \
-               -title "git-gui: fatal error" \
+               -title [mc "git-gui: fatal error"] \
                -message $err
        exit 1
  }
  
  catch {rename send {}} ; # What an evil concept...
  
+ ######################################################################
+ ##
+ ## locate our library
+ set oguilib {@@GITGUI_LIBDIR@@}
+ set oguirel {@@GITGUI_RELATIVE@@}
+ if {$oguirel eq {1}} {
+       set oguilib [file dirname [file dirname [file normalize $argv0]]]
+       set oguilib [file join $oguilib share git-gui lib]
+       set oguimsg [file join $oguilib msgs]
+ } elseif {[string match @@* $oguirel]} {
+       set oguilib [file join [file dirname [file normalize $argv0]] lib]
+       set oguimsg [file join [file dirname [file normalize $argv0]] po]
+ } else {
+       set oguimsg [file join $oguilib msgs]
+ }
+ unset oguirel
  ######################################################################
  ##
  ## enable verbose loading?
@@@ -64,21 -83,39 +83,39 @@@ if {![catch {set _verbose $env(GITGUI_V
  
  ######################################################################
  ##
- ## Fake internationalization to ease backporting of changes.
+ ## Internationalization (i18n) through msgcat and gettext. See
+ ## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html
+ package require msgcat
  
- proc mc {fmt args} {
+ proc _mc_trim {fmt} {
        set cmk [string first @@ $fmt]
        if {$cmk > 0} {
-               set fmt [string range $fmt 0 [expr {$cmk - 1}]]
+               return [string range $fmt 0 [expr {$cmk - 1}]]
        }
-       return [eval [list format $fmt] $args]
+       return $fmt
+ }
+ proc mc {en_fmt args} {
+       set fmt [_mc_trim [::msgcat::mc $en_fmt]]
+       if {[catch {set msg [eval [list format $fmt] $args]} err]} {
+               set msg [eval [list format [_mc_trim $en_fmt]] $args]
+       }
+       return $msg
+ }
+ proc strcat {args} {
+       return [join $args {}]
  }
  
+ ::msgcat::mcload $oguimsg
+ unset oguimsg
  ######################################################################
  ##
  ## read only globals
  
- set _appname [lindex [file split $argv0] end]
+ set _appname {Git Gui}
  set _gitdir {}
  set _gitexec {}
  set _reponame {}
@@@ -175,6 -212,7 +212,7 @@@ proc disable_option {option} 
  
  proc is_many_config {name} {
        switch -glob -- $name {
+       gui.recentrepo -
        remote.*.fetch -
        remote.*.push
                {return 1}
@@@ -203,51 -241,6 +241,6 @@@ proc get_config {name} 
        }
  }
  
- proc load_config {include_global} {
-       global repo_config global_config default_config
-       array unset global_config
-       if {$include_global} {
-               catch {
-                       set fd_rc [git_read config --global --list]
-                       while {[gets $fd_rc line] >= 0} {
-                               if {[regexp {^([^=]+)=(.*)$} $line line name value]} {
-                                       if {[is_many_config $name]} {
-                                               lappend global_config($name) $value
-                                       } else {
-                                               set global_config($name) $value
-                                       }
-                               }
-                       }
-                       close $fd_rc
-               }
-       }
-       array unset repo_config
-       catch {
-               set fd_rc [git_read config --list]
-               while {[gets $fd_rc line] >= 0} {
-                       if {[regexp {^([^=]+)=(.*)$} $line line name value]} {
-                               if {[is_many_config $name]} {
-                                       lappend repo_config($name) $value
-                               } else {
-                                       set repo_config($name) $value
-                               }
-                       }
-               }
-               close $fd_rc
-       }
-       foreach name [array names default_config] {
-               if {[catch {set v $global_config($name)}]} {
-                       set global_config($name) $default_config($name)
-               }
-               if {[catch {set v $repo_config($name)}]} {
-                       set repo_config($name) $default_config($name)
-               }
-       }
- }
  ######################################################################
  ##
  ## handy utils
@@@ -313,6 -306,9 +306,9 @@@ proc _which {what} 
                                $env(PATH)] {;}]
                        set _search_exe .exe
                } elseif {[is_Windows]} {
+                       set gitguidir [file dirname [info script]]
+                       regsub -all ";" $gitguidir "\\;" gitguidir
+                       set env(PATH) "$gitguidir;$env(PATH)"
                        set _search_path [split $env(PATH) {;}]
                        set _search_exe .exe
                } else {
@@@ -491,6 -487,110 +487,110 @@@ proc rmsel_tag {text} 
        return $text
  }
  
+ set root_exists 0
+ bind . <Visibility> {
+       bind . <Visibility> {}
+       set root_exists 1
+ }
+ if {[is_Windows]} {
+       wm iconbitmap . -default $oguilib/git-gui.ico
+ }
+ ######################################################################
+ ##
+ ## config defaults
+ set cursor_ptr arrow
+ font create font_diff -family Courier -size 10
+ font create font_ui
+ catch {
+       label .dummy
+       eval font configure font_ui [font actual [.dummy cget -font]]
+       destroy .dummy
+ }
+ font create font_uiitalic
+ font create font_uibold
+ font create font_diffbold
+ font create font_diffitalic
+ foreach class {Button Checkbutton Entry Label
+               Labelframe Listbox Menu Message
+               Radiobutton Spinbox Text} {
+       option add *$class.font font_ui
+ }
+ unset class
+ if {[is_Windows] || [is_MacOSX]} {
+       option add *Menu.tearOff 0
+ }
+ if {[is_MacOSX]} {
+       set M1B M1
+       set M1T Cmd
+ } else {
+       set M1B Control
+       set M1T Ctrl
+ }
+ proc bind_button3 {w cmd} {
+       bind $w <Any-Button-3> $cmd
+       if {[is_MacOSX]} {
+               # Mac OS X sends Button-2 on right click through three-button mouse,
+               # or through trackpad right-clicking (two-finger touch + click).
+               bind $w <Any-Button-2> $cmd
+               bind $w <Control-Button-1> $cmd
+       }
+ }
+ proc apply_config {} {
+       global repo_config font_descs
+       foreach option $font_descs {
+               set name [lindex $option 0]
+               set font [lindex $option 1]
+               if {[catch {
+                       set need_weight 1
+                       foreach {cn cv} $repo_config(gui.$name) {
+                               if {$cn eq {-weight}} {
+                                       set need_weight 0
+                               }
+                               font configure $font $cn $cv
+                       }
+                       if {$need_weight} {
+                               font configure $font -weight normal
+                       }
+                       } err]} {
+                       error_popup [strcat [mc "Invalid font specified in %s:" "gui.$name"] "\n\n$err"]
+               }
+               foreach {cn cv} [font configure $font] {
+                       font configure ${font}bold $cn $cv
+                       font configure ${font}italic $cn $cv
+               }
+               font configure ${font}bold -weight bold
+               font configure ${font}italic -slant italic
+       }
+ }
+ set default_config(merge.diffstat) true
+ set default_config(merge.summary) false
+ set default_config(merge.verbosity) 2
+ set default_config(user.name) {}
+ set default_config(user.email) {}
+ set default_config(gui.matchtrackingbranch) false
+ set default_config(gui.pruneduringfetch) false
+ set default_config(gui.trustmtime) false
+ set default_config(gui.diffcontext) 5
+ set default_config(gui.newbranchtemplate) {}
+ set default_config(gui.fontui) [font configure font_ui]
+ set default_config(gui.fontdiff) [font configure font_diff]
+ set font_descs {
+       {fontui   font_ui   {mc "Main Font"}}
+       {fontdiff font_diff {mc "Diff/Console Font"}}
+ }
  ######################################################################
  ##
  ## find git
@@@ -515,7 -615,7 +615,7 @@@ if {[catch {set _git_version [git --ver
        tk_messageBox \
                -icon error \
                -type ok \
-               -title "git-gui: fatal error" \
+               -title [mc "git-gui: fatal error"] \
                -message "Cannot determine Git version:
  
  $err
@@@ -528,8 -628,8 +628,8 @@@ if {![regsub {^git version } $_git_vers
        tk_messageBox \
                -icon error \
                -type ok \
-               -title "git-gui: fatal error" \
-               -message "Cannot parse Git version string:\n\n$_git_version"
+               -title [mc "git-gui: fatal error"] \
+               -message [strcat [mc "Cannot parse Git version string:"] "\n\n$_git_version"]
        exit 1
  }
  
@@@ -547,14 -647,14 +647,14 @@@ if {![regexp {^[1-9]+(\.[0-9]+)+$} $_gi
                -type yesno \
                -default no \
                -title "[appname]: warning" \
-               -message "Git version cannot be determined.
+                -message [mc "Git version cannot be determined.
  
$_git claims it is version '$_real_git_version'.
%s claims it is version '%s'.
  
[appname] requires at least Git 1.5.0 or later.
%s requires at least Git 1.5.0 or later.
  
- Assume '$_real_git_version' is version 1.5.0?
- "] eq {yes}} {
+ Assume '%s' is version 1.5.0?
+ " $_git $_real_git_version [appname] $_real_git_version]] eq {yes}} {
                set _git_version 1.5.0
        } else {
                exit 1
@@@ -611,7 -711,7 +711,7 @@@ if {[git-version < 1.5]} 
        tk_messageBox \
                -icon error \
                -type ok \
-               -title "git-gui: fatal error" \
+               -title [mc "git-gui: fatal error"] \
                -message "[appname] requires Git 1.5.0 or later.
  
  You are using [git-version]:
  ##
  ## configure our library
  
- set oguilib {@@GITGUI_LIBDIR@@}
- set oguirel {@@GITGUI_RELATIVE@@}
- if {$oguirel eq {1}} {
-       set oguilib [file dirname [file dirname [file normalize $argv0]]]
-       set oguilib [file join $oguilib share git-gui lib]
- } elseif {[string match @@* $oguirel]} {
-       set oguilib [file join [file dirname [file normalize $argv0]] lib]
- }
  set idx [file join $oguilib tclIndex]
  if {[catch {set fd [open $idx r]} err]} {
        catch {wm withdraw .}
        tk_messageBox \
                -icon error \
                -type ok \
-               -title "git-gui: fatal error" \
+               -title [mc "git-gui: fatal error"] \
                -message $err
        exit 1
  }
@@@ -666,13 -757,78 +757,78 @@@ if {$idx ne {}} 
  } else {
        set auto_path [concat [list $oguilib] $auto_path]
  }
- unset -nocomplain oguirel idx fd
+ unset -nocomplain idx fd
+ ######################################################################
+ ##
+ ## config file parsing
+ git-version proc _parse_config {arr_name args} {
+       >= 1.5.3 {
+               upvar $arr_name arr
+               array unset arr
+               set buf {}
+               catch {
+                       set fd_rc [eval \
+                               [list git_read config] \
+                               $args \
+                               [list --null --list]]
+                       fconfigure $fd_rc -translation binary
+                       set buf [read $fd_rc]
+                       close $fd_rc
+               }
+               foreach line [split $buf "\0"] {
+                       if {[regexp {^([^\n]+)\n(.*)$} $line line name value]} {
+                               if {[is_many_config $name]} {
+                                       lappend arr($name) $value
+                               } else {
+                                       set arr($name) $value
+                               }
+                       }
+               }
+       }
+       default {
+               upvar $arr_name arr
+               array unset arr
+               catch {
+                       set fd_rc [eval [list git_read config --list] $args]
+                       while {[gets $fd_rc line] >= 0} {
+                               if {[regexp {^([^=]+)=(.*)$} $line line name value]} {
+                                       if {[is_many_config $name]} {
+                                               lappend arr($name) $value
+                                       } else {
+                                               set arr($name) $value
+                                       }
+                               }
+                       }
+                       close $fd_rc
+               }
+       }
+ }
+ proc load_config {include_global} {
+       global repo_config global_config default_config
+       if {$include_global} {
+               _parse_config global_config --global
+       }
+       _parse_config repo_config
+       foreach name [array names default_config] {
+               if {[catch {set v $global_config($name)}]} {
+                       set global_config($name) $default_config($name)
+               }
+               if {[catch {set v $repo_config($name)}]} {
+                       set repo_config($name) $default_config($name)
+               }
+       }
+ }
  
  ######################################################################
  ##
  ## feature option selection
  
- if {[regexp {^git-(.+)$} [appname] _junk subcommand]} {
+ if {[regexp {^git-(.+)$} [file tail $argv0] _junk subcommand]} {
        unset _junk
  } else {
        set subcommand gui
@@@ -720,35 -876,35 +876,35 @@@ if {[catch 
                set _gitdir [git rev-parse --git-dir]
                set _prefix [git rev-parse --show-prefix]
        } err]} {
-       catch {wm withdraw .}
-       error_popup "Cannot find the git directory:\n\n$err"
-       exit 1
+       load_config 1
+       apply_config
+       choose_repository::pick
  }
  if {![file isdirectory $_gitdir] && [is_Cygwin]} {
-       catch {set _gitdir [exec cygpath --unix $_gitdir]}
+       catch {set _gitdir [exec cygpath --windows $_gitdir]}
  }
  if {![file isdirectory $_gitdir]} {
        catch {wm withdraw .}
-       error_popup "Git directory not found:\n\n$_gitdir"
+       error_popup [strcat [mc "Git directory not found:"] "\n\n$_gitdir"]
        exit 1
  }
  if {$_prefix ne {}} {
        regsub -all {[^/]+/} $_prefix ../ cdup
        if {[catch {cd $cdup} err]} {
                catch {wm withdraw .}
-               error_popup "Cannot move to top of working directory:\n\n$err"
+               error_popup [strcat [mc "Cannot move to top of working directory:"] "\n\n$err"]
                exit 1
        }
        unset cdup
  } elseif {![is_enabled bare]} {
        if {[lindex [file split $_gitdir] end] ne {.git}} {
                catch {wm withdraw .}
-               error_popup "Cannot use funny .git directory:\n\n$_gitdir"
+               error_popup [strcat [mc "Cannot use funny .git directory:"] "\n\n$_gitdir"]
                exit 1
        }
        if {[catch {cd [file dirname $_gitdir]} err]} {
                catch {wm withdraw .}
-               error_popup "No working directory [file dirname $_gitdir]:\n\n$err"
+               error_popup [strcat [mc "No working directory"] " [file dirname $_gitdir]:\n\n$err"]
                exit 1
        }
  }
@@@ -895,7 -1051,7 +1051,7 @@@ proc rescan {after {honor_trustmtime 1}
                rescan_stage2 {} $after
        } else {
                set rescan_active 1
-               ui_status {Refreshing file status...}
+               ui_status [mc "Refreshing file status..."]
                set fd_rf [git_read update-index \
                        -q \
                        --unmerged \
@@@ -960,7 -1116,7 +1116,7 @@@ proc rescan_stage2 {fd after} 
        set buf_rlo {}
  
        set rescan_active 3
-       ui_status {Scanning for modified files ...}
+       ui_status [mc "Scanning for modified files ..."]
        set fd_di [git_read diff-index --cached -z [PARENT]]
        set fd_df [git_read diff-files -z]
        set fd_lo [eval git_read ls-files --others -z $ls_others]
@@@ -1401,31 -1557,32 +1557,32 @@@ set all_icons(O$ui_workdir) file_plai
  
  set max_status_desc 0
  foreach i {
-               {__ "Unmodified"}
-               {_M "Modified, not staged"}
-               {M_ "Staged for commit"}
-               {MM "Portions staged for commit"}
-               {MD "Staged for commit, missing"}
-               {_O "Untracked, not staged"}
-               {A_ "Staged for commit"}
-               {AM "Portions staged for commit"}
-               {AD "Staged for commit, missing"}
-               {_D "Missing"}
-               {D_ "Staged for removal"}
-               {DO "Staged for removal, still present"}
-               {U_ "Requires merge resolution"}
-               {UU "Requires merge resolution"}
-               {UM "Requires merge resolution"}
-               {UD "Requires merge resolution"}
+               {__ {mc "Unmodified"}}
+               {_M {mc "Modified, not staged"}}
+               {M_ {mc "Staged for commit"}}
+               {MM {mc "Portions staged for commit"}}
+               {MD {mc "Staged for commit, missing"}}
+               {_O {mc "Untracked, not staged"}}
+               {A_ {mc "Staged for commit"}}
+               {AM {mc "Portions staged for commit"}}
+               {AD {mc "Staged for commit, missing"}}
+               {_D {mc "Missing"}}
+               {D_ {mc "Staged for removal"}}
+               {DO {mc "Staged for removal, still present"}}
+               {U_ {mc "Requires merge resolution"}}
+               {UU {mc "Requires merge resolution"}}
+               {UM {mc "Requires merge resolution"}}
+               {UD {mc "Requires merge resolution"}}
        } {
-       if {$max_status_desc < [string length [lindex $i 1]]} {
-               set max_status_desc [string length [lindex $i 1]]
+       set text [eval [lindex $i 1]]
+       if {$max_status_desc < [string length $text]} {
+               set max_status_desc [string length $text]
        }
-       set all_descs([lindex $i 0]) [lindex $i 1]
+       set all_descs([lindex $i 0]) $text
  }
  unset i
  
  ##
  ## util
  
- proc bind_button3 {w cmd} {
-       bind $w <Any-Button-3> $cmd
-       if {[is_MacOSX]} {
-               # Mac OS X sends Button-2 on right click through three-button mouse,
-               # or through trackpad right-clicking (two-finger touch + click).
-               bind $w <Any-Button-2> $cmd
-               bind $w <Control-Button-1> $cmd
-       }
- }
  proc scrollbar2many {list mode args} {
        foreach w $list {eval $w $mode $args}
  }
@@@ -1464,7 -1611,7 +1611,7 @@@ proc incr_font_size {font {amt 1}} 
  ##
  ## ui commands
  
- set starting_gitk_msg {Starting gitk... please wait...}
+ set starting_gitk_msg [mc "Starting gitk... please wait..."]
  
  proc do_gitk {revs} {
        # -- Always start gitk through whatever we were loaded with.  This
        set exe [file join [file dirname $::_git] gitk]
        set cmd [list [info nameofexecutable] $exe]
        if {! [file exists $exe]} {
-               error_popup "Unable to start gitk:\n\n$exe does not exist"
+               error_popup [mc "Unable to start gitk:\n\n%s does not exist" $exe]
        } else {
                global env
  
@@@ -1546,8 -1693,8 +1693,8 @@@ proc do_quit {} 
                #
                set cfg_geometry [list]
                lappend cfg_geometry [wm geometry .]
-               lappend cfg_geometry [lindex [.vpane sash coord 0] 1]
-               lappend cfg_geometry [lindex [.vpane.files sash coord 0] 0]
+               lappend cfg_geometry [lindex [.vpane sash coord 0] 0]
+               lappend cfg_geometry [lindex [.vpane.files sash coord 0] 1]
                if {[catch {set rc_geometry $repo_config(gui.geometry)}]} {
                        set rc_geometry {}
                }
@@@ -1664,104 -1811,26 +1811,26 @@@ proc add_range_to_selection {w x y} 
  
  ######################################################################
  ##
- ## config defaults
- set cursor_ptr arrow
- font create font_diff -family Courier -size 10
- font create font_ui
- catch {
-       label .dummy
-       eval font configure font_ui [font actual [.dummy cget -font]]
-       destroy .dummy
- }
- font create font_uiitalic
- font create font_uibold
- font create font_diffbold
- font create font_diffitalic
- foreach class {Button Checkbutton Entry Label
-               Labelframe Listbox Menu Message
-               Radiobutton Spinbox Text} {
-       option add *$class.font font_ui
- }
- unset class
- if {[is_Windows] || [is_MacOSX]} {
-       option add *Menu.tearOff 0
- }
- if {[is_MacOSX]} {
-       set M1B M1
-       set M1T Cmd
- } else {
-       set M1B Control
-       set M1T Ctrl
- }
- proc apply_config {} {
-       global repo_config font_descs
-       foreach option $font_descs {
-               set name [lindex $option 0]
-               set font [lindex $option 1]
-               if {[catch {
-                       foreach {cn cv} $repo_config(gui.$name) {
-                               font configure $font $cn $cv -weight normal
-                       }
-                       } err]} {
-                       error_popup "Invalid font specified in gui.$name:\n\n$err"
-               }
-               foreach {cn cv} [font configure $font] {
-                       font configure ${font}bold $cn $cv
-                       font configure ${font}italic $cn $cv
-               }
-               font configure ${font}bold -weight bold
-               font configure ${font}italic -slant italic
-       }
- }
- set default_config(merge.diffstat) true
- set default_config(merge.summary) false
- set default_config(merge.verbosity) 2
- set default_config(user.name) {}
- set default_config(user.email) {}
+ ## ui construction
  
- set default_config(gui.matchtrackingbranch) false
- set default_config(gui.pruneduringfetch) false
- set default_config(gui.trustmtime) false
- set default_config(gui.diffcontext) 5
- set default_config(gui.newbranchtemplate) {}
- set default_config(gui.fontui) [font configure font_ui]
- set default_config(gui.fontdiff) [font configure font_diff]
- set font_descs {
-       {fontui   font_ui   {Main Font}}
-       {fontdiff font_diff {Diff/Console Font}}
- }
  load_config 0
  apply_config
- ######################################################################
- ##
- ## ui construction
  set ui_comm {}
  
  # -- Menu Bar
  #
  menu .mbar -tearoff 0
- .mbar add cascade -label Repository -menu .mbar.repository
- .mbar add cascade -label Edit -menu .mbar.edit
+ .mbar add cascade -label [mc Repository] -menu .mbar.repository
+ .mbar add cascade -label [mc Edit] -menu .mbar.edit
  if {[is_enabled branch]} {
-       .mbar add cascade -label Branch -menu .mbar.branch
+       .mbar add cascade -label [mc Branch] -menu .mbar.branch
  }
  if {[is_enabled multicommit] || [is_enabled singlecommit]} {
-       .mbar add cascade -label Commit -menu .mbar.commit
+       .mbar add cascade -label [mc Commit@@noun] -menu .mbar.commit
  }
  if {[is_enabled transport]} {
-       .mbar add cascade -label Merge -menu .mbar.merge
-       .mbar add cascade -label Fetch -menu .mbar.fetch
-       .mbar add cascade -label Push -menu .mbar.push
+       .mbar add cascade -label [mc Merge] -menu .mbar.merge
+       .mbar add cascade -label [mc Remote] -menu .mbar.remote
  }
  . configure -menu .mbar
  
  menu .mbar.repository
  
  .mbar.repository add command \
-       -label {Browse Current Branch's Files} \
+       -label [mc "Browse Current Branch's Files"] \
        -command {browser::new $current_branch}
  set ui_browse_current [.mbar.repository index last]
  .mbar.repository add command \
-       -label {Browse Branch Files...} \
+       -label [mc "Browse Branch Files..."] \
        -command browser_open::dialog
  .mbar.repository add separator
  
  .mbar.repository add command \
-       -label {Visualize Current Branch's History} \
+       -label [mc "Visualize Current Branch's History"] \
        -command {do_gitk $current_branch}
  set ui_visualize_current [.mbar.repository index last]
  .mbar.repository add command \
-       -label {Visualize All Branch History} \
+       -label [mc "Visualize All Branch History"] \
        -command {do_gitk --all}
  .mbar.repository add separator
  
  proc current_branch_write {args} {
        global current_branch
        .mbar.repository entryconf $::ui_browse_current \
-               -label "Browse $current_branch's Files"
+               -label [mc "Browse %s's Files" $current_branch]
        .mbar.repository entryconf $::ui_visualize_current \
-               -label "Visualize $current_branch's History"
+               -label [mc "Visualize %s's History" $current_branch]
  }
  trace add variable current_branch write current_branch_write
  
  if {[is_enabled multicommit]} {
-       .mbar.repository add command -label {Database Statistics} \
+       .mbar.repository add command -label [mc "Database Statistics"] \
                -command do_stats
  
-       .mbar.repository add command -label {Compress Database} \
+       .mbar.repository add command -label [mc "Compress Database"] \
                -command do_gc
  
-       .mbar.repository add command -label {Verify Database} \
+       .mbar.repository add command -label [mc "Verify Database"] \
                -command do_fsck_objects
  
        .mbar.repository add separator
  
        if {[is_Cygwin]} {
                .mbar.repository add command \
-                       -label {Create Desktop Icon} \
+                       -label [mc "Create Desktop Icon"] \
                        -command do_cygwin_shortcut
        } elseif {[is_Windows]} {
                .mbar.repository add command \
-                       -label {Create Desktop Icon} \
+                       -label [mc "Create Desktop Icon"] \
                        -command do_windows_shortcut
        } elseif {[is_MacOSX]} {
                .mbar.repository add command \
-                       -label {Create Desktop Icon} \
+                       -label [mc "Create Desktop Icon"] \
                        -command do_macosx_app
        }
  }
  
- .mbar.repository add command -label Quit \
+ .mbar.repository add command -label [mc Quit] \
        -command do_quit \
        -accelerator $M1T-Q
  
  # -- Edit Menu
  #
  menu .mbar.edit
- .mbar.edit add command -label Undo \
+ .mbar.edit add command -label [mc Undo] \
        -command {catch {[focus] edit undo}} \
        -accelerator $M1T-Z
- .mbar.edit add command -label Redo \
+ .mbar.edit add command -label [mc Redo] \
        -command {catch {[focus] edit redo}} \
        -accelerator $M1T-Y
  .mbar.edit add separator
- .mbar.edit add command -label Cut \
+ .mbar.edit add command -label [mc Cut] \
        -command {catch {tk_textCut [focus]}} \
        -accelerator $M1T-X
- .mbar.edit add command -label Copy \
+ .mbar.edit add command -label [mc Copy] \
        -command {catch {tk_textCopy [focus]}} \
        -accelerator $M1T-C
- .mbar.edit add command -label Paste \
+ .mbar.edit add command -label [mc Paste] \
        -command {catch {tk_textPaste [focus]; [focus] see insert}} \
        -accelerator $M1T-V
- .mbar.edit add command -label Delete \
+ .mbar.edit add command -label [mc Delete] \
        -command {catch {[focus] delete sel.first sel.last}} \
        -accelerator Del
  .mbar.edit add separator
- .mbar.edit add command -label {Select All} \
+ .mbar.edit add command -label [mc "Select All"] \
        -command {catch {[focus] tag add sel 0.0 end}} \
        -accelerator $M1T-A
  
  if {[is_enabled branch]} {
        menu .mbar.branch
  
-       .mbar.branch add command -label {Create...} \
+       .mbar.branch add command -label [mc "Create..."] \
                -command branch_create::dialog \
                -accelerator $M1T-N
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
  
-       .mbar.branch add command -label {Checkout...} \
+       .mbar.branch add command -label [mc "Checkout..."] \
                -command branch_checkout::dialog \
                -accelerator $M1T-O
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
  
-       .mbar.branch add command -label {Rename...} \
+       .mbar.branch add command -label [mc "Rename..."] \
                -command branch_rename::dialog
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
  
-       .mbar.branch add command -label {Delete...} \
+       .mbar.branch add command -label [mc "Delete..."] \
                -command branch_delete::dialog
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
  
-       .mbar.branch add command -label {Reset...} \
+       .mbar.branch add command -label [mc "Reset..."] \
                -command merge::reset_hard
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
@@@ -1893,7 -1962,7 +1962,7 @@@ if {[is_enabled multicommit] || [is_ena
        menu .mbar.commit
  
        .mbar.commit add radiobutton \
-               -label {New Commit} \
+               -label [mc "New Commit"] \
                -command do_select_commit_type \
                -variable selected_commit_type \
                -value new
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
        .mbar.commit add radiobutton \
-               -label {Amend Last Commit} \
+               -label [mc "Amend Last Commit"] \
                -command do_select_commit_type \
                -variable selected_commit_type \
                -value amend
  
        .mbar.commit add separator
  
-       .mbar.commit add command -label Rescan \
+       .mbar.commit add command -label [mc Rescan] \
                -command do_rescan \
                -accelerator F5
        lappend disable_on_lock \
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
-       .mbar.commit add command -label {Stage To Commit} \
-               -command do_add_selection
+       .mbar.commit add command -label [mc "Stage To Commit"] \
+               -command do_add_selection \
+               -accelerator $M1T-T
        lappend disable_on_lock \
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
-       .mbar.commit add command -label {Stage Changed Files To Commit} \
+       .mbar.commit add command -label [mc "Stage Changed Files To Commit"] \
                -command do_add_all \
                -accelerator $M1T-I
        lappend disable_on_lock \
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
-       .mbar.commit add command -label {Unstage From Commit} \
+       .mbar.commit add command -label [mc "Unstage From Commit"] \
                -command do_unstage_selection
        lappend disable_on_lock \
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
-       .mbar.commit add command -label {Revert Changes} \
+       .mbar.commit add command -label [mc "Revert Changes"] \
                -command do_revert_selection
        lappend disable_on_lock \
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
  
        .mbar.commit add separator
  
-       .mbar.commit add command -label {Sign Off} \
+       .mbar.commit add command -label [mc "Sign Off"] \
                -command do_signoff \
                -accelerator $M1T-S
  
-       .mbar.commit add command -label Commit \
+       .mbar.commit add command -label [mc Commit@@verb] \
                -command do_commit \
                -accelerator $M1T-Return
        lappend disable_on_lock \
  #
  if {[is_enabled branch]} {
        menu .mbar.merge
-       .mbar.merge add command -label {Local Merge...} \
+       .mbar.merge add command -label [mc "Local Merge..."] \
                -command merge::dialog \
                -accelerator $M1T-M
        lappend disable_on_lock \
                [list .mbar.merge entryconf [.mbar.merge index last] -state]
-       .mbar.merge add command -label {Abort Merge...} \
+       .mbar.merge add command -label [mc "Abort Merge..."] \
                -command merge::reset_hard
        lappend disable_on_lock \
                [list .mbar.merge entryconf [.mbar.merge index last] -state]
  # -- Transport Menu
  #
  if {[is_enabled transport]} {
-       menu .mbar.fetch
+       menu .mbar.remote
  
-       menu .mbar.push
-       .mbar.push add command -label {Push...} \
+       .mbar.remote add command \
+               -label [mc "Push..."] \
                -command do_push_anywhere \
                -accelerator $M1T-P
-       .mbar.push add command -label {Delete...} \
+       .mbar.remote add command \
+               -label [mc "Delete..."] \
                -command remote_branch_delete::dialog
  }
  
  if {[is_MacOSX]} {
        # -- Apple Menu (Mac OS X only)
        #
-       .mbar add cascade -label Apple -menu .mbar.apple
+       .mbar add cascade -label [mc Apple] -menu .mbar.apple
        menu .mbar.apple
  
-       .mbar.apple add command -label "About [appname]" \
+       .mbar.apple add command -label [mc "About %s" [appname]] \
                -command do_about
-       .mbar.apple add command -label "Options..." \
-               -command do_options
+       .mbar.apple add separator
+       .mbar.apple add command \
+               -label [mc "Preferences..."] \
+               -command do_options \
+               -accelerator $M1T-,
+       bind . <$M1B-,> do_options
  } else {
        # -- Edit Menu
        #
        .mbar.edit add separator
-       .mbar.edit add command -label {Options...} \
+       .mbar.edit add command -label [mc "Options..."] \
                -command do_options
  }
  
  # -- Help Menu
  #
- .mbar add cascade -label Help -menu .mbar.help
+ .mbar add cascade -label [mc Help] -menu .mbar.help
  menu .mbar.help
  
  if {![is_MacOSX]} {
-       .mbar.help add command -label "About [appname]" \
+       .mbar.help add command -label [mc "About %s" [appname]] \
                -command do_about
  }
  
@@@ -2039,17 -2114,11 +2114,11 @@@ if {[file isfile $doc_path]} 
  }
  
  if {$browser ne {}} {
-       .mbar.help add command -label {Online Documentation} \
+       .mbar.help add command -label [mc "Online Documentation"] \
                -command [list exec $browser $doc_url &]
  }
  unset browser doc_path doc_url
  
- set root_exists 0
- bind . <Visibility> {
-       bind . <Visibility> {}
-       set root_exists 1
- }
  # -- Standard bindings
  #
  wm protocol . WM_DELETE_WINDOW do_quit
@@@ -2129,7 -2198,7 +2198,7 @@@ blame 
        }
        blame   {
                if {$head eq {} && ![file exists $path]} {
-                       puts stderr "fatal: cannot stat path $path: No such file or directory"
+                       puts stderr [mc "fatal: cannot stat path %s: No such file or directory" $path]
                        exit 1
                }
                blame::new $head $path
@@@ -2141,7 -2210,8 +2210,8 @@@ citool 
  gui {
        if {[llength $argv] != 0} {
                puts -nonewline stderr "usage: $argv0"
-               if {$subcommand ne {gui} && [appname] ne "git-$subcommand"} {
+               if {$subcommand ne {gui}
+                       && [file tail $argv0] ne "git-$subcommand"} {
                        puts -nonewline stderr " $subcommand"
                }
                puts stderr {}
@@@ -2161,7 -2231,7 +2231,7 @@@ frame .branch 
        -borderwidth 1 \
        -relief sunken
  label .branch.l1 \
-       -text {Current Branch:} \
+       -text [mc "Current Branch:"] \
        -anchor w \
        -justify left
  label .branch.cb \
@@@ -2174,15 -2244,15 +2244,15 @@@ pack .branch -side top -fill 
  
  # -- Main Window Layout
  #
- panedwindow .vpane -orient vertical
- panedwindow .vpane.files -orient horizontal
+ panedwindow .vpane -orient horizontal
+ panedwindow .vpane.files -orient vertical
  .vpane add .vpane.files -sticky nsew -height 100 -width 200
  pack .vpane -anchor n -side top -fill both -expand 1
  
  # -- Index File List
  #
  frame .vpane.files.index -height 100 -width 200
- label .vpane.files.index.title -text {Staged Changes (Will Be Committed)} \
+ label .vpane.files.index.title -text [mc "Staged Changes (Will Commit)"] \
        -background lightgreen
  text $ui_index -background white -borderwidth 0 \
        -width 20 -height 10 \
@@@ -2197,12 -2267,11 +2267,11 @@@ pack .vpane.files.index.title -side to
  pack .vpane.files.index.sx -side bottom -fill x
  pack .vpane.files.index.sy -side right -fill y
  pack $ui_index -side left -fill both -expand 1
- .vpane.files add .vpane.files.index -sticky nsew
  
  # -- Working Directory File List
  #
  frame .vpane.files.workdir -height 100 -width 200
- label .vpane.files.workdir.title -text {Unstaged Changes (Will Not Be Committed)} \
+ label .vpane.files.workdir.title -text [mc "Unstaged Changes"] \
        -background lightsalmon
  text $ui_workdir -background white -borderwidth 0 \
        -width 20 -height 10 \
@@@ -2217,7 -2286,9 +2286,9 @@@ pack .vpane.files.workdir.title -side t
  pack .vpane.files.workdir.sx -side bottom -fill x
  pack .vpane.files.workdir.sy -side right -fill y
  pack $ui_workdir -side left -fill both -expand 1
  .vpane.files add .vpane.files.workdir -sticky nsew
+ .vpane.files add .vpane.files.index -sticky nsew
  
  foreach i [list $ui_index $ui_workdir] {
        rmsel_tag $i
@@@ -2230,8 -2301,8 +2301,8 @@@ unset 
  frame .vpane.lower -height 300 -width 400
  frame .vpane.lower.commarea
  frame .vpane.lower.diff -relief sunken -borderwidth 1
- pack .vpane.lower.commarea -side top -fill x
- pack .vpane.lower.diff -side bottom -fill both -expand 1
+ pack .vpane.lower.diff -fill both -expand 1
+ pack .vpane.lower.commarea -side bottom -fill x
  .vpane add .vpane.lower -sticky nsew
  
  # -- Commit Area Buttons
@@@ -2243,29 -2314,29 +2314,29 @@@ label .vpane.lower.commarea.buttons.l -
  pack .vpane.lower.commarea.buttons.l -side top -fill x
  pack .vpane.lower.commarea.buttons -side left -fill y
  
- button .vpane.lower.commarea.buttons.rescan -text {Rescan} \
+ button .vpane.lower.commarea.buttons.rescan -text [mc Rescan] \
        -command do_rescan
  pack .vpane.lower.commarea.buttons.rescan -side top -fill x
  lappend disable_on_lock \
        {.vpane.lower.commarea.buttons.rescan conf -state}
  
- button .vpane.lower.commarea.buttons.incall -text {Stage Changed} \
+ button .vpane.lower.commarea.buttons.incall -text [mc "Stage Changed"] \
        -command do_add_all
  pack .vpane.lower.commarea.buttons.incall -side top -fill x
  lappend disable_on_lock \
        {.vpane.lower.commarea.buttons.incall conf -state}
  
- button .vpane.lower.commarea.buttons.signoff -text {Sign Off} \
+ button .vpane.lower.commarea.buttons.signoff -text [mc "Sign Off"] \
        -command do_signoff
  pack .vpane.lower.commarea.buttons.signoff -side top -fill x
  
- button .vpane.lower.commarea.buttons.commit -text {Commit} \
+ button .vpane.lower.commarea.buttons.commit -text [mc Commit@@verb] \
        -command do_commit
  pack .vpane.lower.commarea.buttons.commit -side top -fill x
  lappend disable_on_lock \
        {.vpane.lower.commarea.buttons.commit conf -state}
  
- button .vpane.lower.commarea.buttons.push -text {Push} \
+ button .vpane.lower.commarea.buttons.push -text [mc Push] \
        -command do_push_anywhere
  pack .vpane.lower.commarea.buttons.push -side top -fill x
  
@@@ -2276,14 -2347,14 +2347,14 @@@ frame .vpane.lower.commarea.buffer.head
  set ui_comm .vpane.lower.commarea.buffer.t
  set ui_coml .vpane.lower.commarea.buffer.header.l
  radiobutton .vpane.lower.commarea.buffer.header.new \
-       -text {New Commit} \
+       -text [mc "New Commit"] \
        -command do_select_commit_type \
        -variable selected_commit_type \
        -value new
  lappend disable_on_lock \
        [list .vpane.lower.commarea.buffer.header.new conf -state]
  radiobutton .vpane.lower.commarea.buffer.header.amend \
-       -text {Amend Last Commit} \
+       -text [mc "Amend Last Commit"] \
        -command do_select_commit_type \
        -variable selected_commit_type \
        -value amend
@@@ -2295,12 -2366,12 +2366,12 @@@ label $ui_coml 
  proc trace_commit_type {varname args} {
        global ui_coml commit_type
        switch -glob -- $commit_type {
-       initial       {set txt {Initial Commit Message:}}
-       amend         {set txt {Amended Commit Message:}}
-       amend-initial {set txt {Amended Initial Commit Message:}}
-       amend-merge   {set txt {Amended Merge Commit Message:}}
-       merge         {set txt {Merge Commit Message:}}
-       *             {set txt {Commit Message:}}
+       initial       {set txt [mc "Initial Commit Message:"]}
+       amend         {set txt [mc "Amended Commit Message:"]}
+       amend-initial {set txt [mc "Amended Initial Commit Message:"]}
+       amend-merge   {set txt [mc "Amended Merge Commit Message:"]}
+       merge         {set txt [mc "Merge Commit Message:"]}
+       *             {set txt [mc "Commit Message:"]}
        }
        $ui_coml conf -text $txt
  }
@@@ -2329,23 -2400,23 +2400,23 @@@ pack .vpane.lower.commarea.buffer -sid
  set ctxm .vpane.lower.commarea.buffer.ctxm
  menu $ctxm -tearoff 0
  $ctxm add command \
-       -label {Cut} \
+       -label [mc Cut] \
        -command {tk_textCut $ui_comm}
  $ctxm add command \
-       -label {Copy} \
+       -label [mc Copy] \
        -command {tk_textCopy $ui_comm}
  $ctxm add command \
-       -label {Paste} \
+       -label [mc Paste] \
        -command {tk_textPaste $ui_comm}
  $ctxm add command \
-       -label {Delete} \
+       -label [mc Delete] \
        -command {$ui_comm delete sel.first sel.last}
  $ctxm add separator
  $ctxm add command \
-       -label {Select All} \
+       -label [mc "Select All"] \
        -command {focus $ui_comm;$ui_comm tag add sel 0.0 end}
  $ctxm add command \
-       -label {Copy All} \
+       -label [mc "Copy All"] \
        -command {
                $ui_comm tag add sel 0.0 end
                tk_textCopy $ui_comm
        }
  $ctxm add separator
  $ctxm add command \
-       -label {Sign Off} \
+       -label [mc "Sign Off"] \
        -command do_signoff
  bind_button3 $ui_comm "tk_popup $ctxm %X %Y"
  
@@@ -2369,7 -2440,7 +2440,7 @@@ proc trace_current_diff_path {varname a
        } else {
                set p $current_diff_path
                set s [mapdesc [lindex $file_states($p) 0] $p]
-               set f {File:}
+               set f [mc "File:"]
                set p [escape_path $p]
                set o normal
        }
@@@ -2403,7 -2474,7 +2474,7 @@@ pack .vpane.lower.diff.header.path -fil
  set ctxm .vpane.lower.diff.header.ctxm
  menu $ctxm -tearoff 0
  $ctxm add command \
-       -label {Copy} \
+       -label [mc Copy] \
        -command {
                clipboard clear
                clipboard append \
@@@ -2471,19 -2542,19 +2542,19 @@@ $ui_diff tag raise se
  set ctxm .vpane.lower.diff.body.ctxm
  menu $ctxm -tearoff 0
  $ctxm add command \
-       -label {Refresh} \
+       -label [mc Refresh] \
        -command reshow_diff
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add command \
-       -label {Copy} \
+       -label [mc Copy] \
        -command {tk_textCopy $ui_diff}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add command \
-       -label {Select All} \
+       -label [mc "Select All"] \
        -command {focus $ui_diff;$ui_diff tag add sel 0.0 end}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add command \
-       -label {Copy All} \
+       -label [mc "Copy All"] \
        -command {
                $ui_diff tag add sel 0.0 end
                tk_textCopy $ui_diff
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add separator
  $ctxm add command \
-       -label {Apply/Reverse Hunk} \
+       -label [mc "Apply/Reverse Hunk"] \
        -command {apply_hunk $cursorX $cursorY}
  set ui_diff_applyhunk [$ctxm index last]
  lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state]
  $ctxm add separator
  $ctxm add command \
-       -label {Decrease Font Size} \
+       -label [mc "Decrease Font Size"] \
        -command {incr_font_size font_diff -1}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add command \
-       -label {Increase Font Size} \
+       -label [mc "Increase Font Size"] \
        -command {incr_font_size font_diff 1}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add separator
  $ctxm add command \
-       -label {Show Less Context} \
+       -label [mc "Show Less Context"] \
        -command {if {$repo_config(gui.diffcontext) >= 1} {
                incr repo_config(gui.diffcontext) -1
                reshow_diff
        }}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add command \
-       -label {Show More Context} \
+       -label [mc "Show More Context"] \
        -command {if {$repo_config(gui.diffcontext) < 99} {
                incr repo_config(gui.diffcontext)
                reshow_diff
        }}
  lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state]
  $ctxm add separator
- $ctxm add command -label {Options...} \
+ $ctxm add command -label [mc "Options..."] \
        -command do_options
  proc popup_diff_menu {ctxm x y X Y} {
        global current_diff_path file_states
        set ::cursorX $x
        set ::cursorY $y
        if {$::ui_index eq $::current_diff_side} {
-               set l "Unstage Hunk From Commit"
+               set l [mc "Unstage Hunk From Commit"]
        } else {
-               set l "Stage Hunk For Commit"
+               set l [mc "Stage Hunk For Commit"]
        }
        if {$::is_3way_diff
                || $current_diff_path eq {}
@@@ -2549,7 -2620,7 +2620,7 @@@ bind_button3 $ui_diff [list popup_diff_
  #
  set main_status [::status_bar::new .status]
  pack .status -anchor w -side bottom -fill x
- $main_status show {Initializing...}
+ $main_status show [mc "Initializing..."]
  
  # -- Load geometry
  #
@@@ -2557,17 -2628,19 +2628,19 @@@ catch 
  set gm $repo_config(gui.geometry)
  wm geometry . [lindex $gm 0]
  .vpane sash place 0 \
-       [lindex [.vpane sash coord 0] 0] \
-       [lindex $gm 1]
+       [lindex $gm 1] \
+       [lindex [.vpane sash coord 0] 1]
  .vpane.files sash place 0 \
-       [lindex $gm 2] \
-       [lindex [.vpane.files sash coord 0] 1]
+       [lindex [.vpane.files sash coord 0] 0] \
+       [lindex $gm 2]
  unset gm
  }
  
  # -- Key Bindings
  #
  bind $ui_comm <$M1B-Key-Return> {do_commit;break}
+ bind $ui_comm <$M1B-Key-t> {do_add_selection;break}
+ bind $ui_comm <$M1B-Key-T> {do_add_selection;break}
  bind $ui_comm <$M1B-Key-i> {do_add_all;break}
  bind $ui_comm <$M1B-Key-I> {do_add_all;break}
  bind $ui_comm <$M1B-Key-x> {tk_textCut %W;break}
@@@ -2617,6 -2690,8 +2690,8 @@@ bind .   <$M1B-Key-r> do_resca
  bind .   <$M1B-Key-R> do_rescan
  bind .   <$M1B-Key-s> do_signoff
  bind .   <$M1B-Key-S> do_signoff
+ bind .   <$M1B-Key-t> do_add_selection
+ bind .   <$M1B-Key-T> do_add_selection
  bind .   <$M1B-Key-i> do_add_all
  bind .   <$M1B-Key-I> do_add_all
  bind .   <$M1B-Key-Return> do_commit
@@@ -2640,13 -2715,13 +2715,13 @@@ focus -force $ui_com
  if {[is_Cygwin]} {
        set ignored_env 0
        set suggest_user {}
-       set msg "Possible environment issues exist.
+       set msg [mc "Possible environment issues exist.
  
  The following environment variables are probably
  going to be ignored by any Git subprocess run
- by [appname]:
+ by %s:
  
- "
+ " [appname]]
        foreach name [array names env] {
                switch -regexp -- $name {
                {^GIT_INDEX_FILE$} -
                }
        }
        if {$ignored_env > 0} {
-               append msg "
+               append msg [mc "
  This is due to a known issue with the
- Tcl binary distributed by Cygwin."
+ Tcl binary distributed by Cygwin."]
  
                if {$suggest_user ne {}} {
-                       append msg "
+                       append msg [mc "
  
- A good replacement for $suggest_user
+ A good replacement for %s
  is placing values for the user.name and
  user.email settings into your personal
  ~/.gitconfig file.
- "
+ " $suggest_user]
                }
                warn_popup $msg
        }
  if {[is_enabled transport]} {
        load_all_remotes
  
-       populate_fetch_menu
+       set n [.mbar.remote index end]
        populate_push_menu
+       populate_fetch_menu
+       set n [expr {[.mbar.remote index end] - $n}]
+       if {$n > 0} {
+               .mbar.remote insert $n separator
+       }
+       unset n
  }
  
  if {[winfo exists $ui_comm]} {
diff --combined git-gui/lib/about.tcl
index 0000000000000000000000000000000000000000,719fc547b3e157cdb14a8a09ba77a1d7c5f1f585..719fc547b3e157cdb14a8a09ba77a1d7c5f1f585
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,81 +1,81 @@@
+ # git-gui about git-gui dialog
+ # Copyright (C) 2006, 2007 Shawn Pearce
+ proc do_about {} {
+       global appvers copyright oguilib
+       global tcl_patchLevel tk_patchLevel
+       set w .about_dialog
+       toplevel $w
+       wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
+       pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10
+       label $w.header -text [mc "About %s" [appname]] \
+               -font font_uibold
+       pack $w.header -side top -fill x
+       frame $w.buttons
+       button $w.buttons.close -text {Close} \
+               -default active \
+               -command [list destroy $w]
+       pack $w.buttons.close -side right
+       pack $w.buttons -side bottom -fill x -pady 10 -padx 10
+       label $w.desc \
+               -text "[mc "git-gui - a graphical user interface for Git."]\n$copyright" \
+               -padx 5 -pady 5 \
+               -justify left \
+               -anchor w \
+               -borderwidth 1 \
+               -relief solid
+       pack $w.desc -side top -fill x -padx 5 -pady 5
+       set v {}
+       append v "git-gui version $appvers\n"
+       append v "[git version]\n"
+       append v "\n"
+       if {$tcl_patchLevel eq $tk_patchLevel} {
+               append v "Tcl/Tk version $tcl_patchLevel"
+       } else {
+               append v "Tcl version $tcl_patchLevel"
+               append v ", Tk version $tk_patchLevel"
+       }
+       set d {}
+       append d "git wrapper: $::_git\n"
+       append d "git exec dir: [gitexec]\n"
+       append d "git-gui lib: $oguilib"
+       label $w.vers \
+               -text $v \
+               -padx 5 -pady 5 \
+               -justify left \
+               -anchor w \
+               -borderwidth 1 \
+               -relief solid
+       pack $w.vers -side top -fill x -padx 5 -pady 5
+       label $w.dirs \
+               -text $d \
+               -padx 5 -pady 5 \
+               -justify left \
+               -anchor w \
+               -borderwidth 1 \
+               -relief solid
+       pack $w.dirs -side top -fill x -padx 5 -pady 5
+       menu $w.ctxm -tearoff 0
+       $w.ctxm add command \
+               -label {Copy} \
+               -command "
+               clipboard clear
+               clipboard append -format STRING -type STRING -- \[$w.vers cget -text\]
+       "
+       bind $w <Visibility> "grab $w; focus $w.buttons.close"
+       bind $w <Key-Escape> "destroy $w"
+       bind $w <Key-Return> "destroy $w"
+       bind_button3 $w.vers "tk_popup $w.ctxm %X %Y; grab $w; focus $w"
+       wm title $w "About [appname]"
+       tkwait window $w
+ }
diff --combined git-gui/lib/blame.tcl
index 96072847a2ffeec814f499657744e5ed4f8988c0,00ecf21333c976d4c6002cd66a055803362f3523..00ecf21333c976d4c6002cd66a055803362f3523
@@@ -74,11 -74,11 +74,11 @@@ constructor new {i_commit i_path} 
        set path   $i_path
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): File Viewer"
+       wm title $top [append "[appname] ([reponame]): " [mc "File Viewer"]]
  
        frame $w.header -background gold
        label $w.header.commit_l \
-               -text {Commit:} \
+               -text [mc "Commit:"] \
                -background gold \
                -anchor w \
                -justify left
                -anchor w \
                -justify left
        label $w.header.path_l \
-               -text {File:} \
+               -text [mc "File:"] \
                -background gold \
                -anchor w \
                -justify left
  
        menu $w.ctxm -tearoff 0
        $w.ctxm add command \
-               -label "Copy Commit" \
+               -label [mc "Copy Commit"] \
                -command [cb _copycommit]
  
        foreach i $w_columns {
@@@ -366,7 -366,7 +366,7 @@@ method _load {jump} 
        set amov_data [list [list]]
        set asim_data [list [list]]
  
-       $status show "Reading $commit:[escape_path $path]..."
+       $status show [mc "Reading %s..." "$commit:[escape_path $path]"]
        $w_path conf -text [escape_path $path]
        if {$commit eq {}} {
                set fd [open $path r]
@@@ -470,7 -470,7 +470,7 @@@ method _read_file {fd jump} 
  
                _exec_blame $this $w_asim @asim_data \
                        [list] \
-                       { copy/move tracking}
+                       [mc "Loading copy/move tracking annotations..."]
        }
  } ifdeleted { catch {close $fd} }
  
@@@ -489,8 -489,8 +489,8 @@@ method _exec_blame {cur_w cur_d option
        set blame_lines 0
  
        $status start \
-               "Loading$cur_s annotations..." \
-               {lines annotated}
+               $cur_s \
+               [mc "lines annotated"]
  }
  
  method _read_blame {fd cur_w cur_d} {
                if {$cur_w eq $w_asim} {
                        _exec_blame $this $w_amov @amov_data \
                                $original_options \
-                               { original location}
+                               [mc "Loading original location annotations..."]
                } else {
                        set current_fd {}
-                       $status stop {Annotation complete.}
+                       $status stop [mc "Annotation complete."]
                }
        } else {
                $status update $blame_lines $total_lines
@@@ -728,7 -728,7 +728,7 @@@ method _showcommit {cur_w lno} 
  
        if {$dat eq {}} {
                set cmit {}
-               $w_cviewer insert end "Loading annotation..." still_loading
+               $w_cviewer insert end [mc "Loading annotation..."] still_loading
        } else {
                set cmit [lindex $dat 0]
                set file [lindex $dat 1]
                set author_time {}
                catch {set author_name $header($cmit,author)}
                catch {set author_email $header($cmit,author-mail)}
-               catch {set author_time [clock format \
-                       $header($cmit,author-time) \
-                       -format {%Y-%m-%d %H:%M:%S}
-               ]}
+               catch {set author_time [format_date $header($cmit,author-time)]}
  
                set committer_name {}
                set committer_email {}
                set committer_time {}
                catch {set committer_name $header($cmit,committer)}
                catch {set committer_email $header($cmit,committer-mail)}
-               catch {set committer_time [clock format \
-                       $header($cmit,committer-time) \
-                       -format {%Y-%m-%d %H:%M:%S}
-               ]}
+               catch {set committer_time [format_date $header($cmit,committer-time)]}
  
                if {[catch {set msg $header($cmit,message)}]} {
                        set msg {}
                }
  
                $w_cviewer insert end "commit $cmit\n" header_key
-               $w_cviewer insert end "Author:\t" header_key
+               $w_cviewer insert end [strcat [mc "Author:"] "\t"] header_key
                $w_cviewer insert end "$author_name $author_email" header_val
                $w_cviewer insert end "  $author_time\n" header_val
  
-               $w_cviewer insert end "Committer:\t" header_key
+               $w_cviewer insert end [strcat [mc "Committer:"] "\t"] header_key
                $w_cviewer insert end "$committer_name $committer_email" header_val
                $w_cviewer insert end "  $committer_time\n" header_val
  
                if {$file ne $path} {
-                       $w_cviewer insert end "Original File:\t" header_key
+                       $w_cviewer insert end [strcat [mc "Original File:"] "\t"] header_key
                        $w_cviewer insert end "[escape_path $file]\n" header_val
                }
  
@@@ -892,10 -886,7 +886,7 @@@ method _open_tooltip {cur_w} 
        set author_time {}
        catch {set author_name $header($cmit,author)}
        catch {set summary     $header($cmit,summary)}
-       catch {set author_time [clock format \
-               $header($cmit,author-time) \
-               -format {%Y-%m-%d %H:%M:%S}
-       ]}
+       catch {set author_time [format_date $header($cmit,author-time)]}
  
        $tooltip_t insert end "commit $cmit\n"
        $tooltip_t insert end "$author_name  $author_time\n"
                set author_time {}
                catch {set author_name $header($cmit,author)}
                catch {set summary     $header($cmit,summary)}
-               catch {set author_time [clock format \
-                       $header($cmit,author-time) \
-                       -format {%Y-%m-%d %H:%M:%S}
-               ]}
+               catch {set author_time [format_date $header($cmit,author-time)]}
  
-               $tooltip_t insert end "Originally By:\n" section_header
+               $tooltip_t insert end [strcat [mc "Originally By:"] "\n"] section_header
                $tooltip_t insert end "commit $cmit\n"
                $tooltip_t insert end "$author_name  $author_time\n"
                $tooltip_t insert end "$summary\n"
  
                if {$file ne $path} {
-                       $tooltip_t insert end "In File: " section_header
+                       $tooltip_t insert end [strcat [mc "In File:"] " "] section_header
                        $tooltip_t insert end "$file\n"
                }
  
                $tooltip_t insert end "\n"
-               $tooltip_t insert end "Copied Or Moved Here By:\n" section_header
+               $tooltip_t insert end [strcat [mc "Copied Or Moved Here By:"] "\n"] section_header
                $tooltip_t insert end $save
        }
  
index 72c45b45541749699460de1122c711888b389403,6603703ea163d830c7de1478aa2dd737c4d9d499..6603703ea163d830c7de1478aa2dd737c4d9d499
@@@ -11,37 -11,37 +11,37 @@@ field opt_detach    0; # force a detach
  
  constructor dialog {} {
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Checkout Branch"
+       wm title $top [append "[appname] ([reponame]): " [mc "Checkout Branch"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
  
-       label $w.header -text {Checkout Branch} -font font_uibold
+       label $w.header -text [mc "Checkout Branch"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.create -text Checkout \
+       button $w.buttons.create -text [mc Checkout] \
                -default active \
                -command [cb _checkout]
        pack $w.buttons.create -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       set w_rev [::choose_rev::new $w.rev {Revision}]
+       set w_rev [::choose_rev::new $w.rev [mc Revision]]
        $w_rev bind_listbox <Double-Button-1> [cb _checkout]
        pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5
  
-       labelframe $w.options -text {Options}
+       labelframe $w.options -text [mc Options]
  
        checkbutton $w.options.fetch \
-               -text {Fetch Tracking Branch} \
+               -text [mc "Fetch Tracking Branch"] \
                -variable @opt_fetch
        pack $w.options.fetch -anchor nw
  
        checkbutton $w.options.detach \
-               -text {Detach From Local Branch} \
+               -text [mc "Detach From Local Branch"] \
                -variable @opt_detach
        pack $w.options.detach -anchor nw
  
index def615d19d6a0ba4fd76553146f29129be5baf17,53dfb4ce6bb053349fbed39af8ffaf5a143b6567..53dfb4ce6bb053349fbed39af8ffaf5a143b6567
@@@ -19,28 -19,28 +19,28 @@@ constructor dialog {} 
        global repo_config
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Create Branch"
+       wm title $top [append "[appname] ([reponame]): " [mc "Create Branch"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
  
-       label $w.header -text {Create New Branch} -font font_uibold
+       label $w.header -text [mc "Create New Branch"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.create -text Create \
+       button $w.buttons.create -text [mc Create] \
                -default active \
                -command [cb _create]
        pack $w.buttons.create -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       labelframe $w.desc -text {Branch Name}
+       labelframe $w.desc -text [mc "Branch Name"]
        radiobutton $w.desc.name_r \
                -anchor w \
-               -text {Name:} \
+               -text [mc "Name:"] \
                -value user \
                -variable @name_type
        set w_name $w.desc.name_t
@@@ -55,7 -55,7 +55,7 @@@
  
        radiobutton $w.desc.match_r \
                -anchor w \
-               -text {Match Tracking Branch Name} \
+               -text [mc "Match Tracking Branch Name"] \
                -value match \
                -variable @name_type
        grid $w.desc.match_r -sticky we -padx {0 5} -columnspan 2
        grid columnconfigure $w.desc 1 -weight 1
        pack $w.desc -anchor nw -fill x -pady 5 -padx 5
  
-       set w_rev [::choose_rev::new $w.rev {Starting Revision}]
+       set w_rev [::choose_rev::new $w.rev [mc "Starting Revision"]]
        pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5
  
-       labelframe $w.options -text {Options}
+       labelframe $w.options -text [mc Options]
  
        frame $w.options.merge
-       label $w.options.merge.l -text {Update Existing Branch:}
+       label $w.options.merge.l -text [mc "Update Existing Branch:"]
        pack $w.options.merge.l -side left
        radiobutton $w.options.merge.no \
-               -text No \
+               -text [mc No] \
                -value none \
                -variable @opt_merge
        pack $w.options.merge.no -side left
        radiobutton $w.options.merge.ff \
-               -text {Fast Forward Only} \
+               -text [mc "Fast Forward Only"] \
                -value ff \
                -variable @opt_merge
        pack $w.options.merge.ff -side left
        radiobutton $w.options.merge.reset \
-               -text {Reset} \
+               -text [mc Reset] \
                -value reset \
                -variable @opt_merge
        pack $w.options.merge.reset -side left
        pack $w.options.merge -anchor nw
  
        checkbutton $w.options.fetch \
-               -text {Fetch Tracking Branch} \
+               -text [mc "Fetch Tracking Branch"] \
                -variable @opt_fetch
        pack $w.options.fetch -anchor nw
  
        checkbutton $w.options.checkout \
-               -text {Checkout After Creation} \
+               -text [mc "Checkout After Creation"] \
                -variable @opt_checkout
        pack $w.options.checkout -anchor nw
        pack $w.options -anchor nw -fill x -pady 5 -padx 5
@@@ -128,7 -128,7 +128,7 @@@ method _create {} 
                                -type ok \
                                -title [wm title $w] \
                                -parent $w \
-                               -message "Please select a tracking branch."
+                               -message [mc "Please select a tracking branch."]
                        return
                }
                if {![regsub ^refs/heads/ [lindex $spec 2] {} newbranch]} {
                                -type ok \
                                -title [wm title $w] \
                                -parent $w \
-                               -message "Tracking branch [$w get] is not a branch in the remote repository."
+                               -message [mc "Tracking branch %s is not a branch in the remote repository." [$w get]]
                        return
                }
        }
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Please supply a branch name."
+                       -message [mc "Please supply a branch name."]
                focus $w_name
                return
        }
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "'$newbranch' is not an acceptable branch name."
+                       -message [mc "'%s' is not an acceptable branch name." $newbranch]
                focus $w_name
                return
        }
index c7573c6c7215cd4cd11f322ae3dba5b77b938078,86c4f73370a76ffa0196be0c58f11092b101cf0b..86c4f73370a76ffa0196be0c58f11092b101cf0b
@@@ -12,29 -12,29 +12,29 @@@ constructor dialog {} 
        global current_branch
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Delete Branch"
+       wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
  
-       label $w.header -text {Delete Local Branch} -font font_uibold
+       label $w.header -text [mc "Delete Local Branch"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
        set w_delete $w.buttons.delete
        button $w_delete \
-               -text Delete \
+               -text [mc Delete] \
                -default active \
                -state disabled \
                -command [cb _delete]
        pack $w_delete -side right
        button $w.buttons.cancel \
-               -text {Cancel} \
+               -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       labelframe $w.list -text {Local Branches}
+       labelframe $w.list -text [mc "Local Branches"]
        set w_heads $w.list.l
        listbox $w_heads \
                -height 10 \
@@@ -49,9 -49,9 +49,9 @@@
  
        set w_check [choose_rev::new \
                $w.check \
-               {Delete Only If Merged Into} \
+               [mc "Delete Only If Merged Into"] \
                ]
-       $w_check none {Always (Do not perform merge test.)}
+       $w_check none [mc "Always (Do not perform merge test.)"]
        pack $w.check -anchor nw -fill x -pady 5 -padx 5
  
        foreach h [load_all_heads] {
@@@ -100,7 -100,7 +100,7 @@@ method _delete {} 
                lappend to_delete [list $b $o]
        }
        if {$not_merged ne {}} {
-               set msg "The following branches are not completely merged into [$w_check get]:
+               set msg "[mc "The following branches are not completely merged into %s:" [$w_check get]]
  
   - [join $not_merged "\n - "]"
                tk_messageBox \
        }
        if {$to_delete eq {}} return
        if {$check_cmt eq {}} {
-               set msg {Recovering deleted branches is difficult.
- Delete the selected branches?}
+               set msg [mc "Recovering deleted branches is difficult. \n\n Delete the selected branches?"]
                if {[tk_messageBox \
                        -icon warning \
                        -type yesno \
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Failed to delete branches:\n$failed"
+                       -message [mc "Failed to delete branches:\n%s" $failed]
        }
  
        destroy $w
index 1cadc31d207c49eca39bdfaa2e1c19e790d323e5,166538808f461275075e2b03c56ddc15b5813e1a..166538808f461275075e2b03c56ddc15b5813e1a
@@@ -11,7 -11,7 +11,7 @@@ constructor dialog {} 
        global current_branch
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Rename Branch"
+       wm title $top [append "[appname] ([reponame]): " [mc "Rename Branch"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
        set oldname $current_branch
        set newname [get_config gui.newbranchtemplate]
  
-       label $w.header -text {Rename Branch} -font font_uibold
+       label $w.header -text [mc "Rename Branch"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.rename -text Rename \
+       button $w.buttons.rename -text [mc Rename] \
                -default active \
                -command [cb _rename]
        pack $w.buttons.rename -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
        frame $w.rename
-       label $w.rename.oldname_l -text {Branch:}
+       label $w.rename.oldname_l -text [mc "Branch:"]
        eval tk_optionMenu $w.rename.oldname_m @oldname [load_all_heads]
  
-       label $w.rename.newname_l -text {New Name:}
+       label $w.rename.newname_l -text [mc "New Name:"]
        entry $w.rename.newname_t \
                -borderwidth 1 \
                -relief sunken \
@@@ -72,7 -72,7 +72,7 @@@ method _rename {} 
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Please select a branch to rename."
+                       -message [mc "Please select a branch to rename."]
                focus $w.rename.oldname_m
                return
        }
@@@ -83,7 -83,7 +83,7 @@@
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Please supply a branch name."
+                       -message [mc "Please supply a branch name."]
                focus $w.rename.newname_t
                return
        }
@@@ -93,7 -93,7 +93,7 @@@
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Branch '$newname' already exists."
+                       -message [mc "Branch '%s' already exists." $newname]
                focus $w.rename.newname_t
                return
        }
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "We do not like '$newname' as a branch name."
+                       -message [mc "'%s' is not an acceptable branch name." $newname]
                focus $w.rename.newname_t
                return
        }
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Failed to rename '$oldname'.\n\n$err"
+                       -message [strcat [mc "Failed to rename '%s'." $oldname] "\n\n$err"]
                return
        }
  
diff --combined git-gui/lib/browser.tcl
index 31349009aebcd769472fa4b912d1068b27b770af,53d5a628165a29c592ab14c234a000a56d7c6a12..53d5a628165a29c592ab14c234a000a56d7c6a12
@@@ -14,7 -14,7 +14,7 @@@ field 
  field browser_commit
  field browser_path
  field browser_files  {}
- field browser_status {Starting...}
+ field browser_status [mc "Starting..."]
  field browser_stack  {}
  field browser_busy   1
  
@@@ -23,7 -23,7 +23,7 @@@ field ls_buf     {}; # Buffered record 
  constructor new {commit {path {}}} {
        global cursor_ptr M1B
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): File Browser"
+       wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]]
  
        set browser_commit $commit
        set browser_path $browser_commit:$path
@@@ -122,7 -122,7 +122,7 @@@ method _parent {} 
                } else {
                        regsub {/[^/]+$} $browser_path {} browser_path
                }
-               set browser_status "Loading $browser_path..."
+               set browser_status [mc "Loading %s..." $browser_path]
                _ls $this [lindex $parent 0] [lindex $parent 1]
        }
  }
@@@ -139,7 -139,7 +139,7 @@@ method _enter {} 
                tree {
                        set name [lindex $info 2]
                        set escn [escape_path $name]
-                       set browser_status "Loading $escn..."
+                       set browser_status [mc "Loading %s..." $escn]
                        append browser_path $escn
                        _ls $this [lindex $info 1] $name
                }
@@@ -183,7 -183,7 +183,7 @@@ method _ls {tree_id {name {}}} 
                        -align center -padx 5 -pady 1 \
                        -name icon0 \
                        -image ::browser::img_parent
-               $w insert end {[Up To Parent]}
+               $w insert end [mc "\[Up To Parent\]"]
                lappend browser_files parent
        }
        lappend browser_stack [list $tree_id $name]
@@@ -242,7 -242,7 +242,7 @@@ method _read {fd} 
  
        if {[eof $fd]} {
                close $fd
-               set browser_status Ready.
+               set browser_status [mc "Ready."]
                set browser_busy 0
                set ls_buf {}
                if {$n > 0} {
@@@ -263,27 -263,27 +263,27 @@@ field w_rev          ; # mega-widget t
  
  constructor dialog {} {
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Browse Branch Files"
+       wm title $top [append "[appname] ([reponame]): " [mc "Browse Branch Files"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
  
        label $w.header \
-               -text {Browse Branch Files} \
+               -text [mc "Browse Branch Files"] \
                -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.browse -text Browse \
+       button $w.buttons.browse -text [mc Browse] \
                -default active \
                -command [cb _open]
        pack $w.buttons.browse -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       set w_rev [::choose_rev::new $w.rev {Revision}]
+       set w_rev [::choose_rev::new $w.rev [mc Revision]]
        $w_rev bind_listbox <Double-Button-1> [cb _open]
        pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5
  
index 76f04f2854e85d51caface604d4fc10627f67620,f24396692474e3da66f9502b2f06f13583a3deeb..f24396692474e3da66f9502b2f06f13583a3deeb
@@@ -76,7 -76,7 +76,7 @@@ method run {} 
                _toplevel $this {Refreshing Tracking Branch}
                set w_cons [::console::embed \
                        $w.console \
-                       "Fetching $r_name from $remote"]
+                       [mc "Fetching %s from %s" $r_name $remote]]
                pack $w.console -fill both -expand 1
                $w_cons exec $cmd [cb _finish_fetch]
  
@@@ -124,7 -124,7 +124,7 @@@ method _finish_fetch {ok} 
                }
                if {[catch {set new_hash [git rev-parse --verify "$l_trck^0"]} err]} {
                        set ok 0
-                       $w_cons insert "fatal: Cannot resolve $l_trck"
+                       $w_cons insert [mc "fatal: Cannot resolve %s" $l_trck]
                        $w_cons insert $err
                }
        }
                destroy $w
                set w {}
        } else {
-               button $w.close -text Close -command [list destroy $w]
+               button $w.close -text [mc Close] -command [list destroy $w]
                pack $w.close -side bottom -anchor e -padx 10 -pady 10
        }
  
@@@ -166,7 -166,7 +166,7 @@@ method _update_ref {} 
                # Assume it does not exist, and that is what the error was.
                #
                if {!$create} {
-                       _error $this "Branch '$newbranch' does not exist."
+                       _error $this [mc "Branch '%s' does not exist." $newbranch]
                        return 0
                }
  
                # We were told to create it, but not do a merge.
                # Bad.  Name shouldn't have existed.
                #
-               _error $this "Branch '$newbranch' already exists."
+               _error $this [mc "Branch '%s' already exists." $newbranch]
                return 0
        } elseif {!$create && $merge_type eq {none}} {
                # We aren't creating, it exists and we don't merge.
                                        set new $cur
                                        set new_hash $cur
                                } else {
-                                       _error $this "Branch '$newbranch' already exists.\n\nIt cannot fast-forward to $new_expr.\nA merge is required."
+                                       _error $this [mc "Branch '%s' already exists.\n\nIt cannot fast-forward to %s.\nA merge is required." $newbranch $new_expr]
                                        return 0
                                }
                        }
                                }
                        }
                        default {
-                               _error $this "Merge strategy '$merge_type' not supported."
+                               _error $this [mc "Merge strategy '%s' not supported." $merge_type]
                                return 0
                        }
                        }
                if {[catch {
                                git update-ref -m $reflog_msg $ref $new $cur
                        } err]} {
-                       _error $this "Failed to update '$newbranch'.\n\n$err"
+                       _error $this [strcat [mc "Failed to update '%s'." $newbranch] "\n\n$err"]
                        return 0
                }
        }
@@@ -248,7 -248,7 +248,7 @@@ method _checkout {} 
        if {[lock_index checkout_op]} {
                after idle [cb _start_checkout]
        } else {
-               _error $this "Staging area (index) is already locked."
+               _error $this [mc "Staging area (index) is already locked."]
                delete_this
        }
  }
@@@ -263,12 -263,12 +263,12 @@@ method _start_checkout {} 
                && $curType eq {normal}
                && $curHEAD eq $HEAD} {
        } elseif {$commit_type ne $curType || $HEAD ne $curHEAD} {
-               info_popup {Last scanned state does not match repository state.
+               info_popup [mc "Last scanned state does not match repository state.
  
  Another Git program has modified this repository since the last scan.  A rescan must be performed before the current branch can be changed.
  
  The rescan will be automatically started now.
- }
+ "]
                unlock_index
                rescan ui_ready
                delete_this
@@@ -319,7 -319,7 +319,7 @@@ method _readtree {} 
  
        set readtree_d {}
        $::main_status start \
-               "Updating working directory to '[_name $this]'..." \
+               [mc "Updating working directory to '%s'..." [_name $this]] \
                {files checked out}
  
        set fd [git_read --stderr read-tree \
@@@ -350,12 -350,12 +350,12 @@@ method _readtree_wait {fd} 
        if {[catch {close $fd}]} {
                set err $readtree_d
                regsub {^fatal: } $err {} err
-               $::main_status stop "Aborted checkout of '[_name $this]' (file level merging is required)."
-               warn_popup "File level merge required.
+               $::main_status stop [mc "Aborted checkout of '%s' (file level merging is required)." [_name $this]]
+               warn_popup [strcat [mc "File level merge required."] "
  
  $err
  
- Staying on branch '$current_branch'."
+ " [mc "Staying on branch '%s'." $current_branch]]
                unlock_index
                delete_this
                return
@@@ -426,9 -426,9 +426,9 @@@ method _after_readtree {} 
        }
  
        if {$is_detached} {
-               info_popup "You are no longer on a local branch.
+               info_popup [mc "You are no longer on a local branch.
  
- If you wanted to be on a branch, create one now starting from 'This Detached Checkout'."
+ If you wanted to be on a branch, create one now starting from 'This Detached Checkout'."]
        }
  
        # -- Update our repository state.  If we were previously in
                $ui_comm delete 0.0 end
                $ui_comm edit reset
                $ui_comm edit modified false
-               rescan [list ui_status "Checked out '$name'."]
+               rescan [list ui_status [mc "Checked out '%s'." $name]]
        } else {
                repository_state commit_type HEAD MERGE_HEAD
                set PARENT $HEAD
@@@ -475,7 -475,7 +475,7 @@@ method _confirm_reset {cur} 
        pack [label $w.msg1 \
                -anchor w \
                -justify left \
-               -text "Resetting '$name' to $new_expr will lose the following commits:" \
+               -text [mc "Resetting '%s' to '%s' will lose the following commits:" $name $new_expr]\
                ] -anchor w
  
        set list $w.list.l
        pack [label $w.msg2 \
                -anchor w \
                -justify left \
-               -text {Recovering lost commits may not be easy.} \
+               -text [mc "Recovering lost commits may not be easy."] \
                ]
        pack [label $w.msg3 \
                -anchor w \
                -justify left \
-               -text "Reset '$name'?" \
+               -text [mc "Reset '%s'?" $name] \
                ]
  
        frame $w.buttons
        button $w.buttons.visualize \
-               -text Visualize \
+               -text [mc Visualize] \
                -command $gitk
        pack $w.buttons.visualize -side left
        button $w.buttons.reset \
-               -text Reset \
+               -text [mc Reset] \
                -command "
                        set @reset_ok 1
                        destroy $w
        pack $w.buttons.reset -side right
        button $w.buttons.cancel \
                -default active \
-               -text Cancel \
+               -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
@@@ -575,13 -575,13 +575,13 @@@ method _toplevel {title} 
  }
  
  method _fatal {err} {
-       error_popup "Failed to set current branch.
+       error_popup [strcat [mc "Failed to set current branch.
  
  This working directory is only partially switched.  We successfully updated your files, but failed to update an internal Git file.
  
- This should not have occurred.  [appname] will now close and give up.
+ This should not have occurred.  %s will now close and give up." [appname]] "
  
- $err"
+ $err"]
        exit 1
  }
  
index 0000000000000000000000000000000000000000,2bac50e1493ad2b0b05b3dc0a740467dfa778ebb..2bac50e1493ad2b0b05b3dc0a740467dfa778ebb
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1044 +1,1044 @@@
+ # git-gui Git repository chooser
+ # Copyright (C) 2007 Shawn Pearce
+ class choose_repository {
+ field top
+ field w
+ field w_body      ; # Widget holding the center content
+ field w_next      ; # Next button
+ field w_quit      ; # Quit button
+ field o_cons      ; # Console object (if active)
+ field w_types     ; # List of type buttons in clone
+ field w_recentlist ; # Listbox containing recent repositories
+ field done              0 ; # Finished picking the repository?
+ field local_path       {} ; # Where this repository is locally
+ field origin_url       {} ; # Where we are cloning from
+ field origin_name  origin ; # What we shall call 'origin'
+ field clone_type hardlink ; # Type of clone to construct
+ field readtree_err        ; # Error output from read-tree (if any)
+ field sorted_recent       ; # recent repositories (sorted)
+ constructor pick {} {
+       global M1T M1B
+       make_toplevel top w
+       wm title $top [mc "Git Gui"]
+       if {$top eq {.}} {
+               menu $w.mbar -tearoff 0
+               $top configure -menu $w.mbar
+               set m_repo $w.mbar.repository
+               $w.mbar add cascade \
+                       -label [mc Repository] \
+                       -menu $m_repo
+               menu $m_repo
+               if {[is_MacOSX]} {
+                       $w.mbar add cascade -label [mc Apple] -menu .mbar.apple
+                       menu $w.mbar.apple
+                       $w.mbar.apple add command \
+                               -label [mc "About %s" [appname]] \
+                               -command do_about
+               } else {
+                       $w.mbar add cascade -label [mc Help] -menu $w.mbar.help
+                       menu $w.mbar.help
+                       $w.mbar.help add command \
+                               -label [mc "About %s" [appname]] \
+                               -command do_about
+               }
+               wm protocol $top WM_DELETE_WINDOW exit
+               bind $top <$M1B-q> exit
+               bind $top <$M1B-Q> exit
+               bind $top <Key-Escape> exit
+       } else {
+               wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
+               bind $top <Key-Escape> [list destroy $top]
+               set m_repo {}
+       }
+       pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10
+       set w_body $w.body
+       set opts $w_body.options
+       frame $w_body
+       text $opts \
+               -cursor $::cursor_ptr \
+               -relief flat \
+               -background [$w_body cget -background] \
+               -wrap none \
+               -spacing1 5 \
+               -width 50 \
+               -height 3
+       pack $opts -anchor w -fill x
+       $opts tag conf link_new -foreground blue -underline 1
+       $opts tag bind link_new <1> [cb _next new]
+       $opts insert end [mc "Create New Repository"] link_new
+       $opts insert end "\n"
+       if {$m_repo ne {}} {
+               $m_repo add command \
+                       -command [cb _next new] \
+                       -accelerator $M1T-N \
+                       -label [mc "New..."]
+               bind $top <$M1B-n> [cb _next new]
+               bind $top <$M1B-N> [cb _next new]
+       }
+       $opts tag conf link_clone -foreground blue -underline 1
+       $opts tag bind link_clone <1> [cb _next clone]
+       $opts insert end [mc "Clone Existing Repository"] link_clone
+       $opts insert end "\n"
+       if {$m_repo ne {}} {
+               $m_repo add command \
+                       -command [cb _next clone] \
+                       -accelerator $M1T-C \
+                       -label [mc "Clone..."]
+               bind $top <$M1B-c> [cb _next clone]
+               bind $top <$M1B-C> [cb _next clone]
+       }
+       $opts tag conf link_open -foreground blue -underline 1
+       $opts tag bind link_open <1> [cb _next open]
+       $opts insert end [mc "Open Existing Repository"] link_open
+       $opts insert end "\n"
+       if {$m_repo ne {}} {
+               $m_repo add command \
+                       -command [cb _next open] \
+                       -accelerator $M1T-O \
+                       -label [mc "Open..."]
+               bind $top <$M1B-o> [cb _next open]
+               bind $top <$M1B-O> [cb _next open]
+       }
+       $opts conf -state disabled
+       set sorted_recent [_get_recentrepos]
+       if {[llength $sorted_recent] > 0} {
+               if {$m_repo ne {}} {
+                       $m_repo add separator
+                       $m_repo add command \
+                               -state disabled \
+                               -label [mc "Recent Repositories"]
+               }
+               label $w_body.space
+               label $w_body.recentlabel \
+                       -anchor w \
+                       -text [mc "Open Recent Repository:"]
+               set w_recentlist $w_body.recentlist
+               text $w_recentlist \
+                       -cursor $::cursor_ptr \
+                       -relief flat \
+                       -background [$w_body.recentlabel cget -background] \
+                       -wrap none \
+                       -width 50 \
+                       -height 10
+               $w_recentlist tag conf link \
+                       -foreground blue \
+                       -underline 1
+               set home $::env(HOME)
+               if {[is_Cygwin]} {
+                       set home [exec cygpath --windows --absolute $home]
+               }
+               set home "[file normalize $home]/"
+               set hlen [string length $home]
+               foreach p $sorted_recent {
+                       set path $p
+                       if {[string equal -length $hlen $home $p]} {
+                               set p "~/[string range $p $hlen end]"
+                       }
+                       regsub -all "\n" $p "\\n" p
+                       $w_recentlist insert end $p link
+                       $w_recentlist insert end "\n"
+                       if {$m_repo ne {}} {
+                               $m_repo add command \
+                                       -command [cb _open_recent_path $path] \
+                                       -label "    $p"
+                       }
+               }
+               $w_recentlist conf -state disabled
+               $w_recentlist tag bind link <1> [cb _open_recent %x,%y]
+               pack $w_body.space -anchor w -fill x
+               pack $w_body.recentlabel -anchor w -fill x
+               pack $w_recentlist -anchor w -fill x
+       }
+       pack $w_body -fill x -padx 10 -pady 10
+       frame $w.buttons
+       set w_next $w.buttons.next
+       set w_quit $w.buttons.quit
+       button $w_quit \
+               -text [mc "Quit"] \
+               -command exit
+       pack $w_quit -side right -padx 5
+       pack $w.buttons -side bottom -fill x -padx 10 -pady 10
+       if {$m_repo ne {}} {
+               $m_repo add separator
+               $m_repo add command \
+                       -label [mc Quit] \
+                       -command exit \
+                       -accelerator $M1T-Q
+       }
+       bind $top <Return> [cb _invoke_next]
+       bind $top <Visibility> "
+               [cb _center]
+               grab $top
+               focus $top
+               bind $top <Visibility> {}
+       "
+       wm deiconify $top
+       tkwait variable @done
+       if {$top eq {.}} {
+               eval destroy [winfo children $top]
+       }
+ }
+ proc _home {} {
+       if {[catch {set h $::env(HOME)}]
+               || ![file isdirectory $h]} {
+               set h .
+       }
+       return $h
+ }
+ method _center {} {
+       set nx [winfo reqwidth $top]
+       set ny [winfo reqheight $top]
+       set rx [expr {([winfo screenwidth  $top] - $nx) / 3}]
+       set ry [expr {([winfo screenheight $top] - $ny) / 3}]
+       wm geometry $top [format {+%d+%d} $rx $ry]
+ }
+ method _invoke_next {} {
+       if {[winfo exists $w_next]} {
+               uplevel #0 [$w_next cget -command]
+       }
+ }
+ proc _get_recentrepos {} {
+       set recent [list]
+       foreach p [get_config gui.recentrepo] {
+               if {[_is_git [file join $p .git]]} {
+                       lappend recent $p
+               }
+       }
+       return [lsort $recent]
+ }
+ proc _unset_recentrepo {p} {
+       regsub -all -- {([()\[\]{}\.^$+*?\\])} $p {\\\1} p
+       git config --global --unset gui.recentrepo "^$p\$"
+ }
+ proc _append_recentrepos {path} {
+       set path [file normalize $path]
+       set recent [get_config gui.recentrepo]
+       if {[lindex $recent end] eq $path} {
+               return
+       }
+       set i [lsearch $recent $path]
+       if {$i >= 0} {
+               _unset_recentrepo $path
+               set recent [lreplace $recent $i $i]
+       }
+       lappend recent $path
+       git config --global --add gui.recentrepo $path
+       while {[llength $recent] > 10} {
+               _unset_recentrepo [lindex $recent 0]
+               set recent [lrange $recent 1 end]
+       }
+ }
+ method _open_recent {xy} {
+       set id [lindex [split [$w_recentlist index @$xy] .] 0]
+       set local_path [lindex $sorted_recent [expr {$id - 1}]]
+       _do_open2 $this
+ }
+ method _open_recent_path {p} {
+       set local_path $p
+       _do_open2 $this
+ }
+ method _next {action} {
+       destroy $w_body
+       if {![winfo exists $w_next]} {
+               button $w_next -default active
+               pack $w_next -side right -padx 5 -before $w_quit
+       }
+       _do_$action $this
+ }
+ method _write_local_path {args} {
+       if {$local_path eq {}} {
+               $w_next conf -state disabled
+       } else {
+               $w_next conf -state normal
+       }
+ }
+ method _git_init {} {
+       if {[file exists $local_path]} {
+               error_popup [mc "Location %s already exists." $local_path]
+               return 0
+       }
+       if {[catch {file mkdir $local_path} err]} {
+               error_popup [strcat \
+                       [mc "Failed to create repository %s:" $local_path] \
+                       "\n\n$err"]
+               return 0
+       }
+       if {[catch {cd $local_path} err]} {
+               error_popup [strcat \
+                       [mc "Failed to create repository %s:" $local_path] \
+                       "\n\n$err"]
+               return 0
+       }
+       if {[catch {git init} err]} {
+               error_popup [strcat \
+                       [mc "Failed to create repository %s:" $local_path] \
+                       "\n\n$err"]
+               return 0
+       }
+       _append_recentrepos [pwd]
+       set ::_gitdir .git
+       set ::_prefix {}
+       return 1
+ }
+ proc _is_git {path} {
+       if {[file exists [file join $path HEAD]]
+        && [file exists [file join $path objects]]
+        && [file exists [file join $path config]]} {
+               return 1
+       }
+       if {[is_Cygwin]} {
+               if {[file exists [file join $path HEAD]]
+                && [file exists [file join $path objects.lnk]]
+                && [file exists [file join $path config.lnk]]} {
+                       return 1
+               }
+       }
+       return 0
+ }
+ proc _objdir {path} {
+       set objdir [file join $path .git objects]
+       if {[file isdirectory $objdir]} {
+               return $objdir
+       }
+       set objdir [file join $path objects]
+       if {[file isdirectory $objdir]} {
+               return $objdir
+       }
+       if {[is_Cygwin]} {
+               set objdir [file join $path .git objects.lnk]
+               if {[file isfile $objdir]} {
+                       return [win32_read_lnk $objdir]
+               }
+               set objdir [file join $path objects.lnk]
+               if {[file isfile $objdir]} {
+                       return [win32_read_lnk $objdir]
+               }
+       }
+       return {}
+ }
+ ######################################################################
+ ##
+ ## Create New Repository
+ method _do_new {} {
+       $w_next conf \
+               -state disabled \
+               -command [cb _do_new2] \
+               -text [mc "Create"]
+       frame $w_body
+       label $w_body.h \
+               -font font_uibold \
+               -text [mc "Create New Repository"]
+       pack $w_body.h -side top -fill x -pady 10
+       pack $w_body -fill x -padx 10
+       frame $w_body.where
+       label $w_body.where.l -text [mc "Directory:"]
+       entry $w_body.where.t \
+               -textvariable @local_path \
+               -font font_diff \
+               -width 50
+       button $w_body.where.b \
+               -text [mc "Browse"] \
+               -command [cb _new_local_path]
+       pack $w_body.where.b -side right
+       pack $w_body.where.l -side left
+       pack $w_body.where.t -fill x
+       pack $w_body.where -fill x
+       trace add variable @local_path write [cb _write_local_path]
+       bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
+       update
+       focus $w_body.where.t
+ }
+ method _new_local_path {} {
+       if {$local_path ne {}} {
+               set p [file dirname $local_path]
+       } else {
+               set p [_home]
+       }
+       set p [tk_chooseDirectory \
+               -initialdir $p \
+               -parent $top \
+               -title [mc "Git Repository"] \
+               -mustexist false]
+       if {$p eq {}} return
+       set p [file normalize $p]
+       if {[file isdirectory $p]} {
+               foreach i [glob \
+                       -directory $p \
+                       -tails \
+                       -nocomplain \
+                       * .*] {
+                       switch -- $i {
+                        . continue
+                       .. continue
+                       default {
+                               error_popup [mc "Directory %s already exists." $p]
+                               return
+                       }
+                       }
+               }
+               if {[catch {file delete $p} err]} {
+                       error_popup [strcat \
+                               [mc "Directory %s already exists." $p] \
+                               "\n\n$err"]
+                       return
+               }
+       } elseif {[file exists $p]} {
+               error_popup [mc "File %s already exists." $p]
+               return
+       }
+       set local_path $p
+ }
+ method _do_new2 {} {
+       if {![_git_init $this]} {
+               return
+       }
+       set done 1
+ }
+ ######################################################################
+ ##
+ ## Clone Existing Repository
+ method _do_clone {} {
+       $w_next conf \
+               -state disabled \
+               -command [cb _do_clone2] \
+               -text [mc "Clone"]
+       frame $w_body
+       label $w_body.h \
+               -font font_uibold \
+               -text [mc "Clone Existing Repository"]
+       pack $w_body.h -side top -fill x -pady 10
+       pack $w_body -fill x -padx 10
+       set args $w_body.args
+       frame $w_body.args
+       pack $args -fill both
+       label $args.origin_l -text [mc "URL:"]
+       entry $args.origin_t \
+               -textvariable @origin_url \
+               -font font_diff \
+               -width 50
+       button $args.origin_b \
+               -text [mc "Browse"] \
+               -command [cb _open_origin]
+       grid $args.origin_l $args.origin_t $args.origin_b -sticky ew
+       label $args.where_l -text [mc "Directory:"]
+       entry $args.where_t \
+               -textvariable @local_path \
+               -font font_diff \
+               -width 50
+       button $args.where_b \
+               -text [mc "Browse"] \
+               -command [cb _new_local_path]
+       grid $args.where_l $args.where_t $args.where_b -sticky ew
+       label $args.type_l -text [mc "Clone Type:"]
+       frame $args.type_f
+       set w_types [list]
+       lappend w_types [radiobutton $args.type_f.hardlink \
+               -state disabled \
+               -anchor w \
+               -text [mc "Standard (Fast, Semi-Redundant, Hardlinks)"] \
+               -variable @clone_type \
+               -value hardlink]
+       lappend w_types [radiobutton $args.type_f.full \
+               -state disabled \
+               -anchor w \
+               -text [mc "Full Copy (Slower, Redundant Backup)"] \
+               -variable @clone_type \
+               -value full]
+       lappend w_types [radiobutton $args.type_f.shared \
+               -state disabled \
+               -anchor w \
+               -text [mc "Shared (Fastest, Not Recommended, No Backup)"] \
+               -variable @clone_type \
+               -value shared]
+       foreach r $w_types {
+               pack $r -anchor w
+       }
+       grid $args.type_l $args.type_f -sticky new
+       grid columnconfigure $args 1 -weight 1
+       trace add variable @local_path write [cb _update_clone]
+       trace add variable @origin_url write [cb _update_clone]
+       bind $w_body.h <Destroy> "
+               [list trace remove variable @local_path write [cb _update_clone]]
+               [list trace remove variable @origin_url write [cb _update_clone]]
+       "
+       update
+       focus $args.origin_t
+ }
+ method _open_origin {} {
+       if {$origin_url ne {} && [file isdirectory $origin_url]} {
+               set p $origin_url
+       } else {
+               set p [_home]
+       }
+       set p [tk_chooseDirectory \
+               -initialdir $p \
+               -parent $top \
+               -title [mc "Git Repository"] \
+               -mustexist true]
+       if {$p eq {}} return
+       set p [file normalize $p]
+       if {![_is_git [file join $p .git]] && ![_is_git $p]} {
+               error_popup [mc "Not a Git repository: %s" [file tail $p]]
+               return
+       }
+       set origin_url $p
+ }
+ method _update_clone {args} {
+       if {$local_path ne {} && $origin_url ne {}} {
+               $w_next conf -state normal
+       } else {
+               $w_next conf -state disabled
+       }
+       if {$origin_url ne {} &&
+               (  [_is_git [file join $origin_url .git]]
+               || [_is_git $origin_url])} {
+               set e normal
+               if {[[lindex $w_types 0] cget -state] eq {disabled}} {
+                       set clone_type hardlink
+               }
+       } else {
+               set e disabled
+               set clone_type full
+       }
+       foreach r $w_types {
+               $r conf -state $e
+       }
+ }
+ method _do_clone2 {} {
+       if {[file isdirectory $origin_url]} {
+               set origin_url [file normalize $origin_url]
+       }
+       if {$clone_type eq {hardlink} && ![file isdirectory $origin_url]} {
+               error_popup [mc "Standard only available for local repository."]
+               return
+       }
+       if {$clone_type eq {shared} && ![file isdirectory $origin_url]} {
+               error_popup [mc "Shared only available for local repository."]
+               return
+       }
+       if {$clone_type eq {hardlink} || $clone_type eq {shared}} {
+               set objdir [_objdir $origin_url]
+               if {$objdir eq {}} {
+                       error_popup [mc "Not a Git repository: %s" [file tail $origin_url]]
+                       return
+               }
+       }
+       set giturl $origin_url
+       if {[is_Cygwin] && [file isdirectory $giturl]} {
+               set giturl [exec cygpath --unix --absolute $giturl]
+               if {$clone_type eq {shared}} {
+                       set objdir [exec cygpath --unix --absolute $objdir]
+               }
+       }
+       if {![_git_init $this]} return
+       set local_path [pwd]
+       if {[catch {
+                       git config remote.$origin_name.url $giturl
+                       git config remote.$origin_name.fetch +refs/heads/*:refs/remotes/$origin_name/*
+               } err]} {
+               error_popup [strcat [mc "Failed to configure origin"] "\n\n$err"]
+               return
+       }
+       destroy $w_body $w_next
+       switch -exact -- $clone_type {
+       hardlink {
+               set o_cons [status_bar::two_line $w_body]
+               pack $w_body -fill x -padx 10 -pady 10
+               $o_cons start \
+                       [mc "Counting objects"] \
+                       [mc "buckets"]
+               update
+               if {[file exists [file join $objdir info alternates]]} {
+                       set pwd [pwd]
+                       if {[catch {
+                               file mkdir [gitdir objects info]
+                               set f_in [open [file join $objdir info alternates] r]
+                               set f_cp [open [gitdir objects info alternates] w]
+                               fconfigure $f_in -translation binary -encoding binary
+                               fconfigure $f_cp -translation binary -encoding binary
+                               cd $objdir
+                               while {[gets $f_in line] >= 0} {
+                                       if {[is_Cygwin]} {
+                                               puts $f_cp [exec cygpath --unix --absolute $line]
+                                       } else {
+                                               puts $f_cp [file normalize $line]
+                                       }
+                               }
+                               close $f_in
+                               close $f_cp
+                               cd $pwd
+                       } err]} {
+                               catch {cd $pwd}
+                               _clone_failed $this [mc "Unable to copy objects/info/alternates: %s" $err]
+                               return
+                       }
+               }
+               set tolink  [list]
+               set buckets [glob \
+                       -tails \
+                       -nocomplain \
+                       -directory [file join $objdir] ??]
+               set bcnt [expr {[llength $buckets] + 2}]
+               set bcur 1
+               $o_cons update $bcur $bcnt
+               update
+               file mkdir [file join .git objects pack]
+               foreach i [glob -tails -nocomplain \
+                       -directory [file join $objdir pack] *] {
+                       lappend tolink [file join pack $i]
+               }
+               $o_cons update [incr bcur] $bcnt
+               update
+               foreach i $buckets {
+                       file mkdir [file join .git objects $i]
+                       foreach j [glob -tails -nocomplain \
+                               -directory [file join $objdir $i] *] {
+                               lappend tolink [file join $i $j]
+                       }
+                       $o_cons update [incr bcur] $bcnt
+                       update
+               }
+               $o_cons stop
+               if {$tolink eq {}} {
+                       info_popup [strcat \
+                               [mc "Nothing to clone from %s." $origin_url] \
+                               "\n" \
+                               [mc "The 'master' branch has not been initialized."] \
+                               ]
+                       destroy $w_body
+                       set done 1
+                       return
+               }
+               set i [lindex $tolink 0]
+               if {[catch {
+                               file link -hard \
+                                       [file join .git objects $i] \
+                                       [file join $objdir $i]
+                       } err]} {
+                       info_popup [mc "Hardlinks are unavailable.  Falling back to copying."]
+                       set i [_copy_files $this $objdir $tolink]
+               } else {
+                       set i [_link_files $this $objdir [lrange $tolink 1 end]]
+               }
+               if {!$i} return
+               destroy $w_body
+       }
+       full {
+               set o_cons [console::embed \
+                       $w_body \
+                       [mc "Cloning from %s" $origin_url]]
+               pack $w_body -fill both -expand 1 -padx 10
+               $o_cons exec \
+                       [list git fetch --no-tags -k $origin_name] \
+                       [cb _do_clone_tags]
+       }
+       shared {
+               set fd [open [gitdir objects info alternates] w]
+               fconfigure $fd -translation binary
+               puts $fd $objdir
+               close $fd
+       }
+       }
+       if {$clone_type eq {hardlink} || $clone_type eq {shared}} {
+               if {![_clone_refs $this]} return
+               set pwd [pwd]
+               if {[catch {
+                               cd $origin_url
+                               set HEAD [git rev-parse --verify HEAD^0]
+                       } err]} {
+                       _clone_failed $this [mc "Not a Git repository: %s" [file tail $origin_url]]
+                       return 0
+               }
+               cd $pwd
+               _do_clone_checkout $this $HEAD
+       }
+ }
+ method _copy_files {objdir tocopy} {
+       $o_cons start \
+               [mc "Copying objects"] \
+               [mc "KiB"]
+       set tot 0
+       set cmp 0
+       foreach p $tocopy {
+               incr tot [file size [file join $objdir $p]]
+       }
+       foreach p $tocopy {
+               if {[catch {
+                               set f_in [open [file join $objdir $p] r]
+                               set f_cp [open [file join .git objects $p] w]
+                               fconfigure $f_in -translation binary -encoding binary
+                               fconfigure $f_cp -translation binary -encoding binary
+                               while {![eof $f_in]} {
+                                       incr cmp [fcopy $f_in $f_cp -size 16384]
+                                       $o_cons update \
+                                               [expr {$cmp / 1024}] \
+                                               [expr {$tot / 1024}]
+                                       update
+                               }
+                               close $f_in
+                               close $f_cp
+                       } err]} {
+                       _clone_failed $this [mc "Unable to copy object: %s" $err]
+                       return 0
+               }
+       }
+       return 1
+ }
+ method _link_files {objdir tolink} {
+       set total [llength $tolink]
+       $o_cons start \
+               [mc "Linking objects"] \
+               [mc "objects"]
+       for {set i 0} {$i < $total} {} {
+               set p [lindex $tolink $i]
+               if {[catch {
+                               file link -hard \
+                                       [file join .git objects $p] \
+                                       [file join $objdir $p]
+                       } err]} {
+                       _clone_failed $this [mc "Unable to hardlink object: %s" $err]
+                       return 0
+               }
+               incr i
+               if {$i % 5 == 0} {
+                       $o_cons update $i $total
+                       update
+               }
+       }
+       return 1
+ }
+ method _clone_refs {} {
+       set pwd [pwd]
+       if {[catch {cd $origin_url} err]} {
+               error_popup [mc "Not a Git repository: %s" [file tail $origin_url]]
+               return 0
+       }
+       set fd_in [git_read for-each-ref \
+               --tcl \
+               {--format=list %(refname) %(objectname) %(*objectname)}]
+       cd $pwd
+       set fd [open [gitdir packed-refs] w]
+       fconfigure $fd -translation binary
+       puts $fd "# pack-refs with: peeled"
+       while {[gets $fd_in line] >= 0} {
+               set line [eval $line]
+               set refn [lindex $line 0]
+               set robj [lindex $line 1]
+               set tobj [lindex $line 2]
+               if {[regsub ^refs/heads/ $refn \
+                       "refs/remotes/$origin_name/" refn]} {
+                       puts $fd "$robj $refn"
+               } elseif {[string match refs/tags/* $refn]} {
+                       puts $fd "$robj $refn"
+                       if {$tobj ne {}} {
+                               puts $fd "^$tobj"
+                       }
+               }
+       }
+       close $fd_in
+       close $fd
+       return 1
+ }
+ method _do_clone_tags {ok} {
+       if {$ok} {
+               $o_cons exec \
+                       [list git fetch --tags -k $origin_name] \
+                       [cb _do_clone_HEAD]
+       } else {
+               $o_cons done $ok
+               _clone_failed $this [mc "Cannot fetch branches and objects.  See console output for details."]
+       }
+ }
+ method _do_clone_HEAD {ok} {
+       if {$ok} {
+               $o_cons exec \
+                       [list git fetch $origin_name HEAD] \
+                       [cb _do_clone_full_end]
+       } else {
+               $o_cons done $ok
+               _clone_failed $this [mc "Cannot fetch tags.  See console output for details."]
+       }
+ }
+ method _do_clone_full_end {ok} {
+       $o_cons done $ok
+       if {$ok} {
+               destroy $w_body
+               set HEAD {}
+               if {[file exists [gitdir FETCH_HEAD]]} {
+                       set fd [open [gitdir FETCH_HEAD] r]
+                       while {[gets $fd line] >= 0} {
+                               if {[regexp "^(.{40})\t\t" $line line HEAD]} {
+                                       break
+                               }
+                       }
+                       close $fd
+               }
+               catch {git pack-refs}
+               _do_clone_checkout $this $HEAD
+       } else {
+               _clone_failed $this [mc "Cannot determine HEAD.  See console output for details."]
+       }
+ }
+ method _clone_failed {{why {}}} {
+       if {[catch {file delete -force $local_path} err]} {
+               set why [strcat \
+                       $why \
+                       "\n\n" \
+                       [mc "Unable to cleanup %s" $local_path] \
+                       "\n\n" \
+                       $err]
+       }
+       if {$why ne {}} {
+               update
+               error_popup [strcat [mc "Clone failed."] "\n" $why]
+       }
+ }
+ method _do_clone_checkout {HEAD} {
+       if {$HEAD eq {}} {
+               info_popup [strcat \
+                       [mc "No default branch obtained."] \
+                       "\n" \
+                       [mc "The 'master' branch has not been initialized."] \
+                       ]
+               set done 1
+               return
+       }
+       if {[catch {
+                       git update-ref HEAD $HEAD^0
+               } err]} {
+               info_popup [strcat \
+                       [mc "Cannot resolve %s as a commit." $HEAD^0] \
+                       "\n  $err" \
+                       "\n" \
+                       [mc "The 'master' branch has not been initialized."] \
+                       ]
+               set done 1
+               return
+       }
+       set o_cons [status_bar::two_line $w_body]
+       pack $w_body -fill x -padx 10 -pady 10
+       $o_cons start \
+               [mc "Creating working directory"] \
+               [mc "files"]
+       set readtree_err {}
+       set fd [git_read --stderr read-tree \
+               -m \
+               -u \
+               -v \
+               HEAD \
+               HEAD \
+               ]
+       fconfigure $fd -blocking 0 -translation binary
+       fileevent $fd readable [cb _readtree_wait $fd]
+ }
+ method _readtree_wait {fd} {
+       set buf [read $fd]
+       $o_cons update_meter $buf
+       append readtree_err $buf
+       fconfigure $fd -blocking 1
+       if {![eof $fd]} {
+               fconfigure $fd -blocking 0
+               return
+       }
+       if {[catch {close $fd}]} {
+               set err $readtree_err
+               regsub {^fatal: } $err {} err
+               error_popup [strcat \
+                       [mc "Initial file checkout failed."] \
+                       "\n\n$err"]
+               return
+       }
+       set done 1
+ }
+ ######################################################################
+ ##
+ ## Open Existing Repository
+ method _do_open {} {
+       $w_next conf \
+               -state disabled \
+               -command [cb _do_open2] \
+               -text [mc "Open"]
+       frame $w_body
+       label $w_body.h \
+               -font font_uibold \
+               -text [mc "Open Existing Repository"]
+       pack $w_body.h -side top -fill x -pady 10
+       pack $w_body -fill x -padx 10
+       frame $w_body.where
+       label $w_body.where.l -text [mc "Repository:"]
+       entry $w_body.where.t \
+               -textvariable @local_path \
+               -font font_diff \
+               -width 50
+       button $w_body.where.b \
+               -text [mc "Browse"] \
+               -command [cb _open_local_path]
+       pack $w_body.where.b -side right
+       pack $w_body.where.l -side left
+       pack $w_body.where.t -fill x
+       pack $w_body.where -fill x
+       trace add variable @local_path write [cb _write_local_path]
+       bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
+       update
+       focus $w_body.where.t
+ }
+ method _open_local_path {} {
+       if {$local_path ne {}} {
+               set p $local_path
+       } else {
+               set p [_home]
+       }
+       set p [tk_chooseDirectory \
+               -initialdir $p \
+               -parent $top \
+               -title [mc "Git Repository"] \
+               -mustexist true]
+       if {$p eq {}} return
+       set p [file normalize $p]
+       if {![_is_git [file join $p .git]]} {
+               error_popup [mc "Not a Git repository: %s" [file tail $p]]
+               return
+       }
+       set local_path $p
+ }
+ method _do_open2 {} {
+       if {![_is_git [file join $local_path .git]]} {
+               error_popup [mc "Not a Git repository: %s" [file tail $local_path]]
+               return
+       }
+       if {[catch {cd $local_path} err]} {
+               error_popup [strcat \
+                       [mc "Failed to open repository %s:" $local_path] \
+                       "\n\n$err"]
+               return
+       }
+       _append_recentrepos [pwd]
+       set ::_gitdir .git
+       set ::_prefix {}
+       set done 1
+ }
+ }
index ec064b3e13a6b2e6ab0e3ee05ab7a55cab8aa4bc,a063c5bc49fc9bad58f7fd78e7446a097ce86b88..a063c5bc49fc9bad58f7fd78e7446a097ce86b88
@@@ -50,14 -50,14 +50,14 @@@ constructor _new {path unmerged_only ti
        if {$is_detached} {
                radiobutton $w.detachedhead_r \
                        -anchor w \
-                       -text {This Detached Checkout} \
+                       -text [mc "This Detached Checkout"] \
                        -value HEAD \
                        -variable @revtype
                grid $w.detachedhead_r -sticky we -padx {0 5} -columnspan 2
        }
  
        radiobutton $w.expr_r \
-               -text {Revision Expression:} \
+               -text [mc "Revision Expression:"] \
                -value expr \
                -variable @revtype
        entry $w.expr_t \
  
        frame $w.types
        radiobutton $w.types.head_r \
-               -text {Local Branch} \
+               -text [mc "Local Branch"] \
                -value head \
                -variable @revtype
        pack $w.types.head_r -side left
        radiobutton $w.types.trck_r \
-               -text {Tracking Branch} \
+               -text [mc "Tracking Branch"] \
                -value trck \
                -variable @revtype
        pack $w.types.trck_r -side left
        radiobutton $w.types.tag_r \
-               -text {Tag} \
+               -text [mc "Tag"] \
                -value tag \
                -variable @revtype
        pack $w.types.tag_r -side left
        append fmt { %(objecttype)}
        append fmt { %(objectname)}
        append fmt { [concat %(taggername) %(authorname)]}
-       append fmt { [concat %(taggerdate) %(authordate)]}
+       append fmt { [reformat_date [concat %(taggerdate) %(authordate)]]}
        append fmt { %(subject)}
        append fmt {] [list}
        append fmt { %(*objecttype)}
        append fmt { %(*objectname)}
        append fmt { %(*authorname)}
-       append fmt { %(*authordate)}
+       append fmt { [reformat_date %(*authordate)]}
        append fmt { %(*subject)}
        append fmt {]}
        set all_refn [list]
@@@ -314,7 -314,7 +314,7 @@@ method commit_or_die {} 
                }
  
                set top [winfo toplevel $w]
-               set msg "Invalid revision: [get $this]\n\n$err"
+               set msg [strcat [mc "Invalid revision: %s" [get $this]] "\n\n$err"]
                tk_messageBox \
                        -icon error \
                        -type ok \
@@@ -335,7 -335,7 +335,7 @@@ method _expr {} 
                if {$i ne {}} {
                        return [lindex $cur_specs $i 1]
                } else {
-                       error "No revision selected."
+                       error [mc "No revision selected."]
                }
        }
  
                if {$c_expr ne {}} {
                        return $c_expr
                } else {
-                       error "Revision expression is empty."
+                       error [mc "Revision expression is empty."]
                }
        }
        HEAD { return HEAD                     }
@@@ -527,14 -527,14 +527,14 @@@ method _open_tooltip {} 
        set last [_reflog_last $this [lindex $spec 1]]
        if {$last ne {}} {
                $tooltip_t insert end "\n"
-               $tooltip_t insert end "updated"
+               $tooltip_t insert end [mc "Updated"]
                $tooltip_t insert end " $last"
        }
        $tooltip_t insert end "\n"
  
        if {$tag ne {}} {
                $tooltip_t insert end "\n"
-               $tooltip_t insert end "tag" section_header
+               $tooltip_t insert end [mc "Tag"] section_header
                $tooltip_t insert end "  [lindex $tag 1]\n"
                $tooltip_t insert end [lindex $tag 2]
                $tooltip_t insert end " ([lindex $tag 3])\n"
  
        if {$cmit ne {}} {
                $tooltip_t insert end "\n"
-               $tooltip_t insert end "commit" section_header
+               $tooltip_t insert end [mc "Commit@@noun"] section_header
                $tooltip_t insert end "  [lindex $cmit 1]\n"
                $tooltip_t insert end [lindex $cmit 2]
                $tooltip_t insert end " ([lindex $cmit 3])\n"
  
        if {[llength $spec] > 2} {
                $tooltip_t insert end "\n"
-               $tooltip_t insert end "remote" section_header
+               $tooltip_t insert end [mc "Remote"] section_header
                $tooltip_t insert end "  [lindex $spec 2]\n"
-               $tooltip_t insert end "url"
+               $tooltip_t insert end [mc "URL"]
                $tooltip_t insert end " $remote_url([lindex $spec 2])\n"
-               $tooltip_t insert end "branch"
+               $tooltip_t insert end [mc "Branch"]
                $tooltip_t insert end " [lindex $spec 3]"
        }
  
@@@ -583,7 -583,7 +583,7 @@@ method _reflog_last {name} 
        }
  
        if {$last ne {}} {
-               set last [clock format $last -format {%a %b %e %H:%M:%S %Y}]
+               set last [format_date $last]
        }
        set reflog_last($name) $last
        return $last
diff --combined git-gui/lib/commit.tcl
index 57238129e420a313c34e2a99b9f9bdb87ecce39d,10b0430f54863111268a4b67364cbc678b0eb50d..10b0430f54863111268a4b67364cbc678b0eb50d
@@@ -6,19 -6,19 +6,19 @@@ proc load_last_commit {} 
        global repo_config
  
        if {[llength $PARENT] == 0} {
-               error_popup {There is nothing to amend.
+               error_popup [mc "There is nothing to amend.
  
  You are about to create the initial commit.  There is no commit before this to amend.
- }
+ "]
                return
        }
  
        repository_state curType curHEAD curMERGE_HEAD
        if {$curType eq {merge}} {
-               error_popup {Cannot amend while merging.
+               error_popup [mc "Cannot amend while merging.
  
  You are currently in the middle of a merge that has not been fully completed.  You cannot amend the prior commit unless you first abort the current merge activity.
- }
+ "]
                return
        }
  
@@@ -46,7 -46,7 +46,7 @@@
                        }
                        set msg [string trim $msg]
                } err]} {
-               error_popup "Error loading commit data for amend:\n\n$err"
+               error_popup [strcat [mc "Error loading commit data for amend:"] "\n\n$err"]
                return
        }
  
@@@ -73,12 -73,12 +73,12 @@@ proc committer_ident {} 
  
        if {$GIT_COMMITTER_IDENT eq {}} {
                if {[catch {set me [git var GIT_COMMITTER_IDENT]} err]} {
-                       error_popup "Unable to obtain your identity:\n\n$err"
+                       error_popup [strcat [mc "Unable to obtain your identity:"] "\n\n$err"]
                        return {}
                }
                if {![regexp {^(.*) [0-9]+ [-+0-9]+$} \
                        $me me GIT_COMMITTER_IDENT]} {
-                       error_popup "Invalid GIT_COMMITTER_IDENT:\n\n$me"
+                       error_popup [strcat [mc "Invalid GIT_COMMITTER_IDENT:"] "\n\n$me"]
                        return {}
                }
        }
@@@ -130,12 -130,12 +130,12 @@@ proc commit_tree {} 
                && $curType eq {normal}
                && $curHEAD eq $HEAD} {
        } elseif {$commit_type ne $curType || $HEAD ne $curHEAD} {
-               info_popup {Last scanned state does not match repository state.
+               info_popup [mc "Last scanned state does not match repository state.
  
  Another Git program has modified this repository since the last scan.  A rescan must be performed before another commit can be created.
  
  The rescan will be automatically started now.
- }
+ "]
                unlock_index
                rescan ui_ready
                return
                D? -
                M? {set files_ready 1}
                U? {
-                       error_popup "Unmerged files cannot be committed.
+                       error_popup [mc "Unmerged files cannot be committed.
  
- File [short_path $path] has merge conflicts.  You must resolve them and stage the file before committing.
- "
+ File %s has merge conflicts.  You must resolve them and stage the file before committing.
+ " [short_path $path]]
                        unlock_index
                        return
                }
                default {
-                       error_popup "Unknown file state [lindex $s 0] detected.
+                       error_popup [mc "Unknown file state %s detected.
  
- File [short_path $path] cannot be committed by this program.
- "
+ File %s cannot be committed by this program.
+ " [lindex $s 0] [short_path $path]]
                }
                }
        }
        if {!$files_ready && ![string match *merge $curType]} {
-               info_popup {No changes to commit.
+               info_popup [mc "No changes to commit.
  
  You must stage at least 1 file before you can commit.
- }
+ "]
                unlock_index
                return
        }
        set msg [string trim [$ui_comm get 1.0 end]]
        regsub -all -line {[ \t\r]+$} $msg {} msg
        if {$msg eq {}} {
-               error_popup {Please supply a commit message.
+               error_popup [mc "Please supply a commit message.
  
  A good commit message has the following format:
  
  - First line: Describe in one sentance what you did.
  - Second line: Blank
  - Remaining lines: Describe why this change is good.
- }
+ "]
                unlock_index
                return
        }
@@@ -254,7 -254,7 +254,7 @@@ proc commit_committree {fd_wt curHEAD m
  
        gets $fd_wt tree_id
        if {[catch {close $fd_wt} err]} {
-               error_popup "write-tree failed:\n\n$err"
+               error_popup [strcat [mc "write-tree failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
                        && [string length $old_tree] == 45} {
                        set old_tree [string range $old_tree 5 end]
                } else {
-                       error "Commit $PARENT appears to be corrupt"
+                       error [mc "Commit %s appears to be corrupt" $PARENT]
                }
  
                if {$tree_id eq $old_tree} {
-                       info_popup {No changes to commit.
+                       info_popup [mc "No changes to commit.
  
  No files were modified by this commit and it was not a merge commit.
  
  A rescan will be automatically started now.
- }
+ "]
                        unlock_index
-                       rescan {ui_status {No changes to commit.}}
+                       rescan {ui_status [mc "No changes to commit."]}
                        return
                }
        }
        if {$use_enc ne {}} {
                fconfigure $msg_wt -encoding $use_enc
        } else {
-               puts stderr "warning: Tcl does not support encoding '$enc'."
+               puts stderr [mc "warning: Tcl does not support encoding '%s'." $enc]
                fconfigure $msg_wt -encoding utf-8
        }
        puts -nonewline $msg_wt $msg
        }
        lappend cmd <$msg_p
        if {[catch {set cmt_id [eval git $cmd]} err]} {
-               error_popup "commit-tree failed:\n\n$err"
+               error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
        if {[catch {
                        git update-ref -m $reflogm HEAD $cmt_id $curHEAD
                } err]} {
-               error_popup "update-ref failed:\n\n$err"
+               error_popup [strcat [mc "update-ref failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
        display_all_files
        unlock_index
        reshow_diff
-       ui_status "Created commit [string range $cmt_id 0 7]: $subject"
+       ui_status [mc "Created commit %s: %s" [string range $cmt_id 0 7] $subject]
  }
diff --combined git-gui/lib/console.tcl
index b038a783581d4fcc92b030669b8a8fb3c09a623e,5597188d803a1c8217011412a39c14fbbeaf0b3a..5597188d803a1c8217011412a39c14fbbeaf0b3a
@@@ -6,6 -6,7 +6,7 @@@ class console 
  field t_short
  field t_long
  field w
+ field w_t
  field console_cr
  field is_toplevel    1; # are we our own window?
  
@@@ -36,6 -37,7 +37,7 @@@ method _init {} 
        }
  
        set console_cr 1.0
+       set w_t $w.m.t
  
        frame $w.m
        label $w.m.l1 \
                -anchor w \
                -justify left \
                -font font_uibold
-       text $w.m.t \
+       text $w_t \
                -background white -borderwidth 1 \
                -relief sunken \
                -width 80 -height 10 \
                -wrap none \
                -font font_diff \
                -state disabled \
-               -xscrollcommand [list $w.m.sbx set] \
-               -yscrollcommand [list $w.m.sby set]
-       label $w.m.s -text {Working... please wait...} \
+               -xscrollcommand [cb _sb_set $w.m.sbx h] \
+               -yscrollcommand [cb _sb_set $w.m.sby v]
+       label $w.m.s -text [mc "Working... please wait..."] \
                -anchor w \
                -justify left \
                -font font_uibold
-       scrollbar $w.m.sbx -command [list $w.m.t xview] -orient h
-       scrollbar $w.m.sby -command [list $w.m.t yview]
        pack $w.m.l1 -side top -fill x
        pack $w.m.s -side bottom -fill x
-       pack $w.m.sbx -side bottom -fill x
-       pack $w.m.sby -side right -fill y
-       pack $w.m.t -side left -fill both -expand 1
+       pack $w_t -side left -fill both -expand 1
        pack $w.m -side top -fill both -expand 1 -padx 5 -pady 10
  
        menu $w.ctxm -tearoff 0
-       $w.ctxm add command -label "Copy" \
-               -command "tk_textCopy $w.m.t"
-       $w.ctxm add command -label "Select All" \
-               -command "focus $w.m.t;$w.m.t tag add sel 0.0 end"
-       $w.ctxm add command -label "Copy All" \
+       $w.ctxm add command -label [mc "Copy"] \
+               -command "tk_textCopy $w_t"
+       $w.ctxm add command -label [mc "Select All"] \
+               -command "focus $w_t;$w_t tag add sel 0.0 end"
+       $w.ctxm add command -label [mc "Copy All"] \
                -command "
-                       $w.m.t tag add sel 0.0 end
-                       tk_textCopy $w.m.t
-                       $w.m.t tag remove sel 0.0 end
+                       $w_t tag add sel 0.0 end
+                       tk_textCopy $w_t
+                       $w_t tag remove sel 0.0 end
                "
  
        if {$is_toplevel} {
-               button $w.ok -text {Close} \
+               button $w.ok -text [mc "Close"] \
                        -state disabled \
                        -command [list destroy $w]
                pack $w.ok -side bottom -anchor e -pady 10 -padx 10
                bind $w <Visibility> [list focus $w]
        }
  
-       bind_button3 $w.m.t "tk_popup $w.ctxm %X %Y"
-       bind $w.m.t <$M1B-Key-a> "$w.m.t tag add sel 0.0 end;break"
-       bind $w.m.t <$M1B-Key-A> "$w.m.t tag add sel 0.0 end;break"
+       bind_button3 $w_t "tk_popup $w.ctxm %X %Y"
+       bind $w_t <$M1B-Key-a> "$w_t tag add sel 0.0 end;break"
+       bind $w_t <$M1B-Key-A> "$w_t tag add sel 0.0 end;break"
  }
  
  method exec {cmd {after {}}} {
  method _read {fd after} {
        set buf [read $fd]
        if {$buf ne {}} {
-               if {![winfo exists $w.m.t]} {_init $this}
-               $w.m.t conf -state normal
+               if {![winfo exists $w_t]} {_init $this}
+               $w_t conf -state normal
                set c 0
                set n [string length $buf]
                while {$c < $n} {
                        if {$lf < 0} {set lf [expr {$n + 1}]}
  
                        if {$lf < $cr} {
-                               $w.m.t insert end [string range $buf $c $lf]
-                               set console_cr [$w.m.t index {end -1c}]
+                               $w_t insert end [string range $buf $c $lf]
+                               set console_cr [$w_t index {end -1c}]
                                set c $lf
                                incr c
                        } else {
-                               $w.m.t delete $console_cr end
-                               $w.m.t insert end "\n"
-                               $w.m.t insert end [string range $buf $c [expr {$cr - 1}]]
+                               $w_t delete $console_cr end
+                               $w_t insert end "\n"
+                               $w_t insert end [string range $buf $c [expr {$cr - 1}]]
                                set c $cr
                                incr c
                        }
                }
-               $w.m.t conf -state disabled
-               $w.m.t see end
+               $w_t conf -state disabled
+               $w_t see end
        }
  
        fconfigure $fd -blocking 1
@@@ -171,33 -169,50 +169,50 @@@ method chain {cmdlist {ok 1}} 
  }
  
  method insert {txt} {
-       if {![winfo exists $w.m.t]} {_init $this}
-       $w.m.t conf -state normal
-       $w.m.t insert end "$txt\n"
-       set console_cr [$w.m.t index {end -1c}]
-       $w.m.t conf -state disabled
+       if {![winfo exists $w_t]} {_init $this}
+       $w_t conf -state normal
+       $w_t insert end "$txt\n"
+       set console_cr [$w_t index {end -1c}]
+       $w_t conf -state disabled
  }
  
  method done {ok} {
        if {$ok} {
                if {[winfo exists $w.m.s]} {
-                       $w.m.s conf -background green -text {Success}
+                       bind $w.m.s <Destroy> [list delete_this $this]
+                       $w.m.s conf -background green -text [mc "Success"]
                        if {$is_toplevel} {
                                $w.ok conf -state normal
                                focus $w.ok
                        }
+               } else {
+                       delete_this
                }
        } else {
                if {![winfo exists $w.m.s]} {
                        _init $this
                }
-               $w.m.s conf -background red -text {Error: Command Failed}
+               bind $w.m.s <Destroy> [list delete_this $this]
+               $w.m.s conf -background red -text [mc "Error: Command Failed"]
                if {$is_toplevel} {
                        $w.ok conf -state normal
                        focus $w.ok
                }
        }
-       delete_this
+ }
+ method _sb_set {sb orient first last} {
+       if {![winfo exists $sb]} {
+               if {$first == $last || ($first == 0 && $last == 1)} return
+               if {$orient eq {h}} {
+                       scrollbar $sb -orient h -command [list $w_t xview]
+                       pack $sb -fill x -side bottom -before $w_t
+               } else {
+                       scrollbar $sb -orient v -command [list $w_t yview]
+                       pack $sb -fill y -side right -before $w_t
+               }
+       }
+       $sb set $first $last
  }
  
  }
diff --combined git-gui/lib/database.tcl
index 0657cc2245cec67bbb6d3399935a40247bd0c402,d66aa3fe3367e0a8db0ee5c90925352a3a143198..d66aa3fe3367e0a8db0ee5c90925352a3a143198
@@@ -24,14 -24,14 +24,14 @@@ proc do_stats {} 
        toplevel $w
        wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
  
-       label $w.header -text {Database Statistics}
+       label $w.header -text [mc "Database Statistics"]
        pack $w.header -side top -fill x
  
        frame $w.buttons -border 1
-       button $w.buttons.close -text Close \
+       button $w.buttons.close -text [mc Close] \
                -default active \
                -command [list destroy $w]
-       button $w.buttons.gc -text {Compress Database} \
+       button $w.buttons.gc -text [mc "Compress Database"] \
                -default normal \
                -command "destroy $w;do_gc"
        pack $w.buttons.close -side right
  
        frame $w.stat -borderwidth 1 -relief solid
        foreach s {
-               {count           {Number of loose objects}}
-               {size            {Disk space used by loose objects} { KiB}}
-               {in-pack         {Number of packed objects}}
-               {packs           {Number of packs}}
-               {size-pack       {Disk space used by packed objects} { KiB}}
-               {prune-packable  {Packed objects waiting for pruning}}
-               {garbage         {Garbage files}}
+               {count           {mc "Number of loose objects"}}
+               {size            {mc "Disk space used by loose objects"} { KiB}}
+               {in-pack         {mc "Number of packed objects"}}
+               {packs           {mc "Number of packs"}}
+               {size-pack       {mc "Disk space used by packed objects"} { KiB}}
+               {prune-packable  {mc "Packed objects waiting for pruning"}}
+               {garbage         {mc "Garbage files"}}
                } {
                set name [lindex $s 0]
-               set label [lindex $s 1]
+               set label [eval [lindex $s 1]]
                if {[catch {set value $stats($name)}]} continue
                if {[llength $s] > 2} {
                        set value "$value[lindex $s 2]"
        bind $w <Visibility> "grab $w; focus $w.buttons.close"
        bind $w <Key-Escape> [list destroy $w]
        bind $w <Key-Return> [list destroy $w]
-       wm title $w "[appname] ([reponame]): Database Statistics"
+       wm title $w [append "[appname] ([reponame]): " [mc "Database Statistics"]]
        tkwait window $w
  }
  
  proc do_gc {} {
-       set w [console::new {gc} {Compressing the object database}]
+       set w [console::new {gc} [mc "Compressing the object database"]]
        console::chain $w {
                {exec git pack-refs --prune}
                {exec git reflog expire --all}
@@@ -80,7 -80,7 +80,7 @@@
  
  proc do_fsck_objects {} {
        set w [console::new {fsck-objects} \
-               {Verifying the object database with fsck-objects}]
+               [mc "Verifying the object database with fsck-objects"]]
        set cmd [list git fsck-objects]
        lappend cmd --full
        lappend cmd --cache
@@@ -105,11 -105,11 +105,11 @@@ proc hint_gc {} 
                set objects_current [expr {$objects_current * 256}]
                set object_limit    [expr {$object_limit    * 256}]
                if {[ask_popup \
-                       "This repository currently has approximately $objects_current loose objects.
+                       [mc "This repository currently has approximately %i loose objects.
  
- To maintain optimal performance it is strongly recommended that you compress the database when more than $object_limit loose objects exist.
+ To maintain optimal performance it is strongly recommended that you compress the database when more than %i loose objects exist.
  
- Compress the database now?"] eq yes} {
+ Compress the database now?" $objects_current $object_limit]] eq yes} {
                        do_gc
                }
        }
diff --combined git-gui/lib/date.tcl
index 0000000000000000000000000000000000000000,abe82992b6529cf49983029d85348df5d27ceaf5..abe82992b6529cf49983029d85348df5d27ceaf5
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,53 +1,53 @@@
+ # git-gui date processing support
+ # Copyright (C) 2007 Shawn Pearce
+ set git_month(Jan)  1
+ set git_month(Feb)  2
+ set git_month(Mar)  3
+ set git_month(Apr)  4
+ set git_month(May)  5
+ set git_month(Jun)  6
+ set git_month(Jul)  7
+ set git_month(Aug)  8
+ set git_month(Sep)  9
+ set git_month(Oct) 10
+ set git_month(Nov) 11
+ set git_month(Dec) 12
+ proc parse_git_date {s} {
+       if {$s eq {}} {
+               return {}
+       }
+       if {![regexp \
+               {^... (...) (\d{1,2}) (\d\d):(\d\d):(\d\d) (\d{4}) ([+-]?)(\d\d)(\d\d)$} $s s \
+               month day hr mm ss yr ew tz_h tz_m]} {
+               error [mc "Invalid date from Git: %s" $s]
+       }
+       set s [clock scan [format {%4.4i%2.2i%2.2iT%2s%2s%2s} \
+                       $yr $::git_month($month) $day \
+                       $hr $mm $ss] \
+                       -gmt 1]
+       regsub ^0 $tz_h {} tz_h
+       regsub ^0 $tz_m {} tz_m
+       switch -- $ew {
+       -  {set ew +}
+       +  {set ew -}
+       {} {set ew -}
+       }
+       return [expr "$s $ew ($tz_h * 3600 + $tz_m * 60)"]
+ }
+ proc format_date {s} {
+       if {$s eq {}} {
+               return {}
+       }
+       return [clock format $s -format {%a %b %e %H:%M:%S %Y}]
+ }
+ proc reformat_date {s} {
+       return [format_date [parse_git_date $s]]
+ }
diff --combined git-gui/lib/diff.tcl
index 694834ab7a515667dbd14b38165fbe74b37a0349,43565e412fa6c3c96487051c3997424e7d144b22..43565e412fa6c3c96487051c3997424e7d144b22
@@@ -39,13 -39,13 +39,13 @@@ proc handle_empty_diff {} 
        set s $file_states($path)
        if {[lindex $s 0] ne {_M}} return
  
-       info_popup "No differences detected.
+       info_popup [mc "No differences detected.
  
[short_path $path] has no changes.
%s has no changes.
  
  The modification date of this file was updated by another application, but the content within the file was not changed.
  
- A rescan will be automatically started to find other files which may have the same state."
+ A rescan will be automatically started to find other files which may have the same state." [short_path $path]]
  
        clear_diff
        display_file $path __
@@@ -78,7 -78,7 +78,7 @@@ proc show_diff {path w {lno {}}} 
        set current_diff_path $path
        set current_diff_side $w
        set current_diff_header {}
-       ui_status "Loading diff of [escape_path $path]..."
+       ui_status [mc "Loading diff of %s..." [escape_path $path]]
  
        # - Git won't give us the diff, there's nothing to compare to!
        #
                        } err ]} {
                        set diff_active 0
                        unlock_index
-                       ui_status "Unable to display [escape_path $path]"
-                       error_popup "Error loading file:\n\n$err"
+                       ui_status [mc "Unable to display %s" [escape_path $path]]
+                       error_popup [strcat [mc "Error loading file:"] "\n\n$err"]
                        return
                }
                $ui_diff conf -state normal
                if {$type eq {submodule}} {
-                       $ui_diff insert end "* Git Repository (subproject)\n" d_@
+                       $ui_diff insert end [append \
+                               "* " \
+                               [mc "Git Repository (subproject)"] \
+                               "\n"] d_@
                } elseif {![catch {set type [exec file $path]}]} {
                        set n [string length $path]
                        if {[string equal -length $n $path $type]} {
                }
                if {[string first "\0" $content] != -1} {
                        $ui_diff insert end \
-                               "* Binary file (not showing content)." \
+                               [mc "* Binary file (not showing content)."] \
                                d_@
                } else {
                        if {$sz > $max_sz} {
        if {[catch {set fd [eval git_read --nice $cmd]} err]} {
                set diff_active 0
                unlock_index
-               ui_status "Unable to display [escape_path $path]"
-               error_popup "Error loading diff:\n\n$err"
+               ui_status [mc "Unable to display %s" [escape_path $path]]
+               error_popup [strcat [mc "Error loading diff:"] "\n\n$err"]
                return
        }
  
@@@ -296,14 -299,14 +299,14 @@@ proc apply_hunk {x y} 
        set apply_cmd {apply --cached --whitespace=nowarn}
        set mi [lindex $file_states($current_diff_path) 0]
        if {$current_diff_side eq $ui_index} {
-               set mode unstage
+               set failed_msg [mc "Failed to unstage selected hunk."]
                lappend apply_cmd --reverse
                if {[string index $mi 0] ne {M}} {
                        unlock_index
                        return
                }
        } else {
-               set mode stage
+               set failed_msg [mc "Failed to stage selected hunk."]
                if {[string index $mi 1] ne {M}} {
                        unlock_index
                        return
                puts -nonewline $p $current_diff_header
                puts -nonewline $p [$ui_diff get $s_lno $e_lno]
                close $p} err]} {
-               error_popup "Failed to $mode selected hunk.\n\n$err"
+               error_popup [append $failed_msg "\n\n$err"]
                unlock_index
                return
        }
diff --combined git-gui/lib/error.tcl
index 16a22187b26760963069bef14673b1791b311c12,13565b7ab02b22123f0b7b9000dc1f4a993994b0..13565b7ab02b22123f0b7b9000dc1f4a993994b0
@@@ -9,7 -9,7 +9,7 @@@ proc error_popup {msg} 
        set cmd [list tk_messageBox \
                -icon error \
                -type ok \
-               -title "$title: error" \
+               -title [append "$title: " [mc "error"]] \
                -message $msg]
        if {[winfo ismapped .]} {
                lappend cmd -parent .
@@@ -25,7 -25,7 +25,7 @@@ proc warn_popup {msg} 
        set cmd [list tk_messageBox \
                -icon warning \
                -type ok \
-               -title "$title: warning" \
+               -title [append "$title: " [mc "warning"]] \
                -message $msg]
        if {[winfo ismapped .]} {
                lappend cmd -parent .
@@@ -78,7 -78,7 +78,7 @@@ proc hook_failed_popup {hook msg} 
                -font font_diff \
                -yscrollcommand [list $w.m.sby set]
        label $w.m.l2 \
-               -text {You must correct the above errors before committing.} \
+               -text [mc "You must correct the above errors before committing."] \
                -anchor w \
                -justify left \
                -font font_uibold
@@@ -99,6 -99,6 +99,6 @@@
  
        bind $w <Visibility> "grab $w; focus $w"
        bind $w <Key-Return> "destroy $w"
-       wm title $w "[appname] ([reponame]): error"
+       wm title $w [append "[appname] ([reponame]): " [mc "error"]]
        tkwait window $w
  }
diff --combined git-gui/lib/git-gui.ico
index 0000000000000000000000000000000000000000,563dd66238c1a5c169438fdb87ab797f6d19d1bc..563dd66238c1a5c169438fdb87ab797f6d19d1bc
mode 000000,100644..100644
Binary files differ
diff --combined git-gui/lib/index.tcl
index 44689ab63b6c4563985b42c0ff20b8427f37cadc,a0b22f2945c7293f62baf4c497fe6e8119b1df0a..a0b22f2945c7293f62baf4c497fe6e8119b1df0a
@@@ -1,6 -1,56 +1,56 @@@
  # git-gui index (add/remove) support
  # Copyright (C) 2006, 2007 Shawn Pearce
  
+ proc _delete_indexlock {} {
+       if {[catch {file delete -- [gitdir index.lock]} err]} {
+               error_popup [strcat [mc "Unable to unlock the index."] "\n\n$err"]
+       }
+ }
+ proc _close_updateindex {fd after} {
+       fconfigure $fd -blocking 1
+       if {[catch {close $fd} err]} {
+               set w .indexfried
+               toplevel $w
+               wm title $w [strcat "[appname] ([reponame]): " [mc "Index Error"]]
+               wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
+               pack [label $w.msg \
+                       -justify left \
+                       -anchor w \
+                       -text [strcat \
+                               [mc "Updating the Git index failed.  A rescan will be automatically started to resynchronize git-gui."] \
+                               "\n\n$err"] \
+                       ] -anchor w
+               frame $w.buttons
+               button $w.buttons.continue \
+                       -text [mc "Continue"] \
+                       -command [list destroy $w]
+               pack $w.buttons.continue -side right -padx 5
+               button $w.buttons.unlock \
+                       -text [mc "Unlock Index"] \
+                       -command "destroy $w; _delete_indexlock"
+               pack $w.buttons.unlock -side right
+               pack $w.buttons -side bottom -fill x -pady 10 -padx 10
+               wm protocol $w WM_DELETE_WINDOW update
+               bind $w.buttons.continue <Visibility> "
+                       grab $w
+                       focus $w.buttons.continue
+               "
+               tkwait window $w
+               $::main_status stop
+               unlock_index
+               rescan $after 0
+               return
+       }
+       $::main_status stop
+       unlock_index
+       uplevel #0 $after
+ }
  proc update_indexinfo {msg pathList after} {
        global update_index_cp
  
        set batch [expr {int($totalCnt * .01) + 1}]
        if {$batch > 25} {set batch 25}
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               0.0]
+       $::main_status start $msg [mc "files"]
        set fd [git_write update-index -z --index-info]
        fconfigure $fd \
                -blocking 0 \
                $pathList \
                $totalCnt \
                $batch \
-               $msg \
                $after \
                ]
  }
  
- proc write_update_indexinfo {fd pathList totalCnt batch msg after} {
+ proc write_update_indexinfo {fd pathList totalCnt batch after} {
        global update_index_cp
        global file_states current_diff_path
  
        if {$update_index_cp >= $totalCnt} {
-               close $fd
-               unlock_index
-               uplevel #0 $after
+               _close_updateindex $fd $after
                return
        }
  
                display_file $path $new
        }
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               [expr {100.0 * $update_index_cp / $totalCnt}]]
+       $::main_status update $update_index_cp $totalCnt
  }
  
  proc update_index {msg pathList after} {
        set batch [expr {int($totalCnt * .01) + 1}]
        if {$batch > 25} {set batch 25}
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               0.0]
+       $::main_status start $msg [mc "files"]
        set fd [git_write update-index --add --remove -z --stdin]
        fconfigure $fd \
                -blocking 0 \
                $pathList \
                $totalCnt \
                $batch \
-               $msg \
                $after \
                ]
  }
  
- proc write_update_index {fd pathList totalCnt batch msg after} {
+ proc write_update_index {fd pathList totalCnt batch after} {
        global update_index_cp
        global file_states current_diff_path
  
        if {$update_index_cp >= $totalCnt} {
-               close $fd
-               unlock_index
-               uplevel #0 $after
+               _close_updateindex $fd $after
                return
        }
  
                display_file $path $new
        }
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               [expr {100.0 * $update_index_cp / $totalCnt}]]
+       $::main_status update $update_index_cp $totalCnt
  }
  
  proc checkout_index {msg pathList after} {
        set batch [expr {int($totalCnt * .01) + 1}]
        if {$batch > 25} {set batch 25}
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               0.0]
+       $::main_status start $msg [mc "files"]
        set fd [git_write checkout-index \
                --index \
                --quiet \
                $pathList \
                $totalCnt \
                $batch \
-               $msg \
                $after \
                ]
  }
  
- proc write_checkout_index {fd pathList totalCnt batch msg after} {
+ proc write_checkout_index {fd pathList totalCnt batch after} {
        global update_index_cp
        global file_states current_diff_path
  
        if {$update_index_cp >= $totalCnt} {
-               close $fd
-               unlock_index
-               uplevel #0 $after
+               _close_updateindex $fd $after
                return
        }
  
                }
        }
  
-       ui_status [format \
-               "%s... %i/%i files (%.2f%%)" \
-               $msg \
-               $update_index_cp \
-               $totalCnt \
-               [expr {100.0 * $update_index_cp / $totalCnt}]]
+       $::main_status update $update_index_cp $totalCnt
  }
  
  proc unstage_helper {txt paths} {
@@@ -268,7 -279,7 +279,7 @@@ proc do_unstage_selection {} 
                        [array names selected_paths]
        } elseif {$current_diff_path ne {}} {
                unstage_helper \
-                       "Unstaging [short_path $current_diff_path] from commit" \
+                       [mc "Unstaging %s from commit" [short_path $current_diff_path]] \
                        [list $current_diff_path]
        }
  }
@@@ -312,7 -323,7 +323,7 @@@ proc do_add_selection {} 
                        [array names selected_paths]
        } elseif {$current_diff_path ne {}} {
                add_helper \
-                       "Adding [short_path $current_diff_path]" \
+                       [mc "Adding %s" [short_path $current_diff_path]] \
                        [list $current_diff_path]
        }
  }
@@@ -351,26 -362,35 +362,35 @@@ proc revert_helper {txt paths} 
                }
        }
  
+       # Split question between singular and plural cases, because
+       # such distinction is needed in some languages. Previously, the
+       # code used "Revert changes in" for both, but that can't work
+       # in languages where 'in' must be combined with word from
+       # rest of string (in diffrent way for both cases of course).
+       #
+       # FIXME: Unfortunately, even that isn't enough in some languages
+       # as they have quite complex plural-form rules. Unfortunately,
+       # msgcat doesn't seem to support that kind of string translation.
+       #
        set n [llength $pathList]
        if {$n == 0} {
                unlock_index
                return
        } elseif {$n == 1} {
-               set s "[short_path [lindex $pathList]]"
+               set query [mc "Revert changes in file %s?" [short_path [lindex $pathList]]]
        } else {
-               set s "these $n files"
+               set query [mc "Revert changes in these %i files?" $n]
        }
  
        set reply [tk_dialog \
                .confirm_revert \
                "[appname] ([reponame])" \
-               "Revert changes in $s?
- Any unstaged changes will be permanently lost by the revert." \
+               [mc "Any unstaged changes will be permanently lost by the revert."] \
                question \
                1 \
-               {Do Nothing} \
-               {Revert Changes} \
+               [mc "Do Nothing"] \
+               [mc "Revert Changes"] \
                ]
        if {$reply == 1} {
                checkout_index \
diff --combined git-gui/lib/logo.tcl
index 0000000000000000000000000000000000000000,5ff76692f5eeeb51bcca0905385f51963d1e6531..5ff76692f5eeeb51bcca0905385f51963d1e6531
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,43 +1,43 @@@
+ # git-gui Git Gui logo
+ # Copyright (C) 2007 Shawn Pearce
+ # Henrik Nyh's alternative Git logo, from his blog post
+ # http://henrik.nyh.se/2007/06/alternative-git-logo-and-favicon
+ #
+ image create photo ::git_logo_data -data {
+ R0lGODdhYQC8AIQbAGZmZtg4LW9vb3l5eYKCgoyMjEC/TOJpYZWVlZ+fn2/PeKmpqbKysry8vMXF
+ xZ/fpc/Pz7fnvPXNytnZ2eLi4s/v0vja1+zs7Of36fX19f3z8v///////////////////ywAAAAA
+ YQC8AAAF/uAmjmRpnmiqrmzrvq4hz3RtGw+s7zx5/7dcb0hUAY8zYXHJRCKVzGjPeYRKry8q0Irt
+ GrVBr3gFDo/PprKNix6ra+y2902Ly7H05L2dl9n3UX04gGeCf4RFhohiiotdjY5XkJGBfYeUOpOY
+ iZablXmXURgPpKWmp6ipqYIKqq6vqREjFYK1trUKs7e7vFq5IrS9wsM0vxvBxMm8xsjKzqy6z9J5
+ zNPWatXX2k7Z29433d/iMuHj3+Xm2+jp1+vs0+7vz/HyyvT1xPf4wvr7y9H+pBkbBasgLFYGE8ba
+ o8nTlE4OOYGKKJFOKIopGmLMAnHjDo0eWYAM+WUiSRgj/k+eSKmyBMuWI17C3CATZs2WN1XmPLmT
+ ZM+QPz0G3VihqNGjSJNWwDCzqdOnUKPu0SChqtWrWLNq3cq1q9evYCVYGCEhgNmzaNOqXcu2rdu3
+ cOMGOEBWrt27ePPCpSuirN6/gAO35bvBr+DDiPMSNpy4sWO2ix9Lnmw2MuXLiS1j3gxYM+fPdz2D
+ Hv1WNOnTak2jXj23LuvXlV3DZq16Nujatjnjzo15N2/Kvn9LDi7cMfHimaUqX868ufPn0KPPpOCA
+ AQMWCQBo3869u/fv4MNrd3DlQoMC3QlkSJFdvPv38LVDWJLBAYHwE1LE38+/+/UhGTAggHv5odDf
+ gfv9/seDgPAVeAKCELqnIAwU3BefgyZEqOF3E7rAQH8YlrDhiNt1uEIG6IGoH4kjmpjCBRaqaCCL
+ G7p4AgUDIhgiCTTW2AKOEe44Qo8a2khCBgNoKKQIREZopAgZxAjhkhs0CeGTG7Sn5IpW9vekAyRS
+ 2eWBRl6Q44ZijhlfAQlQmeKIaarpHZsMTHABCxDQGKec3JH3QpIs7snndn6yAKaeXA7aZwuABppo
+ fAws0GiEhaKQJ40F3DkjfwVC8CaCAlCgAgIkJjDfCgdiOMGn/Q2w3gkZtPgqC6ma0ECECaBwa4QE
+ aOpCrSYAqeMJpEKYqw7ABnsmfwQ8aCwPySqLYKUb/kwAYbPQyoiCtQcOUMKHBwrgK7LaogBuuaxC
+ OkS0KEwa37EiLBufALPuwO4Jh/InwAixkknEvSe4C9+p3PY3rr3lpnDufguIcCmzRQAc7IHYLhxf
+ w/8mnILA74lg8cARa4xCsZxusMCBomZccgsfv0deuh2HvLKh/sLs3hJSvieuCwUzvIHN4tGXc3ih
+ vtDzmj8fSNLR8BWQdH9LH+g00OFF3d/UBx4cUcvuOc21eFRiouV+Xvvr0dDvlX21R/2uzTR89TqU
+ L3+5UoBgAxtRHd5/CHpLkd13i4D2e3hHRLKMY+9Hr0Nvx/fq3Pw57cng7/m9wQVObnIyhAiQwHF8
+ /tQS8nDgI2wOYeh3CAvhuIBHiDEgqvdtwudkaz3GBPKaTcKuGgqAJRMZmK6h1hnk3ncDcUvhgPFS
+ o5B476ZKQcECzCN4qgmYN4lAncmzcAEEkhJp+QlfkyhAAdtbN8H67FvHQAF6b4g6v9UryqfkKkBu
+ v/0prxD//kR63YnqB8AeqcdoBRxU/1zAuwRaaX4reJ4DSSRAHUhwgrgqwgUx2B94EWGDHISPBzUY
+ QgSNcAn6K6F4fscDCtBOhdoRwPW6kIHDwZA7vWoDBF44Qd/tIUAEBCACbIeG4AXxfmFrQ4B4OCYE
+ JBEQELChmgbAACJioj4JOCKCCLCABZ6EAg1IHwDlyLYAB1gRJhSYgHUQAD9WnQ9+CWBAA+wknTpC
+ JwQAOw==
+ }
+ proc git_logo {w} {
+       label $w \
+               -borderwidth 1 \
+               -relief sunken \
+               -background white \
+               -image ::git_logo_data
+       return $w
+ }
diff --combined git-gui/lib/merge.tcl
index 0e50919d4c272e1e071e08c58b30d2c688c8d111,63e14279c183b1d0b8a62926816bb44ab6dc519c..63e14279c183b1d0b8a62926816bb44ab6dc519c
@@@ -10,10 -10,10 +10,10 @@@ method _can_merge {} 
        global HEAD commit_type file_states
  
        if {[string match amend* $commit_type]} {
-               info_popup {Cannot merge while amending.
+               info_popup [mc "Cannot merge while amending.
  
  You must finish amending this commit before starting any type of merge.
- }
+ "]
                return 0
        }
  
        #
        repository_state curType curHEAD curMERGE_HEAD
        if {$commit_type ne $curType || $HEAD ne $curHEAD} {
-               info_popup {Last scanned state does not match repository state.
+               info_popup [mc "Last scanned state does not match repository state.
  
  Another Git program has modified this repository since the last scan.  A rescan must be performed before a merge can be performed.
  
  The rescan will be automatically started now.
- }
+ "]
                unlock_index
                rescan ui_ready
                return 0
                        continue; # and pray it works!
                }
                U? {
-                       error_popup "You are in the middle of a conflicted merge.
+                       error_popup [mc "You are in the middle of a conflicted merge.
  
- File [short_path $path] has merge conflicts.
+ File %s has merge conflicts.
  
  You must resolve them, stage the file, and commit to complete the current merge.  Only then can you begin another merge.
- "
+ " [short_path $path]]
                        unlock_index
                        return 0
                }
                ?? {
-                       error_popup "You are in the middle of a change.
+                       error_popup [mc "You are in the middle of a change.
  
- File [short_path $path] is modified.
+ File %s is modified.
  
  You should complete the current commit before starting a merge.  Doing so will help you abort a failed merge, should the need arise.
- "
+ " [short_path $path]]
                        unlock_index
                        return 0
                }
@@@ -103,7 -103,7 +103,7 @@@ method _start {} 
                        regsub {^[^:@]*@} $remote {} remote
                }
                set branch [lindex $spec 2]
-               set stitle "$branch of $remote"
+               set stitle [mc "%s of %s" $branch $remote]
        }
        regsub ^refs/heads/ $branch {} branch
        puts $fh "$cmit\t\tbranch '$branch' of $remote"
        lappend cmd HEAD
        lappend cmd $name
  
-       set msg "Merging $current_branch and $stitle"
+       set msg [mc "Merging %s and %s" $current_branch $stitle]
        ui_status "$msg..."
-       set cons [console::new "Merge" "merge $stitle"]
+       set cons [console::new [mc "Merge"] "merge $stitle"]
        console::exec $cons $cmd [cb _finish $cons]
  
        wm protocol $w WM_DELETE_WINDOW {}
  method _finish {cons ok} {
        console::done $cons $ok
        if {$ok} {
-               set msg {Merge completed successfully.}
+               set msg [mc "Merge completed successfully."]
        } else {
-               set msg {Merge failed.  Conflict resolution is required.}
+               set msg [mc "Merge failed.  Conflict resolution is required."]
        }
        unlock_index
        rescan [list ui_status $msg]
@@@ -147,7 -147,7 +147,7 @@@ constructor dialog {} 
        }
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Merge"
+       wm title $top [append "[appname] ([reponame]): " [mc "Merge"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
        set _start [cb _start]
  
        label $w.header \
-               -text "Merge Into $current_branch" \
+               -text [mc "Merge Into %s" $current_branch] \
                -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
        button $w.buttons.visualize \
-               -text Visualize \
+               -text [mc Visualize] \
                -command [cb _visualize]
        pack $w.buttons.visualize -side left
        button $w.buttons.merge \
-               -text Merge \
+               -text [mc Merge] \
                -command $_start
        pack $w.buttons.merge -side right
        button $w.buttons.cancel \
-               -text {Cancel} \
+               -text [mc "Cancel"] \
                -command [cb _cancel]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       set w_rev [::choose_rev::new_unmerged $w.rev {Revision To Merge}]
+       set w_rev [::choose_rev::new_unmerged $w.rev [mc "Revision To Merge"]]
        pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5
  
        bind $w <$M1B-Key-Return> $_start
@@@ -209,34 -209,34 +209,34 @@@ proc reset_hard {} 
        global HEAD commit_type file_states
  
        if {[string match amend* $commit_type]} {
-               info_popup {Cannot abort while amending.
+               info_popup [mc "Cannot abort while amending.
  
  You must finish amending this commit.
- }
+ "]
                return
        }
  
        if {![lock_index abort]} return
  
        if {[string match *merge* $commit_type]} {
-               set op_question "Abort merge?
+               set op_question [mc "Abort merge?
  
  Aborting the current merge will cause *ALL* uncommitted changes to be lost.
  
- Continue with aborting the current merge?"
+ Continue with aborting the current merge?"]
        } else {
-               set op_question "Reset changes?
+               set op_question [mc "Reset changes?
  
  Resetting the changes will cause *ALL* uncommitted changes to be lost.
  
- Continue with resetting the current changes?"
+ Continue with resetting the current changes?"]
        }
  
        if {[ask_popup $op_question] eq {yes}} {
                set fd [git_read --stderr read-tree --reset -u -v HEAD]
                fconfigure $fd -blocking 0 -translation binary
                fileevent $fd readable [namespace code [list _reset_wait $fd]]
-               $::main_status start {Aborting} {files reset}
+               $::main_status start [mc "Aborting"] {files reset}
        } else {
                unlock_index
        }
@@@ -263,9 -263,9 +263,9 @@@ proc _reset_wait {fd} 
                catch {file delete [gitdir GITGUI_MSG]}
  
                if {$fail} {
-                       warn_popup "Abort failed.\n\n$err"
+                       warn_popup "[mc "Abort failed."]\n\n$err"
                }
-               rescan {ui_status {Abort completed.  Ready.}}
+               rescan {ui_status [mc "Abort completed.  Ready."]}
        } else {
                fconfigure $fd -blocking 0
        }
diff --combined git-gui/lib/option.tcl
index 063f5df6f7cd709e25a8f9c0ede263a3d10f5d8d,f812e5e89a1f21e2ee96a90e83958a472539bdd5..f812e5e89a1f21e2ee96a90e83958a472539bdd5
@@@ -54,85 -54,6 +54,6 @@@ proc save_config {} 
        }
  }
  
- proc do_about {} {
-       global appvers copyright oguilib
-       global tcl_patchLevel tk_patchLevel
-       set w .about_dialog
-       toplevel $w
-       wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
-       label $w.header -text "About [appname]" \
-               -font font_uibold
-       pack $w.header -side top -fill x
-       frame $w.buttons
-       button $w.buttons.close -text {Close} \
-               -default active \
-               -command [list destroy $w]
-       pack $w.buttons.close -side right
-       pack $w.buttons -side bottom -fill x -pady 10 -padx 10
-       label $w.desc \
-               -text "git-gui - a graphical user interface for Git.
- $copyright" \
-               -padx 5 -pady 5 \
-               -justify left \
-               -anchor w \
-               -borderwidth 1 \
-               -relief solid
-       pack $w.desc -side top -fill x -padx 5 -pady 5
-       set v {}
-       append v "git-gui version $appvers\n"
-       append v "[git version]\n"
-       append v "\n"
-       if {$tcl_patchLevel eq $tk_patchLevel} {
-               append v "Tcl/Tk version $tcl_patchLevel"
-       } else {
-               append v "Tcl version $tcl_patchLevel"
-               append v ", Tk version $tk_patchLevel"
-       }
-       set d {}
-       append d "git wrapper: $::_git\n"
-       append d "git exec dir: [gitexec]\n"
-       append d "git-gui lib: $oguilib"
-       label $w.vers \
-               -text $v \
-               -padx 5 -pady 5 \
-               -justify left \
-               -anchor w \
-               -borderwidth 1 \
-               -relief solid
-       pack $w.vers -side top -fill x -padx 5 -pady 5
-       label $w.dirs \
-               -text $d \
-               -padx 5 -pady 5 \
-               -justify left \
-               -anchor w \
-               -borderwidth 1 \
-               -relief solid
-       pack $w.dirs -side top -fill x -padx 5 -pady 5
-       menu $w.ctxm -tearoff 0
-       $w.ctxm add command \
-               -label {Copy} \
-               -command "
-               clipboard clear
-               clipboard append -format STRING -type STRING -- \[$w.vers cget -text\]
-       "
-       bind $w <Visibility> "grab $w; focus $w.buttons.close"
-       bind $w <Key-Escape> "destroy $w"
-       bind $w <Key-Return> "destroy $w"
-       bind_button3 $w.vers "tk_popup $w.ctxm %X %Y; grab $w; focus $w"
-       wm title $w "About [appname]"
-       tkwait window $w
- }
  proc do_options {} {
        global repo_config global_config font_descs
        global repo_config_new global_config_new
        toplevel $w
        wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
  
-       label $w.header -text "Options" \
-               -font font_uibold
-       pack $w.header -side top -fill x
        frame $w.buttons
-       button $w.buttons.restore -text {Restore Defaults} \
+       button $w.buttons.restore -text [mc "Restore Defaults"] \
                -default normal \
                -command do_restore_defaults
        pack $w.buttons.restore -side left
-       button $w.buttons.save -text Save \
+       button $w.buttons.save -text [mc Save] \
                -default active \
                -command [list do_save_config $w]
        pack $w.buttons.save -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc "Cancel"] \
                -default normal \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       labelframe $w.repo -text "[reponame] Repository"
-       labelframe $w.global -text {Global (All Repositories)}
+       labelframe $w.repo -text [mc "%s Repository" [reponame]]
+       labelframe $w.global -text [mc "Global (All Repositories)"]
        pack $w.repo -side left -fill both -expand 1 -pady 5 -padx 5
        pack $w.global -side right -fill both -expand 1 -pady 5 -padx 5
  
        set optid 0
        foreach option {
-               {t user.name {User Name}}
-               {t user.email {Email Address}}
-               {b merge.summary {Summarize Merge Commits}}
-               {i-1..5 merge.verbosity {Merge Verbosity}}
-               {b merge.diffstat {Show Diffstat After Merge}}
-               {b gui.trustmtime  {Trust File Modification Timestamps}}
-               {b gui.pruneduringfetch {Prune Tracking Branches During Fetch}}
-               {b gui.matchtrackingbranch {Match Tracking Branches}}
-               {i-0..99 gui.diffcontext {Number of Diff Context Lines}}
-               {t gui.newbranchtemplate {New Branch Name Template}}
+               {t user.name {mc "User Name"}}
+               {t user.email {mc "Email Address"}}
+               {b merge.summary {mc "Summarize Merge Commits"}}
+               {i-1..5 merge.verbosity {mc "Merge Verbosity"}}
+               {b merge.diffstat {mc "Show Diffstat After Merge"}}
+               {b gui.trustmtime  {mc "Trust File Modification Timestamps"}}
+               {b gui.pruneduringfetch {mc "Prune Tracking Branches During Fetch"}}
+               {b gui.matchtrackingbranch {mc "Match Tracking Branches"}}
+               {i-0..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
+               {t gui.newbranchtemplate {mc "New Branch Name Template"}}
                } {
                set type [lindex $option 0]
                set name [lindex $option 1]
-               set text [lindex $option 2]
+               set text [eval [lindex $option 2]]
                incr optid
                foreach f {repo global} {
                        switch -glob -- $type {
        foreach option $font_descs {
                set name [lindex $option 0]
                set font [lindex $option 1]
-               set text [lindex $option 2]
+               set text [eval [lindex $option 2]]
  
                set global_config_new(gui.$font^^family) \
                        [font configure $font -family]
        bind $w <Visibility> "grab $w; focus $w.buttons.save"
        bind $w <Key-Escape> "destroy $w"
        bind $w <Key-Return> [list do_save_config $w]
-       wm title $w "[appname] ([reponame]): Options"
+       if {[is_MacOSX]} {
+               set t [mc "Preferences"]
+       } else {
+               set t [mc "Options"]
+       }
+       wm title $w "[appname] ([reponame]): $t"
        tkwait window $w
  }
  
@@@ -309,7 -232,7 +232,7 @@@ proc do_restore_defaults {} 
  
  proc do_save_config {w} {
        if {[catch {save_config} err]} {
-               error_popup "Failed to completely save options:\n\n$err"
+               error_popup [strcat [mc "Failed to completely save options:"] "\n\n$err"]
        }
        reshow_diff
        destroy $w
diff --combined git-gui/lib/remote.tcl
index cf9b9d582959e62c805a92a86c33e0f3ae7f304e,0e86ddac0981fbb575a7dd5294ddaed29f7c3917..0e86ddac0981fbb575a7dd5294ddaed29f7c3917
@@@ -135,8 -135,10 +135,10 @@@ proc load_all_remotes {} 
  proc populate_fetch_menu {} {
        global all_remotes repo_config
  
-       set m .mbar.fetch
-       set prune_list [list]
+       set remote_m .mbar.remote
+       set fetch_m $remote_m.fetch
+       set prune_m $remote_m.prune
        foreach r $all_remotes {
                set enable 0
                if {![catch {set a $repo_config(remote.$r.url)}]} {
                }
  
                if {$enable} {
-                       lappend prune_list $r
-                       $m add command \
-                               -label "Fetch from $r..." \
+                       if {![winfo exists $fetch_m]} {
+                               menu $prune_m
+                               $remote_m insert 0 cascade \
+                                       -label [mc "Prune from"] \
+                                       -menu $prune_m
+                               menu $fetch_m
+                               $remote_m insert 0 cascade \
+                                       -label [mc "Fetch from"] \
+                                       -menu $fetch_m
+                       }
+                       $fetch_m add command \
+                               -label $r \
                                -command [list fetch_from $r]
+                       $prune_m add command \
+                               -label $r \
+                               -command [list prune_from $r]
                }
        }
-       if {$prune_list ne {}} {
-               $m add separator
-       }
-       foreach r $prune_list {
-               $m add command \
-                       -label "Prune from $r..." \
-                       -command [list prune_from $r]
-       }
  }
  
  proc populate_push_menu {} {
        global all_remotes repo_config
  
-       set m .mbar.push
-       set fast_count 0
+       set remote_m .mbar.remote
+       set push_m $remote_m.push
        foreach r $all_remotes {
                set enable 0
                if {![catch {set a $repo_config(remote.$r.url)}]} {
                }
  
                if {$enable} {
-                       if {!$fast_count} {
-                               $m add separator
+                       if {![winfo exists $push_m]} {
+                               menu $push_m
+                               $remote_m insert 0 cascade \
+                                       -label [mc "Push to"] \
+                                       -menu $push_m
                        }
-                       $m add command \
-                               -label "Push to $r..." \
+                       $push_m add command \
+                               -label $r \
                                -command [list push_to $r]
-                       incr fast_count
                }
        }
  }
index c88a360db5daa136e2cea63323f85882ca26068a,c7b81486984d46a9dca59867c406a8e247d76313..c7b81486984d46a9dca59867c406a8e247d76313
@@@ -26,28 -26,28 +26,28 @@@ constructor dialog {} 
        global all_remotes M1B
  
        make_toplevel top w
-       wm title $top "[appname] ([reponame]): Delete Remote Branch"
+       wm title $top [append "[appname] ([reponame]): " [mc "Delete Remote Branch"]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
  
-       label $w.header -text {Delete Remote Branch} -font font_uibold
+       label $w.header -text [mc "Delete Remote Branch"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.delete -text Delete \
+       button $w.buttons.delete -text [mc Delete] \
                -default active \
                -command [cb _delete]
        pack $w.buttons.delete -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc "Cancel"] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       labelframe $w.dest -text {From Repository}
+       labelframe $w.dest -text [mc "From Repository"]
        if {$all_remotes ne {}} {
                radiobutton $w.dest.remote_r \
-                       -text {Remote:} \
+                       -text [mc "Remote:"] \
                        -value remote \
                        -variable @urltype
                eval tk_optionMenu $w.dest.remote_m @remote $all_remotes
@@@ -63,7 -63,7 +63,7 @@@
                set urltype url
        }
        radiobutton $w.dest.url_r \
-               -text {Arbitrary URL:} \
+               -text [mc "Arbitrary URL:"] \
                -value url \
                -variable @urltype
        entry $w.dest.url_t \
@@@ -81,7 -81,7 +81,7 @@@
        grid columnconfigure $w.dest 1 -weight 1
        pack $w.dest -anchor nw -fill x -pady 5 -padx 5
  
-       labelframe $w.heads -text {Branches}
+       labelframe $w.heads -text [mc "Branches"]
        listbox $w.heads.l \
                -height 10 \
                -width 70 \
@@@ -96,7 -96,7 +96,7 @@@
                -anchor w \
                -justify left
        button $w.heads.footer.rescan \
-               -text {Rescan} \
+               -text [mc "Rescan"] \
                -command [cb _rescan]
        pack $w.heads.footer.status -side left -fill x
        pack $w.heads.footer.rescan -side right
        pack $w.heads.l -side left -fill both -expand 1
        pack $w.heads -fill both -expand 1 -pady 5 -padx 5
  
-       labelframe $w.validate -text {Delete Only If}
+       labelframe $w.validate -text [mc "Delete Only If"]
        radiobutton $w.validate.head_r \
-               -text {Merged Into:} \
+               -text [mc "Merged Into:"] \
                -value head \
                -variable @checktype
        set head_m [tk_optionMenu $w.validate.head_m @check_head {}]
        trace add variable @check_head write [cb _write_check_head]
        grid $w.validate.head_r $w.validate.head_m -sticky w
        radiobutton $w.validate.always_r \
-               -text {Always (Do not perform merge checks)} \
+               -text [mc "Always (Do not perform merge checks)"] \
                -value always \
                -variable @checktype
        grid $w.validate.always_r -columnspan 2 -sticky w
@@@ -149,7 -149,7 +149,7 @@@ method _delete {} 
                                -type ok \
                                -title [wm title $w] \
                                -parent $w \
-                               -message "A branch is required for 'Merged Into'."
+                               -message [mc "A branch is required for 'Merged Into'."]
                        return
                }
                set crev $full_cache("$cache\nrefs/heads/$check_head")
        }
  
        if {$not_merged ne {}} {
-               set msg "The following branches are not completely merged into $check_head:
+               set msg [mc "The following branches are not completely merged into %s:
  
-  - [join $not_merged "\n - "]"
+  - %s" $check_head [join $not_merged "\n - "]]
  
                if {$need_fetch} {
-                       append msg "
- One or more of the merge tests failed because you have not fetched the necessary commits.  Try fetching from $uri first."
+                       append msg "\n\n" [mc "One or more of the merge tests failed because you have not fetched the necessary commits.  Try fetching from %s first." $uri]
                }
  
                tk_messageBox \
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Please select one or more branches to delete."
+                       -message [mc "Please select one or more branches to delete."]
                return
        }
  
                -type yesno \
                -title [wm title $w] \
                -parent $w \
-               -message {Recovering deleted branches is difficult.
+               -message [mc "Recovering deleted branches is difficult.
  
- Delete the selected branches?}] ne yes} {
+ Delete the selected branches?"]] ne yes} {
                return
        }
  
  
        set cons [console::new \
                "push $uri" \
-               "Deleting branches from $uri"]
+               [mc "Deleting branches from %s" $uri]]
        console::exec $cons $push_cmd
  }
  
@@@ -285,12 -283,12 +283,12 @@@ method _load {cache uri} 
                $w.heads.l conf -state disabled
                set head_list [list]
                set full_list [list]
-               set status {No repository selected.}
+               set status [mc "No repository selected."]
                return
        }
  
        if {[catch {set x $cached($cache)}]} {
-               set status "Scanning $uri..."
+               set status [mc "Scanning %s..." $uri]
                $w.heads.l conf -state disabled
                set head_list [list]
                set full_list [list]
diff --combined git-gui/lib/shortcut.tcl
index c36be2f3cd29b4b0426c312536dca6f697593305,38c3151b05c732d919943e44629bfc0a8c9fb617..38c3151b05c732d919943e44629bfc0a8c9fb617
@@@ -2,28 -2,22 +2,22 @@@
  # Copyright (C) 2006, 2007 Shawn Pearce
  
  proc do_windows_shortcut {} {
-       global argv0
        set fn [tk_getSaveFile \
                -parent . \
-               -title "[appname] ([reponame]): Create Desktop Icon" \
-               -initialfile "Git [reponame].bat"]
+               -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
+               -initialfile "Git [reponame].lnk"]
        if {$fn != {}} {
-               if {[file extension $fn] ne {.bat}} {
-                       set fn ${fn}.bat
+               if {[file extension $fn] ne {.lnk}} {
+                       set fn ${fn}.lnk
                }
                if {[catch {
-                               set ge [file normalize [file dirname $::_git]]
-                               set fd [open $fn w]
-                               puts $fd "@ECHO Entering [reponame]"
-                               puts $fd "@ECHO Starting git-gui... please wait..."
-                               puts $fd "@SET PATH=$ge;%PATH%"
-                               puts $fd "@SET GIT_DIR=[file normalize [gitdir]]"
-                               puts -nonewline $fd "@\"[info nameofexecutable]\""
-                               puts $fd " \"[file normalize $argv0]\""
-                               close $fd
+                               win32_create_lnk $fn [list \
+                                       [info nameofexecutable] \
+                                       [file normalize $::argv0] \
+                                       ] \
+                                       [file dirname [file normalize [gitdir]]]
                        } err]} {
-                       error_popup "Cannot write script:\n\n$err"
+                       error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"]
                }
        }
  }
@@@ -42,15 -36,14 +36,14 @@@ proc do_cygwin_shortcut {} 
        }
        set fn [tk_getSaveFile \
                -parent . \
-               -title "[appname] ([reponame]): Create Desktop Icon" \
+               -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
                -initialdir $desktop \
-               -initialfile "Git [reponame].bat"]
+               -initialfile "Git [reponame].lnk"]
        if {$fn != {}} {
-               if {[file extension $fn] ne {.bat}} {
-                       set fn ${fn}.bat
+               if {[file extension $fn] ne {.lnk}} {
+                       set fn ${fn}.lnk
                }
                if {[catch {
-                               set fd [open $fn w]
                                set sh [exec cygpath \
                                        --windows \
                                        --absolute \
                                        --unix \
                                        --absolute \
                                        $argv0]
-                               set gd [exec cygpath \
-                                       --unix \
-                                       --absolute \
-                                       [gitdir]]
-                               puts $fd "@ECHO Entering [reponame]"
-                               puts $fd "@ECHO Starting git-gui... please wait..."
-                               puts -nonewline $fd "@\"$sh\" --login -c \""
-                               puts -nonewline $fd "GIT_DIR=[sq $gd]"
-                               puts -nonewline $fd " [sq $me]"
-                               puts $fd " &\""
-                               close $fd
+                               win32_create_lnk $fn [list \
+                                       $sh -c \
+                                       "CHERE_INVOKING=1 source /etc/profile;[sq $me]" \
+                                       ] \
+                                       [file dirname [file normalize [gitdir]]]
                        } err]} {
-                       error_popup "Cannot write script:\n\n$err"
+                       error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"]
                }
        }
  }
@@@ -81,7 -68,7 +68,7 @@@ proc do_macosx_app {} 
  
        set fn [tk_getSaveFile \
                -parent . \
-               -title "[appname] ([reponame]): Create Desktop Icon" \
+               -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \
                -initialdir [file join $env(HOME) Desktop] \
                -initialfile "Git [reponame].app"]
        if {$fn != {}} {
  
                                file attributes $exe -permissions u+x,g+x,o+x
                        } err]} {
-                       error_popup "Cannot write icon:\n\n$err"
+                       error_popup [strcat [mc "Cannot write icon:"] "\n\n$err"]
                }
        }
  }
index 3bf79eb6e0608560d00aab82bc1d691db83881af,51d4177551b911c35cfd8004a36fca4259367d24..51d4177551b911c35cfd8004a36fca4259367d24
@@@ -6,6 -6,7 +6,7 @@@ class status_bar 
  field w         ; # our own window path
  field w_l       ; # text widget we draw messages into
  field w_c       ; # canvas we draw a progress bar into
+ field c_pack    ; # script to pack the canvas with
  field status  {}; # single line of text we show
  field prefix  {}; # text we format into status
  field units   {}; # unit of progress
@@@ -24,6 -25,29 +25,29 @@@ constructor new {path} 
                -anchor w \
                -justify left
        pack $w_l -side left
+       set c_pack [cb _oneline_pack]
+       bind $w <Destroy> [cb _delete %W]
+       return $this
+ }
+ method _oneline_pack {} {
+       $w_c conf -width 100
+       pack $w_c -side right
+ }
+ constructor two_line {path} {
+       set w $path
+       set w_l $w.l
+       set w_c $w.c
+       frame $w
+       label $w_l \
+               -textvariable @status \
+               -anchor w \
+               -justify left
+       pack $w_l -anchor w -fill x
+       set c_pack [list pack $w_c -fill x]
  
        bind $w <Destroy> [cb _delete %W]
        return $this
@@@ -34,13 -58,12 +58,12 @@@ method start {msg uds} 
                $w_c coords bar 0 0 0 20
        } else {
                canvas $w_c \
-                       -width 100 \
                        -height [expr {int([winfo reqheight $w_l] * 0.6)}] \
                        -borderwidth 1 \
                        -relief groove \
                        -highlightt 0
                $w_c create rectangle 0 0 0 20 -tags bar -fill navy
-               pack $w_c -side right
+               eval $c_pack
        }
  
        set status $msg
@@@ -53,11 -76,16 +76,16 @@@ method update {have total} 
        set pdone 0
        if {$total > 0} {
                set pdone [expr {100 * $have / $total}]
+               set cdone [expr {[winfo width $w_c] * $have / $total}]
        }
  
-       set status [format "%s ... %i of %i %s (%2i%%)" \
-               $prefix $have $total $units $pdone]
-       $w_c coords bar 0 0 $pdone 20
+       set prec [string length [format %i $total]]
+       set status [mc "%s ... %*i of %*i %s (%3i%%)" \
+               $prefix \
+               $prec $have \
+               $prec $total \
+               $units $pdone]
+       $w_c coords bar 0 0 $cdone 20
  }
  
  method update_meter {buf} {
index 3a22bd40d4df6f18204afc154cef82d5e3d52f58,8e6a9d0a6010cf5efee069a2d488124bcbdb54cd..8e6a9d0a6010cf5efee069a2d488124bcbdb54cd
@@@ -3,8 -3,8 +3,8 @@@
  
  proc fetch_from {remote} {
        set w [console::new \
-               "fetch $remote" \
-               "Fetching new changes from $remote"]
+               [mc "fetch %s" $remote] \
+               [mc "Fetching new changes from %s" $remote]]
        set cmds [list]
        lappend cmds [list exec git fetch $remote]
        if {[is_config_true gui.pruneduringfetch]} {
  
  proc prune_from {remote} {
        set w [console::new \
-               "remote prune $remote" \
-               "Pruning tracking branches deleted from $remote"]
+               [mc "remote prune %s" $remote] \
+               [mc "Pruning tracking branches deleted from %s" $remote]]
        console::exec $w [list git remote prune $remote]
  }
  
  proc push_to {remote} {
        set w [console::new \
-               "push $remote" \
-               "Pushing changes to $remote"]
+               [mc "push %s" $remote] \
+               [mc "Pushing changes to %s" $remote]]
        set cmd [list git push]
        lappend cmd -v
        lappend cmd $remote
@@@ -32,6 -32,7 +32,7 @@@
  
  proc start_push_anywhere_action {w} {
        global push_urltype push_remote push_url push_thin push_tags
+       global push_force
  
        set r_url {}
        switch -- $push_urltype {
@@@ -45,6 -46,9 +46,9 @@@
        if {$push_thin} {
                lappend cmd --thin
        }
+       if {$push_force} {
+               lappend cmd --force
+       }
        if {$push_tags} {
                lappend cmd --tags
        }
@@@ -64,8 -68,8 +68,8 @@@
        }
  
        set cons [console::new \
-               "push $r_url" \
-               "Pushing $cnt $unit to $r_url"]
+               [mc "push %s" $r_url] \
+               [mc "Pushing %s %s to %s" $cnt $unit $r_url]]
        console::exec $cons $cmd
        destroy $w
  }
@@@ -76,26 -80,27 +80,27 @@@ trace add variable push_remote write 
  proc do_push_anywhere {} {
        global all_remotes current_branch
        global push_urltype push_remote push_url push_thin push_tags
+       global push_force
  
        set w .push_setup
        toplevel $w
        wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
  
-       label $w.header -text {Push Branches} -font font_uibold
+       label $w.header -text [mc "Push Branches"] -font font_uibold
        pack $w.header -side top -fill x
  
        frame $w.buttons
-       button $w.buttons.create -text Push \
+       button $w.buttons.create -text [mc Push] \
                -default active \
                -command [list start_push_anywhere_action $w]
        pack $w.buttons.create -side right
-       button $w.buttons.cancel -text {Cancel} \
+       button $w.buttons.cancel -text [mc "Cancel"] \
                -default normal \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
  
-       labelframe $w.source -text {Source Branches}
+       labelframe $w.source -text [mc "Source Branches"]
        listbox $w.source.l \
                -height 10 \
                -width 70 \
        pack $w.source.l -side left -fill both -expand 1
        pack $w.source -fill both -expand 1 -pady 5 -padx 5
  
-       labelframe $w.dest -text {Destination Repository}
+       labelframe $w.dest -text [mc "Destination Repository"]
        if {$all_remotes ne {}} {
                radiobutton $w.dest.remote_r \
-                       -text {Remote:} \
+                       -text [mc "Remote:"] \
                        -value remote \
                        -variable push_urltype
                eval tk_optionMenu $w.dest.remote_m push_remote $all_remotes
                set push_urltype url
        }
        radiobutton $w.dest.url_r \
-               -text {Arbitrary URL:} \
+               -text [mc "Arbitrary URL:"] \
                -value url \
                -variable push_urltype
        entry $w.dest.url_t \
        grid columnconfigure $w.dest 1 -weight 1
        pack $w.dest -anchor nw -fill x -pady 5 -padx 5
  
-       labelframe $w.options -text {Transfer Options}
+       labelframe $w.options -text [mc "Transfer Options"]
+       checkbutton $w.options.force \
+               -text [mc "Force overwrite existing branch (may discard changes)"] \
+               -variable push_force
+       grid $w.options.force -columnspan 2 -sticky w
        checkbutton $w.options.thin \
-               -text {Use thin pack (for slow network connections)} \
+               -text [mc "Use thin pack (for slow network connections)"] \
                -variable push_thin
        grid $w.options.thin -columnspan 2 -sticky w
        checkbutton $w.options.tags \
-               -text {Include tags} \
+               -text [mc "Include tags"] \
                -variable push_tags
        grid $w.options.tags -columnspan 2 -sticky w
        grid columnconfigure $w.options 1 -weight 1
        pack $w.options -anchor nw -fill x -pady 5 -padx 5
  
        set push_url {}
+       set push_force 0
        set push_thin 0
        set push_tags 0
  
        bind $w <Visibility> "grab $w; focus $w.buttons.create"
        bind $w <Key-Escape> "destroy $w"
        bind $w <Key-Return> [list start_push_anywhere_action $w]
-       wm title $w "[appname] ([reponame]): Push"
+       wm title $w [append "[appname] ([reponame]): " [mc "Push"]]
        tkwait window $w
  }
diff --combined git-gui/lib/win32.tcl
index 0000000000000000000000000000000000000000,d7f93d045d1a2b3a14d2fdb4907697622b5973a8..d7f93d045d1a2b3a14d2fdb4907697622b5973a8
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,26 +1,26 @@@
+ # git-gui Misc. native Windows 32 support
+ # Copyright (C) 2007 Shawn Pearce
+ proc win32_read_lnk {lnk_path} {
+       return [exec cscript.exe \
+               /E:jscript \
+               /nologo \
+               [file join $::oguilib win32_shortcut.js] \
+               $lnk_path]
+ }
+ proc win32_create_lnk {lnk_path lnk_exec lnk_dir} {
+       global oguilib
+       set lnk_args [lrange $lnk_exec 1 end]
+       set lnk_exec [lindex $lnk_exec 0]
+       eval [list exec wscript.exe \
+               /E:jscript \
+               /nologo \
+               [file join $oguilib win32_shortcut.js] \
+               $lnk_path \
+               [file join $oguilib git-gui.ico] \
+               $lnk_dir \
+               $lnk_exec] $lnk_args
+ }
index 0000000000000000000000000000000000000000,117923f8860bb8f0f04c1664d8cbe38804a59831..117923f8860bb8f0f04c1664d8cbe38804a59831
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,34 +1,34 @@@
+ // git-gui Windows shortcut support
+ // Copyright (C) 2007 Shawn Pearce
+ var WshShell = WScript.CreateObject("WScript.Shell");
+ var argv = WScript.Arguments;
+ var argi = 0;
+ var lnk_path = argv.item(argi++);
+ var ico_path = argi < argv.length ? argv.item(argi++) : undefined;
+ var dir_path = argi < argv.length ? argv.item(argi++) : undefined;
+ var lnk_exec = argi < argv.length ? argv.item(argi++) : undefined;
+ var lnk_args = '';
+ while (argi < argv.length) {
+       var s = argv.item(argi++);
+       if (lnk_args != '')
+               lnk_args += ' ';
+       if (s.indexOf(' ') >= 0) {
+               lnk_args += '"';
+               lnk_args += s;
+               lnk_args += '"';
+       } else {
+               lnk_args += s;
+       }
+ }
+ var lnk = WshShell.CreateShortcut(lnk_path);
+ if (argv.length == 1) {
+       WScript.echo(lnk.TargetPath);
+ } else {
+       lnk.TargetPath = lnk_exec;
+       lnk.Arguments = lnk_args;
+       lnk.IconLocation = ico_path + ", 0";
+       lnk.WorkingDirectory = dir_path;
+       lnk.Save();
+ }
index 0000000000000000000000000000000000000000,41ca08e2b7929c59806b3b07a18dbae0ebfae933..41ca08e2b7929c59806b3b07a18dbae0ebfae933
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,22 +1,22 @@@
+ set gitexecdir {@@gitexecdir@@}
+ set gitguilib  {@@GITGUI_LIBDIR@@}
+ set env(PATH) "$gitexecdir:$env(PATH)"
+ if {[string first -psn [lindex $argv 0]] == 0} {
+       lset argv 0 [file join $gitexecdir git-gui]
+ }
+ if {[file tail [lindex $argv 0]] eq {gitk}} {
+       set argv0 [file join $gitexecdir gitk]
+       set AppMain_source $argv0
+ } else {
+       set argv0 [file join $gitexecdir [file tail [lindex $argv 0]]]
+       set AppMain_source [file join $gitguilib git-gui.tcl]
+       if {[pwd] eq {/}} {
+               cd $env(HOME)
+       }
+ }
+ unset gitexecdir gitguilib
+ set argv [lrange $argv 1 end]
+ source $AppMain_source
index 0000000000000000000000000000000000000000,99913ec57a346ad996fefa2d3f1f51be3265170b..99913ec57a346ad996fefa2d3f1f51be3265170b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,28 +1,28 @@@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+ <plist version="1.0">
+ <dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>Wish</string>
+       <key>CFBundleGetInfoString</key>
+       <string>Git Gui @@GITGUI_VERSION@@ © 2006-2007 Shawn Pearce, et. al.</string>
+       <key>CFBundleIconFile</key>
+       <string>git-gui.icns</string>
+       <key>CFBundleIdentifier</key>
+       <string>cz.or.repo.git-gui</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleName</key>
+       <string>Git Gui</string>
+       <key>CFBundlePackageType</key>
+       <string>APPL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>@@GITGUI_VERSION@@</string>
+       <key>CFBundleSignature</key>
+       <string>GITg</string>
+       <key>CFBundleVersion</key>
+       <string>@@GITGUI_VERSION@@</string>
+ </dict>
+ </plist>
index 0000000000000000000000000000000000000000,77d88a77a7669667335cf6fd5767c8b40f3ce6e7..77d88a77a7669667335cf6fd5767c8b40f3ce6e7
mode 000000,100644..100644
Binary files differ
diff --combined git-gui/po/.gitignore
index 0000000000000000000000000000000000000000,a89cf4496990737117d7558a7465f68aa058e465..a89cf4496990737117d7558a7465f68aa058e465
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,2 +1,2 @@@
+ *.msg
+ *~
diff --combined git-gui/po/README
index 0000000000000000000000000000000000000000,9d8b7364fd8dda62a5acf2cb99e1c0a59205df9e..9d8b7364fd8dda62a5acf2cb99e1c0a59205df9e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,209 +1,209 @@@
+ Localizing git-gui for your language
+ ====================================
+ This short note is to help you, who reads and writes English and your
+ own language, help us getting git-gui localized for more languages.  It
+ does not try to be a comprehensive manual of GNU gettext, which is the
+ i18n framework we use, but tries to help you get started by covering the
+ basics and how it is used in this project.
+ 1. Getting started.
+ You would first need to have a working "git".  Your distribution may
+ have it as "git-core" package (do not get "GNU Interactive Tools" --
+ that is a different "git").  You would also need GNU gettext toolchain
+ to test the resulting translation out.  Although you can work on message
+ translation files with a regular text editor, it is a good idea to have
+ specialized so-called "po file editors" (e.g. emacs po-mode, KBabel,
+ poedit, GTranslator --- any of them would work well).  Please install
+ them.
+ You would then need to clone the git-gui internationalization project
+ repository, so that you can work on it:
+       $ git clone mob@repo.or.cz:/srv/git/git-gui/git-gui-i18n.git/
+       $ cd git-gui-i18n
+       $ git checkout --track -b mob origin/mob
+       $ git config remote.origin.push mob
+ The "git checkout" command creates a 'mob' branch from upstream's
+ corresponding branch and makes it your current branch.  You will be
+ working on this branch.
+ The "git config" command records in your repository configuration file
+ that you would push "mob" branch to the upstream when you say "git
+ push".
+ 2. Starting a new language.
+ In the git-gui-i18n directory is a po/ subdirectory.  It has a
+ handful files whose names end with ".po".  Is there a file that has
+ messages in your language?
+ If you do not know what your language should be named, you need to find
+ it.  This currently follows ISO 639-1 two letter codes:
+       http://www.loc.gov/standards/iso639-2/php/code_list.php
+ For example, if you are preparing a translation for Afrikaans, the
+ language code is "af".  If there already is a translation for your
+ language, you do not have to perform any step in this section, but keep
+ reading, because we are covering the basics.
+ If you did not find your language, you would need to start one yourself.
+ Copy po/git-gui.pot file to po/af.po (replace "af" with the code for
+ your language).  Edit the first several lines to match existing *.po
+ files to make it clear this is a translation table for git-gui project,
+ and you are the primary translator.  The result of your editing would
+ look something like this:
+     # Translation of git-gui to Afrikaans
+     # Copyright (C) 2007 Shawn Pearce
+     # This file is distributed under the same license as the git-gui package.
+     # YOUR NAME <YOUR@E-MAIL.ADDRESS>, 2007.
+     #
+     #, fuzzy
+     msgid ""
+     msgstr ""
+     "Project-Id-Version: git-gui\n"
+     "Report-Msgid-Bugs-To: \n"
+     "POT-Creation-Date: 2007-07-24 22:19+0300\n"
+     "PO-Revision-Date: 2007-07-25 18:00+0900\n"
+     "Last-Translator: YOUR NAME <YOUR@E-MAIL.ADDRESS>\n"
+     "Language-Team: Afrikaans\n"
+     "MIME-Version: 1.0\n"
+     "Content-Type: text/plain; charset=UTF-8\n"
+     "Content-Transfer-Encoding: 8bit\n"
+ You will find many pairs of a "msgid" line followed by a "msgstr" line.
+ These pairs define how messages in git-gui application are translated to
+ your language.  Your primarily job is to fill in the empty double quote
+ pairs on msgstr lines with the translation of the strings on their
+ matching msgid lines.  A few tips:
+  - Control characters, such as newlines, are written in backslash
+    sequence similar to string literals in the C programming language.
+    When the string given on a msgid line has such a backslash sequence,
+    you would typically want to have corresponding ones in the string on
+    your msgstr line.
+  - Some messages contain an optional context indicator at the end,
+    for example "@@noun" or "@@verb".  This indicator allows the
+    software to select the correct translation depending upon the use.
+    The indicator is not actually part of the message and will not
+    be shown to the end-user.
+    If your language does not require a different translation you
+    will still need to translate both messages.
+  - Often the messages being translated are format strings given to
+    "printf()"-like functions.  Make sure "%s", "%d", and "%%" in your
+    translated messages match the original.
+    When you have to change the order of words, you can add "<number>\$"
+    between '%' and the conversion ('s', 'd', etc.) to say "<number>-th
+    parameter to the format string is used at this point".  For example,
+    if the original message is like this:
+       "Length is %d, Weight is %d"
+    and if for whatever reason your translation needs to say weight first
+    and then length, you can say something like:
+       "WEIGHT IS %2\$d, LENGTH IS %1\$d"
+    The reason you need a backslash before dollar sign is because
+    this is a double quoted string in Tcl language, and without
+    it the letter introduces a variable interpolation, which you
+    do not want here.
+  - A long message can be split across multiple lines by ending the
+    string with a double quote, and starting another string on the next
+    line with another double quote.  They will be concatenated in the
+    result.  For example:
+    #: lib/remote_branch_delete.tcl:189
+    #, tcl-format
+    msgid ""
+    "One or more of the merge tests failed because you have not fetched the "
+    "necessary commits.  Try fetching from %s first."
+    msgstr ""
+    "HERE YOU WILL WRITE YOUR TRANSLATION OF THE ABOVE LONG "
+    "MESSAGE IN YOUR LANGUAGE."
+ You can test your translation by running "make install", which would
+ create po/af.msg file and installs the result, and then running the
+ resulting git-gui under your locale:
+       $ make install
+       $ LANG=af git-gui
+ There is a trick to test your translation without first installing:
+       $ make
+       $ LANG=af ./git-gui.sh
+ When you are satisfied with your translation, commit your changes, and
+ push it back to the 'mob' branch:
+       $ edit po/af.po
+       ... be sure to update Last-Translator: and
+       ... PO-Revision-Date: lines.
+       $ git add po/af.po
+       $ git commit -m 'Started Afrikaans translation.'
+       $ git push
+ 3. Updating your translation.
+ There may already be a translation for your language, and you may want
+ to contribute an update.  This may be because you would want to improve
+ the translation of existing messages, or because the git-gui software
+ itself was updated and there are new messages that need translation.
+ In any case, make sure you are up-to-date before starting your work:
+       $ git pull
+ In the former case, you will edit po/af.po (again, replace "af" with
+ your language code), and after testing and updating the Last-Translator:
+ and PO-Revision-Date: lines, "add/commit/push" as in the previous
+ section.
+ By comparing "POT-Creation-Date:" line in po/git-gui.pot file and
+ po/af.po file, you can tell if there are new messages that need to be
+ translated.  You would need the GNU gettext package to perform this
+ step.
+       $ msgmerge -U po/af.po po/git-gui.pot
+ [NEEDSWORK: who is responsible for updating po/git-gui.pot file by
+ running xgettext?  IIRC, Christian recommended against running it
+ nilly-willy because it can become a source of unnecessary merge
+ conflicts.  Perhaps we should mention something like "
+ The po/git-gui.pot file is updated by the internationalization
+ coordinator from time to time.  You _could_ update it yourself, but
+ translators are discouraged from doing so because we would want all
+ language teams to be working off of the same version of git-gui.pot.
+ " here?]
+ This updates po/af.po (again, replace "af" with your language
+ code) so that it contains msgid lines (i.e. the original) that
+ your translation did not have before.  There are a few things to
+ watch out for:
+  - The original text in English of an older message you already
+    translated might have been changed.  You will notice a comment line
+    that begins with "#, fuzzy" in front of such a message.  msgmerge
+    tool made its best effort to match your old translation with the
+    message from the updated software, but you may find cases that it
+    matched your old translated message to a new msgid and the pairing
+    does not make any sense -- you would need to fix them, and then
+    remove the "#, fuzzy" line from the message (your fixed translation
+    of the message will not be used before you remove the marker).
+  - New messages added to the software will have msgstr lines with empty
+    strings.  You would need to translate them.
diff --combined git-gui/po/de.po
index 0000000000000000000000000000000000000000,3df30edb871164e2374ee004f511642ae7aaec43..3df30edb871164e2374ee004f511642ae7aaec43
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1878 +1,1878 @@@
+ # Translation of git-gui to German.
+ # Copyright (C) 2007 Shawn Pearce, et al.
+ # This file is distributed under the same license as the git package.
+ # Christian Stimming <stimming@tuhh.de>, 2007
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-19 21:10+0200\n"
+ "PO-Revision-Date: 2007-10-20 15:28+0200\n"
+ "Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
+ "Language-Team: German\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:590 git-gui.sh:604 git-gui.sh:617 git-gui.sh:700
+ #: git-gui.sh:719
+ msgid "git-gui: fatal error"
+ msgstr "git-gui: Programmfehler"
+ #: git-gui.sh:551
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr "Ungültige Zeichensatz-Angabe in %s:"
+ #: git-gui.sh:576
+ msgid "Main Font"
+ msgstr "Programmschriftart"
+ #: git-gui.sh:577
+ msgid "Diff/Console Font"
+ msgstr "Vergleich-Schriftart"
+ #: git-gui.sh:591
+ msgid "Cannot find git in PATH."
+ msgstr "Git kann im PATH nicht gefunden werden."
+ #: git-gui.sh:618
+ msgid "Cannot parse Git version string:"
+ msgstr "Git Versionsangabe kann nicht erkannt werden:"
+ #: git-gui.sh:636
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ "Die Version von Git kann nicht bestimmt werden.\n"
+ "\n"
+ "»%s« behauptet, es sei Version »%s«.\n"
+ "\n"
+ "%s benötigt mindestens Git 1.5.0 oder höher.\n"
+ "\n"
+ "Soll angenommen werden, »%s« sei Version 1.5.0?\n"
+ #: git-gui.sh:874
+ msgid "Git directory not found:"
+ msgstr "Git-Verzeichnis nicht gefunden:"
+ #: git-gui.sh:881
+ msgid "Cannot move to top of working directory:"
+ msgstr ""
+ "Es konnte nicht in das oberste Verzeichnis der Arbeitskopie gewechselt "
+ "werden:"
+ #: git-gui.sh:888
+ msgid "Cannot use funny .git directory:"
+ msgstr "Unerwartete Struktur des .git Verzeichnis:"
+ #: git-gui.sh:893
+ msgid "No working directory"
+ msgstr "Kein Arbeitsverzeichnis"
+ #: git-gui.sh:1040
+ msgid "Refreshing file status..."
+ msgstr "Dateistatus aktualisieren..."
+ #: git-gui.sh:1105
+ msgid "Scanning for modified files ..."
+ msgstr "Nach geänderten Dateien suchen..."
+ #: git-gui.sh:1280 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr "Bereit."
+ #: git-gui.sh:1546
+ msgid "Unmodified"
+ msgstr "Unverändert"
+ #: git-gui.sh:1548
+ msgid "Modified, not staged"
+ msgstr "Verändert, nicht bereitgestellt"
+ #: git-gui.sh:1549 git-gui.sh:1554
+ msgid "Staged for commit"
+ msgstr "Bereitgestellt zum Eintragen"
+ #: git-gui.sh:1550 git-gui.sh:1555
+ msgid "Portions staged for commit"
+ msgstr "Teilweise bereitgestellt zum Eintragen"
+ #: git-gui.sh:1551 git-gui.sh:1556
+ msgid "Staged for commit, missing"
+ msgstr "Bereitgestellt zum Eintragen, fehlend"
+ #: git-gui.sh:1553
+ msgid "Untracked, not staged"
+ msgstr "Nicht unter Versionskontrolle, nicht bereitgestellt"
+ #: git-gui.sh:1558
+ msgid "Missing"
+ msgstr "Fehlend"
+ #: git-gui.sh:1559
+ msgid "Staged for removal"
+ msgstr "Bereitgestellt zum Löschen"
+ #: git-gui.sh:1560
+ msgid "Staged for removal, still present"
+ msgstr "Bereitgestellt zum Löschen, trotzdem vorhanden"
+ #: git-gui.sh:1562 git-gui.sh:1563 git-gui.sh:1564 git-gui.sh:1565
+ msgid "Requires merge resolution"
+ msgstr "Konfliktauflösung nötig"
+ #: git-gui.sh:1600
+ msgid "Starting gitk... please wait..."
+ msgstr "Gitk wird gestartet... bitte warten."
+ #: git-gui.sh:1609
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ "Gitk kann nicht gestartet werden:\n"
+ "\n"
+ "%s existiert nicht"
+ #: git-gui.sh:1809 lib/choose_repository.tcl:35
+ msgid "Repository"
+ msgstr "Projektarchiv"
+ #: git-gui.sh:1810
+ msgid "Edit"
+ msgstr "Bearbeiten"
+ #: git-gui.sh:1812 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "Zweig"
+ #: git-gui.sh:1815 lib/choose_rev.tcl:547
+ msgid "Commit@@noun"
+ msgstr "Version"
+ #: git-gui.sh:1818 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "Zusammenführen"
+ #: git-gui.sh:1819 lib/choose_rev.tcl:556
+ msgid "Remote"
+ msgstr "Andere Archive"
+ #: git-gui.sh:1828
+ msgid "Browse Current Branch's Files"
+ msgstr "Aktuellen Zweig durchblättern"
+ #: git-gui.sh:1832
+ msgid "Browse Branch Files..."
+ msgstr "Einen Zweig durchblättern..."
+ #: git-gui.sh:1837
+ msgid "Visualize Current Branch's History"
+ msgstr "Aktuellen Zweig darstellen"
+ #: git-gui.sh:1841
+ msgid "Visualize All Branch History"
+ msgstr "Alle Zweige darstellen"
+ #: git-gui.sh:1848
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "Zweig »%s« durchblättern"
+ #: git-gui.sh:1850
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "Historie von »%s« darstellen"
+ #: git-gui.sh:1855 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "Datenbankstatistik"
+ #: git-gui.sh:1858 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "Datenbank komprimieren"
+ #: git-gui.sh:1861
+ msgid "Verify Database"
+ msgstr "Datenbank überprüfen"
+ #: git-gui.sh:1868 git-gui.sh:1872 git-gui.sh:1876 lib/shortcut.tcl:7
+ #: lib/shortcut.tcl:39 lib/shortcut.tcl:71
+ msgid "Create Desktop Icon"
+ msgstr "Desktop-Icon erstellen"
+ #: git-gui.sh:1881 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+ msgid "Quit"
+ msgstr "Beenden"
+ #: git-gui.sh:1888
+ msgid "Undo"
+ msgstr "Rückgängig"
+ #: git-gui.sh:1891
+ msgid "Redo"
+ msgstr "Wiederholen"
+ #: git-gui.sh:1895 git-gui.sh:2388
+ msgid "Cut"
+ msgstr "Ausschneiden"
+ #: git-gui.sh:1898 git-gui.sh:2391 git-gui.sh:2462 git-gui.sh:2534
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "Kopieren"
+ #: git-gui.sh:1901 git-gui.sh:2394
+ msgid "Paste"
+ msgstr "Einfügen"
+ #: git-gui.sh:1904 git-gui.sh:2397 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "Löschen"
+ #: git-gui.sh:1908 git-gui.sh:2401 git-gui.sh:2538 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "Alle auswählen"
+ #: git-gui.sh:1917
+ msgid "Create..."
+ msgstr "Erstellen..."
+ #: git-gui.sh:1923
+ msgid "Checkout..."
+ msgstr "Umstellen..."
+ #: git-gui.sh:1929
+ msgid "Rename..."
+ msgstr "Umbenennen..."
+ #: git-gui.sh:1934 git-gui.sh:2033
+ msgid "Delete..."
+ msgstr "Löschen..."
+ #: git-gui.sh:1939
+ msgid "Reset..."
+ msgstr "Zurücksetzen..."
+ #: git-gui.sh:1951 git-gui.sh:2335
+ msgid "New Commit"
+ msgstr "Neue Version"
+ #: git-gui.sh:1959 git-gui.sh:2342
+ msgid "Amend Last Commit"
+ msgstr "Letzte Version nachbessern"
+ #: git-gui.sh:1968 git-gui.sh:2302 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "Neu laden"
+ #: git-gui.sh:1974
+ msgid "Stage To Commit"
+ msgstr "Zum Eintragen bereitstellen"
+ #: git-gui.sh:1979
+ msgid "Stage Changed Files To Commit"
+ msgstr "Geänderte Dateien zum Eintragen bereitstellen"
+ #: git-gui.sh:1985
+ msgid "Unstage From Commit"
+ msgstr "Aus der Bereitstellung herausnehmen"
+ #: git-gui.sh:1990 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr "Änderungen revidieren"
+ #: git-gui.sh:1997 git-gui.sh:2314 git-gui.sh:2412
+ msgid "Sign Off"
+ msgstr "Abzeichnen"
+ #: git-gui.sh:2001 git-gui.sh:2318
+ msgid "Commit@@verb"
+ msgstr "Eintragen"
+ #: git-gui.sh:2012
+ msgid "Local Merge..."
+ msgstr "Lokales Zusammenführen..."
+ #: git-gui.sh:2017
+ msgid "Abort Merge..."
+ msgstr "Zusammenführen abbrechen..."
+ #: git-gui.sh:2029
+ msgid "Push..."
+ msgstr "Versenden..."
+ #: git-gui.sh:2040 lib/choose_repository.tcl:40
+ msgid "Apple"
+ msgstr "Apple"
+ #: git-gui.sh:2043 git-gui.sh:2065 lib/about.tcl:13
+ #: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+ #, tcl-format
+ msgid "About %s"
+ msgstr "Über %s"
+ #: git-gui.sh:2047
+ msgid "Preferences..."
+ msgstr "Einstellungen..."
+ #: git-gui.sh:2055 git-gui.sh:2580
+ msgid "Options..."
+ msgstr "Optionen..."
+ #: git-gui.sh:2061 lib/choose_repository.tcl:46
+ msgid "Help"
+ msgstr "Hilfe"
+ #: git-gui.sh:2102
+ msgid "Online Documentation"
+ msgstr "Online-Dokumentation"
+ #: git-gui.sh:2186
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr ""
+ #: git-gui.sh:2219
+ msgid "Current Branch:"
+ msgstr "Aktueller Zweig:"
+ #: git-gui.sh:2240
+ msgid "Staged Changes (Will Commit)"
+ msgstr "Bereitgestellte Änderungen (zum Eintragen)"
+ #: git-gui.sh:2259
+ msgid "Unstaged Changes"
+ msgstr "Nicht bereitgestellte Änderungen"
+ #: git-gui.sh:2308
+ msgid "Stage Changed"
+ msgstr "Alles bereitstellen"
+ #: git-gui.sh:2324 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "Versenden"
+ #: git-gui.sh:2354
+ msgid "Initial Commit Message:"
+ msgstr "Erste Versionsbeschreibung:"
+ #: git-gui.sh:2355
+ msgid "Amended Commit Message:"
+ msgstr "Nachgebesserte Versionsbeschreibung:"
+ #: git-gui.sh:2356
+ msgid "Amended Initial Commit Message:"
+ msgstr "Nachgebesserte erste Versionsbeschreibung:"
+ #: git-gui.sh:2357
+ msgid "Amended Merge Commit Message:"
+ msgstr "Nachgebesserte Zusammenführungs-Versionsbeschreibung:"
+ #: git-gui.sh:2358
+ msgid "Merge Commit Message:"
+ msgstr "Zusammenführungs-Versionsbeschreibung:"
+ #: git-gui.sh:2359
+ msgid "Commit Message:"
+ msgstr "Versionsbeschreibung:"
+ #: git-gui.sh:2404 git-gui.sh:2542 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "Alle kopieren"
+ #: git-gui.sh:2428 lib/blame.tcl:104
+ msgid "File:"
+ msgstr "Datei:"
+ #: git-gui.sh:2530
+ msgid "Refresh"
+ msgstr "Aktualisieren"
+ #: git-gui.sh:2551
+ msgid "Apply/Reverse Hunk"
+ msgstr "Änderung anwenden/umkehren"
+ #: git-gui.sh:2557
+ msgid "Decrease Font Size"
+ msgstr "Schriftgröße verkleinern"
+ #: git-gui.sh:2561
+ msgid "Increase Font Size"
+ msgstr "Schriftgröße vergrößern"
+ #: git-gui.sh:2566
+ msgid "Show Less Context"
+ msgstr "Weniger Kontext anzeigen"
+ #: git-gui.sh:2573
+ msgid "Show More Context"
+ msgstr "Mehr Kontext anzeigen"
+ #: git-gui.sh:2587
+ msgid "Unstage Hunk From Commit"
+ msgstr "Aus der Bereitstellung herausnehmen"
+ #: git-gui.sh:2589
+ msgid "Stage Hunk For Commit"
+ msgstr "In die Bereitstellung hinzufügen"
+ #: git-gui.sh:2608
+ msgid "Initializing..."
+ msgstr "Initialisieren..."
+ #: git-gui.sh:2699
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ #: git-gui.sh:2729
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ #: git-gui.sh:2734
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr "git-gui - eine grafische Oberfläche für Git."
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr "Datei-Browser"
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr "Version:"
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr "Version kopieren"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr "%s lesen..."
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr ""
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr ""
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr ""
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr ""
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr "Annotierung laden..."
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr "Autor:"
+ #: lib/blame.tcl:791
+ msgid "Committer:"
+ msgstr "Eintragender:"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr "Ursprüngliche Datei:"
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr "Ursprünglich von:"
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr "In Datei:"
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr "Kopiert oder verschoben durch:"
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr "Zweig umstellen"
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr "Umstellen"
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr "Abbrechen"
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr "Version"
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr "Optionen"
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr "Übernahmezweig anfordern"
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr "Verbindung zu lokalem Zweig lösen"
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr "Zweig erstellen"
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr "Neuen Zweig erstellen"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+ msgid "Create"
+ msgstr "Erstellen"
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr "Zweigname"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr "Name:"
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr "Passend zu Übernahmezweig-Name"
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr "Anfangsversion"
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr "Existierenden Zweig aktualisieren:"
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr "Nein"
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr "Nur Schnellzusammenführung"
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr "Zurücksetzen"
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr "Arbeitskopie umstellen nach Erstellen"
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr "Bitte wählen Sie einen Übernahmezweig."
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr "Übernahmezweig »%s« ist kein Zweig im anderen Projektarchiv."
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr "Bitte geben Sie einen Zweignamen an."
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr "»%s« ist kein zulässiger Zweigname."
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr "Zweig löschen"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr "Lokalen Zweig löschen"
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr "Lokale Zweige"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr "Nur löschen, wenn darin zusammengeführt"
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr "Immer (ohne Zusammenführungstest)"
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr "Folgende Zweige sind noch nicht mit »%s« zusammengeführt:"
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ "Gelöschte Zweige können nur mit größerem Aufwand wiederhergestellt werden.\n"
+ "\n"
+ "Gewählte Zweige jetzt löschen?"
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ "Fehler beim Löschen der Zweige:\n"
+ "%s"
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr "Zweig umbenennen"
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr "Umbenennen"
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr "Zweig:"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr "Neuer Name:"
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr "Bitte wählen Sie einen Zweig zum umbenennen."
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr "Zweig »%s« existiert bereits."
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr "Fehler beim Umbenennen von »%s«."
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr "Starten..."
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr "Datei-Browser"
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr "%s laden..."
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr "[Nach oben]"
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr "Dateien des Zweigs durchblättern"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:391
+ #: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+ #: lib/choose_repository.tcl:989
+ msgid "Browse"
+ msgstr "Blättern"
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr "Änderungen »%s« von »%s« anfordern"
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr "Schließen"
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr "Zweig »%s« existiert nicht."
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ "Zweig »%s« existiert bereits.\n"
+ "\n"
+ "Zweig kann nicht mit »%s« schnellzusammengeführt werden. Reguläres "
+ "Zusammenführen ist notwendig."
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr "Zusammenführungsmethode »%s« nicht unterstützt."
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr "Aktualisieren von »%s« fehlgeschlagen."
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr "Bereitstellung (»index«) ist zur Bearbeitung gesperrt (»locked«)."
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Der letzte geladene Status stimmt nicht mehr mit dem Projektarchiv überein.\n"
+ "\n"
+ "Ein anderes Git-Programm hat das Projektarchiv seit dem letzten Laden "
+ "geändert.  Vor dem Wechseln des lokalen Zweigs muss neu geladen werden.\n"
+ "\n"
+ "Es wird gleich neu geladen.\n"
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr "Arbeitskopie umstellen auf »%s«..."
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr ""
+ "Zweig umstellen von »%s« abgebrochen (Zusammenführen der Dateien ist "
+ "notwendig)."
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr "Zusammenführen der Dateien ist notwendig."
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr "Es wird auf Zweig »%s« verblieben."
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ "Die Arbeitskopie ist nicht auf einem lokalen Zweig.\n"
+ "\n"
+ "Wenn Sie auf einem Zweig arbeiten möchten, erstellen Sie bitte jetzt einen "
+ "Zweig mit der Auswahl »Abgetrennte Arbeitskopie-Version«."
+ #: lib/checkout_op.tcl:446
+ #, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "Umgestellt auf »%s«."
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr "Zurücksetzen von »%s« nach »%s« wird folgende Versionen verwerfen:"
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr ""
+ "Verworfene Versionen können nur mit größerem Aufwand wiederhergestellt "
+ "werden."
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr "»%s« zurücksetzen?"
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr "Darstellen"
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ "Lokaler Zweig kann nicht gesetzt werden.\n"
+ "\n"
+ "Diese Arbeitskopie ist nur teilweise umgestellt. Die Dateien sind korrekt "
+ "aktualisiert, aber einige interne Git-Dateien konnten nicht geändert "
+ "werden.\n"
+ "\n"
+ "Dies ist ein interner Programmfehler von %s. Programm wird jetzt abgebrochen."
+ #: lib/choose_font.tcl:39
+ msgid "Select"
+ msgstr "Auswählen"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr "Schriftfamilie"
+ #: lib/choose_font.tcl:73
+ msgid "Font Size"
+ msgstr "Schriftgröße"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr "Schriftbeispiel"
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ "Dies ist ein Beispieltext.\n"
+ "Wenn Ihnen dieser Text gefällt, sollten Sie diese Schriftart wählen."
+ #: lib/choose_repository.tcl:27
+ msgid "Git Gui"
+ msgstr "Git Gui"
+ #: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+ msgid "Create New Repository"
+ msgstr "Neues Projektarchiv"
+ #: lib/choose_repository.tcl:86
+ msgid "New..."
+ msgstr "Neu..."
+ #: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+ msgid "Clone Existing Repository"
+ msgstr "Projektarchiv kopieren"
+ #: lib/choose_repository.tcl:99
+ msgid "Clone..."
+ msgstr "Kopieren..."
+ #: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+ msgid "Open Existing Repository"
+ msgstr "Projektarchiv öffnen"
+ #: lib/choose_repository.tcl:112
+ msgid "Open..."
+ msgstr "Öffnen..."
+ #: lib/choose_repository.tcl:125
+ msgid "Recent Repositories"
+ msgstr "Zuletzt benutzte Projektarchive"
+ #: lib/choose_repository.tcl:131
+ msgid "Open Recent Repository:"
+ msgstr "Zuletzt benutztes Projektarchiv öffnen:"
+ #: lib/choose_repository.tcl:294
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr "Projektarchiv »%s« existiert bereits."
+ #: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+ #: lib/choose_repository.tcl:314
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr "Projektarchiv »%s« konnte nicht erstellt werden:"
+ #: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+ msgid "Directory:"
+ msgstr "Verzeichnis:"
+ #: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+ #: lib/choose_repository.tcl:1013
+ msgid "Git Repository"
+ msgstr "Git Projektarchiv"
+ #: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr "Verzeichnis »%s« existiert bereits."
+ #: lib/choose_repository.tcl:442
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr "Datei »%s« existiert bereits."
+ #: lib/choose_repository.tcl:463
+ msgid "Clone"
+ msgstr "Kopieren"
+ #: lib/choose_repository.tcl:476
+ msgid "URL:"
+ msgstr "URL:"
+ #: lib/choose_repository.tcl:496
+ msgid "Clone Type:"
+ msgstr "Art der Kopie:"
+ #: lib/choose_repository.tcl:502
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr "Standard (schnell, teilweise redundant, Hardlinks)"
+ #: lib/choose_repository.tcl:508
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr "Alles kopieren (langsamer, volle Redundanz)"
+ #: lib/choose_repository.tcl:514
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr "Verknüpft (schnell, nicht empfohlen, kein Backup)"
+ #: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+ #: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+ #: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr "Kein Git-Projektarchiv in »%s« gefunden."
+ #: lib/choose_repository.tcl:586
+ msgid "Standard only available for local repository."
+ msgstr "Standard ist nur für lokale Projektarchive verfügbar."
+ #: lib/choose_repository.tcl:590
+ msgid "Shared only available for local repository."
+ msgstr "Verknüpft ist nur für lokale Projektarchive verfügbar."
+ #: lib/choose_repository.tcl:617
+ msgid "Failed to configure origin"
+ msgstr ""
+ #: lib/choose_repository.tcl:629
+ msgid "Counting objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:630
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:654
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:690
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr "Von »%s« konnte nichts kopiert werden."
+ #: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+ #: lib/choose_repository.tcl:918
+ msgid "The 'master' branch has not been initialized."
+ msgstr ""
+ #: lib/choose_repository.tcl:705
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr ""
+ #: lib/choose_repository.tcl:717
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr "Kopieren von »%s«"
+ #: lib/choose_repository.tcl:748
+ msgid "Copying objects"
+ msgstr "Objektdatenbank kopieren"
+ #: lib/choose_repository.tcl:749
+ msgid "KiB"
+ msgstr "KB"
+ #: lib/choose_repository.tcl:773
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr "Objekt kann nicht kopiert werden: %s"
+ #: lib/choose_repository.tcl:783
+ msgid "Linking objects"
+ msgstr "Objekte verlinken"
+ #: lib/choose_repository.tcl:784
+ msgid "objects"
+ msgstr "Objekte"
+ #: lib/choose_repository.tcl:792
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr "Objekt kann nicht hartverlinkt werden: %s"
+ #: lib/choose_repository.tcl:847
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:858
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:882
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:891
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:897
+ msgid "Clone failed."
+ msgstr "Kopieren fehlgeschlagen."
+ #: lib/choose_repository.tcl:904
+ msgid "No default branch obtained."
+ msgstr ""
+ #: lib/choose_repository.tcl:915
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr ""
+ #: lib/choose_repository.tcl:927
+ msgid "Creating working directory"
+ msgstr "Arbeitskopie erstellen"
+ #: lib/choose_repository.tcl:928 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr "Dateien"
+ #: lib/choose_repository.tcl:957
+ msgid "Initial file checkout failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:973
+ msgid "Open"
+ msgstr "Öffnen"
+ #: lib/choose_repository.tcl:983
+ msgid "Repository:"
+ msgstr "Projektarchiv:"
+ #: lib/choose_repository.tcl:1033
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr "Projektarchiv »%s« konnte nicht geöffnet werden."
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr "Abgetrennte Arbeitskopie-Version"
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr "Version Regexp-Ausdruck:"
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr "Lokaler Zweig"
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr "Übernahmezweig"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr "Markierung"
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr "Ungültige Version: %s"
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr "Keine Version ausgewählt."
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr "Versions-Ausdruck ist leer."
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr "Aktualisiert"
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr "URL"
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ "Keine Version zur Nachbesserung vorhanden.\n"
+ "\n"
+ "Sie sind dabei, die erste Version zu übertragen. Es gibt keine existierende "
+ "Version, die Sie nachbessern könnten.\n"
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ "Nachbesserung währen Zusammenführung nicht möglich.\n"
+ "\n"
+ "Sie haben das Zusammenführen von Versionen angefangen, aber noch nicht "
+ "beendet. Sie können keine vorige Übertragung nachbessern, solange eine "
+ "unfertige Zusammenführung existiert. Dazu müssen Sie die Zusammenführung "
+ "beenden oder abbrechen.\n"
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr "Fehler beim Laden der Versionsdaten für Nachbessern:"
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr "Benutzername konnte nicht bestimmt werden:"
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr "Ungültiger Wert von GIT_COMMITTER_INDENT:"
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Der letzte geladene Status stimmt nicht mehr mit dem Projektarchiv überein.\n"
+ "\n"
+ "Ein anderes Git-Programm hat das Projektarchiv seit dem letzten Laden "
+ "geändert.  Vor dem Eintragen einer neuen Version muss neu geladen werden.\n"
+ "\n"
+ "Es wird gleich neu geladen.\n"
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ "Nicht zusammengeführte Dateien können nicht eingetragen werden.\n"
+ "\n"
+ "Die Datei »%s« hat noch nicht aufgelöste Zusammenführungs-Konflikte. Sie "
+ "müssen diese Konflikte auflösen, bevor Sie eintragen können.\n"
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ "Unbekannter Dateizustand »%s«.\n"
+ "\n"
+ "Datei »%s« kann nicht eingetragen werden.\n"
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ "Keine Änderungen vorhanden, die eingetragen werden könnten.\n"
+ "\n"
+ "Sie müssen mindestens eine Datei bereitstellen, bevor Sie eintragen können.\n"
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ "Bitte geben Sie eine Versionsbeschreibung ein.\n"
+ "\n"
+ "Eine gute Versionsbeschreibung enthält folgende Abschnitte:\n"
+ "\n"
+ "- Erste Zeile: Eine Zusammenfassung, was man gemacht hat.\n"
+ "\n"
+ "- Zweite Zeile: Leerzeile\n"
+ "\n"
+ "- Rest: Eine ausführliche Beschreibung, warum diese Änderung hilfreich ist.\n"
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr "write-tree fehlgeschlagen:"
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr "Version »%s« scheint beschädigt zu sein"
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ "Keine Änderungen einzutragen.\n"
+ "\n"
+ "Es gibt keine geänderte Datei bei dieser Version und es wurde auch nichts "
+ "zusammengeführt.\n"
+ "\n"
+ "Das Arbeitsverzeichnis wird daher jetzt neu geladen.\n"
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr "Keine Änderungen, die eingetragen werden können."
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr ""
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr "commit-tree fehlgeschlagen:"
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr "update-ref fehlgeschlagen:"
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr "Version %s übertragen: %s"
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr "Verarbeitung. Bitte warten..."
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr "Erfolgreich"
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr "Fehler: Kommando fehlgeschlagen"
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr "Anzahl unverknüpfter Objekte"
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr "Festplattenplatz von unverknüpften Objekten"
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr "Anzahl komprimierter Objekte"
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr "Anzahl Komprimierungseinheiten"
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr "Festplattenplatz von komprimierten Objekten"
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr "Komprimierte Objekte, die zum Entfernen vorgesehen sind"
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr "Dateien im Mülleimer"
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr "Objektdatenbank komprimieren"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr "Die Objektdatenbank durch »fsck-objects« überprüfen lassen"
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ "Dieses Projektarchiv enthält ungefähr %i nicht verknüpfte Objekte.\n"
+ "\n"
+ "Für eine optimale Performance wird empfohlen, die Datenbank des "
+ "Projektarchivs zu komprimieren, sobald mehr als %i nicht verknüpfte Objekte "
+ "vorliegen.\n"
+ "\n"
+ "Soll die Datenbank jetzt komprimiert werden?"
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr "Ungültiges Datum von Git: %s"
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ "Keine Änderungen feststellbar.\n"
+ "\n"
+ "»%s« enthält keine Änderungen. Zwar wurde das Änderungsdatum dieser Datei "
+ "von einem anderen Programm modifiziert, aber der Inhalt der Datei ist "
+ "unverändert.\n"
+ "\n"
+ "Das Arbeitsverzeichnis wird jetzt neu geladen, um diese Änderung bei allen "
+ "Dateien zu prüfen."
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr "Vergleich von »%s« laden..."
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr "Datei »%s« kann nicht angezeigt werden"
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr "Fehler beim Laden der Datei:"
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr "Git-Projektarchiv (Unterprojekt)"
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr "* Binärdatei (Inhalt wird nicht angezeigt)"
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr "Fehler beim Laden des Vergleichs:"
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr "Fehler beim Herausnehmen der gewählten Dateien aus der Bereitstellung."
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr "Fehler beim Bereitstellen der gewählten Dateien."
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr "Fehler"
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr "Warnung"
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr ""
+ "Sie müssen die obigen Fehler zuerst beheben, bevor Sie eintragen können."
+ #: lib/index.tcl:241
+ #, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "Datei »%s« aus der Bereitstellung herausnehmen"
+ #: lib/index.tcl:285
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr "»%s« hinzufügen..."
+ #: lib/index.tcl:340
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "Änderungen in Datei »%s« revidieren?"
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr "Änderungen in den gewählten %i Dateien revidieren?"
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ "Alle nicht bereitgestellten Änderungen werden beim Revidieren verloren gehen."
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr "Nichts tun"
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ "Zusammenführen kann nicht gleichzeitig mit Nachbessern durchgeführt werden.\n"
+ "\n"
+ "Sie müssen zuerst die Nachbesserungs-Version abschließen, bevor Sie "
+ "zusammenführen können.\n"
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Der letzte geladene Status stimmt nicht mehr mit dem Projektarchiv überein.\n"
+ "\n"
+ "Ein anderes Git-Programm hat das Projektarchiv seit dem letzten Laden "
+ "geändert.  Vor einem Zusammenführen muss neu geladen werden.\n"
+ "\n"
+ "Es wird gleich neu geladen.\n"
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ "Zusammenführung mit Konflikten.\n"
+ "\n"
+ "Die Datei »%s« enthält Konflikte beim Zusammenführen. Sie müssen diese "
+ "Konflikte per Hand auflösen. Anschließend müssen Sie die Datei wieder "
+ "bereitstellen und eintragen, um die Zusammenführung abzuschließen. Erst "
+ "danach kann eine neue Zusammenführung begonnen werden.\n"
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ "Es liegen Änderungen vor.\n"
+ "\n"
+ "Die Datei »%s« wurde geändert.  Sie sollten zuerst die bereitgestellte "
+ "Version abschließen, bevor Sie eine Zusammenführung beginnen.  Mit dieser "
+ "Reihenfolge können Sie mögliche Konflikte beim Zusammenführen wesentlich "
+ "einfacher beheben oder abbrechen.\n"
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr "%s von %s"
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr "Zusammenführen von %s und %s"
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr "Zusammenführen erfolgreich abgeschlossen."
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr "Zusammenführen fehlgeschlagen. Konfliktauflösung ist notwendig."
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr "Zusammenführen in %s"
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr "Zusammenzuführende Version"
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ "Abbruch der Nachbesserung ist nicht möglich.\n"
+ "\n"
+ "Sie müssen die Nachbesserung der Version abschließen.\n"
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ "Zusammenführen abbrechen?\n"
+ "\n"
+ "Wenn Sie abbrechen, gehen alle noch nicht eingetragenen Änderungen "
+ "verloren.\n"
+ "\n"
+ "Zusammenführen jetzt abbrechen?"
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ "Änderungen zurücksetzen?\n"
+ "\n"
+ "Wenn Sie zurücksetzen, gehen alle noch nicht eingetragenen Änderungen "
+ "verloren.\n"
+ "\n"
+ "Änderungen jetzt zurücksetzen?"
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr "Abbruch"
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr "Abbruch fehlgeschlagen."
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr "Abbruch durchgeführt. Bereit."
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr "Voreinstellungen wiederherstellen"
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr "Speichern"
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr "Projektarchiv %s"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr "Global (Alle Projektarchive)"
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr "Benutzername"
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr "E-Mail-Adresse"
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr "Zusammenführungs-Versionen zusammenfassen"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr "Ausführlichkeit der Zusammenführen-Meldungen"
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr "Vergleichsstatistik nach Zusammenführen anzeigen"
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr "Auf Dateiänderungsdatum verlassen"
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr "Übernahmezweige entfernen während Anforderung"
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr "Passend zu Übernahmezweig"
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr "Anzahl der Kontextzeilen beim Vergleich"
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr "Namensvorschlag für neue Zweige"
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr "Schriftart ändern"
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr "%s wählen"
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr "pt."
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr "Einstellungen"
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr "Optionen konnten nicht gespeichert werden:"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr "Zweig im anderen Projektarchiv löschen"
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr "Von Projektarchiv"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr "Anderes Archiv:"
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr "Kommunikation mit URL:"
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr "Zweige"
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr "Löschen, falls"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr "Zusammenführen mit:"
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr "Immer (Keine Zusammenführungsprüfung)"
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr "Für »Zusammenführen mit« muss ein Zweig angegeben werden."
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ "Folgende Zweige sind noch nicht mit »%s« zusammengeführt:\n"
+ "\n"
+ " - %s"
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ "Ein oder mehrere Zusammenführungen sind fehlgeschlagen, da Sie nicht die "
+ "notwendigen Versionen vorher angefordert haben.  Sie sollten versuchen, "
+ "zuerst von »%s« anzufordern."
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr "Bitte wählen Sie mindestens einen Zweig, der gelöscht werden soll."
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ "Das Wiederherstellen von gelöschten Zweigen ist nur mit größerem Aufwand "
+ "möglich.\n"
+ "\n"
+ "Sollen die ausgewählten Zweige gelöscht werden?"
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr "Zweige auf »%s« werden gelöscht"
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr "Kein Projektarchiv ausgewählt."
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr "»%s« laden..."
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr "Entfernen von"
+ #: lib/remote.tcl:170
+ msgid "Fetch from"
+ msgstr "Anfordern von"
+ #: lib/remote.tcl:213
+ msgid "Push to"
+ msgstr "Versenden nach"
+ #: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+ msgid "Cannot write shortcut:"
+ msgstr "Fehler beim Schreiben der Verknüpfung:"
+ #: lib/shortcut.tcl:136
+ msgid "Cannot write icon:"
+ msgstr "Fehler beim Erstellen des Icons:"
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr "%s ... %*i von %*i %s (%3i%%)"
+ #: lib/transport.tcl:6
+ #, tcl-format
+ msgid "fetch %s"
+ msgstr "»%s« anfordern"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr "Neue Änderungen von »%s« holen"
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr "Entfernen von »%s« im anderen Archiv"
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr "Übernahmezweige entfernen, die in »%s« gelöscht wurden"
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr "»%s« versenden..."
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr "Änderungen nach »%s« versenden"
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr "%s %s nach %s versenden"
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr "Zweige versenden"
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr "Herkunftszweige"
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr "Ziel-Projektarchiv"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr "Netzwerk-Einstellungen"
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr ""
+ "Überschreiben von existierenden Zweigen erzwingen (könnte Änderungen löschen)"
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr "Kompaktes Datenformat benutzen (für langsame Netzverbindungen)"
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr "Mit Markierungen übertragen"
+ #~ msgid "Next >"
+ #~ msgstr "Weiter >"
+ #~ msgid "Fetch"
+ #~ msgstr "Anfordern"
+ #~ msgid "Unstaged Changes (Will Not Be Committed)"
+ #~ msgstr "Nicht bereitgestellte Änderungen (werden nicht eingetragen)"
diff --combined git-gui/po/git-gui.pot
index 0000000000000000000000000000000000000000,00f0f5922a9f6b01730158a33213220557a48f0c..00f0f5922a9f6b01730158a33213220557a48f0c
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1704 +1,1704 @@@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-10 04:04-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+ #: git-gui.sh:763
+ msgid "git-gui: fatal error"
+ msgstr ""
+ #: git-gui.sh:595
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr ""
+ #: git-gui.sh:620
+ msgid "Main Font"
+ msgstr ""
+ #: git-gui.sh:621
+ msgid "Diff/Console Font"
+ msgstr ""
+ #: git-gui.sh:635
+ msgid "Cannot find git in PATH."
+ msgstr ""
+ #: git-gui.sh:662
+ msgid "Cannot parse Git version string:"
+ msgstr ""
+ #: git-gui.sh:680
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ #: git-gui.sh:853
+ msgid "Git directory not found:"
+ msgstr ""
+ #: git-gui.sh:860
+ msgid "Cannot move to top of working directory:"
+ msgstr ""
+ #: git-gui.sh:867
+ msgid "Cannot use funny .git directory:"
+ msgstr ""
+ #: git-gui.sh:872
+ msgid "No working directory"
+ msgstr ""
+ #: git-gui.sh:1019
+ msgid "Refreshing file status..."
+ msgstr ""
+ #: git-gui.sh:1084
+ msgid "Scanning for modified files ..."
+ msgstr ""
+ #: git-gui.sh:1259 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr ""
+ #: git-gui.sh:1525
+ msgid "Unmodified"
+ msgstr ""
+ #: git-gui.sh:1527
+ msgid "Modified, not staged"
+ msgstr ""
+ #: git-gui.sh:1528 git-gui.sh:1533
+ msgid "Staged for commit"
+ msgstr ""
+ #: git-gui.sh:1529 git-gui.sh:1534
+ msgid "Portions staged for commit"
+ msgstr ""
+ #: git-gui.sh:1530 git-gui.sh:1535
+ msgid "Staged for commit, missing"
+ msgstr ""
+ #: git-gui.sh:1532
+ msgid "Untracked, not staged"
+ msgstr ""
+ #: git-gui.sh:1537
+ msgid "Missing"
+ msgstr ""
+ #: git-gui.sh:1538
+ msgid "Staged for removal"
+ msgstr ""
+ #: git-gui.sh:1539
+ msgid "Staged for removal, still present"
+ msgstr ""
+ #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+ msgid "Requires merge resolution"
+ msgstr ""
+ #: git-gui.sh:1579
+ msgid "Starting gitk... please wait..."
+ msgstr ""
+ #: git-gui.sh:1588
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ #: git-gui.sh:1788 lib/choose_repository.tcl:32
+ msgid "Repository"
+ msgstr ""
+ #: git-gui.sh:1789
+ msgid "Edit"
+ msgstr ""
+ #: git-gui.sh:1791 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr ""
+ #: git-gui.sh:1794 lib/choose_rev.tcl:547
+ msgid "Commit@@noun"
+ msgstr ""
+ #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr ""
+ #: git-gui.sh:1798 lib/choose_rev.tcl:556
+ msgid "Remote"
+ msgstr ""
+ #: git-gui.sh:1807
+ msgid "Browse Current Branch's Files"
+ msgstr ""
+ #: git-gui.sh:1811
+ msgid "Browse Branch Files..."
+ msgstr ""
+ #: git-gui.sh:1816
+ msgid "Visualize Current Branch's History"
+ msgstr ""
+ #: git-gui.sh:1820
+ msgid "Visualize All Branch History"
+ msgstr ""
+ #: git-gui.sh:1827
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr ""
+ #: git-gui.sh:1829
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr ""
+ #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr ""
+ #: git-gui.sh:1837 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr ""
+ #: git-gui.sh:1840
+ msgid "Verify Database"
+ msgstr ""
+ #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
+ #: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+ msgid "Create Desktop Icon"
+ msgstr ""
+ #: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+ msgid "Quit"
+ msgstr ""
+ #: git-gui.sh:1867
+ msgid "Undo"
+ msgstr ""
+ #: git-gui.sh:1870
+ msgid "Redo"
+ msgstr ""
+ #: git-gui.sh:1874 git-gui.sh:2366
+ msgid "Cut"
+ msgstr ""
+ #: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr ""
+ #: git-gui.sh:1880 git-gui.sh:2372
+ msgid "Paste"
+ msgstr ""
+ #: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr ""
+ #: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+ msgid "Select All"
+ msgstr ""
+ #: git-gui.sh:1896
+ msgid "Create..."
+ msgstr ""
+ #: git-gui.sh:1902
+ msgid "Checkout..."
+ msgstr ""
+ #: git-gui.sh:1908
+ msgid "Rename..."
+ msgstr ""
+ #: git-gui.sh:1913 git-gui.sh:2012
+ msgid "Delete..."
+ msgstr ""
+ #: git-gui.sh:1918
+ msgid "Reset..."
+ msgstr ""
+ #: git-gui.sh:1930 git-gui.sh:2313
+ msgid "New Commit"
+ msgstr ""
+ #: git-gui.sh:1938 git-gui.sh:2320
+ msgid "Amend Last Commit"
+ msgstr ""
+ #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr ""
+ #: git-gui.sh:1953
+ msgid "Stage To Commit"
+ msgstr ""
+ #: git-gui.sh:1958
+ msgid "Stage Changed Files To Commit"
+ msgstr ""
+ #: git-gui.sh:1964
+ msgid "Unstage From Commit"
+ msgstr ""
+ #: git-gui.sh:1969 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr ""
+ #: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+ msgid "Sign Off"
+ msgstr ""
+ #: git-gui.sh:1980 git-gui.sh:2296
+ msgid "Commit@@verb"
+ msgstr ""
+ #: git-gui.sh:1991
+ msgid "Local Merge..."
+ msgstr ""
+ #: git-gui.sh:1996
+ msgid "Abort Merge..."
+ msgstr ""
+ #: git-gui.sh:2008
+ msgid "Push..."
+ msgstr ""
+ #: git-gui.sh:2019 lib/choose_repository.tcl:41
+ msgid "Apple"
+ msgstr ""
+ #: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
+ #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+ #, tcl-format
+ msgid "About %s"
+ msgstr ""
+ #: git-gui.sh:2026
+ msgid "Preferences..."
+ msgstr ""
+ #: git-gui.sh:2034 git-gui.sh:2558
+ msgid "Options..."
+ msgstr ""
+ #: git-gui.sh:2040 lib/choose_repository.tcl:47
+ msgid "Help"
+ msgstr ""
+ #: git-gui.sh:2081
+ msgid "Online Documentation"
+ msgstr ""
+ #: git-gui.sh:2165
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr ""
+ #: git-gui.sh:2198
+ msgid "Current Branch:"
+ msgstr ""
+ #: git-gui.sh:2219
+ msgid "Staged Changes (Will Commit)"
+ msgstr ""
+ #: git-gui.sh:2239
+ msgid "Unstaged Changes"
+ msgstr ""
+ #: git-gui.sh:2286
+ msgid "Stage Changed"
+ msgstr ""
+ #: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr ""
+ #: git-gui.sh:2332
+ msgid "Initial Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2333
+ msgid "Amended Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2334
+ msgid "Amended Initial Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2335
+ msgid "Amended Merge Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2336
+ msgid "Merge Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2337
+ msgid "Commit Message:"
+ msgstr ""
+ #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr ""
+ #: git-gui.sh:2406 lib/blame.tcl:104
+ msgid "File:"
+ msgstr ""
+ #: git-gui.sh:2508
+ msgid "Refresh"
+ msgstr ""
+ #: git-gui.sh:2529
+ msgid "Apply/Reverse Hunk"
+ msgstr ""
+ #: git-gui.sh:2535
+ msgid "Decrease Font Size"
+ msgstr ""
+ #: git-gui.sh:2539
+ msgid "Increase Font Size"
+ msgstr ""
+ #: git-gui.sh:2544
+ msgid "Show Less Context"
+ msgstr ""
+ #: git-gui.sh:2551
+ msgid "Show More Context"
+ msgstr ""
+ #: git-gui.sh:2565
+ msgid "Unstage Hunk From Commit"
+ msgstr ""
+ #: git-gui.sh:2567
+ msgid "Stage Hunk For Commit"
+ msgstr ""
+ #: git-gui.sh:2586
+ msgid "Initializing..."
+ msgstr ""
+ #: git-gui.sh:2677
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ #: git-gui.sh:2707
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ #: git-gui.sh:2712
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr ""
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr ""
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr ""
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr ""
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr ""
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr ""
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr ""
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr ""
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr ""
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr ""
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr ""
+ #: lib/blame.tcl:791
+ msgid "Committer:"
+ msgstr ""
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr ""
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr ""
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr ""
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr ""
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr ""
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr ""
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr ""
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr ""
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr ""
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr ""
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr ""
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr ""
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr ""
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+ msgid "Create"
+ msgstr ""
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr ""
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr ""
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr ""
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr ""
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr ""
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr ""
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr ""
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr ""
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr ""
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr ""
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr ""
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr ""
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr ""
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr ""
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr ""
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr ""
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr ""
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr ""
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr ""
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr ""
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr ""
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr ""
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr ""
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr ""
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr ""
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr ""
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr ""
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr ""
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr ""
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr ""
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr ""
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:215
+ #: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
+ #: lib/choose_repository.tcl:811
+ msgid "Browse"
+ msgstr ""
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr ""
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr ""
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr ""
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr ""
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr ""
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr ""
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr ""
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr ""
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr ""
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ #: lib/checkout_op.tcl:446
+ #, tcl-format
+ msgid "Checked out '%s'."
+ msgstr ""
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr ""
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr ""
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr ""
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr ""
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ #: lib/choose_font.tcl:39
+ msgid "Select"
+ msgstr ""
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr ""
+ #: lib/choose_font.tcl:73
+ msgid "Font Size"
+ msgstr ""
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr ""
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ #: lib/choose_repository.tcl:25
+ msgid "Git Gui"
+ msgstr ""
+ #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+ msgid "Create New Repository"
+ msgstr ""
+ #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+ msgid "Clone Existing Repository"
+ msgstr ""
+ #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+ msgid "Open Existing Repository"
+ msgstr ""
+ #: lib/choose_repository.tcl:91
+ msgid "Next >"
+ msgstr ""
+ #: lib/choose_repository.tcl:152
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
+ #: lib/choose_repository.tcl:172
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr ""
+ #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+ msgid "Directory:"
+ msgstr ""
+ #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
+ #: lib/choose_repository.tcl:834
+ msgid "Git Repository"
+ msgstr ""
+ #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:265
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:286
+ msgid "Clone"
+ msgstr ""
+ #: lib/choose_repository.tcl:299
+ msgid "URL:"
+ msgstr ""
+ #: lib/choose_repository.tcl:319
+ msgid "Clone Type:"
+ msgstr ""
+ #: lib/choose_repository.tcl:325
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr ""
+ #: lib/choose_repository.tcl:331
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:337
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
+ #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
+ #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:405
+ msgid "Standard only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:409
+ msgid "Shared only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:439
+ msgid "Failed to configure origin"
+ msgstr ""
+ #: lib/choose_repository.tcl:451
+ msgid "Counting objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:452
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:476
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:512
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr ""
+ #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
+ #: lib/choose_repository.tcl:740
+ msgid "The 'master' branch has not been initialized."
+ msgstr ""
+ #: lib/choose_repository.tcl:527
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr ""
+ #: lib/choose_repository.tcl:539
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:570
+ msgid "Copying objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:571
+ msgid "KiB"
+ msgstr ""
+ #: lib/choose_repository.tcl:595
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:605
+ msgid "Linking objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:606
+ msgid "objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:614
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:669
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:680
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:704
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:713
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:719
+ msgid "Clone failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:726
+ msgid "No default branch obtained."
+ msgstr ""
+ #: lib/choose_repository.tcl:737
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr ""
+ #: lib/choose_repository.tcl:749
+ msgid "Creating working directory"
+ msgstr ""
+ #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr ""
+ #: lib/choose_repository.tcl:779
+ msgid "Initial file checkout failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:795
+ msgid "Open"
+ msgstr ""
+ #: lib/choose_repository.tcl:805
+ msgid "Repository:"
+ msgstr ""
+ #: lib/choose_repository.tcl:854
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr ""
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr ""
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr ""
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr ""
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr ""
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr ""
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr ""
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr ""
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr ""
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr ""
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr ""
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr ""
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr ""
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr ""
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr ""
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr ""
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr ""
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr ""
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr ""
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr ""
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr ""
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr ""
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr ""
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr ""
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr ""
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr ""
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr ""
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr ""
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr ""
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr ""
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr ""
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr ""
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr ""
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr ""
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr ""
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr ""
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr ""
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr ""
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr ""
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr ""
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr ""
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr ""
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr ""
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr ""
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr ""
+ #: lib/index.tcl:241
+ #, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr ""
+ #: lib/index.tcl:285
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr ""
+ #: lib/index.tcl:340
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr ""
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr ""
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr ""
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr ""
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr ""
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr ""
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr ""
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr ""
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr ""
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr ""
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr ""
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr ""
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr ""
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr ""
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr ""
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr ""
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr ""
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr ""
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr ""
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr ""
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr ""
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr ""
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr ""
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr ""
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr ""
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr ""
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr ""
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr ""
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr ""
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr ""
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr ""
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr ""
+ #: lib/remote.tcl:170
+ msgid "Fetch from"
+ msgstr ""
+ #: lib/remote.tcl:213
+ msgid "Push to"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr ""
+ #: lib/shortcut.tcl:26 lib/shortcut.tcl:74
+ msgid "Cannot write script:"
+ msgstr ""
+ #: lib/shortcut.tcl:149
+ msgid "Cannot write icon:"
+ msgstr ""
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr ""
+ #: lib/transport.tcl:6
+ #, tcl-format
+ msgid "fetch %s"
+ msgstr ""
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr ""
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr ""
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr ""
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr ""
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr ""
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr ""
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr ""
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr ""
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr ""
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr ""
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr ""
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr ""
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr ""
index 0000000000000000000000000000000000000000,749aa2e7ec1b02e6af3427516b1197f77bd48795..749aa2e7ec1b02e6af3427516b1197f77bd48795
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,9 +1,9 @@@
+ PO_TEMPLATE = git-gui-glossary.pot
+ ALL_POFILES = $(wildcard *.po)
+ $(PO_TEMPLATE): $(subst .pot,.txt,$(PO_TEMPLATE))
+       ./txt-to-pot.sh $< > $@
+ update-po:: git-gui-glossary.pot
+       $(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) ; )
index 0000000000000000000000000000000000000000,c94786c6abf7410bdb625ffc29379614ca70471e..c94786c6abf7410bdb625ffc29379614ca70471e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,185 +1,185 @@@
+ # Translation of git-gui glossary to German
+ # Copyright (C) 2007 Shawn Pearce, et al.
+ # This file is distributed under the same license as the git package.
+ # Christian Stimming <stimming@tuhh.de>, 2007
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui glossary\n"
+ "POT-Creation-Date: 2007-10-19 21:43+0200\n"
+ "PO-Revision-Date: 2007-10-20 15:24+0200\n"
+ "Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
+ "Language-Team: German \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+ msgid ""
+ "English Term (Dear translator: This file will never be visible to the user!)"
+ msgstr ""
+ "Deutsche Übersetzung.\n"
+ "Andere deutsche SCM:\n"
+ "  http://tortoisesvn.net/docs/release/TortoiseSVN_de/index.html und http://"
+ "tortoisesvn.tigris.org/svn/tortoisesvn/trunk/Languages/Tortoise_de.po "
+ "(username=guest, password empty, gut),\n"
+ "  http://msdn.microsoft.com/de-de/library/ms181038(vs.80).aspx (MS Visual "
+ "Source Safe, kommerziell),\n"
+ "  http://cvsbook.red-bean.com/translations/german/Kap_06.html "
+ "(mittelmäßig),\n"
+ "  http://tortoisecvs.cvs.sourceforge.net/tortoisecvs/po/TortoiseCVS/de_DE.po?"
+ "view=markup (mittelmäßig),\n"
+ "  http://rapidsvn.tigris.org/svn/rapidsvn/trunk/src/locale/de/rapidsvn.po "
+ "(username=guest, password empty, schlecht)"
+ #. ""
+ msgid "amend"
+ msgstr "nachbessern (ergänzen)"
+ #. ""
+ msgid "annotate"
+ msgstr "annotieren"
+ #. "A 'branch' is an active line of development."
+ msgid "branch [noun]"
+ msgstr "Zweig"
+ #. ""
+ msgid "branch [verb]"
+ msgstr "verzweigen"
+ #. ""
+ msgid "checkout [noun]"
+ msgstr ""
+ "Arbeitskopie (Erstellung einer Arbeitskopie; Auscheck? Ausspielung? Abruf? "
+ "Source Safe: Auscheckvorgang)"
+ #. "The action of updating the working tree to a revision which was stored in the object database."
+ msgid "checkout [verb]"
+ msgstr ""
+ "Arbeitskopie erstellen; Zweig umstellen [checkout a branch] (auschecken? "
+ "ausspielen? abrufen? Source Safe: auschecken)"
+ #. ""
+ msgid "clone [verb]"
+ msgstr "kopieren"
+ #. "A single point in the git history."
+ msgid "commit [noun]"
+ msgstr ""
+ "Version; Eintragung; Änderung (Buchung?, Eintragung?, Übertragung?, "
+ "Sendung?, Übergabe?, Einspielung?, Ablagevorgang?)"
+ #. "The action of storing a new snapshot of the project's state in the git history."
+ msgid "commit [verb]"
+ msgstr ""
+ "eintragen (TortoiseSVN: übertragen; Source Safe: einchecken; senden?, "
+ "übergeben?, einspielen?, einpflegen?, ablegen?)"
+ #. ""
+ msgid "diff [noun]"
+ msgstr "Vergleich (Source Safe: Unterschiede)"
+ #. ""
+ msgid "diff [verb]"
+ msgstr "vergleichen"
+ #. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+ msgid "fast forward merge"
+ msgstr "Schnellzusammenführung"
+ #. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+ msgid "fetch"
+ msgstr "anfordern (holen?)"
+ #. "A collection of files. The index is a stored version of your working tree."
+ msgid "index (in git-gui: staging area)"
+ msgstr "Bereitstellung"
+ #. "A successful merge results in the creation of a new commit representing the result of the merge."
+ msgid "merge [noun]"
+ msgstr "Zusammenführung"
+ #. "To bring the contents of another branch into the current branch."
+ msgid "merge [verb]"
+ msgstr "zusammenführen"
+ #. ""
+ msgid "message"
+ msgstr "Beschreibung (Meldung?, Nachricht?; Source Safe: Kommentar)"
+ #. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
+ msgid "prune"
+ msgstr "entfernen"
+ #. "Pulling a branch means to fetch it and merge it."
+ msgid "pull"
+ msgstr "übernehmen (ziehen?)"
+ #. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+ msgid "push"
+ msgstr "versenden (ausliefern? hochladen? verschicken? schieben?)"
+ #. ""
+ msgid "redo"
+ msgstr "wiederholen"
+ #. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
+ msgid "remote"
+ msgstr "Andere Archive (Gegenseite?, Entfernte?, Server?)"
+ #. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+ msgid "repository"
+ msgstr "Projektarchiv"
+ #. ""
+ msgid "reset"
+ msgstr "zurücksetzen (zurückkehren?)"
+ #. ""
+ msgid "revert"
+ msgstr "revidieren"
+ #. "A particular state of files and directories which was stored in the object database."
+ msgid "revision"
+ msgstr "Version (TortoiseSVN: Revision; Source Safe: Version)"
+ #. ""
+ msgid "sign off"
+ msgstr "abzeichnen (gegenzeichnen?, freizeichnen?, absegnen?)"
+ #. ""
+ msgid "staging area"
+ msgstr "Bereitstellung"
+ #. ""
+ msgid "status"
+ msgstr "Status"
+ #. "A ref pointing to a tag or commit object"
+ msgid "tag [noun]"
+ msgstr "Markierung"
+ #. ""
+ msgid "tag [verb]"
+ msgstr "markieren"
+ #. "A regular git branch that is used to follow changes from another repository."
+ msgid "tracking branch"
+ msgstr "Übernahmezweig"
+ #. ""
+ msgid "undo"
+ msgstr "rückgängig"
+ #. ""
+ msgid "update"
+ msgstr "aktualisieren"
+ #. ""
+ msgid "verify"
+ msgstr "überprüfen"
+ #. "The tree of actual checked out files."
+ msgid "working copy, working tree"
+ msgstr "Arbeitskopie"
index 0000000000000000000000000000000000000000,48af80331413f1f19dcba87b1db65a7f474bbc23..48af80331413f1f19dcba87b1db65a7f474bbc23
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,164 +1,164 @@@
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR Free Software Foundation, Inc.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "POT-Creation-Date: 2007-10-19 21:43+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: ENCODING\n"
+ #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+ msgid "English Term (Dear translator: This file will never be visible to the user!)"
+ msgstr ""
+ #. ""
+ msgid "amend"
+ msgstr ""
+ #. ""
+ msgid "annotate"
+ msgstr ""
+ #. "A 'branch' is an active line of development."
+ msgid "branch [noun]"
+ msgstr ""
+ #. ""
+ msgid "branch [verb]"
+ msgstr ""
+ #. ""
+ msgid "checkout [noun]"
+ msgstr ""
+ #. "The action of updating the working tree to a revision which was stored in the object database."
+ msgid "checkout [verb]"
+ msgstr ""
+ #. ""
+ msgid "clone [verb]"
+ msgstr ""
+ #. "A single point in the git history."
+ msgid "commit [noun]"
+ msgstr ""
+ #. "The action of storing a new snapshot of the project's state in the git history."
+ msgid "commit [verb]"
+ msgstr ""
+ #. ""
+ msgid "diff [noun]"
+ msgstr ""
+ #. ""
+ msgid "diff [verb]"
+ msgstr ""
+ #. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+ msgid "fast forward merge"
+ msgstr ""
+ #. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+ msgid "fetch"
+ msgstr ""
+ #. "A collection of files. The index is a stored version of your working tree."
+ msgid "index (in git-gui: staging area)"
+ msgstr ""
+ #. "A successful merge results in the creation of a new commit representing the result of the merge."
+ msgid "merge [noun]"
+ msgstr ""
+ #. "To bring the contents of another branch into the current branch."
+ msgid "merge [verb]"
+ msgstr ""
+ #. ""
+ msgid "message"
+ msgstr ""
+ #. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
+ msgid "prune"
+ msgstr ""
+ #. "Pulling a branch means to fetch it and merge it."
+ msgid "pull"
+ msgstr ""
+ #. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+ msgid "push"
+ msgstr ""
+ #. ""
+ msgid "redo"
+ msgstr ""
+ #. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
+ msgid "remote"
+ msgstr ""
+ #. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+ msgid "repository"
+ msgstr ""
+ #. ""
+ msgid "reset"
+ msgstr ""
+ #. ""
+ msgid "revert"
+ msgstr ""
+ #. "A particular state of files and directories which was stored in the object database."
+ msgid "revision"
+ msgstr ""
+ #. ""
+ msgid "sign off"
+ msgstr ""
+ #. ""
+ msgid "staging area"
+ msgstr ""
+ #. ""
+ msgid "status"
+ msgstr ""
+ #. "A ref pointing to a tag or commit object"
+ msgid "tag [noun]"
+ msgstr ""
+ #. ""
+ msgid "tag [verb]"
+ msgstr ""
+ #. "A regular git branch that is used to follow changes from another repository."
+ msgid "tracking branch"
+ msgstr ""
+ #. ""
+ msgid "undo"
+ msgstr ""
+ #. ""
+ msgid "update"
+ msgstr ""
+ #. ""
+ msgid "verify"
+ msgstr ""
+ #. "The tree of actual checked out files."
+ msgid "working copy, working tree"
+ msgstr ""
index 0000000000000000000000000000000000000000,500d0a0ea75215696481523010c6b33c9cd0786e..500d0a0ea75215696481523010c6b33c9cd0786e
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,37 +1,37 @@@
+ "English Term (Dear translator: This file will never be visible to the user!)"        "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+ "amend"       ""
+ "annotate"    ""
+ "branch [noun]"       "A 'branch' is an active line of development."
+ "branch [verb]"       ""
+ "checkout [noun]"     ""
+ "checkout [verb]"     "The action of updating the working tree to a revision which was stored in the object database."
+ "clone [verb]"        ""
+ "commit [noun]"       "A single point in the git history."
+ "commit [verb]"       "The action of storing a new snapshot of the project's state in the git history."
+ "diff [noun]" ""
+ "diff [verb]" ""
+ "fast forward merge"  "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+ "fetch"       "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+ "index (in git-gui: staging area)"    "A collection of files. The index is a stored version of your working tree."
+ "merge [noun]"        "A successful merge results in the creation of a new commit representing the result of the merge."
+ "merge [verb]"        "To bring the contents of another branch into the current branch."
+ "message"     ""
+ "prune"       "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
+ "pull"        "Pulling a branch means to fetch it and merge it."
+ "push"        "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+ "redo"        ""
+ "remote"      "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
+ "repository"  "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+ "reset"       ""
+ "revert"      ""
+ "revision"    "A particular state of files and directories which was stored in the object database."
+ "sign off"    ""
+ "staging area"        ""
+ "status"      ""
+ "tag [noun]"  "A ref pointing to a tag or commit object"
+ "tag [verb]"  ""
+ "tracking branch"     "A regular git branch that is used to follow changes from another repository."
+ "undo"        ""
+ "update"      ""
+ "verify"      ""
+ "working copy, working tree"  "The tree of actual checked out files."
index 0000000000000000000000000000000000000000,8e3d9a2f07b10f41d0b534158c91621310fc7b0f..8e3d9a2f07b10f41d0b534158c91621310fc7b0f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,180 +1,180 @@@
+ # Translation of git-gui glossary to Italian
+ # Copyright (C) 2007 Shawn Pearce, et al.
+ # This file is distributed under the same license as the git package.
+ # Christian Stimming <stimming@tuhh.de>, 2007
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui glossary\n"
+ "POT-Creation-Date: 2007-10-05 22:30+0200\n"
+ "PO-Revision-Date: 2007-10-10 15:24+0200\n"
+ "Last-Translator: Michele Ballabio <barra_cuda@katamail.com>\n"
+ "Language-Team: Italian \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+ msgid ""
+ "English Term (Dear translator: This file will never be visible to the user!)"
+ msgstr ""
+ "Traduzione italiana.\n"
+ "Altri SCM in italiano:\n"
+ "  http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/Languages/Tortoise_it."
+ "po (username=guest, password empty),\n"
+ "  http://tortoisecvs.cvs.sourceforge.net/tortoisecvs/po/TortoiseCVS/it_IT.po?"
+ "view=markup ,\n"
+ "  http://rapidsvn.tigris.org/svn/rapidsvn/trunk/src/locale/it_IT/rapidsvn.po "
+ "(username=guest, password empty)"
+ #. ""
+ msgid "amend"
+ msgstr "correggere, correzione"
+ #. ""
+ msgid "annotate"
+ msgstr "annotare, annotazione"
+ #. "A 'branch' is an active line of development."
+ msgid "branch [noun]"
+ msgstr "ramo, diramazione, ramificazione"
+ #. ""
+ msgid "branch [verb]"
+ msgstr "creare ramo, ramificare, diramare"
+ #. ""
+ msgid "checkout [noun]"
+ msgstr "attivazione, checkout, revisione attiva, prelievo (TortoiseCVS)?"
+ #. "The action of updating the working tree to a revision which was stored in the object database."
+ msgid "checkout [verb]"
+ msgstr ""
+ "attivare, effettuare un checkout, attivare revisione, prelevare (TortoiseCVS), "
+ "ritirare (TSVN)?"
+ #. ""
+ msgid "clone [verb]"
+ msgstr "clonare"
+ #. "A single point in the git history."
+ msgid "commit [noun]"
+ msgstr "revisione, commit, deposito (TortoiseCVS), invio (TSVN)?"
+ #. "The action of storing a new snapshot of the project's state in the git history."
+ msgid "commit [verb]"
+ msgstr ""
+ "creare una nuova revisione, archiviare, effettuare un commit, depositare "
+ "(nel server), fare un deposito (TortoiseCVS), inviare (TSVN)?"
+ #. ""
+ msgid "diff [noun]"
+ msgstr "differenza, confronto, comparazione, raffronto"
+ #. ""
+ msgid "diff [verb]"
+ msgstr "confronta, mostra le differenze"
+ #. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+ msgid "fast forward merge"
+ msgstr "fusione in 'fast-forward', fusione in avanti veloce"
+ #. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+ msgid "fetch"
+ msgstr "recuperare, prelevare, prendere da, recuperare (TSVN)"
+ #. "A collection of files. The index is a stored version of your working tree."
+ msgid "index (in git-gui: staging area)"
+ msgstr "indice"
+ #. "A successful merge results in the creation of a new commit representing the result of the merge."
+ msgid "merge [noun]"
+ msgstr "fusione, unione"
+ #. "To bring the contents of another branch into the current branch."
+ msgid "merge [verb]"
+ msgstr "effettuare la fusione, unire, fondere, eseguire la fusione"
+ #. ""
+ msgid "message"
+ msgstr "messaggio, commento"
+ #. ""
+ msgid "prune"
+ msgstr "potatura"
+ #. "Pulling a branch means to fetch it and merge it."
+ msgid "pull"
+ msgstr ""
+ "prendi (recupera) e fondi (unisci)? (in pratica una traduzione di fetch + "
+ "merge)"
+ #. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+ msgid "push"
+ msgstr "propaga"
+ #. ""
+ msgid "redo"
+ msgstr "ripeti, rifai"
+ #. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+ msgid "repository"
+ msgstr "archivio, repository, database? deposito (rapidsvn)?"
+ #. ""
+ msgid "reset"
+ msgstr "ripristinare, annullare, azzerare, ripristinare"
+ #. ""
+ msgid "revert"
+ msgstr ""
+ "annullare, inverti (rapidsvn), ritorna allo stato precedente, annulla le "
+ "modifiche della revisione"
+ #. "A particular state of files and directories which was stored in the object database."
+ msgid "revision"
+ msgstr "revisione (TortoiseSVN)"
+ #. ""
+ msgid "sign off"
+ msgstr "sign off, firma"
+ #. ""
+ msgid "staging area"
+ msgstr ""
+ "area di preparazione, zona di preparazione, modifiche in preparazione? "
+ "modifiche in allestimento?"
+ #. ""
+ msgid "status"
+ msgstr "stato"
+ #. "A ref pointing to a tag or commit object"
+ msgid "tag [noun]"
+ msgstr "etichetta, etichettatura (TortoiseCVS)"
+ #. ""
+ msgid "tag [verb]"
+ msgstr "etichettare"
+ #. "A regular git branch that is used to follow changes from another repository."
+ msgid "tracking branch"
+ msgstr ""
+ "duplicato locale di ramo remoto, ramo in 'tracking', ramo inseguitore? ramo di {inseguimento,allineamento,"
+ "rilevamento,puntamento}?"
+ #. ""
+ msgid "undo"
+ msgstr "annulla"
+ #. ""
+ msgid "update"
+ msgstr "aggiornamento, aggiornare"
+ #. ""
+ msgid "verify"
+ msgstr "verifica, verificare"
+ #. "The tree of actual checked out files."
+ msgid "working copy, working tree"
+ msgstr "directory di lavoro, copia di lavoro"
index 0000000000000000000000000000000000000000,49bf7c5365130ec290948ee8abba28d757774381..49bf7c5365130ec290948ee8abba28d757774381
mode 000000,100755..100755
--- /dev/null
@@@ -1,0 -1,48 +1,48 @@@
+ #!/bin/sh
+ # This is a very, _very_, simple script to convert a tab-separated
+ # .txt file into a .pot/.po.
+ # Its not clever but it took me 2 minutes to write :)
+ # Michael Twomey <michael.twomey@ireland.sun.com>
+ # 23 March 2001
+ # with slight GnuCash modifications by Christian Stimming <stimming@tuhh.de>
+ # 19 Aug 2001, 23 Jul 2007
+ #check args
+ if [ $# -eq 0 ]
+ then
+       cat <<!
+ Usage: `basename $0` git-gui-glossary.txt > git-gui-glossary.pot
+ !
+       exit 1;
+ fi
+ GLOSSARY_CSV="$1";
+ if [ ! -f "$GLOSSARY_CSV" ]
+ then
+       echo "Can't find $GLOSSARY_CSV.";
+       exit 1;
+ fi
+ cat <<!
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR Free Software Foundation, Inc.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "POT-Creation-Date: `date +'%Y-%m-%d %H:%M%z'`\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: ENCODING\n"
+ !
+ #Yes this is the most simple awk script you've ever seen :)
+ awk -F'\t' '{if ($2 != "") print "#. "$2; print "msgid "$1; print "msgstr \"\"\n"}' \
+ $GLOSSARY_CSV
index 0000000000000000000000000000000000000000,158835b5c1c9364735167e618af62272c8bb7a8d..158835b5c1c9364735167e618af62272c8bb7a8d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,170 +1,170 @@@
+ # Translation of git-gui glossary to Simplified Chinese
+ # Copyright (C) 2007 Shawn Pearce, et al.
+ # This file is distributed under the same license as the git package.
+ # Xudong Guan <xudong.guan@gmail.com> and the zh-kernel.org mailing list, 2007
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui glossary\n"
+ "PO-Revision-Date: 2007-07-23 22:07+0200\n"
+ "Last-Translator: Xudong Guan <xudong.guan@gmail.com>\n"
+ "Language-Team: Simplified Chinese \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)"
+ msgid ""
+ "English Term (Dear translator: This file will never be visible to the user!)"
+ msgstr "注:这个文件是为了帮助翻译人员统一名词术语。最终用户不会关心这个文件。"
+ #. ""
+ #. amend指用户修改最近一次commit的操作,修订?修改?修正?
+ #. [WANG Cong]: 根据我的了解,这个词似乎翻译成“修订”多一些。“修正”也可以,“修改”再次之。
+ #. [ZHANG Le]: 修订,感觉一般指对一些大型出版物的大规模升级,比如修订新华字典
+ #              修正,其实每次amend的结果也不一定就是最后结果,说不定还需要修改。所以不
+ #              如就叫修改
+ msgid "amend"
+ msgstr "修订"
+ #. ""
+ #. git annotate 文件名:用来标注文件的每一行在什么时候被谁最后修改。
+ #. [WANG Cong]: "标记"一般是mark。;)
+ #. [ZHANG Le]: 标注,或者干脆用原意:注解,或注释
+ msgid "annotate"
+ msgstr "标注"
+ #. "A 'branch' is an active line of development."
+ msgid "branch [noun]"
+ msgstr "分支"
+ #. ""
+ msgid "branch [verb]"
+ msgstr "建立分支"
+ #. ""
+ #. [WANG Cong]: 网上有人翻译成“检出”,我感觉更好一些,毕竟把check的意思翻译出来了。
+ #. [ZHNAG Le]: 提取吧,提取分支/版本
+ #. [rae l]: 签出。subversion软件中的大多词汇已有翻译,既然git与subversion同是SCM管理,可以参考同类软件的翻译也不错。
+ msgid "checkout [noun]"
+ msgstr "签出"
+ #. "The action of updating the working tree to a revision which was stored in the object database."
+ msgid "checkout [verb]"
+ msgstr "签出"
+ #. "A single point in the git history."
+ msgid "commit [noun]"
+ msgstr "提交"
+ #. "The action of storing a new snapshot of the project's state in the git history."
+ msgid "commit [verb]"
+ msgstr "提交"
+ #. ""
+ #. 差异?差别?
+ #. [ZHANG Le]: 个人感觉差别更加中性一些
+ msgid "diff [noun]"
+ msgstr "差别"
+ #. ""
+ msgid "diff [verb]"
+ msgstr "比较"
+ #. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have."
+ msgid "fast forward merge"
+ msgstr "快进式合并"
+ #. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too."
+ #. 获取?取得?下载?更新?注意和update的区分
+ msgid "fetch"
+ msgstr "获取"
+ #. "A collection of files. The index is a stored version of your working tree."
+ #. index是working tree和repository之间的缓存
+ msgid "index (in git-gui: staging area)"
+ msgstr "工作缓存?"
+ #. "A successful merge results in the creation of a new commit representing the result of the merge."
+ msgid "merge [noun]"
+ msgstr "合并"
+ #. "To bring the contents of another branch into the current branch."
+ msgid "merge [verb]"
+ msgstr "合并"
+ #. ""
+ #. message是指commit中的文字信息
+ msgid "message"
+ msgstr "描述"
+ #. "Pulling a branch means to fetch it and merge it."
+ msgid "pull"
+ msgstr "获取+合并"
+ #. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)"
+ msgid "push"
+ msgstr "推入"
+ #. ""
+ msgid "redo"
+ msgstr "重做"
+ #. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
+ msgid "repository"
+ msgstr "仓库"
+ #. ""
+ msgid "reset"
+ msgstr "重置"
+ #. ""
+ msgid "revert"
+ msgstr "恢复"
+ #. "A particular state of files and directories which was stored in the object database."
+ msgid "revision"
+ msgstr "版本"
+ #. ""
+ msgid "sign off"
+ msgstr "签名"
+ #. ""
+ #. 似乎是git-gui里面显示的本次提交的文件清单区域
+ msgid "staging area"
+ msgstr "提交暂存区"
+ #. ""
+ msgid "status"
+ msgstr "状态"
+ #. "A ref pointing to a tag or commit object"
+ msgid "tag [noun]"
+ msgstr "标签"
+ #. ""
+ msgid "tag [verb]"
+ msgstr "添加标签"
+ #. "A regular git branch that is used to follow changes from another repository."
+ msgid "tracking branch"
+ msgstr "跟踪分支"
+ #. ""
+ msgid "undo"
+ msgstr "撤销"
+ #. ""
+ msgid "update"
+ msgstr "更新。注意和fetch的区分"
+ #. ""
+ msgid "verify"
+ msgstr "验证"
+ #. "The tree of actual checked out files."
+ #. "工作副本?工作区域?工作目录"
+ #. [LI Yang]: 当前副本, 当前源码树?
+ msgid "working copy, working tree"
+ msgstr "工作副本,工作源码树"
diff --combined git-gui/po/hu.po
index 0000000000000000000000000000000000000000,e8c04f7aeae959bfd103cded105202883065d9ca..e8c04f7aeae959bfd103cded105202883065d9ca
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1895 +1,1895 @@@
+ # Hungarian translations for git-gui-i package.
+ # Copyright (C) 2007 THE git-gui-i'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the git-gui-i package.
+ # Miklos Vajna <vmiklos@frugalware.org>, 2007.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui-i 18n\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-10 04:04-0400\n"
+ "PO-Revision-Date: 2007-07-27 13:15+0200\n"
+ "Last-Translator: Miklos Vajna <vmiklos@frugalware.org>\n"
+ "Language-Team: Hungarian\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+ #: git-gui.sh:763
+ msgid "git-gui: fatal error"
+ msgstr ""
+ #: git-gui.sh:595
+ #, fuzzy, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr "Érvénytelen font lett megadva a grafikus felületben.%s:"
+ #: git-gui.sh:620
+ msgid "Main Font"
+ msgstr "Fő betűtípus"
+ #: git-gui.sh:621
+ msgid "Diff/Console Font"
+ msgstr "Diff/konzol betűtípus"
+ #: git-gui.sh:635
+ msgid "Cannot find git in PATH."
+ msgstr "A git nem található a PATH-ban."
+ #: git-gui.sh:662
+ msgid "Cannot parse Git version string:"
+ msgstr "Nem értelmezhető a Git verzió sztring:"
+ #: git-gui.sh:680
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ "Nem állípítható meg a Git verziója.\n"
+ "\n"
+ "A(z) %s szerint a verzió '%s'.\n"
+ "\n"
+ "A(z) %s a Git 1.5.0 vagy későbbi verzióját igényli.\n"
+ "\n"
+ "Feltételezhetjük, hogy a(z) '%s' verziója legalább 1.5.0?\n"
+ #: git-gui.sh:853
+ msgid "Git directory not found:"
+ msgstr "A Git könyvtár nem található:"
+ #: git-gui.sh:860
+ #, fuzzy
+ msgid "Cannot move to top of working directory:"
+ msgstr "Nem használható vicces .git könyvtár:"
+ #: git-gui.sh:867
+ msgid "Cannot use funny .git directory:"
+ msgstr "Nem használható vicces .git könyvtár:"
+ #: git-gui.sh:872
+ msgid "No working directory"
+ msgstr "Nincs munkakönyvtár"
+ #: git-gui.sh:1019
+ msgid "Refreshing file status..."
+ msgstr "A fájlok státuszának frissítése..."
+ #: git-gui.sh:1084
+ msgid "Scanning for modified files ..."
+ msgstr "Módosított fájlok keresése ..."
+ #: git-gui.sh:1259 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr "Kész."
+ #: git-gui.sh:1525
+ msgid "Unmodified"
+ msgstr "Nem módosított"
+ #: git-gui.sh:1527
+ msgid "Modified, not staged"
+ msgstr "Módosított, de nem kiválasztott"
+ #: git-gui.sh:1528 git-gui.sh:1533
+ msgid "Staged for commit"
+ msgstr "Kiválasztva commitolásra"
+ #: git-gui.sh:1529 git-gui.sh:1534
+ msgid "Portions staged for commit"
+ msgstr "Részek kiválasztva commitolásra"
+ #: git-gui.sh:1530 git-gui.sh:1535
+ msgid "Staged for commit, missing"
+ msgstr "Kiválasztva commitolásra, hiányzó"
+ #: git-gui.sh:1532
+ msgid "Untracked, not staged"
+ msgstr "Nem követett, nem kiválasztott"
+ #: git-gui.sh:1537
+ msgid "Missing"
+ msgstr "Hiányzó"
+ #: git-gui.sh:1538
+ msgid "Staged for removal"
+ msgstr "Kiválasztva eltávolításra"
+ #: git-gui.sh:1539
+ msgid "Staged for removal, still present"
+ msgstr "Kiválasztva eltávolításra, jelenleg is elérhető"
+ #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+ msgid "Requires merge resolution"
+ msgstr "Merge feloldás szükséges"
+ #: git-gui.sh:1579
+ msgid "Starting gitk... please wait..."
+ msgstr "A gitk indítása... várjunk..."
+ #: git-gui.sh:1588
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ "A gitk indítása sikertelen:\n"
+ "\n"
+ "A(z) %s nem létezik"
+ #: git-gui.sh:1788 lib/choose_repository.tcl:32
+ msgid "Repository"
+ msgstr "Repó"
+ #: git-gui.sh:1789
+ msgid "Edit"
+ msgstr "Szerkesztés"
+ #: git-gui.sh:1791 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "Branch"
+ #: git-gui.sh:1794 lib/choose_rev.tcl:547
+ #, fuzzy
+ msgid "Commit@@noun"
+ msgstr "Commit"
+ #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "Merge"
+ #: git-gui.sh:1798 lib/choose_rev.tcl:556
+ #, fuzzy
+ msgid "Remote"
+ msgstr "Távoli:"
+ #: git-gui.sh:1807
+ msgid "Browse Current Branch's Files"
+ msgstr "A jelenlegi branch fájljainak böngészése"
+ #: git-gui.sh:1811
+ msgid "Browse Branch Files..."
+ msgstr "A branch fájljainak böngészése..."
+ #: git-gui.sh:1816
+ msgid "Visualize Current Branch's History"
+ msgstr "A jelenlegi branch történetének vizualizálása"
+ #: git-gui.sh:1820
+ msgid "Visualize All Branch History"
+ msgstr "Az összes branch történetének vizualizálása"
+ #: git-gui.sh:1827
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "A(z) %s branch fájljainak böngészése"
+ #: git-gui.sh:1829
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "A(z) %s branch történetének vizualizálása"
+ #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "Adatbázis statisztikák"
+ #: git-gui.sh:1837 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "Adatbázis tömörítése"
+ #: git-gui.sh:1840
+ msgid "Verify Database"
+ msgstr "Adatbázis ellenőrzése"
+ #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
+ #: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+ msgid "Create Desktop Icon"
+ msgstr "Asztal ikon létrehozása"
+ #: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+ msgid "Quit"
+ msgstr "Kilépés"
+ #: git-gui.sh:1867
+ msgid "Undo"
+ msgstr "Visszavonás"
+ #: git-gui.sh:1870
+ msgid "Redo"
+ msgstr "Mégis"
+ #: git-gui.sh:1874 git-gui.sh:2366
+ msgid "Cut"
+ msgstr "Kivágás"
+ #: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "Másolás"
+ #: git-gui.sh:1880 git-gui.sh:2372
+ msgid "Paste"
+ msgstr "Beillesztés"
+ #: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "Törlés"
+ #: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "Mindent kiválaszt"
+ #: git-gui.sh:1896
+ msgid "Create..."
+ msgstr "Létrehozás..."
+ #: git-gui.sh:1902
+ msgid "Checkout..."
+ msgstr "Checkout..."
+ #: git-gui.sh:1908
+ msgid "Rename..."
+ msgstr "Átnevezés..."
+ #: git-gui.sh:1913 git-gui.sh:2012
+ msgid "Delete..."
+ msgstr "Törlés..."
+ #: git-gui.sh:1918
+ msgid "Reset..."
+ msgstr "Visszaállítás..."
+ #: git-gui.sh:1930 git-gui.sh:2313
+ msgid "New Commit"
+ msgstr "Új commit"
+ #: git-gui.sh:1938 git-gui.sh:2320
+ msgid "Amend Last Commit"
+ msgstr "Utolsó commit javítása"
+ #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "Keresés újra"
+ #: git-gui.sh:1953
+ msgid "Stage To Commit"
+ msgstr "Kiválasztás commitolásra"
+ #: git-gui.sh:1958
+ msgid "Stage Changed Files To Commit"
+ msgstr "Módosított fájlok kiválasztása commitolásra"
+ #: git-gui.sh:1964
+ msgid "Unstage From Commit"
+ msgstr "Commitba való kiválasztás visszavonása"
+ #: git-gui.sh:1969 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr "Változtatások visszaállítása"
+ #: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+ msgid "Sign Off"
+ msgstr "Aláír"
+ #: git-gui.sh:1980 git-gui.sh:2296
+ #, fuzzy
+ msgid "Commit@@verb"
+ msgstr "Commit"
+ #: git-gui.sh:1991
+ msgid "Local Merge..."
+ msgstr "Helyi merge..."
+ #: git-gui.sh:1996
+ msgid "Abort Merge..."
+ msgstr "Merge megszakítása..."
+ #: git-gui.sh:2008
+ msgid "Push..."
+ msgstr "Push..."
+ #: git-gui.sh:2019 lib/choose_repository.tcl:41
+ msgid "Apple"
+ msgstr "Apple"
+ #: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
+ #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+ #, tcl-format
+ msgid "About %s"
+ msgstr "Névjegy: %s"
+ #: git-gui.sh:2026
+ msgid "Preferences..."
+ msgstr ""
+ #: git-gui.sh:2034 git-gui.sh:2558
+ msgid "Options..."
+ msgstr "Opciók..."
+ #: git-gui.sh:2040 lib/choose_repository.tcl:47
+ msgid "Help"
+ msgstr "Segítség"
+ #: git-gui.sh:2081
+ msgid "Online Documentation"
+ msgstr "Online dokumentáció"
+ #: git-gui.sh:2165
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr ""
+ #: git-gui.sh:2198
+ msgid "Current Branch:"
+ msgstr "Jelenlegi branch:"
+ #: git-gui.sh:2219
+ #, fuzzy
+ msgid "Staged Changes (Will Commit)"
+ msgstr "Kiválasztott változtatások (commitolva lesz)"
+ #: git-gui.sh:2239
+ #, fuzzy
+ msgid "Unstaged Changes"
+ msgstr "Változtatások kiválasztása"
+ #: git-gui.sh:2286
+ msgid "Stage Changed"
+ msgstr "Változtatások kiválasztása"
+ #: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "Push"
+ #: git-gui.sh:2332
+ msgid "Initial Commit Message:"
+ msgstr "Kezdeti commit üzenet:"
+ #: git-gui.sh:2333
+ msgid "Amended Commit Message:"
+ msgstr "Javító commit üzenet:"
+ #: git-gui.sh:2334
+ msgid "Amended Initial Commit Message:"
+ msgstr "Kezdeti javító commit üzenet:"
+ #: git-gui.sh:2335
+ msgid "Amended Merge Commit Message:"
+ msgstr "Javító merge commit üzenet:"
+ #: git-gui.sh:2336
+ msgid "Merge Commit Message:"
+ msgstr "Merge commit üzenet:"
+ #: git-gui.sh:2337
+ msgid "Commit Message:"
+ msgstr "Commit üzenet:"
+ #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "Összes másolása"
+ #: git-gui.sh:2406 lib/blame.tcl:104
+ msgid "File:"
+ msgstr "Fájl:"
+ #: git-gui.sh:2508
+ msgid "Refresh"
+ msgstr "Frissítés"
+ #: git-gui.sh:2529
+ msgid "Apply/Reverse Hunk"
+ msgstr "Hunk alkalmazása/visszaállítása"
+ #: git-gui.sh:2535
+ msgid "Decrease Font Size"
+ msgstr "Font méret csökkentése"
+ #: git-gui.sh:2539
+ msgid "Increase Font Size"
+ msgstr "Fönt méret növelése"
+ #: git-gui.sh:2544
+ msgid "Show Less Context"
+ msgstr "Kevesebb környezet mutatása"
+ #: git-gui.sh:2551
+ msgid "Show More Context"
+ msgstr "Több környezet mutatása"
+ #: git-gui.sh:2565
+ msgid "Unstage Hunk From Commit"
+ msgstr "Hunk törlése commitból"
+ #: git-gui.sh:2567
+ msgid "Stage Hunk For Commit"
+ msgstr "Hunk kiválasztása commitba"
+ #: git-gui.sh:2586
+ msgid "Initializing..."
+ msgstr "Inicializálás..."
+ #: git-gui.sh:2677
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ #: git-gui.sh:2707
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ #: git-gui.sh:2712
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr "git-gui - egy grafikus felület a Githez."
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr "Fájl néző"
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr "Commit:"
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr "Commit másolása"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr "A(z) %s olvasása..."
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr ""
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr ""
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr ""
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr ""
+ #: lib/blame.tcl:731
+ #, fuzzy
+ msgid "Loading annotation..."
+ msgstr "A(z) %s betöltése..."
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr ""
+ #: lib/blame.tcl:791
+ #, fuzzy
+ msgid "Committer:"
+ msgstr "Commit:"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr ""
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr ""
+ #: lib/blame.tcl:916
+ #, fuzzy
+ msgid "In File:"
+ msgstr "Fájl:"
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr ""
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr "Branch checkoutolása"
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr "Checkout"
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr "Mégsem"
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr "Revízió"
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr "Opciók"
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr "Követő branch letöltése"
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr "Helyi branch leválasztása"
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr "Branch létrehozása"
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr "Új branch létrehozása"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+ msgid "Create"
+ msgstr "Létrehozás"
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr "Branch neve"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr "Név:"
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr "Egyeztetendő követési branch név"
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr "A következő revíziótól"
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr "Létező branch frissítése"
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr "Nem"
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr "Csak fast forward"
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr "Visszaállítás"
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr "Checkout létrehozás után"
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr "Válasszunk ki egy követő branchet."
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr "A(z) %s követő branch nem branch a távoli repóban."
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr "Adjunk megy egy branch nevet."
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr "A(z) '%s' nem egy elfogadható branch név."
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr "Branch törlése"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr "Helyi branch törlése"
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr "Helyi branchek"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr "Csak már merge-ölt törlése"
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr "Mindig (Ne legyen merge teszt.)"
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr "A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ "A törölt branchek visszaállítása bonyolult. \n"
+ "\n"
+ " Biztosan törli a kiválasztott brancheket?"
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ "Nem sikerült törölni a következő brancheket:\n"
+ "%s"
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr "Branch átnevezése"
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr "Átnevezés"
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr "Branch:"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr "Új név:"
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr "Válasszunk ki egy átnevezendő branchet."
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr "A(z) '%s' branch már létezik."
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr "Nem sikerült átnevezni: '%s'."
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr "Indítás..."
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr "Fájl böngésző"
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr "A(z) %s betöltése..."
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr "[Fel a szülőhöz]"
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr "A branch fájljainak böngészése"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:215
+ #: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
+ #: lib/choose_repository.tcl:811
+ msgid "Browse"
+ msgstr "Böngészés"
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr "A(z) %s letöltése innen: %s"
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr "Bezárás"
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr "A(z) '%s' branch nem létezik."
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ "A(z) '%s' branch már létezik.\n"
+ "\n"
+ "Nem lehet fast-forwardolni a következőhöz: %s.\n"
+ "Egy merge szükséges."
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr "A(z) '%s' merge strategy nem támogatott."
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr "Nem sikerült frissíteni a következőt: '%s'."
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr "A kiválasztási terület (index) már zárolva van."
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Az utolsó keresési állapot nem egyezik meg a repó állpotával.\n"
+ "\n"
+ "Egy másik Git program módosította ezt a repót az utolsó keresés óta. Egy "
+ "újrakeresés mindenképpen szükséges mielőtt a jelenlegi branchet módosítani "
+ "lehetne.\n"
+ "\n"
+ "Az újrakeresés most automatikusan el fog indulni.\n"
+ #: lib/checkout_op.tcl:322
+ #, fuzzy, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr "Nincs munkakönyvtár"
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr "A(z) '%s' checkoutja megszakítva (fájlszintű merge-ölés szükséges)."
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr "Fájlszintű merge-ölés szükséges."
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr "Jelenleg a(z) '%s' branchen."
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ "Már nem egy helyi branchen vagyunk.\n"
+ "\n"
+ "Ha egy branchen szeretnénk lenni, hozzunk létre egyet az 'Ez a leválasztott "
+ "checkout'-ból."
+ #: lib/checkout_op.tcl:446
+ #, fuzzy, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "Checkout..."
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr ""
+ "A(z) '%s' -> '%s' visszaállítás a következő commitok elvesztését jelenti:"
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr "Az elveszett commitok helyreállítása nem biztos, hogy egyszerű."
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr "Visszaállítjuk a következőt: '%s'?"
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr "Vizualizálás"
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ "Nem sikerült beállítani a jelenlegi branchet.\n"
+ "\n"
+ "A munkakönyvtár csak részben váltott át.  A fájlok sikeresen frissítve "
+ "lettek, de nem sikerült frissíteni egy belső Git fájlt.\n"
+ "\n"
+ "Ennek nem szabad megtörténnie.  A(z) %s most kilép és feladja."
+ #: lib/choose_font.tcl:39
+ #, fuzzy
+ msgid "Select"
+ msgstr "Mindent kiválaszt"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr ""
+ #: lib/choose_font.tcl:73
+ #, fuzzy
+ msgid "Font Size"
+ msgstr "Font méret csökkentése"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr ""
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ #: lib/choose_repository.tcl:25
+ msgid "Git Gui"
+ msgstr ""
+ #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+ #, fuzzy
+ msgid "Create New Repository"
+ msgstr "Forrás repó"
+ #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+ #, fuzzy
+ msgid "Clone Existing Repository"
+ msgstr "Cél repó"
+ #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+ #, fuzzy
+ msgid "Open Existing Repository"
+ msgstr "Cél repó"
+ #: lib/choose_repository.tcl:91
+ msgid "Next >"
+ msgstr ""
+ #: lib/choose_repository.tcl:152
+ #, fuzzy, tcl-format
+ msgid "Location %s already exists."
+ msgstr "A(z) '%s' branch már létezik."
+ #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
+ #: lib/choose_repository.tcl:172
+ #, fuzzy, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
+ #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+ msgid "Directory:"
+ msgstr ""
+ #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
+ #: lib/choose_repository.tcl:834
+ #, fuzzy
+ msgid "Git Repository"
+ msgstr "Repó"
+ #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+ #, fuzzy, tcl-format
+ msgid "Directory %s already exists."
+ msgstr "A(z) '%s' branch már létezik."
+ #: lib/choose_repository.tcl:265
+ #, fuzzy, tcl-format
+ msgid "File %s already exists."
+ msgstr "A(z) '%s' branch már létezik."
+ #: lib/choose_repository.tcl:286
+ #, fuzzy
+ msgid "Clone"
+ msgstr "Bezárás"
+ #: lib/choose_repository.tcl:299
+ msgid "URL:"
+ msgstr ""
+ #: lib/choose_repository.tcl:319
+ msgid "Clone Type:"
+ msgstr ""
+ #: lib/choose_repository.tcl:325
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr ""
+ #: lib/choose_repository.tcl:331
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:337
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
+ #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
+ #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+ #, fuzzy, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr "Nincs kiválasztott repó."
+ #: lib/choose_repository.tcl:405
+ msgid "Standard only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:409
+ msgid "Shared only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:439
+ msgid "Failed to configure origin"
+ msgstr ""
+ #: lib/choose_repository.tcl:451
+ msgid "Counting objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:452
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:476
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:512
+ #, fuzzy, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr "Új változások letöltése innen: %s"
+ #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
+ #: lib/choose_repository.tcl:740
+ msgid "The 'master' branch has not been initialized."
+ msgstr ""
+ #: lib/choose_repository.tcl:527
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr ""
+ #: lib/choose_repository.tcl:539
+ #, fuzzy, tcl-format
+ msgid "Cloning from %s"
+ msgstr "A(z) %s letöltése innen: %s"
+ #: lib/choose_repository.tcl:570
+ #, fuzzy
+ msgid "Copying objects"
+ msgstr "Az objektum adatbázis tömörítése"
+ #: lib/choose_repository.tcl:571
+ msgid "KiB"
+ msgstr ""
+ #: lib/choose_repository.tcl:595
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:605
+ msgid "Linking objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:606
+ msgid "objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:614
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:669
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:680
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:704
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:713
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:719
+ #, fuzzy
+ msgid "Clone failed."
+ msgstr "A félbeszakítás nem sikerült."
+ #: lib/choose_repository.tcl:726
+ msgid "No default branch obtained."
+ msgstr ""
+ #: lib/choose_repository.tcl:737
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr ""
+ #: lib/choose_repository.tcl:749
+ #, fuzzy
+ msgid "Creating working directory"
+ msgstr "Nincs munkakönyvtár"
+ #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr ""
+ #: lib/choose_repository.tcl:779
+ msgid "Initial file checkout failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:795
+ msgid "Open"
+ msgstr ""
+ #: lib/choose_repository.tcl:805
+ #, fuzzy
+ msgid "Repository:"
+ msgstr "Repó"
+ #: lib/choose_repository.tcl:854
+ #, fuzzy, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr "Ez a leválasztott checkout"
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr "Revízió kifejezés:"
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr "Helyi branch"
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr "Követő branch"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr "Tag"
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr "Érvénytelen revízió: %s"
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr "Nincs kiválasztva revízió."
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr "A revízió kifejezés üres."
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr ""
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr ""
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ "Nincs semmi javítanivaló.\n"
+ "\n"
+ "Az első commit létrehozása előtt nincs semmilyen commit amit javitani "
+ "lehetne.\n"
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ "Nem lehet javítani merge alatt.\n"
+ "\n"
+ "A jelenlegi merge még nem teljesen fejeződött be. Csak akkor javíthat egy "
+ "előbbi commitot, hogyha megszakítja a jelenlegi merge folyamatot.\n"
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr "Hiba a javítandó commit adat betöltése közben:"
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr "Nem sikerült megállapítani az azonosítót:"
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr "Érvénytelen GIT_COMMITTER_IDENT:"
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Az utolsó keresési állapot nem egyezik meg a repó állapotával.\n"
+ "\n"
+ "Egy másik Git program módosította ezt a repót az utolsó keresés óta. Egy "
+ "újrakeresés mindenképpen szükséges mielőtt a jelenlegi branchet módosítani "
+ "lehetne.\n"
+ "\n"
+ "Az újrakeresés most automatikusan el fog indulni.\n"
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ "Nem commitolhatunk fájlokat merge előtt.\n"
+ "\n"
+ "A(z) %s fájlban ütközések vannak. Egyszer azokat ki kell javítani, majd "
+ "hozzá ki kell választani a fájlt mielőtt commitolni lehetne.\n"
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ "Ismeretlen fájl típus %s érzékelve.\n"
+ "\n"
+ "A(z) %s fájlt nem tudja ez a program commitolni.\n"
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ "Nincs commitolandó változtatás.\n"
+ "\n"
+ "Legalább egy fájl ki kell választani, hogy commitolni lehessen.\n"
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ "Adjunk megy egy commit üzenetet.\n"
+ "\n"
+ "Egy jó commit üzenetnek a következő a formátuma:\n"
+ "\n"
+ "- Első sor: Egy mondatban leírja, hogy mit csináltunk.\n"
+ "- Második sor: Üres\n"
+ "- A többi sor: Leírja, hogy miért jó ez a változtatás.\n"
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr "a write-tree sikertelen:"
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr ""
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ "Nincs commitolandó változtatás.\n"
+ "\n"
+ "Egyetlen fájlt se módosított ez a commit és merge commit se volt.\n"
+ "\n"
+ "Az újrakeresés most automatikusan el fog indulni.\n"
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr "Nincs commitolandó változtatás."
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr ""
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr "a commit-tree sikertelen:"
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr "az update-ref sikertelen:"
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr "Létrejött a %s commit: %s"
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr "Munka folyamatban.. Várjunk..."
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr "Siker"
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr "Hiba: a parancs sikertelen"
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr "Elvesztett objektumok száma"
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr "Elveszett objektumok által elfoglalt lemezterület"
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr "Csomagolt objektumok számra"
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr "Csomagok száma"
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr "A csomagolt objektumok által használt lemezterület"
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr "Eltávolításra váró csomagolt objektumok számra"
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr "Hulladék fájlok"
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr "Az objektum adatbázis tömörítése"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr "Az objektum adatbázis ellenőrzése az fsck-objects használatával"
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ #: lib/date.tcl:25
+ #, fuzzy, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr "Érvénytelen revízió: %s"
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ "Nincsenek változások.\n"
+ "\n"
+ "A(z) %s módosítatlan.\n"
+ "\n"
+ "A fájl módosítási dátumát frissítette egy másik alkalmazás, de a fájl "
+ "tartalma változatlan.\n"
+ "\n"
+ "Egy újrakeresés fog indulni a hasonló állapotú fájlok megtalálása érdekében."
+ #: lib/diff.tcl:81
+ #, fuzzy, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr "A(z) %s betöltése..."
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr ""
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr "Hiba a fájl betöltése közben:"
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr ""
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr ""
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr "Hiba a diff betöltése közben:"
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr "Nem visszavonni a hunk kiválasztását."
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr "Nem sikerült kiválasztani a hunkot."
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr "hiba"
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr "figyelmeztetés"
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr "Ki kell javítanunk a fenti hibákat commit előtt."
+ #: lib/index.tcl:241
+ #, fuzzy, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "Commitba való kiválasztás visszavonása"
+ #: lib/index.tcl:285
+ #, fuzzy, tcl-format
+ msgid "Adding %s"
+ msgstr "A(z) %s olvasása..."
+ #: lib/index.tcl:340
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "Visszaállítja a változtatásokat a(z) %s fájlban?"
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr "Visszaállítja a változtatásokat ebben e %i fájlban?"
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ "Minden nem kiválasztott változtatás el fog veszni ezáltal a visszaállítás "
+ "által."
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr "Ne csináljunk semmit"
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ "Javítás közben nem lehetséges a merge.\n"
+ "\n"
+ "Egyszer be kell fejezni ennek a commitnak a javítását, majd kezdődhet egy "
+ "merge.\n"
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Az utolsó keresési állapot nem egyezik meg a repó állapotával.\n"
+ "\n"
+ "Egy másik Git program módosította ezt a repót az utolsó keresés óta. Egy "
+ "újrakeresés mindenképpen szükséges mielőtt a jelenlegi branchet módosítani "
+ "lehetne.\n"
+ "\n"
+ "Az újrakeresés most automatikusan el fog indulni.\n"
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ "Jelenleg egy ütközés feloldása közben vagyunk.\n"
+ "\n"
+ "A(z) %s fájlban ütközések vannak.\n"
+ "\n"
+ "Fel kell oldanunk őket, kiválasztani a fájlt, és commitolni hogy befejezzük "
+ "a jelenlegi merge-t. Csak ezután kezdhetünk el egy újabbat.\n"
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ "Jelenleg egy változtatás közben vagyunk.\n"
+ "\n"
+ "A(z) %s fájl megváltozott.\n"
+ "\n"
+ "Először be kell fejeznünk a jelenlegi commitot, hogy elkezdhessünk egy merge-"
+ "t. Ez segíteni fog, hogy félbeszakíthassunk egy merge-t.\n"
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr "%s / %s"
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr "A(z) %s és a(z) %s merge-ölése"
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr "A merge sikeresen befejeződött."
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr "A merge sikertelen. Fel kell oldanunk az ütközéseket."
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr "Merge-ölés a következőbe: %s"
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr "Merge-ölni szándékozott revízió"
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ "A commit javítás közben megszakítva.\n"
+ "\n"
+ "Be kell fejeznünk ennek a commitnak a javítását.\n"
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ "Megszakítjuk a merge-t?\n"
+ "\n"
+ "A jelenlegi merge megszakítása *MINDEN* nem commitolt változtatás "
+ "elvesztését jelenti.\n"
+ "\n"
+ "Folytatjuk a jelenlegi merge megszakítását?"
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ "Visszavonjuk a módosításokat?\n"
+ "\n"
+ "A módosítások visszavonása *MINDEN* nem commitolt változtatás elvesztését "
+ "jelenti.\n"
+ "\n"
+ "Folytatjuk a jelenlegi módosítások visszavonását?"
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr "Félbeszakítás"
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr "A félbeszakítás nem sikerült."
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr "A megkeszakítás befejeződött. Kész."
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr "Alapértelmezés visszaállítása"
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr "Mentés"
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr "%s Repó"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr "Globális (minden repó)"
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr "Felhasználónév"
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr "Email cím"
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr "A merge commitok összegzése"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr "Merge beszédesség"
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr "Diffstat mutatása merge után"
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr "A fájl módosítási dátumok megbízhatóak"
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr "A követő branchek eltávolítása letöltés alatt"
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr "A követő branchek egyeztetése"
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr "A diff környezeti sorok száma"
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr "Új branch név sablon"
+ #: lib/option.tcl:176
+ #, fuzzy
+ msgid "Change Font"
+ msgstr "Fő betűtípus"
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr ""
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr ""
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr ""
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
+ #: lib/remote.tcl:165
+ #, fuzzy
+ msgid "Prune from"
+ msgstr "Törlés innen: %s..."
+ # tcl-format
+ #: lib/remote.tcl:170
+ #, fuzzy
+ msgid "Fetch from"
+ msgstr "Letöltés innen: %s..."
+ #: lib/remote.tcl:213
+ #, fuzzy
+ msgid "Push to"
+ msgstr "Push"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr "Távoli branch törlése"
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr "Forrás repó"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr "Távoli:"
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr "Tetszőleges URL:"
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr "Branchek"
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr "Törlés csak akkor ha"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr "Merge-ölt a következőbe:"
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr "Mindig (Ne végezzen merge vizsgálatokat)"
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr "Egy branch szükséges a 'Merge-ölt a következőbe'-hez."
+ #: lib/remote_branch_delete.tcl:184
+ #, fuzzy, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr "A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ "Egy vagy több merge teszt hibát jelzett, mivel nem töltöttük le a megfelelő "
+ "commitokat. Próbáljunk meg letölteni a következőből: %s először."
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr "Válasszunk ki egy vagy több branchet törlésre."
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ "A törölt branchek visszaállítása nehéz.\n"
+ "\n"
+ "Töröljük a kiválasztott brancheket?"
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr "Brancek törlése innen: %s"
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr "Nincs kiválasztott repó."
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr "Keresés itt: %s..."
+ #: lib/shortcut.tcl:26 lib/shortcut.tcl:74
+ msgid "Cannot write script:"
+ msgstr "Nem sikerült írni a scriptet:"
+ #: lib/shortcut.tcl:149
+ msgid "Cannot write icon:"
+ msgstr "Nem sikerült írni az ikont:"
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr "%s ... %*i / %*i %s (%3i%%)"
+ #: lib/transport.tcl:6
+ #, fuzzy, tcl-format
+ msgid "fetch %s"
+ msgstr "Letöltés"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr "Új változások letöltése innen: %s"
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr ""
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr "A %s repóból törölt követő branchek törlése"
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr ""
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr "Változások pusholása ide: %s"
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr "Pusholás: %s %s, ide: %s"
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr "Branchek pusholása"
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr "Forrás branchek"
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr "Cél repó"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr "Átviteli opciók"
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr ""
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr "Vékony csomagok használata (lassú hálózati kapcsolatok számára)"
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr "Tageket is"
+ #~ msgid "Cannot find the git directory:"
+ #~ msgstr "Nem található a git könyvtár:"
+ #~ msgid "Unstaged Changes (Will Not Be Committed)"
+ #~ msgstr "Nem kiválasztott változtatások (nem lesz commitolva)"
+ #~ msgid "Push to %s..."
+ #~ msgstr "Pusholás ide: %s..."
+ #~ msgid "Add To Commit"
+ #~ msgstr "Hozzáadás a commithoz"
+ #~ msgid "Add Existing To Commit"
+ #~ msgstr "Hozzáadás létező commithoz"
+ #~ msgid "Running miga..."
+ #~ msgstr "A miga futtatása..."
+ #~ msgid "Add Existing"
+ #~ msgstr "Létező hozzáadása"
+ #~ msgid ""
+ #~ "Abort commit?\n"
+ #~ "\n"
+ #~ "Aborting the current commit will cause *ALL* uncommitted changes to be "
+ #~ "lost.\n"
+ #~ "\n"
+ #~ "Continue with aborting the current commit?"
+ #~ msgstr ""
+ #~ "Megszakítjuk a commitot?\n"
+ #~ "\n"
+ #~ "A jelenlegi commit megszakítása *MINDEN* nem commitolt változtatás "
+ #~ "elvesztését jelenti.\n"
+ #~ "\n"
+ #~ "Folytatjuk a jelenlegi commit megszakítását?"
+ #~ msgid "Aborting... please wait..."
+ #~ msgstr "Megszakítás... várjunk..."
diff --combined git-gui/po/it.po
index 0000000000000000000000000000000000000000,766841410404d03b80678a9133a79d1bf8d8d97d..766841410404d03b80678a9133a79d1bf8d8d97d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1872 +1,1872 @@@
+ # Translation of git-gui to Italian
+ # Copyright (C) 2007 Shawn Pearce
+ # This file is distributed under the same license as the git-gui package.
+ # Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>, 2007
+ # Michele Ballabio <barra_cuda@katamail.com>, 2007.
+ # 
+ # 
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-10 14:42+0200\n"
+ "PO-Revision-Date: 2007-10-10 15:27+0200\n"
+ "Last-Translator: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>\n"
+ "Language-Team: Italian <tp@lists.linux.it>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+ #: git-gui.sh:763
+ msgid "git-gui: fatal error"
+ msgstr "git-gui: errore grave"
+ #: git-gui.sh:595
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr "Caratteri non validi specificati in %s:"
+ #: git-gui.sh:620
+ msgid "Main Font"
+ msgstr "Caratteri principali"
+ #: git-gui.sh:621
+ msgid "Diff/Console Font"
+ msgstr "Caratteri per confronti e terminale"
+ #: git-gui.sh:635
+ msgid "Cannot find git in PATH."
+ msgstr "Impossibile trovare git nel PATH"
+ #: git-gui.sh:662
+ msgid "Cannot parse Git version string:"
+ msgstr "Impossibile determinare la versione di Git:"
+ #: git-gui.sh:680
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ "La versione di GIT non può essere determinata.\n"
+ "\n"
+ "%s riporta che la versione è '%s'.\n"
+ "\n"
+ "%s richiede almeno Git 1.5.0 o superiore.\n"
+ "\n"
+ "Assumere che '%s' sia alla versione 1.5.0?\n"
+ #: git-gui.sh:853
+ msgid "Git directory not found:"
+ msgstr "Non trovo la directory di git: "
+ #: git-gui.sh:860
+ msgid "Cannot move to top of working directory:"
+ msgstr "Impossibile spostarsi sulla directory principale del progetto:"
+ #: git-gui.sh:867
+ msgid "Cannot use funny .git directory:"
+ msgstr "Impossibile usare una .git directory strana:"
+ #: git-gui.sh:872
+ msgid "No working directory"
+ msgstr "Nessuna directory di lavoro"
+ #: git-gui.sh:1019
+ msgid "Refreshing file status..."
+ msgstr "Controllo dello stato dei file in corso..."
+ #: git-gui.sh:1084
+ msgid "Scanning for modified files ..."
+ msgstr "Ricerca di file modificati in corso..."
+ #: git-gui.sh:1259 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr "Pronto."
+ #: git-gui.sh:1525
+ msgid "Unmodified"
+ msgstr "Non modificato"
+ #: git-gui.sh:1527
+ msgid "Modified, not staged"
+ msgstr "Modificato, non preparato per una nuova revisione"
+ #: git-gui.sh:1528 git-gui.sh:1533
+ msgid "Staged for commit"
+ msgstr "Preparato per una nuova revisione"
+ #: git-gui.sh:1529 git-gui.sh:1534
+ msgid "Portions staged for commit"
+ msgstr "Parti preparate per una nuova revisione"
+ #: git-gui.sh:1530 git-gui.sh:1535
+ msgid "Staged for commit, missing"
+ msgstr "Preparato per una nuova revisione, mancante"
+ #: git-gui.sh:1532
+ msgid "Untracked, not staged"
+ msgstr "Non tracciato, non preparato per una nuova revisione"
+ #: git-gui.sh:1537
+ msgid "Missing"
+ msgstr "Mancante"
+ #: git-gui.sh:1538
+ msgid "Staged for removal"
+ msgstr "Preparato per la rimozione"
+ #: git-gui.sh:1539
+ msgid "Staged for removal, still present"
+ msgstr "Preparato alla rimozione, ancora presente"
+ #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+ msgid "Requires merge resolution"
+ msgstr "Richiede risoluzione dei conflitti"
+ #: git-gui.sh:1579
+ msgid "Starting gitk... please wait..."
+ msgstr "Avvio di gitk... attendere..."
+ #: git-gui.sh:1588
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ "Impossibile avviare gitk:\n"
+ "\n"
+ "%s non esiste"
+ #: git-gui.sh:1788 lib/choose_repository.tcl:32
+ msgid "Repository"
+ msgstr "Archivio"
+ #: git-gui.sh:1789
+ msgid "Edit"
+ msgstr "Modifica"
+ #: git-gui.sh:1791 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "Ramo"
+ #: git-gui.sh:1794 lib/choose_rev.tcl:547
+ msgid "Commit@@noun"
+ msgstr "Revisione"
+ #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "Fusione (Merge)"
+ #: git-gui.sh:1798 lib/choose_rev.tcl:556
+ msgid "Remote"
+ msgstr "Remoto"
+ #: git-gui.sh:1807
+ msgid "Browse Current Branch's Files"
+ msgstr "Esplora i file del ramo corrente"
+ #: git-gui.sh:1811
+ msgid "Browse Branch Files..."
+ msgstr "Esplora i file del ramo..."
+ #: git-gui.sh:1816
+ msgid "Visualize Current Branch's History"
+ msgstr "Visualizza la cronologia del ramo corrente"
+ #: git-gui.sh:1820
+ msgid "Visualize All Branch History"
+ msgstr "Visualizza la cronologia di tutti i rami"
+ #: git-gui.sh:1827
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "Esplora i file di %s"
+ #: git-gui.sh:1829
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "Visualizza la cronologia di %s"
+ #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "Statistiche dell'archivio"
+ #: git-gui.sh:1837 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "Comprimi l'archivio"
+ #: git-gui.sh:1840
+ msgid "Verify Database"
+ msgstr "Verifica l'archivio"
+ #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
+ #: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+ msgid "Create Desktop Icon"
+ msgstr "Crea icona desktop"
+ #: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+ msgid "Quit"
+ msgstr "Esci"
+ #: git-gui.sh:1867
+ msgid "Undo"
+ msgstr "Annulla"
+ #: git-gui.sh:1870
+ msgid "Redo"
+ msgstr "Ripeti"
+ #: git-gui.sh:1874 git-gui.sh:2366
+ msgid "Cut"
+ msgstr "Taglia"
+ #: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "Copia"
+ #: git-gui.sh:1880 git-gui.sh:2372
+ msgid "Paste"
+ msgstr "Incolla"
+ #: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "Elimina"
+ #: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "Seleziona tutto"
+ #: git-gui.sh:1896
+ msgid "Create..."
+ msgstr "Crea..."
+ #: git-gui.sh:1902
+ msgid "Checkout..."
+ msgstr "Attiva..."
+ #: git-gui.sh:1908
+ msgid "Rename..."
+ msgstr "Rinomina"
+ #: git-gui.sh:1913 git-gui.sh:2012
+ msgid "Delete..."
+ msgstr "Elimina..."
+ #: git-gui.sh:1918
+ msgid "Reset..."
+ msgstr "Ripristina..."
+ #: git-gui.sh:1930 git-gui.sh:2313
+ msgid "New Commit"
+ msgstr "Nuova revisione"
+ #: git-gui.sh:1938 git-gui.sh:2320
+ msgid "Amend Last Commit"
+ msgstr "Correggi l'ultima revisione"
+ #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "Analizza nuovamente"
+ #: git-gui.sh:1953
+ msgid "Stage To Commit"
+ msgstr "Prepara per una nuova revisione"
+ #: git-gui.sh:1958
+ msgid "Stage Changed Files To Commit"
+ msgstr "Prepara i file modificati per una nuova revisione"
+ #: git-gui.sh:1964
+ msgid "Unstage From Commit"
+ msgstr "Annulla preparazione"
+ #: git-gui.sh:1969 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr "Annulla modifiche"
+ #: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+ msgid "Sign Off"
+ msgstr "Sign Off"
+ #: git-gui.sh:1980 git-gui.sh:2296
+ msgid "Commit@@verb"
+ msgstr "Nuova revisione"
+ #: git-gui.sh:1991
+ msgid "Local Merge..."
+ msgstr "Fusione locale..."
+ #: git-gui.sh:1996
+ msgid "Abort Merge..."
+ msgstr "Interrompi fusione..."
+ #: git-gui.sh:2008
+ msgid "Push..."
+ msgstr "Propaga..."
+ #: git-gui.sh:2019 lib/choose_repository.tcl:41
+ msgid "Apple"
+ msgstr "Apple"
+ #: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
+ #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+ #, tcl-format
+ msgid "About %s"
+ msgstr "Informazioni su %s"
+ #: git-gui.sh:2026
+ msgid "Preferences..."
+ msgstr "Preferenze..."
+ #: git-gui.sh:2034 git-gui.sh:2558
+ msgid "Options..."
+ msgstr "Opzioni..."
+ #: git-gui.sh:2040 lib/choose_repository.tcl:47
+ msgid "Help"
+ msgstr "Aiuto"
+ #: git-gui.sh:2081
+ msgid "Online Documentation"
+ msgstr "Documentazione sul web"
+ #: git-gui.sh:2165
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr ""
+ "errore grave: impossibile effettuare lo stat del path %s: file o directory "
+ "non trovata"
+ #: git-gui.sh:2198
+ msgid "Current Branch:"
+ msgstr "Ramo attuale:"
+ #: git-gui.sh:2219
+ msgid "Staged Changes (Will Commit)"
+ msgstr "Modifiche preparate (saranno nella nuova revisione)"
+ #: git-gui.sh:2239
+ msgid "Unstaged Changes"
+ msgstr "Modifiche non preparate"
+ #: git-gui.sh:2286
+ msgid "Stage Changed"
+ msgstr "Prepara modificati"
+ #: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "Propaga (Push)"
+ #: git-gui.sh:2332
+ msgid "Initial Commit Message:"
+ msgstr "Messaggio di revisione iniziale:"
+ #: git-gui.sh:2333
+ msgid "Amended Commit Message:"
+ msgstr "Messaggio di revisione corretto:"
+ #: git-gui.sh:2334
+ msgid "Amended Initial Commit Message:"
+ msgstr "Messaggio iniziale di revisione corretto:"
+ #: git-gui.sh:2335
+ msgid "Amended Merge Commit Message:"
+ msgstr "Messaggio di fusione corretto:"
+ #: git-gui.sh:2336
+ msgid "Merge Commit Message:"
+ msgstr "Messaggio di fusione:"
+ #: git-gui.sh:2337
+ msgid "Commit Message:"
+ msgstr "Messaggio di revisione:"
+ #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "Copia tutto"
+ #: git-gui.sh:2406 lib/blame.tcl:104
+ msgid "File:"
+ msgstr "File:"
+ #: git-gui.sh:2508
+ msgid "Refresh"
+ msgstr "Rinfresca"
+ #: git-gui.sh:2529
+ msgid "Apply/Reverse Hunk"
+ msgstr "Applica/Inverti sezione"
+ #: git-gui.sh:2535
+ msgid "Decrease Font Size"
+ msgstr "Diminuisci dimensione caratteri"
+ #: git-gui.sh:2539
+ msgid "Increase Font Size"
+ msgstr "Aumenta dimensione caratteri"
+ #: git-gui.sh:2544
+ msgid "Show Less Context"
+ msgstr "Mostra meno contesto"
+ #: git-gui.sh:2551
+ msgid "Show More Context"
+ msgstr "Mostra più contesto"
+ #: git-gui.sh:2565
+ msgid "Unstage Hunk From Commit"
+ msgstr "Sezione non preparata per una nuova revisione"
+ #: git-gui.sh:2567
+ msgid "Stage Hunk For Commit"
+ msgstr "Prepara sezione per una nuova revisione"
+ #: git-gui.sh:2586
+ msgid "Initializing..."
+ msgstr "Inizializzazione..."
+ #: git-gui.sh:2677
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ "Possibili problemi con le variabili d'ambiente.\n"
+ "\n"
+ "Le seguenti variabili d'ambiente saranno probabilmente\n"
+ "ignorate da tutti i sottoprocessi di Git avviati\n"
+ "da %s:\n"
+ "\n"
+ #: git-gui.sh:2707
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ "\n"
+ "Ciò è dovuto a un problema conosciuto\n"
+ "causato dall'eseguibile Tcl distribuito da Cygwin."
+ #: git-gui.sh:2712
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ "\n"
+ "\n"
+ "Una buona alternativa a %s\n"
+ "consiste nell'assegnare valori alle variabili di configurazione\n"
+ "user.name e user.email nel tuo file ~/.gitconfig personale.\n"
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr "git-gui - un'interfaccia grafica per Git."
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr "Mostra file"
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr "Revisione:"
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr "Copia revisione"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr "Lettura di %s..."
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr "Caricamento annotazioni per copie/spostamenti..."
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr "linee annotate"
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr "Caricamento annotazioni per posizione originaria..."
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr "Annotazione completata."
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr "Caricamento annotazioni..."
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr "Autore:"
+ #: lib/blame.tcl:791
+ msgid "Committer:"
+ msgstr "Revisione creata da:"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr "File originario:"
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr "In origine da:"
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr "Nel file:"
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr "Copiato o spostato qui da:"
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr "Attiva ramo"
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr "Attiva"
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr "Annulla"
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr "Revisione"
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr "Opzioni"
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr "Recupera duplicato locale di ramo remoto"
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr "Stacca da ramo locale"
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr "Crea ramo"
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr "Crea nuovo ramo"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+ msgid "Create"
+ msgstr "Crea"
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr "Nome del ramo"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr "Nome:"
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr "Appaia nome del duplicato locale di ramo remoto"
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr "Revisione iniziale"
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr "Aggiorna ramo esistente:"
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr "No"
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr "Solo fast forward"
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr "Ripristina"
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr "Attiva dopo la creazione"
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr "Scegliere un duplicato locale di ramo remoto"
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr ""
+ "Il duplicato locale del ramo remoto %s non è un ramo nell'archivio remoto."
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr "Inserire un nome per il ramo."
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr "'%s' non è utilizzabile come nome di ramo."
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr "Elimina ramo"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr "Elimina ramo locale"
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr "Rami locali"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr "Cancella solo se fuso con un altro ramo"
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr "Sempre (Non effettuare verifiche di fusione)."
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr "I rami seguenti non sono stati fusi completamente in %s:"
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ "Ricomporre rami cancellati può essere complicato. \n"
+ "\n"
+ " Eliminare i rami selezionati?"
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ "Cancellazione rami fallita:\n"
+ "%s"
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr "Rinomina ramo"
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr "Rinomina"
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr "Ramo:"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr "Nuovo Nome:"
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr "Scegliere un ramo da rinominare."
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr "Il ramo '%s' esiste già."
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr "Impossibile rinominare '%s'."
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr "Avvio in corso..."
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr "File browser"
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr "Caricamento %s..."
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr "[Directory superiore]"
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr "Esplora i file del ramo"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:215
+ #: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
+ #: lib/choose_repository.tcl:811
+ msgid "Browse"
+ msgstr "Sfoglia"
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr "Recupero %s da %s"
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr "errore grave: impossibile risolvere %s"
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr "Chiudi"
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr "Il ramo '%s' non esiste."
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ "Il ramo '%s' esiste già.\n"
+ "\n"
+ "Non può effettuare un 'fast-forward' a %s.\n"
+ "E' necessaria una fusione."
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr "La strategia di fusione '%s' non è supportata."
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr "Aggiornamento di '%s' fallito."
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr "L'area di preparazione per una nuova revisione (indice) è già bloccata."
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n"
+ "\n"
+ "Un altro programma Git ha modificato questo archivio dall'ultima analisi. "
+ "Bisogna effettuare una nuova analisi prima di poter cambiare il ramo "
+ "corrente.\n"
+ "\n"
+ "La nuova analisi comincerà ora.\n"
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr "Aggiornamento della directory di lavoro a '%s' in corso..."
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr "Attivazione di '%s' fallita (richiesta una fusione a livello file)."
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr "E' richiesta una fusione a livello file."
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr "Si rimarrà sul ramo '%s'."
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ "Non si è più su un ramo locale\n"
+ "\n"
+ "Se si vuole rimanere su un ramo, crearne uno ora a partire da 'Questa "
+ "revisione attiva staccata'."
+ #: lib/checkout_op.tcl:446
+ #, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "Attivazione di '%s' completata."
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr ""
+ "Ripristinare '%s' a '%s' comporterà la perdita delle seguenti revisioni:"
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr "Ricomporre le revisioni perdute potrebbe non essere semplice."
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr "Ripristinare '%s'?"
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr "Visualizza"
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ "Preparazione ramo corrente fallita.\n"
+ "\n"
+ "Questa directory di lavoro è stata convertita solo parzialmente. I file sono "
+ "stati aggiornati correttamente, ma l'aggiornamento di un file di Git ha "
+ "prodotto degli errori.\n"
+ "\n"
+ "Questo non sarebbe dovuto succedere.  %s ora terminerà senza altre azioni."
+ #: lib/choose_font.tcl:39
+ msgid "Select"
+ msgstr "Seleziona"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr "Famiglia di caratteri"
+ #: lib/choose_font.tcl:73
+ msgid "Font Size"
+ msgstr "Dimensione caratteri"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr "Esempio caratteri"
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ "Questo è un testo d'esempio.\n"
+ "Se ti piace questo testo, può essere il carattere giusto."
+ #: lib/choose_repository.tcl:25
+ msgid "Git Gui"
+ msgstr "Git Gui"
+ #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+ msgid "Create New Repository"
+ msgstr "Crea nuovo archivio"
+ #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+ msgid "Clone Existing Repository"
+ msgstr "Clona archivio esistente"
+ #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+ msgid "Open Existing Repository"
+ msgstr "Apri archivio esistente"
+ #: lib/choose_repository.tcl:91
+ msgid "Next >"
+ msgstr "Successivo >"
+ #: lib/choose_repository.tcl:152
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr "La posizione %s esiste già."
+ #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
+ #: lib/choose_repository.tcl:172
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr "Impossibile creare l'archivio %s:"
+ #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+ msgid "Directory:"
+ msgstr "Directory:"
+ #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
+ #: lib/choose_repository.tcl:834
+ msgid "Git Repository"
+ msgstr "Archivio Git"
+ #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr "La directory %s esiste già."
+ #: lib/choose_repository.tcl:265
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr "Il file %s esiste già."
+ #: lib/choose_repository.tcl:286
+ msgid "Clone"
+ msgstr "Clona"
+ #: lib/choose_repository.tcl:299
+ msgid "URL:"
+ msgstr "URL:"
+ #: lib/choose_repository.tcl:319
+ msgid "Clone Type:"
+ msgstr "Tipo di clone:"
+ #: lib/choose_repository.tcl:325
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr "Standard (veloce, semi-ridondante, con hardlink)"
+ #: lib/choose_repository.tcl:331
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr "Copia completa (più lento, backup ridondante)"
+ #: lib/choose_repository.tcl:337
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr "Shared (il più veloce, non raccomandato, nessun backup)"
+ #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
+ #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
+ #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr "%s non è un archivio Git."
+ #: lib/choose_repository.tcl:405
+ msgid "Standard only available for local repository."
+ msgstr "Standard è disponibile solo per archivi locali."
+ #: lib/choose_repository.tcl:409
+ msgid "Shared only available for local repository."
+ msgstr "Shared è disponibile solo per archivi locali."
+ #: lib/choose_repository.tcl:439
+ msgid "Failed to configure origin"
+ msgstr "Impossibile configurare origin"
+ #: lib/choose_repository.tcl:451
+ msgid "Counting objects"
+ msgstr "Calcolo oggetti"
+ #: lib/choose_repository.tcl:452
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:476
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr "Impossibile copiare oggetti/info/alternate: %s"
+ #: lib/choose_repository.tcl:512
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr "Niente da clonare da %s."
+ #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
+ #: lib/choose_repository.tcl:740
+ msgid "The 'master' branch has not been initialized."
+ msgstr "Il ramo 'master' non è stato inizializzato."
+ #: lib/choose_repository.tcl:527
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia."
+ #: lib/choose_repository.tcl:539
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr "Clonazione da %s"
+ #: lib/choose_repository.tcl:570
+ msgid "Copying objects"
+ msgstr "Copia degli oggetti"
+ #: lib/choose_repository.tcl:571
+ msgid "KiB"
+ msgstr "KiB"
+ #: lib/choose_repository.tcl:595
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr "Impossibile copiare oggetto: %s"
+ #: lib/choose_repository.tcl:605
+ msgid "Linking objects"
+ msgstr "Collegamento oggetti"
+ #: lib/choose_repository.tcl:606
+ msgid "objects"
+ msgstr "oggetti"
+ #: lib/choose_repository.tcl:614
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr "Hardlink impossibile sull'oggetto: %s"
+ #: lib/choose_repository.tcl:669
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ "Impossibile recuperare rami e oggetti. Controllare i dettagli forniti dalla "
+ "console."
+ #: lib/choose_repository.tcl:680
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr ""
+ "Impossibile recuperare le etichette. Controllare i dettagli forniti dalla "
+ "console."
+ #: lib/choose_repository.tcl:704
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr ""
+ "Impossibile determinare HEAD. Controllare i dettagli forniti dalla console."
+ #: lib/choose_repository.tcl:713
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr "Impossibile ripulire %s"
+ #: lib/choose_repository.tcl:719
+ msgid "Clone failed."
+ msgstr "Clonazione fallita."
+ #: lib/choose_repository.tcl:726
+ msgid "No default branch obtained."
+ msgstr "Non è stato trovato un ramo predefinito."
+ #: lib/choose_repository.tcl:737
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr "Impossibile risolvere %s come una revisione."
+ #: lib/choose_repository.tcl:749
+ msgid "Creating working directory"
+ msgstr "Creazione directory di lavoro"
+ #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr "file"
+ #: lib/choose_repository.tcl:779
+ msgid "Initial file checkout failed."
+ msgstr "Attivazione iniziale impossibile."
+ #: lib/choose_repository.tcl:795
+ msgid "Open"
+ msgstr "Apri"
+ #: lib/choose_repository.tcl:805
+ msgid "Repository:"
+ msgstr "Archivio:"
+ #: lib/choose_repository.tcl:854
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr "Impossibile accedere all'archivio %s:"
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr "Questa revisione attiva staccata"
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr "Espressione di revisione:"
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr "Ramo locale"
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr "Duplicato locale di ramo remoto"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr "Etichetta"
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr "Revisione non valida: %s"
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr "Nessuna revisione selezionata."
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr "L'espressione di revisione è vuota."
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr "Aggiornato"
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr "URL"
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ "Non c'è niente da correggere.\n"
+ "\n"
+ "Stai per creare la revisione iniziale. Non esiste una revisione "
+ "precedente da correggere.\n"
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ "Non è possibile effettuare una correzione durante una fusione.\n"
+ "\n"
+ "In questo momento si sta effettuando una fusione che non è stata del tutto "
+ "completata. Non puoi correggere la revisione precedente a meno che prima tu "
+ "non interrompa l'operazione di fusione in corso.\n"
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr "Errore durante il caricamento dei dati della revisione da correggere:"
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr "Impossibile ottenere la tua identità:"
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr "GIT_COMMITTER_IDENT non valida:"
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n"
+ "\n"
+ "Un altro programma Git ha modificato questo archivio dall'ultima analisi. "
+ "Bisogna effettuare una nuova analisi prima di poter creare una nuova "
+ "revisione.\n"
+ "\n"
+ "La nuova analisi comincerà ora.\n"
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ "Non è possibile creare una revisione con file non sottoposti a fusione.\n"
+ "\n"
+ "Il file %s presenta dei conflitti. Devi risolverli e preparare il file per "
+ "creare una nuova revisione prima di effettuare questa azione.\n"
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ "Stato di file %s sconosciuto.\n"
+ "\n"
+ "Questo programma non può creare una revisione contenente il file %s.\n"
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ "Nessuna modifica per la nuova revisione.\n"
+ "\n"
+ "Devi preparare per una nuova revisione almeno 1 file prima di effettuare questa "
+ "operazione.\n"
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ "Bisogna fornire un messaggio di revisione.\n"
+ "\n"
+ "Un buon messaggio di revisione ha il seguente formato:\n"
+ "\n"
+ "- Prima linea: descrivi in una frase ciò che hai fatto.\n"
+ "- Seconda linea: vuota.\n"
+ "- Terza linea: spiega a cosa serve la tua modifica.\n"
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr "write-tree fallito:"
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr "La revisione %s sembra essere corrotta"
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ "Nessuna modifica per la nuova revisione.\n"
+ "\n"
+ "Questa revisione non modifica alcun file e non effettua alcuna fusione.\n"
+ "\n"
+ "Si procederà subito ad una nuova analisi.\n"
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr "Nessuna modifica per la nuova revisione."
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr "attenzione: Tcl non supporta la codifica '%s'."
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr "commit-tree fallito:"
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr "update-ref fallito:"
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr "Creata revisione %s: %s"
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr "Elaborazione in corso... attendere..."
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr "Successo"
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr "Errore: comando fallito"
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr "Numero di oggetti slegati"
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr "Spazio su disco utilizzato da oggetti slegati"
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr "Numero di oggetti impacchettati"
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr "Numero di pacchetti"
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr "Spazio su disco utilizzato da oggetti impacchettati"
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr "Oggetti impacchettati che attendono la potatura"
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr "File inutili"
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr "Compressione dell'archivio in corso"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr "Verifica dell'archivio con fsck-objects in corso"
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ "Questo archivio attualmente ha circa %i oggetti slegati.\n"
+ "\n"
+ "Per mantenere buone prestazioni si raccomanda di comprimere l'archivio "
+ "quando sono presenti più di %i oggetti slegati.\n"
+ "\n"
+ "Comprimere l'archivio ora?"
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr "Git ha restituito una data non valida: %s"
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ "Non sono state trovate differenze.\n"
+ "\n"
+ "%s non ha modifiche.\n"
+ "\n"
+ "La data di modifica di questo file è stata cambiata da un'altra "
+ "applicazione, ma il contenuto del file è rimasto invariato.\n"
+ "\n"
+ "Si procederà automaticamente ad una nuova analisi per trovare altri file che "
+ "potrebbero avere lo stesso stato."
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr "Caricamento delle differenze di %s..."
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr "Impossibile visualizzare %s"
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr "Errore nel caricamento del file:"
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr "Archivio Git (sottoprogetto)"
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr "* File binario (il contenuto non sarà mostrato)."
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr "Errore nel caricamento delle differenze:"
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr "La sezione scelta è ancora pronta per una nuova revisione."
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr "Impossibile preparare la sezione scelta per una nuova revisione."
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr "errore"
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr "attenzione"
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr "Bisogna correggere gli errori suddetti prima di creare una nuova revisione."
+ #: lib/index.tcl:241
+ #, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "%s non farà parte della prossima revisione"
+ #: lib/index.tcl:285
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr "Aggiunta di %s in corso"
+ #: lib/index.tcl:340
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "Annullare le modifiche nel file %s?"
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr "Annullare le modifiche in questi %i file?"
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ "Tutte le modifiche non preparate per una nuova revisione saranno perse per "
+ "sempre."
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr "Non fare niente"
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ "Non posso effettuare fusioni durante una correzione.\n"
+ "\n"
+ "Bisogna finire di correggere questa revisione prima di iniziare una "
+ "qualunque fusione.\n"
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n"
+ "\n"
+ "Un altro programma Git ha modificato questo archivio dall'ultima analisi."
+ "Bisogna effettuare una nuova analisi prima di poter effettuare una fusione.\n"
+ "\n"
+ "La nuova analisi comincerà ora.\n"
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ "Sei nel mezzo di una fusione con conflitti.\n"
+ "\n"
+ "Il file %s ha dei conflitti.\n"
+ "\n"
+ "Bisogna risolvere i conflitti, preparare il file per una nuova revisione ed "
+ "infine crearla per completare la fusione corrente. Solo a questo punto "
+ "potrai iniziare un'altra fusione.\n"
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ "Sei nel mezzo di una modifica.\n"
+ "\n"
+ "Il file %s è stato modificato.\n"
+ "\n"
+ "Bisogna completare la creazione della revisione corrente prima di iniziare una fusione. "
+ "In questo modo sarà più facile interrompere una fusione non riuscita, nel "
+ "caso ce ne fosse bisogno.\n"
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr "%s di %s"
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr "Fusione di %s e %s in corso"
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr "Fusione completata con successo."
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr "Fusione fallita. Bisogna risolvere i conflitti."
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr "Fusione in %s"
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr "Revisione da fondere"
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ "Interruzione impossibile durante una correzione.\n"
+ "\n"
+ "Bisogna finire di correggere questa revisione.\n"
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ "Interrompere fusione?\n"
+ "\n"
+ "L'interruzione della fusione corrente causerà la perdita di *TUTTE* le "
+ "modifiche non ancora presenti nell'archivio.\n"
+ "\n"
+ "Continuare con l'interruzione della fusione corrente?"
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ "Ripristinare la revisione corrente e annullare le modifiche?\n"
+ "\n"
+ "L'annullamento delle modifiche causerà la perdita di *TUTTE* le modifiche "
+ "non ancora presenti nell'archivio.\n"
+ "\n"
+ "Continuare con l'annullamento delle modifiche correnti?"
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr "Interruzione in corso"
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr "Interruzione fallita."
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr "Interruzione completata. Pronto."
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr "Ripristina predefiniti"
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr "Salva"
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr "Archivio di %s"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr "Tutti gli archivi"
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr "Nome utente"
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr "Indirizzo Email"
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr "Riepilogo nelle revisioni di fusione"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr "Prolissità della fusione"
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr "Mostra statistiche delle differenze dopo la fusione"
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr "Fidati delle date di modifica dei file"
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr ""
+ "Effettua potatura dei duplicati locali di rami remoti durante il recupero"
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr "Appaia duplicati locali di rami remoti"
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr "Numero di linee di contesto nelle differenze"
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr "Modello per il nome di un nuovo ramo"
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr "Cambia caratteri"
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr "Scegli %s"
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr "pt."
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr "Preferenze"
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr "Impossibile salvare completamente le opzioni:"
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr "Effettua potatura da"
+ #: lib/remote.tcl:170
+ msgid "Fetch from"
+ msgstr "Recupera da"
+ #: lib/remote.tcl:213
+ msgid "Push to"
+ msgstr "Propaga verso"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr "Cancella ramo remoto"
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr "Da archivio"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr "Remoto:"
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr "URL specifico:"
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr "Rami"
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr "Elimina solo se"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr "Fuso in:"
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr "Sempre (non verificare le fusioni)"
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr "Si richiede un ramo per 'Fuso in'."
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ "I rami seguenti non sono stati fusi completamente in %s:\n"
+ "\n"
+ " - %s"
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ "Una o più verifiche di fusione sono fallite perché mancano le revisioni "
+ "necessarie. Prova prima a recuperarle da %s."
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr "Scegliere uno o più rami da cancellare."
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ "Ricomporre rami cancellati è difficile.\n"
+ "\n"
+ "Cancellare i rami selezionati?"
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr "Cancellazione rami da %s"
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr "Nessun archivio selezionato."
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr "Analisi in corso %s..."
+ #: lib/shortcut.tcl:26 lib/shortcut.tcl:74
+ msgid "Cannot write script:"
+ msgstr "Impossibile scrivere script:"
+ #: lib/shortcut.tcl:149
+ msgid "Cannot write icon:"
+ msgstr "Impossibile scrivere icona:"
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr "%s ... %*i di %*i %s (%3i%%)"
+ #: lib/transport.tcl:6
+ #, tcl-format
+ msgid "fetch %s"
+ msgstr "recupera da %s"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr "Recupero nuove modifiche da %s"
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr "potatura remota di %s"
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr "Effettua potatura dei duplicati locali di rami remoti cancellati da %s"
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr "propaga verso %s"
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr "Propagazione modifiche a %s"
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr "Propagazione %s %s a %s"
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr "Propaga rami"
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr "Rami di origine"
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr "Archivio di destinazione"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr "Opzioni di trasferimento"
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr "Sovrascrivi ramo esistente (alcune modifiche potrebbero essere perse)"
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr "Utilizza 'thin pack' (per connessioni lente)"
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr "Includi etichette"
diff --combined git-gui/po/ja.po
index 0000000000000000000000000000000000000000,f3a547b1b95ca054a0319e05ab2a7af0d94a4da2..f3a547b1b95ca054a0319e05ab2a7af0d94a4da2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1843 +1,1843 @@@
+ # Translation of git-gui to Japanese
+ # Copyright (C) 2007 Shawn Pearce
+ # This file is distributed under the same license as the git-gui package.
+ # しらいし ななこ <nanako3@bluebottle.com>, 2007.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-10 04:04-0400\n"
+ "PO-Revision-Date: 2007-10-31 16:23+0900\n"
+ "Last-Translator: しらいし ななこ <nanako3@bluebottle.com>\n"
+ "Language-Team: Japanese\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+ #: git-gui.sh:763
+ msgid "git-gui: fatal error"
+ msgstr "git-gui: 致命的なエラー"
+ #: git-gui.sh:595
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr "%s に無効なフォントが指定されています:"
+ #: git-gui.sh:620
+ msgid "Main Font"
+ msgstr "主フォント"
+ #: git-gui.sh:621
+ msgid "Diff/Console Font"
+ msgstr "diff/コンソール・フォント"
+ #: git-gui.sh:635
+ msgid "Cannot find git in PATH."
+ msgstr "PATH 中に git が見つかりません"
+ #: git-gui.sh:662
+ msgid "Cannot parse Git version string:"
+ msgstr "Git バージョン名が理解できません:"
+ #: git-gui.sh:680
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ "Git のバージョンが確認できません。\n"
+ "\n"
+ "%s はバージョン '%s' とのことです。\n"
+ "\n"
+ "%s は最低でも 1.5.0 かそれ以降の Git が必要です\n"
+ "\n"
+ "'%s' はバージョン 1.5.0 と思って良いですか?\n"
+ #: git-gui.sh:853
+ msgid "Git directory not found:"
+ msgstr "Git ディレクトリが見つかりません:"
+ #: git-gui.sh:860
+ msgid "Cannot move to top of working directory:"
+ msgstr "作業ディレクトリの最上位に移動できません"
+ #: git-gui.sh:867
+ msgid "Cannot use funny .git directory:"
+ msgstr "変な .git ディレクトリは使えません"
+ #: git-gui.sh:872
+ msgid "No working directory"
+ msgstr "作業ディレクトリがありません"
+ #: git-gui.sh:1019
+ msgid "Refreshing file status..."
+ msgstr "ファイル状態を更新しています…"
+ #: git-gui.sh:1084
+ msgid "Scanning for modified files ..."
+ msgstr "変更されたファイルをスキャンしています…"
+ #: git-gui.sh:1259 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr "準備完了"
+ #: git-gui.sh:1525
+ msgid "Unmodified"
+ msgstr "変更無し"
+ #: git-gui.sh:1527
+ msgid "Modified, not staged"
+ msgstr "変更あり、コミット未予定"
+ #: git-gui.sh:1528 git-gui.sh:1533
+ msgid "Staged for commit"
+ msgstr "コミット予定済"
+ #: git-gui.sh:1529 git-gui.sh:1534
+ msgid "Portions staged for commit"
+ msgstr "部分的にコミット予定済"
+ #: git-gui.sh:1530 git-gui.sh:1535
+ msgid "Staged for commit, missing"
+ msgstr "コミット予定済、ファイル無し"
+ #: git-gui.sh:1532
+ msgid "Untracked, not staged"
+ msgstr "管理外、コミット未予定"
+ #: git-gui.sh:1537
+ msgid "Missing"
+ msgstr "ファイル無し"
+ #: git-gui.sh:1538
+ msgid "Staged for removal"
+ msgstr "削除予定済"
+ #: git-gui.sh:1539
+ msgid "Staged for removal, still present"
+ msgstr "削除予定済、ファイル未削除"
+ #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+ msgid "Requires merge resolution"
+ msgstr "要マージ解決"
+ #: git-gui.sh:1579
+ msgid "Starting gitk... please wait..."
+ msgstr "gitk を起動中…お待ち下さい…"
+ #: git-gui.sh:1588
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ "gitk を起動できません:\n"
+ "\n"
+ "%s がありません"
+ #: git-gui.sh:1788 lib/choose_repository.tcl:32
+ msgid "Repository"
+ msgstr "リポジトリ"
+ #: git-gui.sh:1789
+ msgid "Edit"
+ msgstr "編集"
+ #: git-gui.sh:1791 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "ブランチ"
+ #: git-gui.sh:1794 lib/choose_rev.tcl:547
+ msgid "Commit@@noun"
+ msgstr "コミット"
+ #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "マージ"
+ #: git-gui.sh:1798 lib/choose_rev.tcl:556
+ msgid "Remote"
+ msgstr "リモート"
+ #: git-gui.sh:1807
+ msgid "Browse Current Branch's Files"
+ msgstr "現在のブランチのファイルを見る"
+ #: git-gui.sh:1811
+ msgid "Browse Branch Files..."
+ msgstr "ブランチのファイルを見る…"
+ #: git-gui.sh:1816
+ msgid "Visualize Current Branch's History"
+ msgstr "現在のブランチの履歴を見る"
+ #: git-gui.sh:1820
+ msgid "Visualize All Branch History"
+ msgstr "全てのブランチの履歴を見る"
+ #: git-gui.sh:1827
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "ブランチ %s のファイルを見る"
+ #: git-gui.sh:1829
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "ブランチ %s の履歴を見る"
+ #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "データベース統計"
+ #: git-gui.sh:1837 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "データベース圧縮"
+ #: git-gui.sh:1840
+ msgid "Verify Database"
+ msgstr "データベース検証"
+ #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
+ #: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+ msgid "Create Desktop Icon"
+ msgstr "デスクトップ・アイコンを作る"
+ #: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+ msgid "Quit"
+ msgstr "終了"
+ #: git-gui.sh:1867
+ msgid "Undo"
+ msgstr "元に戻す"
+ #: git-gui.sh:1870
+ msgid "Redo"
+ msgstr "やり直し"
+ #: git-gui.sh:1874 git-gui.sh:2366
+ msgid "Cut"
+ msgstr "切り取り"
+ #: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "コピー"
+ #: git-gui.sh:1880 git-gui.sh:2372
+ msgid "Paste"
+ msgstr "貼り付け"
+ #: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "削除"
+ #: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "全て選択"
+ #: git-gui.sh:1896
+ msgid "Create..."
+ msgstr "作成…"
+ #: git-gui.sh:1902
+ msgid "Checkout..."
+ msgstr "チェックアウト"
+ #: git-gui.sh:1908
+ msgid "Rename..."
+ msgstr "名前変更…"
+ #: git-gui.sh:1913 git-gui.sh:2012
+ msgid "Delete..."
+ msgstr "削除…"
+ #: git-gui.sh:1918
+ msgid "Reset..."
+ msgstr "リセット…"
+ #: git-gui.sh:1930 git-gui.sh:2313
+ msgid "New Commit"
+ msgstr "新規コミット"
+ #: git-gui.sh:1938 git-gui.sh:2320
+ msgid "Amend Last Commit"
+ msgstr "最新コミットを訂正"
+ #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "再スキャン"
+ #: git-gui.sh:1953
+ msgid "Stage To Commit"
+ msgstr "コミット予定する"
+ #: git-gui.sh:1958
+ msgid "Stage Changed Files To Commit"
+ msgstr "変更されたファイルをコミット予定"
+ #: git-gui.sh:1964
+ msgid "Unstage From Commit"
+ msgstr "コミットから降ろす"
+ #: git-gui.sh:1969 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr "変更を元に戻す"
+ #: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+ msgid "Sign Off"
+ msgstr "署名"
+ #: git-gui.sh:1980 git-gui.sh:2296
+ msgid "Commit@@verb"
+ msgstr "コミット"
+ #: git-gui.sh:1991
+ msgid "Local Merge..."
+ msgstr "ローカル・マージ…"
+ #: git-gui.sh:1996
+ msgid "Abort Merge..."
+ msgstr "マージ中止…"
+ #: git-gui.sh:2008
+ msgid "Push..."
+ msgstr "プッシュ…"
+ #: git-gui.sh:2019 lib/choose_repository.tcl:41
+ msgid "Apple"
+ msgstr "りんご"
+ #: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
+ #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+ #, tcl-format
+ msgid "About %s"
+ msgstr "%s について"
+ #: git-gui.sh:2026
+ msgid "Preferences..."
+ msgstr "設定…"
+ #: git-gui.sh:2034 git-gui.sh:2558
+ msgid "Options..."
+ msgstr "オプション…"
+ #: git-gui.sh:2040 lib/choose_repository.tcl:47
+ msgid "Help"
+ msgstr "ヘルプ"
+ #: git-gui.sh:2081
+ msgid "Online Documentation"
+ msgstr "オンライン・ドキュメント"
+ #: git-gui.sh:2165
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr "致命的: パス %s が stat できません。そのようなファイルやディレクトリはありません"
+ #: git-gui.sh:2198
+ msgid "Current Branch:"
+ msgstr "現在のブランチ"
+ #: git-gui.sh:2219
+ msgid "Staged Changes (Will Commit)"
+ msgstr "ステージングされた(コミット予定済の)変更"
+ #: git-gui.sh:2239
+ msgid "Unstaged Changes"
+ msgstr "コミット予定に入っていない変更"
+ #: git-gui.sh:2286
+ msgid "Stage Changed"
+ msgstr "変更をコミット予定に入れる"
+ #: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "プッシュ"
+ #: git-gui.sh:2332
+ msgid "Initial Commit Message:"
+ msgstr "最初のコミットメッセージ:"
+ #: git-gui.sh:2333
+ msgid "Amended Commit Message:"
+ msgstr "訂正したコミットメッセージ:"
+ #: git-gui.sh:2334
+ msgid "Amended Initial Commit Message:"
+ msgstr "訂正した最初のコミットメッセージ:"
+ #: git-gui.sh:2335
+ msgid "Amended Merge Commit Message:"
+ msgstr "訂正したマージコミットメッセージ:"
+ #: git-gui.sh:2336
+ msgid "Merge Commit Message:"
+ msgstr "マージコミットメッセージ:"
+ #: git-gui.sh:2337
+ msgid "Commit Message:"
+ msgstr "コミットメッセージ:"
+ #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "全てコピー"
+ #: git-gui.sh:2406 lib/blame.tcl:104
+ msgid "File:"
+ msgstr "ファイル:"
+ #: git-gui.sh:2508
+ msgid "Refresh"
+ msgstr "再読み込み"
+ #: git-gui.sh:2529
+ msgid "Apply/Reverse Hunk"
+ msgstr "パッチを適用/取り消す"
+ #: git-gui.sh:2535
+ msgid "Decrease Font Size"
+ msgstr "フォントを小さく"
+ #: git-gui.sh:2539
+ msgid "Increase Font Size"
+ msgstr "フォントを大きく"
+ #: git-gui.sh:2544
+ msgid "Show Less Context"
+ msgstr "文脈を少なく"
+ #: git-gui.sh:2551
+ msgid "Show More Context"
+ msgstr "文脈を多く"
+ #: git-gui.sh:2565
+ msgid "Unstage Hunk From Commit"
+ msgstr "パッチをコミット予定から外す"
+ #: git-gui.sh:2567
+ msgid "Stage Hunk For Commit"
+ msgstr "パッチをコミット予定に加える"
+ #: git-gui.sh:2586
+ msgid "Initializing..."
+ msgstr "初期化しています…"
+ #: git-gui.sh:2677
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ "環境に問題がある可能性があります\n"
+ "\n"
+ "以下の環境変数は %s が起動する Git サブプロセスによって無視されるでしょう:\n"
+ "\n"
+ #: git-gui.sh:2707
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ "\n"
+ "これは Cygwin で配布されている Tcl バイナリに\n"
+ "関しての既知の問題によります"
+ #: git-gui.sh:2712
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ "\n"
+ "\n"
+ "個人的な ~/.gitconfig ファイル内で user.name と user.email の値を設定\n"
+ "するのが、%s の良い代用となります\n"
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr "Git のグラフィカルUI git-gui"
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr "ファイルピューワ"
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr "コミット:"
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr "コミットをコピー"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr "%s を読んでいます…"
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr "コピー・移動追跡データを読んでいます…"
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr "行を注釈しました"
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr "元位置行の注釈データを読んでいます…"
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr "注釈完了しました"
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr "注釈を読み込んでいます…"
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr "作者:"
+ #: lib/blame.tcl:791
+ msgid "Committer:"
+ msgstr "コミット者:"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr "元ファイル"
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr "原作者:"
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr "ファイル:"
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr "複写・移動者:"
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr "ブランチをチェックアウト"
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr "チェックアウト"
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr "中止"
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr "リビジョン"
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr "オプション"
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr "トラッキング・ブランチをフェッチ"
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr "ローカル・ブランチから削除"
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr "ブランチを作成"
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr "ブランチを新規作成"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+ msgid "Create"
+ msgstr "作成"
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr "ブランチ名"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr "名前:"
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr "トラッキング・ブランチ名を合わせる"
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr "初期リビジョン"
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr "既存のブランチを更新:"
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr "いいえ"
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr "早送りのみ"
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr "リセット"
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr "作成してすぐチェックアウト"
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr "トラッキング・ブランチを選択して下さい。"
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr "トラッキング・ブランチ %s は遠隔リポジトリのブランチではありません。"
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr "ブランチ名を指定して下さい。"
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr "'%s' はブランチ名に使えません。"
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr "ブランチ削除"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr "ローカル・ブランチを削除"
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr "ローカル・ブランチ"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr "マージ済みの時のみ削除"
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr "無条件(マージテストしない)"
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr "以下のブランチは %s に完全にマージされていません:"
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ "ブランチを削除すると元に戻すのは困難です。 \n"
+ "\n"
+ " 選択したブランチを削除しますか?"
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ "以下のブランチを削除できません:\n"
+ "%s"
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr "ブランチの名前変更"
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr "名前変更"
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr "ブランチ:"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr "新しい名前:"
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr "名前を変更するブランチを選んで下さい。"
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr "'%s'というブランチは既に存在します。"
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr "'%s'の名前変更に失敗しました。"
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr "起動中…"
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr "ファイル・ブラウザ"
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr "%s をロード中…"
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr "[上位フォルダへ]"
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr "現在のブランチのファイルを見る"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:215
+ #: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
+ #: lib/choose_repository.tcl:811
+ msgid "Browse"
+ msgstr "ブラウズ"
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr "%s から %s をフェッチしています"
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr "致命的エラー: %s を解決できません"
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr "閉じる"
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr "ブランチ'%s'は存在しません。"
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ "ブランチ '%s' は既に存在します。\n"
+ "\n"
+ "%s に早送りできません。\n"
+ "マージが必要です。"
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr "'%s' マージ戦略はサポートされていません。"
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr "'%s' の更新に失敗しました。"
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr "インデックスは既にロックされています。"
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "最後にスキャンした状態はリポジトリの状態と合致しません。\n"
+ "\n"
+ "最後にスキャンして以後、別の Git プログラムがリポジトリを変更しています。現在"
+ "のブランチを変更する前に、再スキャンが必要です。\n"
+ "\n"
+ "自動的に再スキャンを開始します。\n"
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr "作業ディレクトリを '%s' に更新しています…"
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr "'%s' のチェックアウトを中止しました(ファイル毎のマージが必要です)。"
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr "ファイル毎のマージが必要です。"
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr "ブランチ '%s' に滞まります。"
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ "ローカル・ブランチから離れます。\n"
+ "\n"
+ "ブランチ上に滞まりたいときは、この「分離されたチェックアウト」から新規ブラン"
+ "チを開始してください。"
+ #: lib/checkout_op.tcl:446
+ #, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "'%s' をチェックアウトしました"
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr "'%s' を '%s' にリセットすると、以下のコミットが失なわれます:"
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr "失なわれたコミットを回復するのは簡単ではありません。"
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr "'%s' をリセットしますか?"
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr "可視化"
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ "現在のブランチを設定できません。\n"
+ "\n"
+ "作業ディレクトリは部分的にしか切り替わっていません。ファイルの更新には成功し"
+ "ましたが、 Git の内部データを更新できませんでした。\n"
+ "起こるはずのないエラーです。あきらめて %s を終了します。"
+ #: lib/choose_font.tcl:39
+ msgid "Select"
+ msgstr "選択"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr "フォント・ファミリー"
+ #: lib/choose_font.tcl:73
+ msgid "Font Size"
+ msgstr "フォントの大きさ"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr "フォント・サンプル"
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ "これはサンプル文です。\n"
+ "このフォントが気に入ればお使いになれます。"
+ #: lib/choose_repository.tcl:25
+ msgid "Git Gui"
+ msgstr "Git GUI"
+ #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+ msgid "Create New Repository"
+ msgstr "新しいリポジトリを作る"
+ #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+ msgid "Clone Existing Repository"
+ msgstr "既存リポジトリを複製する"
+ #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+ msgid "Open Existing Repository"
+ msgstr "既存リポジトリを開く"
+ #: lib/choose_repository.tcl:91
+ msgid "Next >"
+ msgstr "次 >"
+ #: lib/choose_repository.tcl:152
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr "'%s' は既に存在します。"
+ #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
+ #: lib/choose_repository.tcl:172
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr "リポジトリ %s を作製できません:"
+ #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+ msgid "Directory:"
+ msgstr "ディレクトリ:"
+ #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
+ #: lib/choose_repository.tcl:834
+ msgid "Git Repository"
+ msgstr "GIT リポジトリ"
+ #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr "ディレクトリ '%s' は既に存在します。"
+ #: lib/choose_repository.tcl:265
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr "ファイル '%s' は既に存在します。"
+ #: lib/choose_repository.tcl:286
+ msgid "Clone"
+ msgstr "複製"
+ #: lib/choose_repository.tcl:299
+ msgid "URL:"
+ msgstr "URL:"
+ #: lib/choose_repository.tcl:319
+ msgid "Clone Type:"
+ msgstr "複製方式:"
+ #: lib/choose_repository.tcl:325
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr "標準(高速・中冗長度・ハードリンク)"
+ #: lib/choose_repository.tcl:331
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr "全複写(低速・冗長バックアップ)"
+ #: lib/choose_repository.tcl:337
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr "共有(最高速・非推奨・バックアップ無し)"
+ #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
+ #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
+ #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr "Git リポジトリではありません: %s"
+ #: lib/choose_repository.tcl:405
+ msgid "Standard only available for local repository."
+ msgstr "標準方式は同一計算機上のリポジトリにのみ使えます。"
+ #: lib/choose_repository.tcl:409
+ msgid "Shared only available for local repository."
+ msgstr "共有方式は同一計算機上のリポジトリにのみ使えます。"
+ #: lib/choose_repository.tcl:439
+ msgid "Failed to configure origin"
+ msgstr "origin を設定できませんでした"
+ #: lib/choose_repository.tcl:451
+ msgid "Counting objects"
+ msgstr "オブジェクトを数えています"
+ #: lib/choose_repository.tcl:452
+ msgid "buckets"
+ msgstr "バケツ"
+ #: lib/choose_repository.tcl:476
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr "objects/info/alternates を複写できません: %s"
+ #: lib/choose_repository.tcl:512
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr "%s から複製する内容はありません"
+ #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
+ #: lib/choose_repository.tcl:740
+ msgid "The 'master' branch has not been initialized."
+ msgstr "'master' ブランチが初期化されていません"
+ #: lib/choose_repository.tcl:527
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr "ハードリンクが作れないので、コピーします"
+ #: lib/choose_repository.tcl:539
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr "%s から複製しています"
+ #: lib/choose_repository.tcl:570
+ msgid "Copying objects"
+ msgstr "オブジェクトを複写しています"
+ #: lib/choose_repository.tcl:571
+ msgid "KiB"
+ msgstr "KiB"
+ #: lib/choose_repository.tcl:595
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr "オブジェクトを複写できません: %s"
+ #: lib/choose_repository.tcl:605
+ msgid "Linking objects"
+ msgstr "オブジェクトを連結しています"
+ #: lib/choose_repository.tcl:606
+ msgid "objects"
+ msgstr "オブジェクト"
+ #: lib/choose_repository.tcl:614
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr "オブジェクトをハードリンクできません: %s"
+ #: lib/choose_repository.tcl:669
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr "ブランチやオブジェクトを取得できません。コンソール出力を見て下さい"
+ #: lib/choose_repository.tcl:680
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr "タグを取得できません。コンソール出力を見て下さい"
+ #: lib/choose_repository.tcl:704
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr "HEAD を確定できません。コンソール出力を見て下さい"
+ #: lib/choose_repository.tcl:713
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr "%s を掃除できません"
+ #: lib/choose_repository.tcl:719
+ msgid "Clone failed."
+ msgstr "複写に失敗しました。"
+ #: lib/choose_repository.tcl:726
+ msgid "No default branch obtained."
+ msgstr "デフォールト・ブランチが取得されませんでした"
+ #: lib/choose_repository.tcl:737
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr "%s をコミットとして解釈できません"
+ #: lib/choose_repository.tcl:749
+ msgid "Creating working directory"
+ msgstr "作業ディレクトリを作成しています"
+ #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr "ファイル"
+ #: lib/choose_repository.tcl:779
+ msgid "Initial file checkout failed."
+ msgstr "初期チェックアウトに失敗しました"
+ #: lib/choose_repository.tcl:795
+ msgid "Open"
+ msgstr "開く"
+ #: lib/choose_repository.tcl:805
+ msgid "Repository:"
+ msgstr "リポジトリ:"
+ #: lib/choose_repository.tcl:854
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr "リポジトリ %s を開けません:"
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr "分離されたチェックアウト"
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr "リビジョン式:"
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr "ローカル・ブランチ"
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr "トラッキング・ブランチ"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr "タグ"
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr "無効なリビジョン: %s"
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr "リビジョンが未選択です。"
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr "リビジョン式が空です。"
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr "更新しました"
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr "URL"
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ "訂正するコミットがそもそもありません。\n"
+ "\n"
+ "これから作るのは最初のコミットです。その前にはまだ訂正するようなコミットはあ"
+ "りません。\n"
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ "マージ中にコミットの訂正はできません。\n"
+ "\n"
+ "現在はまだマージの途中です。先にこのマージを中止しないと、前のコミットの訂正"
+ "はできません\n"
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr "訂正するコミットのデータを読めません:"
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr "ユーザの正体を確認できません:"
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr "GIT_COMMITTER_IDENT が無効です:"
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "最後にスキャンした状態はリポジトリの状態と合致しません。\n"
+ "\n"
+ "最後にスキャンして以後、別の Git プログラムがリポジトリを変更しています。新し"
+ "くコミットする前に、再スキャンが必要です。\n"
+ "\n"
+ "自動的に再スキャンを開始します。\n"
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ "マージしていないファイルはコミットできません。\n"
+ "\n"
+ "ファイル %s にはマージ衝突が残っています。まず解決してコミット予定に加える必"
+ "要があります。\n"
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ "不明なファイル状態 %s です。\n"
+ "\n"
+ "ファイル %s は本プログラムではコミットできません。\n"
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ "コミットする変更がありません。\n"
+ "\n"
+ "最低一つの変更をコミット予定に加えてからコミットして下さい。\n"
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ "コミット・メッセージを入力して下さい。\n"
+ "\n"
+ "正しいコミット・メッセージは:\n"
+ "\n"
+ "- 第1行: 何をしたか、を1行で要約。\n"
+ "- 第2行: 空白\n"
+ "- 残りの行: なぜ、この変更が良い変更か、の説明。\n"
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr "write-tree が失敗しました:"
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr "コミット %s は壊れています"
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ "コミットする変更がありません。\n"
+ "\n"
+ "マージでなく、また、一つも変更点がありません。\n"
+ "\n"
+ "自動的に再スキャンを開始します。\n"
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr "コミットする変更がありません。"
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr "警告: Tcl はエンコーディング '%s' をサポートしていません"
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr "commit-tree が失敗しました:"
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr "update-ref が失敗しました:"
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr "コミット %s を作成しました: %s"
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr "実行中…お待ち下さい…"
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr "成功"
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr "エラー: コマンドが失敗しました"
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr "ばらばらなオブジェクトの数"
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr "ばらばらなオブジェクトの使用するディスク量"
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr "パックされたオブジェクトの数"
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr "パックの数"
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr "パックされたオブジェクトの使用するディスク量"
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr "パックに存在するので捨てて良いオブジェクトの数"
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr "ゴミファイル"
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr "データベース圧縮"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr "fsck-objects でオブジェクト・データベースを検証しています"
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ "このリポジトリにはおおよそ %i 個の個別オブジェクトがあります\n"
+ "\n"
+ "最適な性能を保つために、%i 個以上の個別オブジェクトを作る毎にデータベースを圧縮することを推奨します\n"
+ "\n"
+ "データベースを圧縮しますか?"
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr "Git から出た無効な日付: %s"
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ "変更がありません。\n"
+ "\n"
+ "%s には変更がありません。\n"
+ "\n"
+ "このファイルの変更時刻は他のアプリケーションによって更新されていますがファイ"
+ "ル内容には変更がありません。\n"
+ "\n"
+ "同様な状態のファイルを探すために、自動的に再スキャンを開始します。"
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr "%s の変更点をロード中…"
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr "%s を表示できません"
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr "ファイルを読む際のエラーです:"
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr "Git リポジトリ(サブプロジェクト)"
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr "* バイナリファイル(内容は表示しません)"
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr "diff を読む際のエラーです:"
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr "選択されたパッチをコミット予定から外せません。"
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr "選択されたパッチをコミット予定に加えられません。"
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr "エラー"
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr "警告"
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr "コミットする前に、以上のエラーを修正して下さい"
+ #: lib/index.tcl:241
+ #, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "コミットから '%s' を降ろす"
+ #: lib/index.tcl:285
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr "コミットに %s を加えています"
+ #: lib/index.tcl:340
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "ファイル %s にした変更を元に戻しますか?"
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr "これら %i 個のファイルにした変更を元に戻しますか?"
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr "変更を元に戻すとコミット予定していない変更は全て失われます。"
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr "何もしない"
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ "訂正中にはマージできません。\n"
+ "\n"
+ "訂正処理を完了するまでは新たにマージを開始できません。\n"
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "最後にスキャンした状態はリポジトリの状態と合致しません。\n"
+ "\n"
+ "最後にスキャンして以後、別の Git プログラムがリポジトリを変更しています。マー"
+ "ジを開始する前に、再スキャンが必要です。\n"
+ "\n"
+ "自動的に再スキャンを開始します。\n"
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ "衝突のあったマージの途中です。\n"
+ "\n"
+ "ファイル %s にはマージ中の衝突が残っています。\n"
+ "\n"
+ "このファイルの衝突を解決し、コミット予定に加えて、コミットすることでマージを"
+ "完了します。そうやって始めて、新たなマージを開始できるようになります。\n"
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ "変更の途中です。\n"
+ "\n"
+ "ファイル %s は変更中です。\n"
+ "\n"
+ "現在のコミットを完了してからマージを開始して下さい。そうする方がマージに失敗"
+ "したときの回復が楽です。\n"
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr "%s の %s ブランチ"
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr "%s と %s をマージします"
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr "マージが完了しました"
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr "マージが失敗しました。衝突の解決が必要です。"
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr "%s にマージ"
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr "マージするリビジョン"
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ "訂正中には中止できません。\n"
+ "\n"
+ "まず今のコミット訂正を完了させて下さい。\n"
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ "マージを中断しますか?\n"
+ "\n"
+ "現在のマージを中断すると、コミットしていない全ての変更が失われます。\n"
+ "\n"
+ "マージを中断してよろしいですか?"
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ "変更点をリセットしますか?\n"
+ "\n"
+ "変更点をリセットすると、コミットしていない全ての変更が失われます。\n"
+ "\n"
+ "リセットしてよろしいですか?"
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr "中断しています"
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr "中断に失敗しました。"
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr "中断完了。"
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr "既定値に戻す"
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr "保存"
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr "%s リポジトリ"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr "大域(全てのリポジトリ)"
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr "ユーザ名"
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr "電子メールアドレス"
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr "マージコミットの要約"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr "マージの冗長度"
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr "マージ後に diffstat を表示"
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr "ファイル変更時刻を信頼する"
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr "フェッチ中にトラッキングブランチを刈る"
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr "トラッキングブランチを合わせる"
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr "diff の文脈行数"
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr "新しいブランチ名のテンプレート"
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr "フォントを変更"
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr "%s を選択"
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr "ポイント"
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr "設定"
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr "完全にオプションを保存できません:"
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr "から刈込む…"
+ #: lib/remote.tcl:170
+ msgid "Fetch from"
+ msgstr "取得元"
+ #: lib/remote.tcl:213
+ msgid "Push to"
+ msgstr "プッシュ先"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr "リモート・ブランチを削除"
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr "元のリポジトリ"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr "リモート:"
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr "任意の URL:"
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr "ブランチ"
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr "条件付で削除"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr "マージ先:"
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr "無条件(マージ検査をしない)"
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr "'マージ先' にはブランチが必要です。"
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ "以下のブランチは %s に完全にマージされていません:\n"
+ "\n"
+ " - %s"
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ "必要なコミットが不足しているために、マージ検査が失敗しました。まず %s から"
+ "フェッチして下さい。"
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr "削除するブランチを選択して下さい。"
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ "削除したブランチを回復するのは困難です。\n"
+ "\n"
+ "選択したブランチを削除して良いですか?"
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr "%s からブランチを削除しています。"
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr "リポジトリが選択されていません。"
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr "%s をスキャンしています…"
+ #: lib/shortcut.tcl:26 lib/shortcut.tcl:74
+ msgid "Cannot write script:"
+ msgstr "スクリプトが書けません:"
+ #: lib/shortcut.tcl:149
+ msgid "Cannot write icon:"
+ msgstr "アイコンが書けません:"
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr "%1$s ... %4$*i %6$s 中の %2$*i (%7$3i%%)"
+ #: lib/transport.tcl:6
+ #, tcl-format
+ msgid "fetch %s"
+ msgstr "%s を取得"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr "%s から新しい変更をフェッチしています"
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr "遠隔刈込 %s"
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr "%s から削除されたトラッキング・ブランチを刈っています"
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr "%s をプッシュ"
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr "%s へ変更をプッシュしています"
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr "%3$s へ %1$s %2$s をプッシュしています"
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr "ブランチをプッシュ"
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr "元のブランチ"
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr "送り先リポジトリ"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr "通信オプション"
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr "既存ブランチを上書き(変更を破棄する可能性があります)"
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr "Thin Pack を使う(遅いネットワーク接続)"
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr "タグを含める"
diff --combined git-gui/po/po2msg.sh
index 0000000000000000000000000000000000000000,c63248e3752b8b479f75ad2fe772dd40f684be54..c63248e3752b8b479f75ad2fe772dd40f684be54
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,133 +1,133 @@@
+ #!/bin/sh
+ # Tcl ignores the next line -*- tcl -*- \
+ exec tclsh "$0" -- "$@"
+ # This is a really stupid program, which serves as an alternative to
+ # msgfmt.  It _only_ translates to Tcl mode, does _not_ validate the
+ # input, and does _not_ output any statistics.
+ proc u2a {s} {
+       set res ""
+       foreach i [split $s ""] {
+               scan $i %c c
+               if {$c<128} {
+                       # escape '[', '\' and ']'
+                       if {$c == 0x5b || $c == 0x5d} {
+                               append res "\\"
+                       }
+                       append res $i
+               } else {
+                       append res \\u[format %04.4x $c]
+               }
+       }
+       return $res
+ }
+ set output_directory "."
+ set lang "dummy"
+ set files [list]
+ set show_statistics 0
+ # parse options
+ for {set i 0} {$i < $argc} {incr i} {
+       set arg [lindex $argv $i]
+       if {$arg == "--statistics"} {
+               incr show_statistics
+               continue
+       }
+       if {$arg == "--tcl"} {
+               # we know
+               continue
+       }
+       if {$arg == "-l"} {
+               incr i
+               set lang [lindex $argv $i]
+               continue
+       }
+       if {$arg == "-d"} {
+               incr i
+               set tmp [lindex $argv $i]
+               regsub "\[^/\]$" $tmp "&/" output_directory
+               continue
+       }
+       lappend files $arg
+ }
+ proc flush_msg {} {
+       global msgid msgstr mode lang out fuzzy
+       global translated_count fuzzy_count not_translated_count
+       if {![info exists msgid] || $mode == ""} {
+               return
+       }
+       set mode ""
+       if {$fuzzy == 1} {
+               incr fuzzy_count
+               set fuzzy 0
+               return
+       }
+       if {$msgid == ""} {
+               set prefix "set ::msgcat::header"
+       } else {
+               if {$msgstr == ""} {
+                       incr not_translated_count
+                       return
+               }
+               set prefix "::msgcat::mcset $lang \"[u2a $msgid]\""
+               incr translated_count
+       }
+       puts $out "$prefix \"[u2a $msgstr]\""
+ }
+ set fuzzy 0
+ set translated_count 0
+ set fuzzy_count 0
+ set not_translated_count 0
+ foreach file $files {
+       regsub "^.*/\(\[^/\]*\)\.po$" $file "$output_directory\\1.msg" outfile
+       set in [open $file "r"]
+       fconfigure $in -encoding utf-8
+       set out [open $outfile "w"]
+       set mode ""
+       while {[gets $in line] >= 0} {
+               if {[regexp "^#" $line]} {
+                       if {[regexp ", fuzzy" $line]} {
+                               set fuzzy 1
+                       } else {
+                               flush_msg
+                       }
+                       continue
+               } elseif {[regexp "^msgid \"(.*)\"$" $line dummy match]} {
+                       flush_msg
+                       set msgid $match
+                       set mode "msgid"
+               } elseif {[regexp "^msgstr \"(.*)\"$" $line dummy match]} {
+                       set msgstr $match
+                       set mode "msgstr"
+               } elseif {$line == ""} {
+                       flush_msg
+               } elseif {[regexp "^\"(.*)\"$" $line dummy match]} {
+                       if {$mode == "msgid"} {
+                               append msgid $match
+                       } elseif {$mode == "msgstr"} {
+                               append msgstr $match
+                       } else {
+                               puts stderr "I do not know what to do: $match"
+                       }
+               } else {
+                       puts stderr "Cannot handle $line"
+               }
+       }
+       flush_msg
+       close $in
+       close $out
+ }
+ if {$show_statistics} {
+       puts [concat "$translated_count translated messages, " \
+               "$fuzzy_count fuzzy ones, " \
+               "$not_translated_count untranslated ones."]
+ }
diff --combined git-gui/po/ru.po
index 0000000000000000000000000000000000000000,6727a832eaae71df6afcf2a1aa5461d9891fd8d0..6727a832eaae71df6afcf2a1aa5461d9891fd8d0
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1893 +1,1893 @@@
+ # Translation of git-gui to russian
+ # Copyright (C) 2007 Shawn Pearce
+ # This file is distributed under the same license as the git-gui package.
+ # Irina Riesen <irina.riesen@gmail.com>, 2007.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-31 21:23+0100\n"
+ "PO-Revision-Date: 2007-10-22 22:30-0200\n"
+ "Last-Translator: Alex Riesen <raa.lkml@gmail.com>\n"
+ "Language-Team: Russian Translation <git@vger.kernel.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:597 git-gui.sh:611 git-gui.sh:624 git-gui.sh:707
+ #: git-gui.sh:726
+ msgid "git-gui: fatal error"
+ msgstr "git-gui: критическая ошибка"
+ #: git-gui.sh:558
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr "В %s установлен неверный шрифт:"
+ #: git-gui.sh:583
+ msgid "Main Font"
+ msgstr "Шрифт интерфейса"
+ #: git-gui.sh:584
+ msgid "Diff/Console Font"
+ msgstr "Шрифт консоли и изменений (diff)"
+ #: git-gui.sh:598
+ msgid "Cannot find git in PATH."
+ msgstr "git не найден в PATH."
+ #: git-gui.sh:625
+ msgid "Cannot parse Git version string:"
+ msgstr "Невозможно распознать строку версии Git: "
+ #: git-gui.sh:643
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ "Невозможно определить версию Git\n"
+ "%s указывает на версию '%s'.\n"
+ "\n"
+ "для %s требуется версия Git, начиная с 1.5.0\n"
+ "\n"
+ "Принять '%s' как версию 1.5.0?\n"
+ #: git-gui.sh:881
+ msgid "Git directory not found:"
+ msgstr "Каталог Git не найден:"
+ #: git-gui.sh:888
+ msgid "Cannot move to top of working directory:"
+ msgstr "Невозможно перейти к корню рабочего каталога репозитория: "
+ #: git-gui.sh:895
+ msgid "Cannot use funny .git directory:"
+ msgstr "Каталог.git испорчен: "
+ #: git-gui.sh:900
+ msgid "No working directory"
+ msgstr "Отсутствует рабочий каталог"
+ #: git-gui.sh:1047
+ msgid "Refreshing file status..."
+ msgstr "Обновление информации о состоянии файлов..."
+ #: git-gui.sh:1112
+ msgid "Scanning for modified files ..."
+ msgstr "Поиск измененных файлов..."
+ #: git-gui.sh:1287 lib/browser.tcl:245
+ msgid "Ready."
+ msgstr "Готово."
+ #: git-gui.sh:1553
+ msgid "Unmodified"
+ msgstr "Не изменено"
+ #: git-gui.sh:1555
+ msgid "Modified, not staged"
+ msgstr "Изменено, не подготовлено"
+ #: git-gui.sh:1556 git-gui.sh:1561
+ msgid "Staged for commit"
+ msgstr "Подготовлено для сохранения"
+ #: git-gui.sh:1557 git-gui.sh:1562
+ msgid "Portions staged for commit"
+ msgstr "Части, подготовленные для сохранения"
+ #: git-gui.sh:1558 git-gui.sh:1563
+ msgid "Staged for commit, missing"
+ msgstr "Подготовлено для сохранения, отсутствует"
+ #: git-gui.sh:1560
+ msgid "Untracked, not staged"
+ msgstr "Не отслеживается, не подготовлено"
+ #: git-gui.sh:1565
+ msgid "Missing"
+ msgstr "Отсутствует"
+ #: git-gui.sh:1566
+ msgid "Staged for removal"
+ msgstr "Подготовлено для удаления"
+ #: git-gui.sh:1567
+ msgid "Staged for removal, still present"
+ msgstr "Подготовлено для удаления, еще не удалено"
+ #: git-gui.sh:1569 git-gui.sh:1570 git-gui.sh:1571 git-gui.sh:1572
+ msgid "Requires merge resolution"
+ msgstr "Требуется разрешение конфликта при объединении"
+ #: git-gui.sh:1607
+ msgid "Starting gitk... please wait..."
+ msgstr "Запускается gitk... пожалуйста, ждите..."
+ #: git-gui.sh:1616
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ "Не удалось запустить gitk:\n"
+ "\n"
+ "%s не существует"
+ #: git-gui.sh:1816 lib/choose_repository.tcl:35
+ msgid "Repository"
+ msgstr "Репозиторий"
+ #: git-gui.sh:1817
+ msgid "Edit"
+ msgstr "Редактировать"
+ #: git-gui.sh:1819 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "Ветвь"
+ #: git-gui.sh:1822 lib/choose_rev.tcl:547
+ msgid "Commit@@noun"
+ msgstr "Состояние"
+ #: git-gui.sh:1825 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "Объединить"
+ #: git-gui.sh:1826 lib/choose_rev.tcl:556
+ msgid "Remote"
+ msgstr "Внешние репозитории"
+ #: git-gui.sh:1835
+ msgid "Browse Current Branch's Files"
+ msgstr "Просмотреть файлы текущей ветви"
+ #: git-gui.sh:1839
+ msgid "Browse Branch Files..."
+ msgstr "Показать файлы ветви..."
+ #: git-gui.sh:1844
+ msgid "Visualize Current Branch's History"
+ msgstr "История текущей ветви наглядно"
+ #: git-gui.sh:1848
+ msgid "Visualize All Branch History"
+ msgstr "История всех ветвей наглядно"
+ #: git-gui.sh:1855
+ #, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "Показать файлы ветви %s"
+ #: git-gui.sh:1857
+ #, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "История ветви %s наглядно"
+ #: git-gui.sh:1862 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "Статистика базы данных"
+ #: git-gui.sh:1865 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "Сжать базу данных"
+ #: git-gui.sh:1868
+ msgid "Verify Database"
+ msgstr "Проверить базу данных"
+ #: git-gui.sh:1875 git-gui.sh:1879 git-gui.sh:1883 lib/shortcut.tcl:7
+ #: lib/shortcut.tcl:39 lib/shortcut.tcl:71
+ msgid "Create Desktop Icon"
+ msgstr "Создать ярлык на рабочем столе"
+ #: git-gui.sh:1888 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+ msgid "Quit"
+ msgstr "Выход"
+ #: git-gui.sh:1895
+ msgid "Undo"
+ msgstr "Отменить"
+ #: git-gui.sh:1898
+ msgid "Redo"
+ msgstr "Повторить"
+ #: git-gui.sh:1902 git-gui.sh:2395
+ msgid "Cut"
+ msgstr "Вырезать"
+ #: git-gui.sh:1905 git-gui.sh:2398 git-gui.sh:2469 git-gui.sh:2541
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "Копировать"
+ #: git-gui.sh:1908 git-gui.sh:2401
+ msgid "Paste"
+ msgstr "Вставить"
+ #: git-gui.sh:1911 git-gui.sh:2404 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "Удалить"
+ #: git-gui.sh:1915 git-gui.sh:2408 git-gui.sh:2545 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "Выделить все"
+ #: git-gui.sh:1924
+ msgid "Create..."
+ msgstr "Создать..."
+ #: git-gui.sh:1930
+ msgid "Checkout..."
+ msgstr "Перейти..."
+ #: git-gui.sh:1936
+ msgid "Rename..."
+ msgstr "Переименовать..."
+ #: git-gui.sh:1941 git-gui.sh:2040
+ msgid "Delete..."
+ msgstr "Удалить..."
+ #: git-gui.sh:1946
+ msgid "Reset..."
+ msgstr "Сбросить..."
+ #: git-gui.sh:1958 git-gui.sh:2342
+ msgid "New Commit"
+ msgstr "Новое состояние"
+ #: git-gui.sh:1966 git-gui.sh:2349
+ msgid "Amend Last Commit"
+ msgstr "Исправить последнее состояние"
+ #: git-gui.sh:1975 git-gui.sh:2309 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "Перечитать"
+ #: git-gui.sh:1981
+ msgid "Stage To Commit"
+ msgstr "Подготовить для сохранения"
+ #: git-gui.sh:1986
+ msgid "Stage Changed Files To Commit"
+ msgstr "Подготовить измененные файлы для сохранения"
+ #: git-gui.sh:1992
+ msgid "Unstage From Commit"
+ msgstr "Убрать из подготовленного"
+ #: git-gui.sh:1997 lib/index.tcl:393
+ msgid "Revert Changes"
+ msgstr "Отменить изменения"
+ #: git-gui.sh:2004 git-gui.sh:2321 git-gui.sh:2419
+ msgid "Sign Off"
+ msgstr "Подписать"
+ #: git-gui.sh:2008 git-gui.sh:2325
+ msgid "Commit@@verb"
+ msgstr "Сохранить"
+ #: git-gui.sh:2019
+ msgid "Local Merge..."
+ msgstr "Локальное объединение..."
+ #: git-gui.sh:2024
+ msgid "Abort Merge..."
+ msgstr "Прервать объединение..."
+ #: git-gui.sh:2036
+ msgid "Push..."
+ msgstr "Отправить..."
+ #: git-gui.sh:2047 lib/choose_repository.tcl:40
+ msgid "Apple"
+ msgstr ""
+ #: git-gui.sh:2050 git-gui.sh:2072 lib/about.tcl:13
+ #: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+ #, tcl-format
+ msgid "About %s"
+ msgstr "О %s"
+ #: git-gui.sh:2054
+ msgid "Preferences..."
+ msgstr "Настройки..."
+ #: git-gui.sh:2062 git-gui.sh:2587
+ msgid "Options..."
+ msgstr "Настройки..."
+ #: git-gui.sh:2068 lib/choose_repository.tcl:46
+ msgid "Help"
+ msgstr "Помощь"
+ #: git-gui.sh:2109
+ msgid "Online Documentation"
+ msgstr "Документация в интернете"
+ #: git-gui.sh:2193
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr "критическая ошибка: %s: нет такого файла или каталога"
+ #: git-gui.sh:2226
+ msgid "Current Branch:"
+ msgstr "Текущая ветвь:"
+ #: git-gui.sh:2247
+ msgid "Staged Changes (Will Commit)"
+ msgstr "Подготовлено (будет сохранено)"
+ #: git-gui.sh:2266
+ msgid "Unstaged Changes"
+ msgstr "Изменено (не будет сохранено)"
+ #: git-gui.sh:2315
+ msgid "Stage Changed"
+ msgstr "Подготовить все"
+ #: git-gui.sh:2331 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "Отправить"
+ #: git-gui.sh:2361
+ msgid "Initial Commit Message:"
+ msgstr "Комментарий к первому состоянию:"
+ #: git-gui.sh:2362
+ msgid "Amended Commit Message:"
+ msgstr "Комментарий к исправленному состоянию:"
+ #: git-gui.sh:2363
+ msgid "Amended Initial Commit Message:"
+ msgstr "Комментарий к исправленному первоначальному состоянию:"
+ #: git-gui.sh:2364
+ msgid "Amended Merge Commit Message:"
+ msgstr "Комментарий к исправленному объединению:"
+ #: git-gui.sh:2365
+ msgid "Merge Commit Message:"
+ msgstr "Комментарий к объединению:"
+ #: git-gui.sh:2366
+ msgid "Commit Message:"
+ msgstr "Комментарий к состоянию:"
+ #: git-gui.sh:2411 git-gui.sh:2549 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "Копировать все"
+ #: git-gui.sh:2435 lib/blame.tcl:104
+ msgid "File:"
+ msgstr "Файл:"
+ #: git-gui.sh:2537
+ msgid "Refresh"
+ msgstr "Обновить"
+ #: git-gui.sh:2558
+ msgid "Apply/Reverse Hunk"
+ msgstr "Применить/Убрать изменение"
+ #: git-gui.sh:2564
+ msgid "Decrease Font Size"
+ msgstr "Уменьшить размер шрифта"
+ #: git-gui.sh:2568
+ msgid "Increase Font Size"
+ msgstr "Увеличить размер шрифта"
+ #: git-gui.sh:2573
+ msgid "Show Less Context"
+ msgstr "Меньше контекста"
+ #: git-gui.sh:2580
+ msgid "Show More Context"
+ msgstr "Больше контекста"
+ #: git-gui.sh:2594
+ msgid "Unstage Hunk From Commit"
+ msgstr "Не сохранять часть"
+ #: git-gui.sh:2596
+ msgid "Stage Hunk For Commit"
+ msgstr "Подготовить часть для сохранения"
+ #: git-gui.sh:2615
+ msgid "Initializing..."
+ msgstr "Инициализация..."
+ #: git-gui.sh:2706
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ "Возможны ошибки в переменных окружения.\n"
+ "\n"
+ "Переменные окружения, которые возможно\n"
+ "будут проигнорированы командами Git,\n"
+ "запущенными из %s\n"
+ "\n"
+ #: git-gui.sh:2736
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ "\n"
+ "Это известная проблема с Tcl,\n"
+ "распространяемым Cygwin."
+ #: git-gui.sh:2741
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ "\n"
+ "\n"
+ "Вместо использования %s можно\n"
+ "сохранить значения user.name и\n"
+ "user.email в Вашем персональном\n"
+ "файле ~/.gitconfig.\n"
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr "git-gui - графический пользовательский интерфейс к Git."
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr "Просмотр файла"
+ #: lib/blame.tcl:81
+ msgid "Commit:"
+ msgstr "Сохраненное состояние:"
+ #: lib/blame.tcl:249
+ msgid "Copy Commit"
+ msgstr "Скопировать SHA-1"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr "Чтение %s..."
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr "Загрузка аннотации копирований/переименований..."
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr "строк прокомментировано"
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr "Загрузка аннотаций первоначального положения объекта..."
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr "Аннотация завершена."
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr "Загрузка аннотации..."
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr "Автор:"
+ #: lib/blame.tcl:791
+ msgid "Committer:"
+ msgstr "Сохранил:"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr "Исходный файл:"
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr "Источник:"
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr "Файл:"
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr "Скопировано/перемещено в:"
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ msgid "Checkout Branch"
+ msgstr "Перейти на ветвь"
+ #: lib/branch_checkout.tcl:23
+ msgid "Checkout"
+ msgstr "Перейти"
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr "Отменить"
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr "Версия"
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ msgid "Options"
+ msgstr "Настройки"
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr "Получить изменения из внешней ветви"
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr "Отсоединить от локальной ветви"
+ #: lib/branch_create.tcl:22
+ msgid "Create Branch"
+ msgstr "Создание ветви"
+ #: lib/branch_create.tcl:27
+ msgid "Create New Branch"
+ msgstr "Создать новую ветвь"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+ msgid "Create"
+ msgstr "Создать"
+ #: lib/branch_create.tcl:40
+ msgid "Branch Name"
+ msgstr "Название ветви"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr "Название:"
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr "Взять из имен ветвей слежения"
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr "Начальная версия"
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr "Обновить имеющуюся ветвь:"
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr "Нет"
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr "Только Fast Forward"
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ msgid "Reset"
+ msgstr "Сброс"
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr "После создания сделать текущей"
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr "Укажите ветвь слежения."
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr "Ветвь слежения %s не является ветвью во внешнем репозитории."
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr "Укажите название ветви."
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr "Недопустимое название ветви '%s'."
+ #: lib/branch_delete.tcl:15
+ msgid "Delete Branch"
+ msgstr "Удаление ветви"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr "Удалить локальную ветвь"
+ #: lib/branch_delete.tcl:37
+ msgid "Local Branches"
+ msgstr "Локальные ветви"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr "Удалить только в случае, если было объединение с"
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr "Всегда (не выполнять проверку на объединение)"
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr "Следующие ветви объединены с %s не полностью:"
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ "Восстанавливать удаленные ветви сложно. \n"
+ "\n"
+ " Удалить выбранные ветви?"
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ "Не удалось удалить ветви:\n"
+ "%s"
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ msgid "Rename Branch"
+ msgstr "Переименование ветви"
+ #: lib/branch_rename.tcl:26
+ msgid "Rename"
+ msgstr "Переименовать"
+ #: lib/branch_rename.tcl:36
+ msgid "Branch:"
+ msgstr "Ветвь:"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr "Новое название:"
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr "Укажите ветвь для переименования."
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr "Ветвь '%s' уже существует."
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr "Не удалось переименовать '%s'. "
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr "Запуск..."
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr "Просмотр списка файлов"
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr "Загрузка %s..."
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr "[На уровень выше]"
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ msgid "Browse Branch Files"
+ msgstr "Показать файлы ветви"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:391
+ #: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+ #: lib/choose_repository.tcl:989
+ msgid "Browse"
+ msgstr "Показать"
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr "Получение %s из %s "
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr "критическая ошибка: невозможно разрешить %s"
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr "Закрыть"
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr "Ветвь '%s' не существует "
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ "Ветвь '%s' уже существует.\n"
+ "\n"
+ "Она не может быть прокручена(fast-forward) к %s.\n"
+ "Требуется объединение."
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr "Стратегия объединения '%s' не поддерживается."
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr "Не удалось обновить '%s'."
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr "Рабочая область заблокирована другим процессом."
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Последнее прочитанное состояние репозитория не соответствует текущему.\n"
+ "\n"
+ "С момента последней проверки репозиторий был изменен другой программой Git. "
+ "Необходимо перечитать репозиторий, прежде чем изменять текущую ветвь.\n"
+ "\n"
+ "Это будет сделано сейчас автоматически.\n"
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr "Обновление рабочего каталога из '%s'..."
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr "Прерван переход на '%s' (требуется объединение на уровне файлов)"
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr "Требуется объединение на уровне файлов."
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr "Ветвь '%s' остается текущей."
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ "Вы находитесь не в локальной ветви.\n"
+ "\n"
+ "Если вы хотите снова вернуться к какой-нибудь ветви, создайте ее сейчас, "
+ "начиная с 'Текущего отсоединенного состояния'."
+ #: lib/checkout_op.tcl:446
+ #, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "Ветвь '%s' сделана текущей."
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr "Сброс '%s' в '%s' приведет к потере следующих сохраненных состояний: "
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr "Восстановить потерянные сохраненные состояния будет сложно."
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr "Сбросить '%s'?"
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr "Наглядно"
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ "Не удалось установить текущую ветвь.\n"
+ "\n"
+ "Ваш рабочий каталог обновлен только частично. Были обновлены все файлы кроме "
+ "служебных файлов Git. \n"
+ "\n"
+ "Этого не должно было произойти. %s завершается."
+ #: lib/choose_font.tcl:39
+ msgid "Select"
+ msgstr "Выбрать"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr "Шрифт"
+ #: lib/choose_font.tcl:73
+ msgid "Font Size"
+ msgstr "Размер шрифта"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr "Пример текста"
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ "Это пример текста.\n"
+ "Если Вам нравится этот текст, это может быть Ваш шрифт."
+ #: lib/choose_repository.tcl:27
+ msgid "Git Gui"
+ msgstr ""
+ #: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+ msgid "Create New Repository"
+ msgstr "Создать новый репозиторий"
+ #: lib/choose_repository.tcl:86
+ msgid "New..."
+ msgstr "Новый..."
+ #: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+ msgid "Clone Existing Repository"
+ msgstr "Склонировать существующий репозиторий"
+ #: lib/choose_repository.tcl:99
+ msgid "Clone..."
+ msgstr "Склонировать..."
+ #: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+ msgid "Open Existing Repository"
+ msgstr "Выбрать существующий репозиторий"
+ #: lib/choose_repository.tcl:112
+ msgid "Open..."
+ msgstr "Открыть..."
+ #: lib/choose_repository.tcl:125
+ msgid "Recent Repositories"
+ msgstr "Недавние репозитории"
+ #: lib/choose_repository.tcl:131
+ msgid "Open Recent Repository:"
+ msgstr "Открыть последний репозиторий"
+ #: lib/choose_repository.tcl:294
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr "Путь '%s' уже существует."
+ #: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+ #: lib/choose_repository.tcl:314
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr "Не удалось создать репозиторий %s:"
+ #: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+ msgid "Directory:"
+ msgstr "Каталог:"
+ #: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+ #: lib/choose_repository.tcl:1013
+ msgid "Git Repository"
+ msgstr "Репозиторий"
+ #: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr "Каталог '%s' уже существует."
+ #: lib/choose_repository.tcl:442
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr "Файл '%s' уже существует."
+ #: lib/choose_repository.tcl:463
+ msgid "Clone"
+ msgstr "Склонировать"
+ #: lib/choose_repository.tcl:476
+ msgid "URL:"
+ msgstr "Ссылка:"
+ #: lib/choose_repository.tcl:496
+ msgid "Clone Type:"
+ msgstr "Тип клона:"
+ #: lib/choose_repository.tcl:502
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr "Стандартный (Быстрый, полуизбыточный, \"жесткие\" ссылки)"
+ #: lib/choose_repository.tcl:508
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr "Полная копия (Медленный, создает резервную копию)"
+ #: lib/choose_repository.tcl:514
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr "Общий (Самый быстрый, не рекомендуется, без резервной копии)"
+ #: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+ #: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+ #: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr "Каталог не является репозиторием: %s"
+ #: lib/choose_repository.tcl:586
+ msgid "Standard only available for local repository."
+ msgstr "Стандартный клон возможен только для локального репозитория."
+ #: lib/choose_repository.tcl:590
+ msgid "Shared only available for local repository."
+ msgstr "Общий клон возможен только для локального репозитория."
+ #: lib/choose_repository.tcl:617
+ msgid "Failed to configure origin"
+ msgstr "Не могу сконфигурировать исходный репозиторий."
+ #: lib/choose_repository.tcl:629
+ msgid "Counting objects"
+ msgstr "Считаю объекты"
+ #: lib/choose_repository.tcl:630
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:654
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr "Не могу скопировать objects/info/alternates: %s"
+ #: lib/choose_repository.tcl:690
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr "Нечего клонировать с %s."
+ #: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+ #: lib/choose_repository.tcl:918
+ msgid "The 'master' branch has not been initialized."
+ msgstr "Не инициализирована ветвь 'master'."
+ #: lib/choose_repository.tcl:705
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr "\"Жесткие ссылки\" не доступны. Буду использовать копирование."
+ #: lib/choose_repository.tcl:717
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr "Клонирование %s"
+ #: lib/choose_repository.tcl:748
+ msgid "Copying objects"
+ msgstr "Копирование objects"
+ #: lib/choose_repository.tcl:749
+ msgid "KiB"
+ msgstr "КБ"
+ #: lib/choose_repository.tcl:773
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr "Не могу скопировать объект: %s"
+ #: lib/choose_repository.tcl:783
+ msgid "Linking objects"
+ msgstr "Создание ссылок на objects"
+ #: lib/choose_repository.tcl:784
+ msgid "objects"
+ msgstr "объекты"
+ #: lib/choose_repository.tcl:792
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr "Не могу \"жестко связать\" объект: %s"
+ #: lib/choose_repository.tcl:847
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ "Не могу получить ветви и объекты. Дополнительная информация на консоли."
+ #: lib/choose_repository.tcl:858
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr "Не могу получить метки. Дополнительная информация на консоли."
+ #: lib/choose_repository.tcl:882
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr "Не могу определить HEAD. Дополнительная информация на консоли."
+ #: lib/choose_repository.tcl:891
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr "Не могу очистить %s"
+ #: lib/choose_repository.tcl:897
+ msgid "Clone failed."
+ msgstr "Клонирование не удалось."
+ #: lib/choose_repository.tcl:904
+ msgid "No default branch obtained."
+ msgstr "Не было получено ветви по умолчанию."
+ #: lib/choose_repository.tcl:915
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr "Не могу распознать %s как состояние."
+ #: lib/choose_repository.tcl:927
+ msgid "Creating working directory"
+ msgstr "Создаю рабочий каталог"
+ #: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+ #: lib/index.tcl:193
+ msgid "files"
+ msgstr "файлов"
+ #: lib/choose_repository.tcl:957
+ msgid "Initial file checkout failed."
+ msgstr "Не удалось получить начальное состояние файлов репозитория."
+ #: lib/choose_repository.tcl:973
+ msgid "Open"
+ msgstr "Открыть"
+ #: lib/choose_repository.tcl:983
+ msgid "Repository:"
+ msgstr "Репозиторий:"
+ #: lib/choose_repository.tcl:1033
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr "Не удалось открыть репозиторий %s:"
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr "Текущее отсоединенное состояние"
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr "Выражение для определения версии:"
+ #: lib/choose_rev.tcl:74
+ msgid "Local Branch"
+ msgstr "Локальная ветвь:"
+ #: lib/choose_rev.tcl:79
+ msgid "Tracking Branch"
+ msgstr "Ветвь слежения"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr "Таг"
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr "Неверная версия: %s"
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr "Версия не указана."
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr "Пустое выражение для определения версии."
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr "Обновлено"
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr "Ссылка"
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ "Отсутствует состояние для исправления.\n"
+ "\n"
+ "Вы создаете первое состояние в репозитории, здесь еще нечего исправлять.\n"
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ "Невозможно исправить состояние во время объединения.\n"
+ "\n"
+ "Текущее объединение не завершено. Невозможно исправить предыдущее "
+ "сохраненное состояние не прерывая текущее объединение.\n"
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr "Ошибка при загрузке данных для исправления сохраненного состояния:"
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr "Невозможно получить информацию об авторстве:"
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr "Неверный GIT_COMMITTER_IDENT:"
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Последнее прочитанное состояние репозитория не соответствует текущему.\n"
+ "\n"
+ "С момента последней проверки репозиторий был изменен другой программой Git. "
+ "Необходимо перечитать репозиторий, прежде чем изменять текущую ветвь. \n"
+ "\n"
+ "Это будет сделано сейчас автоматически.\n"
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ "Нельзя сохранить необъединенные файлы.\n"
+ "\n"
+ "Для файла %s возник конфликт объединения. Разрешите конфликт и добавьте к "
+ "подготовленным файлам перед сохранением.\n"
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ "Обнаружено неизвестное состояние файла %s.\n"
+ "\n"
+ "Файл %s не может быть сохранен данной программой.\n"
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ "Отсутствуют изменения для сохранения.\n"
+ "\n"
+ "Подготовьте хотя бы один файл до создания сохраненного состояния.\n"
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ "Напишите комментарий к сохраненному состоянию.\n"
+ "\n"
+ "Рекомендуется следующий формат комментария:\n"
+ "\n"
+ "- первая строка: краткое описание сделанных изменений.\n"
+ "- вторая строка пустая\n"
+ "- оставшиеся строки: опишите, что дают ваши изменения.\n"
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr "Программа write-tree завершилась с ошибкой:"
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr "Состояние %s выглядит поврежденным"
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ "Отсутствуют изменения для сохранения.\n"
+ "\n"
+ "Ни один файл не был изменен и не было объединения.\n"
+ "\n"
+ "Сейчас автоматически запустится перечитывание репозитория.\n"
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr "Отуствуют измения для сохранения."
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr "предупреждение: Tcl не поддерживает кодировку '%s'."
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr "Программа commit-tree завершилась с ошибкой:"
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr "Программа update-ref завершилась с ошибкой:"
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr "Создано состояние %s: %s "
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr "В процессе... пожалуйста, ждите..."
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr "Процесс успешно завершен"
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr "Ошибка: не удалось выполнить команду"
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr "Количество несвязанных объектов"
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr "Объем дискового пространства, занятый несвязанными объектами"
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr "Количество упакованных объектов"
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr "Количество pack-файлов"
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr "Объем дискового пространства, занятый упакованными объектами"
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr "Несвязанные объекты, которые можно удалить"
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr "Мусор"
+ #: lib/database.tcl:72
+ msgid "Compressing the object database"
+ msgstr "Сжатие базы объектов"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr "Проверка базы объектов при помощи fsck"
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ "Этот репозиторий сейчас содержит примерно %i свободных объектов\n"
+ "\n"
+ "Для лучшей производительности рекомендуется сжать базу данных, когда есть "
+ "более %i несвязанных объектов.\n"
+ "\n"
+ "Сжать базу данных сейчас?"
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr "Неправильная дата в репозитории: %s"
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ "Изменений не обнаружено.\n"
+ "\n"
+ "в %s отутствуют изменения.\n"
+ "\n"
+ "Дата изменения файла была обновлена другой программой, но содержимое файла "
+ "осталось прежним.\n"
+ "\n"
+ "Сейчас будет запущено перечитывание репозитория, чтобы найти подобные файлы."
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr "Загрузка изменений в %s..."
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr "Не могу показать %s"
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr "Ошибка загрузки файла:"
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr "Репозиторий Git (подпроект)"
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr "* Двоичный файл (содержимое не показано)"
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr "Ошибка загрузки diff:"
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr "Не удалось исключить выбранную часть."
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr "Не удалось подготовить к сохранению выбранную часть."
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr "ошибка"
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr "предупреждение"
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr "Прежде чем сохранить, исправьте вышеуказанные ошибки."
+ #: lib/index.tcl:6
+ msgid "Unable to unlock the index."
+ msgstr "Не удалось разблокировать индекс"
+ #: lib/index.tcl:15
+ msgid "Index Error"
+ msgstr "Ошибка индекса"
+ #: lib/index.tcl:21
+ msgid ""
+ "Updating the Git index failed.  A rescan will be automatically started to "
+ "resynchronize git-gui."
+ msgstr ""
+ "Не удалось обновить индекс Git. Состояние репозитория будет"
+ "перечитано автоматически."
+ #: lib/index.tcl:27
+ msgid "Continue"
+ msgstr "Продолжить"
+ #: lib/index.tcl:31
+ msgid "Unlock Index"
+ msgstr "Разблокировать индекс"
+ #: lib/index.tcl:282
+ #, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "Удаление %s из подготовленного"
+ #: lib/index.tcl:326
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr "Добавление %s..."
+ #: lib/index.tcl:381
+ #, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "Отменить изменения в файле %s?"
+ #: lib/index.tcl:383
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr "Отменить изменения в %i файле(-ах)?"
+ #: lib/index.tcl:389
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ "Любые изменения, не подготовленные к сохранению, будут потеряны при данной "
+ "операции."
+ #: lib/index.tcl:392
+ msgid "Do Nothing"
+ msgstr "Ничего не делать"
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ "Невозможно выполнить объединение во время исправления.\n"
+ "\n"
+ "Завершите исправление данного состояния перед выполнением операции "
+ "объединения.\n"
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ "Последнее прочитанное состояние репозитория не соответствует текущему.\n"
+ "\n"
+ "С момента последней проверки репозиторий был изменен другой программой Git. "
+ "Необходимо перечитать репозиторий, прежде чем изменять текущую ветвь.\n"
+ "\n"
+ "Это будет сделано сейчас автоматически.\n"
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ "Предыдущее объединение не завершено из-за конфликта.\n"
+ "\n"
+ "Для файла %s возник конфликт объединения.\n"
+ "\n"
+ "Разрешите конфликт, подготовьте файл и сохраните. Только после этого можно "
+ "начать следующее объединение.\n"
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ "Изменения не сохранены.\n"
+ "\n"
+ "Файл %s изменен.\n"
+ "\n"
+ "Подготовьте и сохраните измения перед началом объединения. В случае "
+ "необходимости это позволит прервать операцию объединения.\n"
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr "%s из %s"
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr "Объединение %s и %s"
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr "Объединение успешно завершено."
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr "Не удалось завершить объединение. Требуется разрешение конфликта."
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr "Объединить с %s"
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr "Версия для объединения"
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ "Невозможно прервать исправление.\n"
+ "\n"
+ "Завершите текущее исправление сохраненного состояния.\n"
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ "Прервать объединение?\n"
+ "\n"
+ "Прерывание объединения приведет к потере *ВСЕХ* несохраненных изменений.\n"
+ "\n"
+ "Продолжить?"
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ "Прервать объединение?\n"
+ "\n"
+ "Прерывание объединения приведет к потере *ВСЕХ* несохраненных изменений.\n"
+ "\n"
+ "Продолжить?"
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr "Прерываю"
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr "Прервать не удалось."
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr "Прервано."
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr "Восстановить настройки по умолчанию"
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr "Сохранить"
+ #: lib/option.tcl:96
+ #, tcl-format
+ msgid "%s Repository"
+ msgstr "для репозитория %s"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr "Общие (для всех репозиториев)"
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr "Имя пользователя"
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr "Адес электронной почты"
+ #: lib/option.tcl:106
+ msgid "Summarize Merge Commits"
+ msgstr "Суммарный комментарий при объединении"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr "Уровень детальности сообщений при объединении"
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr "Показать отчет об изменениях после объединения"
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr "Доверять времени модификации файла"
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr "Чистка ветвей слежения при получении изменений"
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr "Имя новой ветви взять из имен ветвей слежения"
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr "Число строк в контексте diff"
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr "Шаблон для имени новой ветви"
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr "Изменить шрифт"
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr "Выберите %s"
+ # carbon copy
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr ""
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr "Настройки"
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr "Не удалось полностью сохранить настройки:"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr "Удалить внешнюю ветвь"
+ #: lib/remote_branch_delete.tcl:47
+ msgid "From Repository"
+ msgstr "Из репозитория"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr "внешний:"
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr "по указанному URL:"
+ #: lib/remote_branch_delete.tcl:84
+ msgid "Branches"
+ msgstr "Ветви"
+ #: lib/remote_branch_delete.tcl:109
+ msgid "Delete Only If"
+ msgstr "Удалить только в случае, если"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr "Объединено с:"
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr "Всегда (не выполнять проверку объединений)"
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr "Для опции 'Объединено с' требуется указать ветвь."
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ "Следующие ветви объединены с %s не полностью:\n"
+ " - %s"
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ "Один или несколько тестов на объединение не прошли, потому что Вы не "
+ "получили необходимые состояния. Попытайтесь получить их из %s."
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr "Укажите одну или несколько ветвей для удаления."
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ "Восстановить удаленные ветви сложно.\n"
+ "\n"
+ "Продолжить?"
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr "Удаление ветвей из %s"
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr "Не указан репозиторий."
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr "Перечитывание %s... "
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr "Чистка"
+ #: lib/remote.tcl:170
+ msgid "Fetch from"
+ msgstr "Получение из"
+ #: lib/remote.tcl:213
+ msgid "Push to"
+ msgstr "Отправить"
+ #: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+ msgid "Cannot write shortcut:"
+ msgstr "Невозможно записать ссылку:"
+ #: lib/shortcut.tcl:136
+ msgid "Cannot write icon:"
+ msgstr "Невозможно записать значок:"
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr "%s ... %*i из %*i %s (%3i%%)"
+ #: lib/transport.tcl:6
+ #, tcl-format
+ msgid "fetch %s"
+ msgstr "получение %s"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr "Получение изменений из %s "
+ # carbon copy
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr "чистка внешнего %s"
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr "Чистка ветвей слежения, удаленных из %s"
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr "отправить %s"
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr "Отправка изменений в %s "
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr "Отправка %s %s в %s"
+ #: lib/transport.tcl:89
+ msgid "Push Branches"
+ msgstr "Отправить изменения в ветвях"
+ #: lib/transport.tcl:103
+ msgid "Source Branches"
+ msgstr "Исходные ветви"
+ #: lib/transport.tcl:120
+ msgid "Destination Repository"
+ msgstr "Репозиторий назначения"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr "Настройки отправки"
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr "Намеренно переписать существующую ветвь (возможна потеря изменений)"
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr "Использовать thin pack (для медленных сетевых подключений)"
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr "Передать таги"
+ #~ msgid "Next >"
+ #~ msgstr "Дальше >"
diff --combined git-gui/po/zh_cn.po
index 0000000000000000000000000000000000000000,621c9479b2b90c13119985df889af70b206e3cbd..621c9479b2b90c13119985df889af70b206e3cbd
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,1769 +1,1769 @@@
+ # Translation of git-gui to Chinese
+ # Copyright (C) 2007 Shawn Pearce
+ # This file is distributed under the same license as the git-gui package.
+ # Xudong Guan <xudong.guan@gmail.com>, 2007.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: git-gui\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-10-10 04:04-0400\n"
+ "PO-Revision-Date: 2007-07-21 01:23-0700\n"
+ "Last-Translator: Xudong Guan <xudong.guan@gmail.com>\n"
+ "Language-Team: Chinese\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+ #: git-gui.sh:763
+ msgid "git-gui: fatal error"
+ msgstr ""
+ #: git-gui.sh:595
+ #, tcl-format
+ msgid "Invalid font specified in %s:"
+ msgstr ""
+ #: git-gui.sh:620
+ msgid "Main Font"
+ msgstr ""
+ #: git-gui.sh:621
+ msgid "Diff/Console Font"
+ msgstr ""
+ #: git-gui.sh:635
+ msgid "Cannot find git in PATH."
+ msgstr ""
+ #: git-gui.sh:662
+ msgid "Cannot parse Git version string:"
+ msgstr ""
+ #: git-gui.sh:680
+ #, tcl-format
+ msgid ""
+ "Git version cannot be determined.\n"
+ "\n"
+ "%s claims it is version '%s'.\n"
+ "\n"
+ "%s requires at least Git 1.5.0 or later.\n"
+ "\n"
+ "Assume '%s' is version 1.5.0?\n"
+ msgstr ""
+ #: git-gui.sh:853
+ msgid "Git directory not found:"
+ msgstr ""
+ #: git-gui.sh:860
+ msgid "Cannot move to top of working directory:"
+ msgstr ""
+ #: git-gui.sh:867
+ msgid "Cannot use funny .git directory:"
+ msgstr ""
+ #: git-gui.sh:872
+ msgid "No working directory"
+ msgstr ""
+ #: git-gui.sh:1019
+ msgid "Refreshing file status..."
+ msgstr ""
+ #: git-gui.sh:1084
+ msgid "Scanning for modified files ..."
+ msgstr ""
+ #: git-gui.sh:1259 lib/browser.tcl:245
+ #, fuzzy
+ msgid "Ready."
+ msgstr "重做"
+ #: git-gui.sh:1525
+ msgid "Unmodified"
+ msgstr ""
+ #: git-gui.sh:1527
+ msgid "Modified, not staged"
+ msgstr ""
+ #: git-gui.sh:1528 git-gui.sh:1533
+ #, fuzzy
+ msgid "Staged for commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:1529 git-gui.sh:1534
+ #, fuzzy
+ msgid "Portions staged for commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:1530 git-gui.sh:1535
+ msgid "Staged for commit, missing"
+ msgstr ""
+ #: git-gui.sh:1532
+ msgid "Untracked, not staged"
+ msgstr ""
+ #: git-gui.sh:1537
+ msgid "Missing"
+ msgstr ""
+ #: git-gui.sh:1538
+ msgid "Staged for removal"
+ msgstr ""
+ #: git-gui.sh:1539
+ msgid "Staged for removal, still present"
+ msgstr ""
+ #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+ msgid "Requires merge resolution"
+ msgstr ""
+ #: git-gui.sh:1579
+ msgid "Starting gitk... please wait..."
+ msgstr ""
+ #: git-gui.sh:1588
+ #, tcl-format
+ msgid ""
+ "Unable to start gitk:\n"
+ "\n"
+ "%s does not exist"
+ msgstr ""
+ #: git-gui.sh:1788 lib/choose_repository.tcl:32
+ msgid "Repository"
+ msgstr "版本树"
+ #: git-gui.sh:1789
+ msgid "Edit"
+ msgstr "编辑"
+ #: git-gui.sh:1791 lib/choose_rev.tcl:560
+ msgid "Branch"
+ msgstr "分支"
+ #: git-gui.sh:1794 lib/choose_rev.tcl:547
+ #, fuzzy
+ msgid "Commit@@noun"
+ msgstr "提交"
+ #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+ msgid "Merge"
+ msgstr "合并"
+ #: git-gui.sh:1798 lib/choose_rev.tcl:556
+ #, fuzzy
+ msgid "Remote"
+ msgstr "改名..."
+ #: git-gui.sh:1807
+ msgid "Browse Current Branch's Files"
+ msgstr "浏览当前分支文件"
+ #: git-gui.sh:1811
+ #, fuzzy
+ msgid "Browse Branch Files..."
+ msgstr "浏览当前分支文件"
+ #: git-gui.sh:1816
+ msgid "Visualize Current Branch's History"
+ msgstr "调用gitk显示当前分支"
+ #: git-gui.sh:1820
+ msgid "Visualize All Branch History"
+ msgstr "调用gitk显示所有分支"
+ #: git-gui.sh:1827
+ #, fuzzy, tcl-format
+ msgid "Browse %s's Files"
+ msgstr "浏览当前分支文件"
+ #: git-gui.sh:1829
+ #, fuzzy, tcl-format
+ msgid "Visualize %s's History"
+ msgstr "调用gitk显示所有分支"
+ #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+ msgid "Database Statistics"
+ msgstr "数据库统计数据"
+ #: git-gui.sh:1837 lib/database.tcl:34
+ msgid "Compress Database"
+ msgstr "压缩数据库"
+ #: git-gui.sh:1840
+ msgid "Verify Database"
+ msgstr "验证数据库"
+ #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
+ #: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+ msgid "Create Desktop Icon"
+ msgstr "创建桌面图标"
+ #: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+ msgid "Quit"
+ msgstr "退出"
+ #: git-gui.sh:1867
+ msgid "Undo"
+ msgstr "撤销"
+ #: git-gui.sh:1870
+ msgid "Redo"
+ msgstr "重做"
+ #: git-gui.sh:1874 git-gui.sh:2366
+ msgid "Cut"
+ msgstr "剪切"
+ #: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+ #: lib/console.tcl:67
+ msgid "Copy"
+ msgstr "复制"
+ #: git-gui.sh:1880 git-gui.sh:2372
+ msgid "Paste"
+ msgstr "粘贴"
+ #: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+ #: lib/remote_branch_delete.tcl:38
+ msgid "Delete"
+ msgstr "删除"
+ #: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+ msgid "Select All"
+ msgstr "全选"
+ #: git-gui.sh:1896
+ msgid "Create..."
+ msgstr "新建..."
+ #: git-gui.sh:1902
+ msgid "Checkout..."
+ msgstr "切换..."
+ #: git-gui.sh:1908
+ msgid "Rename..."
+ msgstr "改名..."
+ #: git-gui.sh:1913 git-gui.sh:2012
+ msgid "Delete..."
+ msgstr "删除..."
+ #: git-gui.sh:1918
+ msgid "Reset..."
+ msgstr "重置所有修动..."
+ #: git-gui.sh:1930 git-gui.sh:2313
+ msgid "New Commit"
+ msgstr "新提交"
+ #: git-gui.sh:1938 git-gui.sh:2320
+ msgid "Amend Last Commit"
+ msgstr "修订上次提交"
+ #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+ msgid "Rescan"
+ msgstr "重新扫描"
+ #: git-gui.sh:1953
+ #, fuzzy
+ msgid "Stage To Commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:1958
+ #, fuzzy
+ msgid "Stage Changed Files To Commit"
+ msgstr "将被提交的修改"
+ #: git-gui.sh:1964
+ msgid "Unstage From Commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:1969 lib/index.tcl:352
+ msgid "Revert Changes"
+ msgstr "恢复修改"
+ #: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+ msgid "Sign Off"
+ msgstr "签名"
+ #: git-gui.sh:1980 git-gui.sh:2296
+ #, fuzzy
+ msgid "Commit@@verb"
+ msgstr "提交"
+ #: git-gui.sh:1991
+ msgid "Local Merge..."
+ msgstr "本地合并..."
+ #: git-gui.sh:1996
+ msgid "Abort Merge..."
+ msgstr "取消合并..."
+ #: git-gui.sh:2008
+ msgid "Push..."
+ msgstr "上传..."
+ #: git-gui.sh:2019 lib/choose_repository.tcl:41
+ msgid "Apple"
+ msgstr "苹果"
+ #: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
+ #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+ #, tcl-format
+ msgid "About %s"
+ msgstr "关于%s"
+ #: git-gui.sh:2026
+ msgid "Preferences..."
+ msgstr ""
+ #: git-gui.sh:2034 git-gui.sh:2558
+ msgid "Options..."
+ msgstr "选项..."
+ #: git-gui.sh:2040 lib/choose_repository.tcl:47
+ msgid "Help"
+ msgstr "帮助"
+ #: git-gui.sh:2081
+ msgid "Online Documentation"
+ msgstr "在线文档"
+ #: git-gui.sh:2165
+ #, tcl-format
+ msgid "fatal: cannot stat path %s: No such file or directory"
+ msgstr ""
+ #: git-gui.sh:2198
+ msgid "Current Branch:"
+ msgstr "当前分支:"
+ #: git-gui.sh:2219
+ #, fuzzy
+ msgid "Staged Changes (Will Commit)"
+ msgstr "将被提交的修改"
+ #: git-gui.sh:2239
+ msgid "Unstaged Changes"
+ msgstr ""
+ #: git-gui.sh:2286
+ msgid "Stage Changed"
+ msgstr ""
+ #: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+ msgid "Push"
+ msgstr "上传"
+ #: git-gui.sh:2332
+ msgid "Initial Commit Message:"
+ msgstr "初始提交描述:"
+ #: git-gui.sh:2333
+ msgid "Amended Commit Message:"
+ msgstr "修订提交描述:"
+ #: git-gui.sh:2334
+ msgid "Amended Initial Commit Message:"
+ msgstr "修订初始提交描述:"
+ #: git-gui.sh:2335
+ msgid "Amended Merge Commit Message:"
+ msgstr "修订合并提交描述:"
+ #: git-gui.sh:2336
+ msgid "Merge Commit Message:"
+ msgstr "合并提交描述:"
+ #: git-gui.sh:2337
+ msgid "Commit Message:"
+ msgstr "提交描述:"
+ #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+ msgid "Copy All"
+ msgstr "全部复制"
+ #: git-gui.sh:2406 lib/blame.tcl:104
+ msgid "File:"
+ msgstr ""
+ #: git-gui.sh:2508
+ msgid "Refresh"
+ msgstr "刷新"
+ #: git-gui.sh:2529
+ msgid "Apply/Reverse Hunk"
+ msgstr "应用/撤消此修改块"
+ #: git-gui.sh:2535
+ msgid "Decrease Font Size"
+ msgstr "缩小字体"
+ #: git-gui.sh:2539
+ msgid "Increase Font Size"
+ msgstr "放大字体"
+ #: git-gui.sh:2544
+ msgid "Show Less Context"
+ msgstr "显示更多diff上下文"
+ #: git-gui.sh:2551
+ msgid "Show More Context"
+ msgstr "显示更少diff上下文"
+ #: git-gui.sh:2565
+ #, fuzzy
+ msgid "Unstage Hunk From Commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:2567
+ #, fuzzy
+ msgid "Stage Hunk For Commit"
+ msgstr "从本次提交移除"
+ #: git-gui.sh:2586
+ msgid "Initializing..."
+ msgstr ""
+ #: git-gui.sh:2677
+ #, tcl-format
+ msgid ""
+ "Possible environment issues exist.\n"
+ "\n"
+ "The following environment variables are probably\n"
+ "going to be ignored by any Git subprocess run\n"
+ "by %s:\n"
+ "\n"
+ msgstr ""
+ #: git-gui.sh:2707
+ msgid ""
+ "\n"
+ "This is due to a known issue with the\n"
+ "Tcl binary distributed by Cygwin."
+ msgstr ""
+ #: git-gui.sh:2712
+ #, tcl-format
+ msgid ""
+ "\n"
+ "\n"
+ "A good replacement for %s\n"
+ "is placing values for the user.name and\n"
+ "user.email settings into your personal\n"
+ "~/.gitconfig file.\n"
+ msgstr ""
+ #: lib/about.tcl:25
+ msgid "git-gui - a graphical user interface for Git."
+ msgstr ""
+ #: lib/blame.tcl:77
+ msgid "File Viewer"
+ msgstr ""
+ #: lib/blame.tcl:81
+ #, fuzzy
+ msgid "Commit:"
+ msgstr "提交"
+ #: lib/blame.tcl:249
+ #, fuzzy
+ msgid "Copy Commit"
+ msgstr "提交"
+ #: lib/blame.tcl:369
+ #, tcl-format
+ msgid "Reading %s..."
+ msgstr ""
+ #: lib/blame.tcl:473
+ msgid "Loading copy/move tracking annotations..."
+ msgstr ""
+ #: lib/blame.tcl:493
+ msgid "lines annotated"
+ msgstr ""
+ #: lib/blame.tcl:674
+ msgid "Loading original location annotations..."
+ msgstr ""
+ #: lib/blame.tcl:677
+ msgid "Annotation complete."
+ msgstr ""
+ #: lib/blame.tcl:731
+ msgid "Loading annotation..."
+ msgstr ""
+ #: lib/blame.tcl:787
+ msgid "Author:"
+ msgstr ""
+ #: lib/blame.tcl:791
+ #, fuzzy
+ msgid "Committer:"
+ msgstr "提交"
+ #: lib/blame.tcl:796
+ msgid "Original File:"
+ msgstr ""
+ #: lib/blame.tcl:910
+ msgid "Originally By:"
+ msgstr ""
+ #: lib/blame.tcl:916
+ msgid "In File:"
+ msgstr ""
+ #: lib/blame.tcl:921
+ msgid "Copied Or Moved Here By:"
+ msgstr ""
+ #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
+ #, fuzzy
+ msgid "Checkout Branch"
+ msgstr "当前分支:"
+ #: lib/branch_checkout.tcl:23
+ #, fuzzy
+ msgid "Checkout"
+ msgstr "切换..."
+ #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
+ #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
+ #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
+ #: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+ msgid "Cancel"
+ msgstr ""
+ #: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+ msgid "Revision"
+ msgstr ""
+ #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+ #, fuzzy
+ msgid "Options"
+ msgstr "选项..."
+ #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92
+ msgid "Fetch Tracking Branch"
+ msgstr ""
+ #: lib/branch_checkout.tcl:44
+ msgid "Detach From Local Branch"
+ msgstr ""
+ #: lib/branch_create.tcl:22
+ #, fuzzy
+ msgid "Create Branch"
+ msgstr "当前分支:"
+ #: lib/branch_create.tcl:27
+ #, fuzzy
+ msgid "Create New Branch"
+ msgstr "当前分支:"
+ #: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+ #, fuzzy
+ msgid "Create"
+ msgstr "新建..."
+ #: lib/branch_create.tcl:40
+ #, fuzzy
+ msgid "Branch Name"
+ msgstr "分支"
+ #: lib/branch_create.tcl:43
+ msgid "Name:"
+ msgstr ""
+ #: lib/branch_create.tcl:58
+ msgid "Match Tracking Branch Name"
+ msgstr ""
+ #: lib/branch_create.tcl:66
+ msgid "Starting Revision"
+ msgstr ""
+ #: lib/branch_create.tcl:72
+ msgid "Update Existing Branch:"
+ msgstr ""
+ #: lib/branch_create.tcl:75
+ msgid "No"
+ msgstr ""
+ #: lib/branch_create.tcl:80
+ msgid "Fast Forward Only"
+ msgstr ""
+ #: lib/branch_create.tcl:85 lib/checkout_op.tcl:514
+ #, fuzzy
+ msgid "Reset"
+ msgstr "重置所有修动..."
+ #: lib/branch_create.tcl:97
+ msgid "Checkout After Creation"
+ msgstr ""
+ #: lib/branch_create.tcl:131
+ msgid "Please select a tracking branch."
+ msgstr ""
+ #: lib/branch_create.tcl:140
+ #, tcl-format
+ msgid "Tracking branch %s is not a branch in the remote repository."
+ msgstr ""
+ #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
+ msgid "Please supply a branch name."
+ msgstr ""
+ #: lib/branch_create.tcl:164 lib/branch_rename.tcl:106
+ #, tcl-format
+ msgid "'%s' is not an acceptable branch name."
+ msgstr ""
+ #: lib/branch_delete.tcl:15
+ #, fuzzy
+ msgid "Delete Branch"
+ msgstr "当前分支:"
+ #: lib/branch_delete.tcl:20
+ msgid "Delete Local Branch"
+ msgstr ""
+ #: lib/branch_delete.tcl:37
+ #, fuzzy
+ msgid "Local Branches"
+ msgstr "分支"
+ #: lib/branch_delete.tcl:52
+ msgid "Delete Only If Merged Into"
+ msgstr ""
+ #: lib/branch_delete.tcl:54
+ msgid "Always (Do not perform merge test.)"
+ msgstr ""
+ #: lib/branch_delete.tcl:103
+ #, tcl-format
+ msgid "The following branches are not completely merged into %s:"
+ msgstr ""
+ #: lib/branch_delete.tcl:115
+ msgid ""
+ "Recovering deleted branches is difficult. \n"
+ "\n"
+ " Delete the selected branches?"
+ msgstr ""
+ #: lib/branch_delete.tcl:141
+ #, tcl-format
+ msgid ""
+ "Failed to delete branches:\n"
+ "%s"
+ msgstr ""
+ #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
+ #, fuzzy
+ msgid "Rename Branch"
+ msgstr "当前分支:"
+ #: lib/branch_rename.tcl:26
+ #, fuzzy
+ msgid "Rename"
+ msgstr "改名..."
+ #: lib/branch_rename.tcl:36
+ #, fuzzy
+ msgid "Branch:"
+ msgstr "分支"
+ #: lib/branch_rename.tcl:39
+ msgid "New Name:"
+ msgstr ""
+ #: lib/branch_rename.tcl:75
+ msgid "Please select a branch to rename."
+ msgstr ""
+ #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179
+ #, tcl-format
+ msgid "Branch '%s' already exists."
+ msgstr ""
+ #: lib/branch_rename.tcl:117
+ #, tcl-format
+ msgid "Failed to rename '%s'."
+ msgstr ""
+ #: lib/browser.tcl:17
+ msgid "Starting..."
+ msgstr ""
+ #: lib/browser.tcl:26
+ msgid "File Browser"
+ msgstr ""
+ #: lib/browser.tcl:125 lib/browser.tcl:142
+ #, tcl-format
+ msgid "Loading %s..."
+ msgstr ""
+ #: lib/browser.tcl:186
+ msgid "[Up To Parent]"
+ msgstr ""
+ #: lib/browser.tcl:266 lib/browser.tcl:272
+ #, fuzzy
+ msgid "Browse Branch Files"
+ msgstr "浏览当前分支文件"
+ #: lib/browser.tcl:277 lib/choose_repository.tcl:215
+ #: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
+ #: lib/choose_repository.tcl:811
+ msgid "Browse"
+ msgstr ""
+ #: lib/checkout_op.tcl:79
+ #, tcl-format
+ msgid "Fetching %s from %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:127
+ #, tcl-format
+ msgid "fatal: Cannot resolve %s"
+ msgstr ""
+ #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+ msgid "Close"
+ msgstr ""
+ #: lib/checkout_op.tcl:169
+ #, tcl-format
+ msgid "Branch '%s' does not exist."
+ msgstr ""
+ #: lib/checkout_op.tcl:206
+ #, tcl-format
+ msgid ""
+ "Branch '%s' already exists.\n"
+ "\n"
+ "It cannot fast-forward to %s.\n"
+ "A merge is required."
+ msgstr ""
+ #: lib/checkout_op.tcl:220
+ #, tcl-format
+ msgid "Merge strategy '%s' not supported."
+ msgstr ""
+ #: lib/checkout_op.tcl:239
+ #, tcl-format
+ msgid "Failed to update '%s'."
+ msgstr ""
+ #: lib/checkout_op.tcl:251
+ msgid "Staging area (index) is already locked."
+ msgstr ""
+ #: lib/checkout_op.tcl:266
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before the current branch can be changed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/checkout_op.tcl:322
+ #, tcl-format
+ msgid "Updating working directory to '%s'..."
+ msgstr ""
+ #: lib/checkout_op.tcl:353
+ #, tcl-format
+ msgid "Aborted checkout of '%s' (file level merging is required)."
+ msgstr ""
+ #: lib/checkout_op.tcl:354
+ msgid "File level merge required."
+ msgstr ""
+ #: lib/checkout_op.tcl:358
+ #, tcl-format
+ msgid "Staying on branch '%s'."
+ msgstr ""
+ #: lib/checkout_op.tcl:429
+ msgid ""
+ "You are no longer on a local branch.\n"
+ "\n"
+ "If you wanted to be on a branch, create one now starting from 'This Detached "
+ "Checkout'."
+ msgstr ""
+ #: lib/checkout_op.tcl:446
+ #, fuzzy, tcl-format
+ msgid "Checked out '%s'."
+ msgstr "切换..."
+ #: lib/checkout_op.tcl:478
+ #, tcl-format
+ msgid "Resetting '%s' to '%s' will lose the following commits:"
+ msgstr ""
+ #: lib/checkout_op.tcl:500
+ msgid "Recovering lost commits may not be easy."
+ msgstr ""
+ #: lib/checkout_op.tcl:505
+ #, tcl-format
+ msgid "Reset '%s'?"
+ msgstr ""
+ #: lib/checkout_op.tcl:510 lib/merge.tcl:164
+ msgid "Visualize"
+ msgstr ""
+ #: lib/checkout_op.tcl:578
+ #, tcl-format
+ msgid ""
+ "Failed to set current branch.\n"
+ "\n"
+ "This working directory is only partially switched.  We successfully updated "
+ "your files, but failed to update an internal Git file.\n"
+ "\n"
+ "This should not have occurred.  %s will now close and give up."
+ msgstr ""
+ #: lib/choose_font.tcl:39
+ #, fuzzy
+ msgid "Select"
+ msgstr "全选"
+ #: lib/choose_font.tcl:53
+ msgid "Font Family"
+ msgstr ""
+ #: lib/choose_font.tcl:73
+ #, fuzzy
+ msgid "Font Size"
+ msgstr "缩小字体"
+ #: lib/choose_font.tcl:90
+ msgid "Font Example"
+ msgstr ""
+ #: lib/choose_font.tcl:101
+ msgid ""
+ "This is example text.\n"
+ "If you like this text, it can be your font."
+ msgstr ""
+ #: lib/choose_repository.tcl:25
+ msgid "Git Gui"
+ msgstr ""
+ #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+ #, fuzzy
+ msgid "Create New Repository"
+ msgstr "版本树"
+ #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+ #, fuzzy
+ msgid "Clone Existing Repository"
+ msgstr "版本树"
+ #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+ #, fuzzy
+ msgid "Open Existing Repository"
+ msgstr "版本树"
+ #: lib/choose_repository.tcl:91
+ msgid "Next >"
+ msgstr ""
+ #: lib/choose_repository.tcl:152
+ #, tcl-format
+ msgid "Location %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
+ #: lib/choose_repository.tcl:172
+ #, tcl-format
+ msgid "Failed to create repository %s:"
+ msgstr ""
+ #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+ msgid "Directory:"
+ msgstr ""
+ #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
+ #: lib/choose_repository.tcl:834
+ #, fuzzy
+ msgid "Git Repository"
+ msgstr "版本树"
+ #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+ #, tcl-format
+ msgid "Directory %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:265
+ #, tcl-format
+ msgid "File %s already exists."
+ msgstr ""
+ #: lib/choose_repository.tcl:286
+ msgid "Clone"
+ msgstr ""
+ #: lib/choose_repository.tcl:299
+ msgid "URL:"
+ msgstr ""
+ #: lib/choose_repository.tcl:319
+ msgid "Clone Type:"
+ msgstr ""
+ #: lib/choose_repository.tcl:325
+ msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
+ msgstr ""
+ #: lib/choose_repository.tcl:331
+ msgid "Full Copy (Slower, Redundant Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:337
+ msgid "Shared (Fastest, Not Recommended, No Backup)"
+ msgstr ""
+ #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
+ #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
+ #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+ #, tcl-format
+ msgid "Not a Git repository: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:405
+ msgid "Standard only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:409
+ msgid "Shared only available for local repository."
+ msgstr ""
+ #: lib/choose_repository.tcl:439
+ msgid "Failed to configure origin"
+ msgstr ""
+ #: lib/choose_repository.tcl:451
+ msgid "Counting objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:452
+ msgid "buckets"
+ msgstr ""
+ #: lib/choose_repository.tcl:476
+ #, tcl-format
+ msgid "Unable to copy objects/info/alternates: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:512
+ #, tcl-format
+ msgid "Nothing to clone from %s."
+ msgstr ""
+ #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
+ #: lib/choose_repository.tcl:740
+ msgid "The 'master' branch has not been initialized."
+ msgstr ""
+ #: lib/choose_repository.tcl:527
+ msgid "Hardlinks are unavailable.  Falling back to copying."
+ msgstr ""
+ #: lib/choose_repository.tcl:539
+ #, tcl-format
+ msgid "Cloning from %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:570
+ #, fuzzy
+ msgid "Copying objects"
+ msgstr "压缩数据库"
+ #: lib/choose_repository.tcl:571
+ msgid "KiB"
+ msgstr ""
+ #: lib/choose_repository.tcl:595
+ #, tcl-format
+ msgid "Unable to copy object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:605
+ msgid "Linking objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:606
+ msgid "objects"
+ msgstr ""
+ #: lib/choose_repository.tcl:614
+ #, tcl-format
+ msgid "Unable to hardlink object: %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:669
+ msgid "Cannot fetch branches and objects.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:680
+ msgid "Cannot fetch tags.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:704
+ msgid "Cannot determine HEAD.  See console output for details."
+ msgstr ""
+ #: lib/choose_repository.tcl:713
+ #, tcl-format
+ msgid "Unable to cleanup %s"
+ msgstr ""
+ #: lib/choose_repository.tcl:719
+ msgid "Clone failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:726
+ msgid "No default branch obtained."
+ msgstr ""
+ #: lib/choose_repository.tcl:737
+ #, tcl-format
+ msgid "Cannot resolve %s as a commit."
+ msgstr ""
+ #: lib/choose_repository.tcl:749
+ msgid "Creating working directory"
+ msgstr ""
+ #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
+ #: lib/index.tcl:149
+ msgid "files"
+ msgstr ""
+ #: lib/choose_repository.tcl:779
+ msgid "Initial file checkout failed."
+ msgstr ""
+ #: lib/choose_repository.tcl:795
+ msgid "Open"
+ msgstr ""
+ #: lib/choose_repository.tcl:805
+ #, fuzzy
+ msgid "Repository:"
+ msgstr "版本树"
+ #: lib/choose_repository.tcl:854
+ #, tcl-format
+ msgid "Failed to open repository %s:"
+ msgstr ""
+ #: lib/choose_rev.tcl:53
+ msgid "This Detached Checkout"
+ msgstr ""
+ #: lib/choose_rev.tcl:60
+ msgid "Revision Expression:"
+ msgstr ""
+ #: lib/choose_rev.tcl:74
+ #, fuzzy
+ msgid "Local Branch"
+ msgstr "分支"
+ #: lib/choose_rev.tcl:79
+ #, fuzzy
+ msgid "Tracking Branch"
+ msgstr "当前分支:"
+ #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+ msgid "Tag"
+ msgstr ""
+ #: lib/choose_rev.tcl:317
+ #, tcl-format
+ msgid "Invalid revision: %s"
+ msgstr ""
+ #: lib/choose_rev.tcl:338
+ msgid "No revision selected."
+ msgstr ""
+ #: lib/choose_rev.tcl:346
+ msgid "Revision expression is empty."
+ msgstr ""
+ #: lib/choose_rev.tcl:530
+ msgid "Updated"
+ msgstr ""
+ #: lib/choose_rev.tcl:558
+ msgid "URL"
+ msgstr ""
+ #: lib/commit.tcl:9
+ msgid ""
+ "There is nothing to amend.\n"
+ "\n"
+ "You are about to create the initial commit.  There is no commit before this "
+ "to amend.\n"
+ msgstr ""
+ #: lib/commit.tcl:18
+ msgid ""
+ "Cannot amend while merging.\n"
+ "\n"
+ "You are currently in the middle of a merge that has not been fully "
+ "completed.  You cannot amend the prior commit unless you first abort the "
+ "current merge activity.\n"
+ msgstr ""
+ #: lib/commit.tcl:49
+ msgid "Error loading commit data for amend:"
+ msgstr ""
+ #: lib/commit.tcl:76
+ msgid "Unable to obtain your identity:"
+ msgstr ""
+ #: lib/commit.tcl:81
+ msgid "Invalid GIT_COMMITTER_IDENT:"
+ msgstr ""
+ #: lib/commit.tcl:133
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before another commit can be created.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/commit.tcl:154
+ #, tcl-format
+ msgid ""
+ "Unmerged files cannot be committed.\n"
+ "\n"
+ "File %s has merge conflicts.  You must resolve them and stage the file "
+ "before committing.\n"
+ msgstr ""
+ #: lib/commit.tcl:162
+ #, tcl-format
+ msgid ""
+ "Unknown file state %s detected.\n"
+ "\n"
+ "File %s cannot be committed by this program.\n"
+ msgstr ""
+ #: lib/commit.tcl:170
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "You must stage at least 1 file before you can commit.\n"
+ msgstr ""
+ #: lib/commit.tcl:183
+ msgid ""
+ "Please supply a commit message.\n"
+ "\n"
+ "A good commit message has the following format:\n"
+ "\n"
+ "- First line: Describe in one sentance what you did.\n"
+ "- Second line: Blank\n"
+ "- Remaining lines: Describe why this change is good.\n"
+ msgstr ""
+ #: lib/commit.tcl:257
+ msgid "write-tree failed:"
+ msgstr ""
+ #: lib/commit.tcl:275
+ #, tcl-format
+ msgid "Commit %s appears to be corrupt"
+ msgstr ""
+ #: lib/commit.tcl:279
+ msgid ""
+ "No changes to commit.\n"
+ "\n"
+ "No files were modified by this commit and it was not a merge commit.\n"
+ "\n"
+ "A rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/commit.tcl:286
+ msgid "No changes to commit."
+ msgstr ""
+ #: lib/commit.tcl:303
+ #, tcl-format
+ msgid "warning: Tcl does not support encoding '%s'."
+ msgstr ""
+ #: lib/commit.tcl:317
+ msgid "commit-tree failed:"
+ msgstr ""
+ #: lib/commit.tcl:339
+ msgid "update-ref failed:"
+ msgstr ""
+ #: lib/commit.tcl:430
+ #, tcl-format
+ msgid "Created commit %s: %s"
+ msgstr ""
+ #: lib/console.tcl:57
+ msgid "Working... please wait..."
+ msgstr ""
+ #: lib/console.tcl:183
+ msgid "Success"
+ msgstr ""
+ #: lib/console.tcl:196
+ msgid "Error: Command Failed"
+ msgstr ""
+ #: lib/database.tcl:43
+ msgid "Number of loose objects"
+ msgstr ""
+ #: lib/database.tcl:44
+ msgid "Disk space used by loose objects"
+ msgstr ""
+ #: lib/database.tcl:45
+ msgid "Number of packed objects"
+ msgstr ""
+ #: lib/database.tcl:46
+ msgid "Number of packs"
+ msgstr ""
+ #: lib/database.tcl:47
+ msgid "Disk space used by packed objects"
+ msgstr ""
+ #: lib/database.tcl:48
+ msgid "Packed objects waiting for pruning"
+ msgstr ""
+ #: lib/database.tcl:49
+ msgid "Garbage files"
+ msgstr ""
+ #: lib/database.tcl:72
+ #, fuzzy
+ msgid "Compressing the object database"
+ msgstr "压缩数据库"
+ #: lib/database.tcl:83
+ msgid "Verifying the object database with fsck-objects"
+ msgstr ""
+ #: lib/database.tcl:108
+ #, tcl-format
+ msgid ""
+ "This repository currently has approximately %i loose objects.\n"
+ "\n"
+ "To maintain optimal performance it is strongly recommended that you compress "
+ "the database when more than %i loose objects exist.\n"
+ "\n"
+ "Compress the database now?"
+ msgstr ""
+ #: lib/date.tcl:25
+ #, tcl-format
+ msgid "Invalid date from Git: %s"
+ msgstr ""
+ #: lib/diff.tcl:42
+ #, tcl-format
+ msgid ""
+ "No differences detected.\n"
+ "\n"
+ "%s has no changes.\n"
+ "\n"
+ "The modification date of this file was updated by another application, but "
+ "the content within the file was not changed.\n"
+ "\n"
+ "A rescan will be automatically started to find other files which may have "
+ "the same state."
+ msgstr ""
+ #: lib/diff.tcl:81
+ #, tcl-format
+ msgid "Loading diff of %s..."
+ msgstr ""
+ #: lib/diff.tcl:114 lib/diff.tcl:184
+ #, tcl-format
+ msgid "Unable to display %s"
+ msgstr ""
+ #: lib/diff.tcl:115
+ msgid "Error loading file:"
+ msgstr ""
+ #: lib/diff.tcl:122
+ msgid "Git Repository (subproject)"
+ msgstr ""
+ #: lib/diff.tcl:134
+ msgid "* Binary file (not showing content)."
+ msgstr ""
+ #: lib/diff.tcl:185
+ msgid "Error loading diff:"
+ msgstr ""
+ #: lib/diff.tcl:302
+ msgid "Failed to unstage selected hunk."
+ msgstr ""
+ #: lib/diff.tcl:309
+ msgid "Failed to stage selected hunk."
+ msgstr ""
+ #: lib/error.tcl:12 lib/error.tcl:102
+ msgid "error"
+ msgstr ""
+ #: lib/error.tcl:28
+ msgid "warning"
+ msgstr ""
+ #: lib/error.tcl:81
+ msgid "You must correct the above errors before committing."
+ msgstr ""
+ #: lib/index.tcl:241
+ #, fuzzy, tcl-format
+ msgid "Unstaging %s from commit"
+ msgstr "从本次提交移除"
+ #: lib/index.tcl:285
+ #, tcl-format
+ msgid "Adding %s"
+ msgstr ""
+ #: lib/index.tcl:340
+ #, fuzzy, tcl-format
+ msgid "Revert changes in file %s?"
+ msgstr "恢复修改"
+ #: lib/index.tcl:342
+ #, tcl-format
+ msgid "Revert changes in these %i files?"
+ msgstr ""
+ #: lib/index.tcl:348
+ msgid "Any unstaged changes will be permanently lost by the revert."
+ msgstr ""
+ #: lib/index.tcl:351
+ msgid "Do Nothing"
+ msgstr ""
+ #: lib/merge.tcl:13
+ msgid ""
+ "Cannot merge while amending.\n"
+ "\n"
+ "You must finish amending this commit before starting any type of merge.\n"
+ msgstr ""
+ #: lib/merge.tcl:27
+ msgid ""
+ "Last scanned state does not match repository state.\n"
+ "\n"
+ "Another Git program has modified this repository since the last scan.  A "
+ "rescan must be performed before a merge can be performed.\n"
+ "\n"
+ "The rescan will be automatically started now.\n"
+ msgstr ""
+ #: lib/merge.tcl:44
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a conflicted merge.\n"
+ "\n"
+ "File %s has merge conflicts.\n"
+ "\n"
+ "You must resolve them, stage the file, and commit to complete the current "
+ "merge.  Only then can you begin another merge.\n"
+ msgstr ""
+ #: lib/merge.tcl:54
+ #, tcl-format
+ msgid ""
+ "You are in the middle of a change.\n"
+ "\n"
+ "File %s is modified.\n"
+ "\n"
+ "You should complete the current commit before starting a merge.  Doing so "
+ "will help you abort a failed merge, should the need arise.\n"
+ msgstr ""
+ #: lib/merge.tcl:106
+ #, tcl-format
+ msgid "%s of %s"
+ msgstr ""
+ #: lib/merge.tcl:119
+ #, tcl-format
+ msgid "Merging %s and %s"
+ msgstr ""
+ #: lib/merge.tcl:131
+ msgid "Merge completed successfully."
+ msgstr ""
+ #: lib/merge.tcl:133
+ msgid "Merge failed.  Conflict resolution is required."
+ msgstr ""
+ #: lib/merge.tcl:158
+ #, tcl-format
+ msgid "Merge Into %s"
+ msgstr ""
+ #: lib/merge.tcl:177
+ msgid "Revision To Merge"
+ msgstr ""
+ #: lib/merge.tcl:212
+ msgid ""
+ "Cannot abort while amending.\n"
+ "\n"
+ "You must finish amending this commit.\n"
+ msgstr ""
+ #: lib/merge.tcl:222
+ msgid ""
+ "Abort merge?\n"
+ "\n"
+ "Aborting the current merge will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with aborting the current merge?"
+ msgstr ""
+ #: lib/merge.tcl:228
+ msgid ""
+ "Reset changes?\n"
+ "\n"
+ "Resetting the changes will cause *ALL* uncommitted changes to be lost.\n"
+ "\n"
+ "Continue with resetting the current changes?"
+ msgstr ""
+ #: lib/merge.tcl:239
+ msgid "Aborting"
+ msgstr ""
+ #: lib/merge.tcl:266
+ msgid "Abort failed."
+ msgstr ""
+ #: lib/merge.tcl:268
+ msgid "Abort completed.  Ready."
+ msgstr ""
+ #: lib/option.tcl:82
+ msgid "Restore Defaults"
+ msgstr ""
+ #: lib/option.tcl:86
+ msgid "Save"
+ msgstr ""
+ #: lib/option.tcl:96
+ #, fuzzy, tcl-format
+ msgid "%s Repository"
+ msgstr "版本树"
+ #: lib/option.tcl:97
+ msgid "Global (All Repositories)"
+ msgstr ""
+ #: lib/option.tcl:103
+ msgid "User Name"
+ msgstr ""
+ #: lib/option.tcl:104
+ msgid "Email Address"
+ msgstr ""
+ #: lib/option.tcl:106
+ #, fuzzy
+ msgid "Summarize Merge Commits"
+ msgstr "修订合并提交描述:"
+ #: lib/option.tcl:107
+ msgid "Merge Verbosity"
+ msgstr ""
+ #: lib/option.tcl:108
+ msgid "Show Diffstat After Merge"
+ msgstr ""
+ #: lib/option.tcl:110
+ msgid "Trust File Modification Timestamps"
+ msgstr ""
+ #: lib/option.tcl:111
+ msgid "Prune Tracking Branches During Fetch"
+ msgstr ""
+ #: lib/option.tcl:112
+ msgid "Match Tracking Branches"
+ msgstr ""
+ #: lib/option.tcl:113
+ msgid "Number of Diff Context Lines"
+ msgstr ""
+ #: lib/option.tcl:114
+ msgid "New Branch Name Template"
+ msgstr ""
+ #: lib/option.tcl:176
+ msgid "Change Font"
+ msgstr ""
+ #: lib/option.tcl:180
+ #, tcl-format
+ msgid "Choose %s"
+ msgstr ""
+ #: lib/option.tcl:186
+ msgid "pt."
+ msgstr ""
+ #: lib/option.tcl:200
+ msgid "Preferences"
+ msgstr ""
+ #: lib/option.tcl:235
+ msgid "Failed to completely save options:"
+ msgstr ""
+ #: lib/remote.tcl:165
+ msgid "Prune from"
+ msgstr ""
+ #: lib/remote.tcl:170
+ #, fuzzy
+ msgid "Fetch from"
+ msgstr "导入"
+ #: lib/remote.tcl:213
+ #, fuzzy
+ msgid "Push to"
+ msgstr "上传"
+ #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
+ msgid "Delete Remote Branch"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:47
+ #, fuzzy
+ msgid "From Repository"
+ msgstr "版本树"
+ #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123
+ msgid "Remote:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138
+ msgid "Arbitrary URL:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:84
+ #, fuzzy
+ msgid "Branches"
+ msgstr "分支"
+ #: lib/remote_branch_delete.tcl:109
+ #, fuzzy
+ msgid "Delete Only If"
+ msgstr "删除"
+ #: lib/remote_branch_delete.tcl:111
+ msgid "Merged Into:"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:119
+ msgid "Always (Do not perform merge checks)"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:152
+ msgid "A branch is required for 'Merged Into'."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:184
+ #, tcl-format
+ msgid ""
+ "The following branches are not completely merged into %s:\n"
+ "\n"
+ " - %s"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:189
+ #, tcl-format
+ msgid ""
+ "One or more of the merge tests failed because you have not fetched the "
+ "necessary commits.  Try fetching from %s first."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:207
+ msgid "Please select one or more branches to delete."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:216
+ msgid ""
+ "Recovering deleted branches is difficult.\n"
+ "\n"
+ "Delete the selected branches?"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:226
+ #, tcl-format
+ msgid "Deleting branches from %s"
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:286
+ msgid "No repository selected."
+ msgstr ""
+ #: lib/remote_branch_delete.tcl:291
+ #, tcl-format
+ msgid "Scanning %s..."
+ msgstr ""
+ #: lib/shortcut.tcl:26 lib/shortcut.tcl:74
+ msgid "Cannot write script:"
+ msgstr ""
+ #: lib/shortcut.tcl:149
+ msgid "Cannot write icon:"
+ msgstr ""
+ #: lib/status_bar.tcl:83
+ #, tcl-format
+ msgid "%s ... %*i of %*i %s (%3i%%)"
+ msgstr ""
+ #: lib/transport.tcl:6
+ #, fuzzy, tcl-format
+ msgid "fetch %s"
+ msgstr "导入"
+ #: lib/transport.tcl:7
+ #, tcl-format
+ msgid "Fetching new changes from %s"
+ msgstr ""
+ #: lib/transport.tcl:18
+ #, tcl-format
+ msgid "remote prune %s"
+ msgstr ""
+ #: lib/transport.tcl:19
+ #, tcl-format
+ msgid "Pruning tracking branches deleted from %s"
+ msgstr ""
+ #: lib/transport.tcl:25 lib/transport.tcl:71
+ #, tcl-format
+ msgid "push %s"
+ msgstr ""
+ #: lib/transport.tcl:26
+ #, tcl-format
+ msgid "Pushing changes to %s"
+ msgstr ""
+ #: lib/transport.tcl:72
+ #, tcl-format
+ msgid "Pushing %s %s to %s"
+ msgstr ""
+ #: lib/transport.tcl:89
+ #, fuzzy
+ msgid "Push Branches"
+ msgstr "分支"
+ #: lib/transport.tcl:103
+ #, fuzzy
+ msgid "Source Branches"
+ msgstr "当前分支:"
+ #: lib/transport.tcl:120
+ #, fuzzy
+ msgid "Destination Repository"
+ msgstr "版本树"
+ #: lib/transport.tcl:158
+ msgid "Transfer Options"
+ msgstr ""
+ #: lib/transport.tcl:160
+ msgid "Force overwrite existing branch (may discard changes)"
+ msgstr ""
+ #: lib/transport.tcl:164
+ msgid "Use thin pack (for slow network connections)"
+ msgstr ""
+ #: lib/transport.tcl:168
+ msgid "Include tags"
+ msgstr ""
+ #~ msgid "Add To Commit"
+ #~ msgstr "添加到本次提交"
+ #~ msgid "Add Existing To Commit"
+ #~ msgstr "添加默认修改文件"
+ #~ msgid "Unstaged Changes (Will Not Be Committed)"
+ #~ msgstr "不被提交的修改"
+ #~ msgid "Add Existing"
+ #~ msgstr "添加默认修改文件"
+ #, fuzzy
+ #~ msgid "Push to %s..."
+ #~ msgstr "上传..."
index 0000000000000000000000000000000000000000,98f32c0a071146a202b3d8589576db26974ccbfa..98f32c0a071146a202b3d8589576db26974ccbfa
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,16 +1,16 @@@
+ #!/bin/sh
+ # Tcl ignores the next line -*- tcl -*- \
+ exec wish "$0" -- "$@"
+ if { $argc >=2 && [lindex $argv 0] == "--working-dir" } {
+       cd [lindex $argv 1]
+       set argv [lrange $argv 2 end]
+       incr argc -2
+ }
+ set gitguidir [file dirname [info script]]
+ regsub -all ";" $gitguidir "\\;" gitguidir
+ set env(PATH) "$gitguidir;$env(PATH)"
+ unset gitguidir
+ source [file join [file dirname [info script]] git-gui.tcl]