From: Junio C Hamano Date: Sat, 2 May 2009 05:11:57 +0000 (-0700) Subject: Merge git://repo.or.cz/git-gui X-Git-Tag: v1.6.3-rc4~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=a8816e7bab0354badd915c1da09421a64c982831;p=git.git Merge git://repo.or.cz/git-gui * git://repo.or.cz/git-gui: git-gui: Fixes for Mac OS X TkAqua git-gui: Update Russian translation git-gui: run post-checkout hook after clone git-gui: Ensure consistent usage of mergetool.keepBackup git-gui: fix use of undeclared variable diff_empty_count git-gui (Win): make starting via "Git GUI Here" on .git/ possible git-gui (Win): make "Explore Working Copy" more robust git-gui: run post-checkout hook on checkout git-gui: When calling post-commit hook wrong variable was cleared. git-gui: use `git --html-path` to get the location of installed HTML docs git-gui: fix deleting from the context menu with empty selection git-gui: minor spelling fix and string factorisation. git-gui: various French translation fixes git-gui: Fix merge conflict display error when filename contains spaces git-gui: don't hide the Browse button when resizing the repo chooser Append ampersand to "Target" of lnk files created by do_cygwin_shortcut git-gui: Support more git version notations. git-gui: Avoid an infinite rescan loop in handle_empty_diff. git-gui: Fix post-commit status with subject in non-locale encoding --- a8816e7bab0354badd915c1da09421a64c982831 diff --cc git-gui/Makefile index 3ad8a21b3,000000000..b3580e9e4 mode 100644,000000..100644 --- a/git-gui/Makefile +++ b/git-gui/Makefile @@@ -1,341 -1,0 +1,344 @@@ +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') +uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') + +SCRIPT_SH = git-gui.sh +GITGUI_MAIN := git-gui +GITGUI_BUILT_INS = git-citool +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 +ifeq (git-core,$(notdir $(gitexecdir))) + sharedir := $(dir $(patsubst %/,%,$(dir $(gitexecdir))))share +else + sharedir := $(dir $(gitexecdir))share +endif +endif + +ifndef INSTALL + INSTALL = install +endif + +RM_RF ?= rm -rf +RMDIR ?= rmdir + +INSTALL_D0 = $(INSTALL) -d -m 755 # space is required here +INSTALL_D1 = +INSTALL_R0 = $(INSTALL) -m 644 # space is required here +INSTALL_R1 = +INSTALL_X0 = $(INSTALL) -m 755 # 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 +REMOVE_F0 = $(RM_RF) # space is required here +REMOVE_F1 = +CLEAN_DST = true + +ifndef V + QUIET = @ + 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 -m 755 "$$dir" + INSTALL_R0 = src= + INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m 644 $$src + INSTALL_X0 = src= + INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m 755 $$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= + REMOVE_F1 = && echo ' ' REMOVE `basename "$$dst"` && $(RM_RF) "$$dst" +endif + +TCLTK_PATH ?= wish +ifeq (./,$(dir $(TCLTK_PATH))) + TCL_PATH ?= $(subst wish,tclsh,$(TCLTK_PATH)) +else + TCL_PATH ?= $(dir $(TCLTK_PATH))$(notdir $(subst wish,tclsh,$(TCLTK_PATH))) +endif + +ifeq ($(uname_S),Darwin) + TKFRAMEWORK = /Library/Frameworks/Tk.framework/Resources/Wish.app - ifeq ($(shell expr "$(uname_R)" : '9\.'),2) - TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app ++ ifeq ($(shell echo "$(uname_R)" | awk -F. '{if ($$1 >= 9) print "y"}')_$(shell test -d $(TKFRAMEWORK) || echo n),y_n) ++ TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish.app ++ ifeq ($(shell test -d $(TKFRAMEWORK) || echo n),n) ++ TKFRAMEWORK = /System/Library/Frameworks/Tk.framework/Resources/Wish\ Shell.app ++ endif + endif + TKEXECUTABLE = $(shell basename "$(TKFRAMEWORK)" .app) +endif + +ifeq ($(findstring $(MAKEFLAGS),s),s) +QUIET_GEN = +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_sed_in))) +exedir = $(dir $(gitexecdir))share/git-gui/lib + +GITGUI_SCRIPT := $$0 +GITGUI_RELATIVE := +GITGUI_MACOSXAPP := + +ifeq ($(uname_O),Cygwin) + GITGUI_SCRIPT := `cygpath --windows --absolute "$(GITGUI_SCRIPT)"` + + # Is this a Cygwin Tcl/Tk binary? If so it knows how to do + # POSIX path translation just like cygpath does and we must + # keep libdir in POSIX format so Cygwin packages of git-gui + # work no matter where the user installs them. + # + ifeq ($(shell echo 'puts [file normalize /]' | '$(TCL_PATH_SQ)'),$(shell cygpath --mixed --absolute /)) + gg_libdir_sed_in := $(gg_libdir) + else + gg_libdir_sed_in := $(shell cygpath --windows --absolute "$(gg_libdir)") + endif +else + ifeq ($(exedir),$(gg_libdir)) + GITGUI_RELATIVE := 1 + endif + gg_libdir_sed_in := $(gg_libdir) +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 + GITGUI_RELATIVE := 1 +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/$(subst \,,$(TKEXECUTABLE))'\' \ + '"$$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/$(TKEXECUTABLE) + $(QUIET_GEN)rm -rf '$@' '$@'+ && \ + mkdir -p '$@'+/Contents/MacOS && \ + mkdir -p '$@'+/Contents/Resources/Scripts && \ + cp '$(subst ','\'',$(subst \,,$(TKFRAMEWORK)/Contents/MacOS/$(TKEXECUTABLE)))' \ + '$@'+/Contents/MacOS && \ + cp macosx/git-gui.icns '$@'+/Contents/Resources && \ + sed -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ + -e 's/@@GITGUI_TKEXECUTABLE@@/$(TKEXECUTABLE)/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 + +git-gui: windows/git-gui.sh + cp $< $@ +endif + +$(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS + $(QUIET_GEN)rm -f $@ $@+ && \ + sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ + -e '1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \ + -e '1,30s|^ exec wish | exec '\''$(TCLTK_PATH_SED)'\'' |' \ + -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ + -e 's|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \ + -e '$(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \ + git-gui.sh >$@+ && \ + chmod +x $@+ && \ + mv $@+ $@ + +XGETTEXT ?= xgettext +ifdef NO_MSGFMT + MSGFMT ?= $(TCL_PATH) po/po2msg.sh +else + MSGFMT ?= msgfmt + ifneq ($(shell $(MSGFMT) --tcl -l C -d . /dev/null 2>/dev/null; echo $$?),0) + MSGFMT := $(TCL_PATH) po/po2msg.sh + endif +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) + +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 + +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 + +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)$(INSTALL_X0)git-gui--askpass $(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)' +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)$(REMOVE_F0)'$(DESTDIR_SQ)$(gitexecdir_SQ)'/git-gui--askpass $(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) +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 --cc git-gui/git-gui.sh index e018e076f,000000000..14b92ba78 mode 100755,000000..100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@@ -1,3477 -1,0 +1,3503 @@@ +#!/bin/sh +# Tcl ignores the next line -*- tcl -*- \ + if test "z$*" = zversion \ + || test "z$*" = z--version; \ + then \ + echo 'git-gui version @@GITGUI_VERSION@@'; \ + exit; \ + fi; \ + argv0=$0; \ + exec wish "$argv0" -- "$@" + +set appvers {@@GITGUI_VERSION@@} +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 +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +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}] + +###################################################################### +## +## Tcl/Tk sanity check + +if {[catch {package require Tcl 8.4} err] + || [catch {package require Tk 8.4} err] +} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -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 normalize $argv0]] + if {[file tail $oguilib] eq {git-core}} { + set oguilib [file dirname $oguilib] + } + set oguilib [file dirname $oguilib] + 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? + +if {![catch {set _verbose $env(GITGUI_VERBOSE)}]} { + unset _verbose + rename auto_load real__auto_load + proc auto_load {name args} { + puts stderr "auto_load $name" + return [uplevel 1 real__auto_load $name $args] + } + rename source real__source + proc source {name} { + puts stderr "source $name" + uplevel 1 real__source $name + } +} + +###################################################################### +## +## Internationalization (i18n) through msgcat and gettext. See +## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html + +package require msgcat + +proc _mc_trim {fmt} { + set cmk [string first @@ $fmt] + if {$cmk > 0} { + return [string range $fmt 0 [expr {$cmk - 1}]] + } + 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 {Git Gui} +set _gitdir {} +set _gitexec {} ++set _githtmldir {} +set _reponame {} +set _iscygwin {} +set _search_path {} + +set _trace [lsearch -exact $argv --trace] +if {$_trace >= 0} { + set argv [lreplace $argv $_trace $_trace] + set _trace 1 +} else { + set _trace 0 +} + +proc appname {} { + global _appname + return $_appname +} + +proc gitdir {args} { + global _gitdir + if {$args eq {}} { + return $_gitdir + } + return [eval [list file join $_gitdir] $args] +} + +proc gitexec {args} { + global _gitexec + if {$_gitexec eq {}} { + if {[catch {set _gitexec [git --exec-path]} err]} { + error "Git not installed?\n\n$err" + } + if {[is_Cygwin]} { + set _gitexec [exec cygpath \ + --windows \ + --absolute \ + $_gitexec] + } else { + set _gitexec [file normalize $_gitexec] + } + } + if {$args eq {}} { + return $_gitexec + } + return [eval [list file join $_gitexec] $args] +} + ++proc githtmldir {args} { ++ global _githtmldir ++ if {$_githtmldir eq {}} { ++ if {[catch {set _githtmldir [git --html-path]}]} { ++ # Git not installed or option not yet supported ++ return {} ++ } ++ if {[is_Cygwin]} { ++ set _githtmldir [exec cygpath \ ++ --windows \ ++ --absolute \ ++ $_githtmldir] ++ } else { ++ set _githtmldir [file normalize $_githtmldir] ++ } ++ } ++ if {$args eq {}} { ++ return $_githtmldir ++ } ++ return [eval [list file join $_githtmldir] $args] ++} ++ +proc reponame {} { + return $::_reponame +} + +proc is_MacOSX {} { + if {[tk windowingsystem] eq {aqua}} { + return 1 + } + return 0 +} + +proc is_Windows {} { + if {$::tcl_platform(platform) eq {windows}} { + return 1 + } + return 0 +} + +proc is_Cygwin {} { + global _iscygwin + if {$_iscygwin eq {}} { + if {$::tcl_platform(platform) eq {windows}} { + if {[catch {set p [exec cygpath --windir]} err]} { + set _iscygwin 0 + } else { + set _iscygwin 1 + } + } else { + set _iscygwin 0 + } + } + return $_iscygwin +} + +proc is_enabled {option} { + global enabled_options + if {[catch {set on $enabled_options($option)}]} {return 0} + return $on +} + +proc enable_option {option} { + global enabled_options + set enabled_options($option) 1 +} + +proc disable_option {option} { + global enabled_options + set enabled_options($option) 0 +} + +###################################################################### +## +## config + +proc is_many_config {name} { + switch -glob -- $name { + gui.recentrepo - + remote.*.fetch - + remote.*.push + {return 1} + * + {return 0} + } +} + +proc is_config_true {name} { + global repo_config + if {[catch {set v $repo_config($name)}]} { + return 0 + } elseif {$v eq {true} || $v eq {1} || $v eq {yes}} { + return 1 + } else { + return 0 + } +} + +proc get_config {name} { + global repo_config + if {[catch {set v $repo_config($name)}]} { + return {} + } else { + return $v + } +} + +###################################################################### +## +## handy utils + +proc _trace_exec {cmd} { + if {!$::_trace} return + set d {} + foreach v $cmd { + if {$d ne {}} { + append d { } + } + if {[regexp {[ \t\r\n'"$?*]} $v]} { + set v [sq $v] + } + append d $v + } + puts stderr $d +} + +proc _git_cmd {name} { + global _git_cmd_path + + if {[catch {set v $_git_cmd_path($name)}]} { + switch -- $name { + version - + --version - + --exec-path { return [list $::_git $name] } + } + + set p [gitexec git-$name$::_search_exe] + if {[file exists $p]} { + set v [list $p] + } elseif {[is_Windows] && [file exists [gitexec git-$name]]} { + # Try to determine what sort of magic will make + # git-$name go and do its thing, because native + # Tcl on Windows doesn't know it. + # + set p [gitexec git-$name] + set f [open $p r] + set s [gets $f] + close $f + + switch -glob -- [lindex $s 0] { + #!*sh { set i sh } + #!*perl { set i perl } + #!*python { set i python } + default { error "git-$name is not supported: $s" } + } + + upvar #0 _$i interp + if {![info exists interp]} { + set interp [_which $i] + } + if {$interp eq {}} { + error "git-$name requires $i (not in PATH)" + } + set v [concat [list $interp] [lrange $s 1 end] [list $p]] + } else { + # Assume it is builtin to git somehow and we + # aren't actually able to see a file for it. + # + set v [list $::_git $name] + } + set _git_cmd_path($name) $v + } + return $v +} + +proc _which {what args} { + global env _search_exe _search_path + + if {$_search_path eq {}} { + if {[is_Cygwin] && [regexp {^(/|\.:)} $env(PATH)]} { + set _search_path [split [exec cygpath \ + --windows \ + --path \ + --absolute \ + $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 { + set _search_path [split $env(PATH) :] + set _search_exe {} + } + } + + if {[is_Windows] && [lsearch -exact $args -script] >= 0} { + set suffix {} + } else { + set suffix $_search_exe + } + + foreach p $_search_path { + set p [file join $p $what$suffix] + if {[file exists $p]} { + return [file normalize $p] + } + } + return {} +} + +proc _lappend_nice {cmd_var} { + global _nice + upvar $cmd_var cmd + + if {![info exists _nice]} { + set _nice [_which nice] + } + if {$_nice ne {}} { + lappend cmd $_nice + } +} + +proc git {args} { + set opt [list] + + while {1} { + switch -- [lindex $args 0] { + --nice { + _lappend_nice opt + } + + default { + break + } + + } + + set args [lrange $args 1 end] + } + + set cmdp [_git_cmd [lindex $args 0]] + set args [lrange $args 1 end] + + _trace_exec [concat $opt $cmdp $args] + set result [eval exec $opt $cmdp $args] + if {$::_trace} { + puts stderr "< $result" + } + return $result +} + +proc _open_stdout_stderr {cmd} { + _trace_exec $cmd + if {[catch { + set fd [open [concat [list | ] $cmd] r] + } err]} { + if { [lindex $cmd end] eq {2>@1} + && $err eq {can not find channel named "1"} + } { + # Older versions of Tcl 8.4 don't have this 2>@1 IO + # redirect operator. Fallback to |& cat for those. + # The command was not actually started, so its safe + # to try to start it a second time. + # + set fd [open [concat \ + [list | ] \ + [lrange $cmd 0 end-1] \ + [list |& cat] \ + ] r] + } else { + error $err + } + } + fconfigure $fd -eofchar {} + return $fd +} + +proc git_read {args} { + set opt [list] + + while {1} { + switch -- [lindex $args 0] { + --nice { + _lappend_nice opt + } + + --stderr { + lappend args 2>@1 + } + + default { + break + } + + } + + set args [lrange $args 1 end] + } + + set cmdp [_git_cmd [lindex $args 0]] + set args [lrange $args 1 end] + + return [_open_stdout_stderr [concat $opt $cmdp $args]] +} + +proc git_write {args} { + set opt [list] + + while {1} { + switch -- [lindex $args 0] { + --nice { + _lappend_nice opt + } + + default { + break + } + + } + + set args [lrange $args 1 end] + } + + set cmdp [_git_cmd [lindex $args 0]] + set args [lrange $args 1 end] + + _trace_exec [concat $opt $cmdp $args] + return [open [concat [list | ] $opt $cmdp $args] w] +} + +proc githook_read {hook_name args} { + set pchook [gitdir hooks $hook_name] + lappend args 2>@1 + + # On Windows [file executable] might lie so we need to ask + # the shell if the hook is executable. Yes that's annoying. + # + if {[is_Windows]} { + upvar #0 _sh interp + if {![info exists interp]} { + set interp [_which sh] + } + if {$interp eq {}} { + error "hook execution requires sh (not in PATH)" + } + + set scr {if test -x "$1";then exec "$@";fi} + set sh_c [list $interp -c $scr $interp $pchook] + return [_open_stdout_stderr [concat $sh_c $args]] + } + + if {[file executable $pchook]} { + return [_open_stdout_stderr [concat [list $pchook] $args]] + } + + return {} +} + +proc kill_file_process {fd} { + set process [pid $fd] + + catch { + if {[is_Windows]} { + # Use a Cygwin-specific flag to allow killing + # native Windows processes + exec kill -f $process + } else { + exec kill $process + } + } +} + +proc gitattr {path attr default} { + if {[catch {set r [git check-attr $attr -- $path]}]} { + set r unspecified + } else { + set r [join [lrange [split $r :] 2 end] :] + regsub {^ } $r {} r + } + if {$r eq {unspecified}} { + return $default + } + return $r +} + +proc sq {value} { + regsub -all ' $value "'\\''" value + return "'$value'" +} + +proc load_current_branch {} { + global current_branch is_detached + + set fd [open [gitdir HEAD] r] + if {[gets $fd ref] < 1} { + set ref {} + } + close $fd + + set pfx {ref: refs/heads/} + set len [string length $pfx] + if {[string equal -length $len $pfx $ref]} { + # We're on a branch. It might not exist. But + # HEAD looks good enough to be a branch. + # + set current_branch [string range $ref $len end] + set is_detached 0 + } else { + # Assume this is a detached head. + # + set current_branch HEAD + set is_detached 1 + } +} + +auto_load tk_optionMenu +rename tk_optionMenu real__tkOptionMenu +proc tk_optionMenu {w varName args} { + set m [eval real__tkOptionMenu $w $varName $args] + $m configure -font font_ui + $w configure -font font_ui + return $m +} + +proc rmsel_tag {text} { + $text tag conf sel \ + -background [$text cget -background] \ + -foreground [$text cget -foreground] \ + -borderwidth 0 + $text tag conf in_sel -background lightgray + bind $text break + return $text +} + +set root_exists 0 +bind . { + bind . {} + set root_exists 1 +} + +if {[is_Windows]} { + wm iconbitmap . -default $oguilib/git-gui.ico + set ::tk::AlwaysShowSelection 1 + + # Spoof an X11 display for SSH + if {![info exists env(DISPLAY)]} { + set env(DISPLAY) :9999 + } +} else { + catch { + image create photo gitlogo -width 16 -height 16 + + gitlogo put #33CC33 -to 7 0 9 2 + gitlogo put #33CC33 -to 4 2 12 4 + gitlogo put #33CC33 -to 7 4 9 6 + gitlogo put #CC3333 -to 4 6 12 8 + gitlogo put gray26 -to 4 9 6 10 + gitlogo put gray26 -to 3 10 6 12 + gitlogo put gray26 -to 8 9 13 11 + gitlogo put gray26 -to 8 11 10 12 + gitlogo put gray26 -to 11 11 13 14 + gitlogo put gray26 -to 3 12 5 14 + gitlogo put gray26 -to 5 13 + gitlogo put gray26 -to 10 13 + gitlogo put gray26 -to 4 14 12 15 + gitlogo put gray26 -to 5 15 11 16 + gitlogo redither + + wm iconphoto . -default gitlogo + } +} + +###################################################################### +## +## 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 ++ Labelframe Listbox Message + Radiobutton Spinbox Text} { + option add *$class.font font_ui +} ++if {![is_MacOSX]} { ++ option add *Menu.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 $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 $cmd + bind $w $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(branch.autosetupmerge) true +set default_config(merge.tool) {} - set default_config(merge.keepbackup) true ++set default_config(mergetool.keepbackup) true +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.encoding) [encoding system] +set default_config(gui.matchtrackingbranch) false +set default_config(gui.pruneduringfetch) false +set default_config(gui.trustmtime) false +set default_config(gui.fastcopyblame) false +set default_config(gui.copyblamethreshold) 40 +set default_config(gui.blamehistoryctx) 7 +set default_config(gui.diffcontext) 5 +set default_config(gui.commitmsgwidth) 75 +set default_config(gui.newbranchtemplate) {} +set default_config(gui.spellingdictionary) {} +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 + +set _git [_which git] +if {$_git eq {}} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title [mc "git-gui: fatal error"] \ + -message [mc "Cannot find git in PATH."] + exit 1 +} + +###################################################################### +## +## version check + +if {[catch {set _git_version [git --version]} err]} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title [mc "git-gui: fatal error"] \ + -message "Cannot determine Git version: + +$err + +[appname] requires Git 1.5.0 or later." + exit 1 +} +if {![regsub {^git version } $_git_version {} _git_version]} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title [mc "git-gui: fatal error"] \ + -message [strcat [mc "Cannot parse Git version string:"] "\n\n$_git_version"] + exit 1 +} + +set _real_git_version $_git_version +regsub -- {[\-\.]dirty$} $_git_version {} _git_version +regsub {\.[0-9]+\.g[0-9a-f]+$} $_git_version {} _git_version - regsub {\.rc[0-9]+$} $_git_version {} _git_version ++regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version +regsub {\.GIT$} $_git_version {} _git_version - regsub {\.[a-zA-Z]+\.[0-9]+$} $_git_version {} _git_version ++regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version + +if {![regexp {^[1-9]+(\.[0-9]+)+$} $_git_version]} { + catch {wm withdraw .} + if {[tk_messageBox \ + -icon warning \ + -type yesno \ + -default no \ + -title "[appname]: warning" \ + -message [mc "Git version cannot be determined. + +%s claims it is version '%s'. + +%s requires at least Git 1.5.0 or later. + +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 + } +} +unset _real_git_version + +proc git-version {args} { + global _git_version + + switch [llength $args] { + 0 { + return $_git_version + } + + 2 { + set op [lindex $args 0] + set vr [lindex $args 1] + set cm [package vcompare $_git_version $vr] + return [expr $cm $op 0] + } + + 4 { + set type [lindex $args 0] + set name [lindex $args 1] + set parm [lindex $args 2] + set body [lindex $args 3] + + if {($type ne {proc} && $type ne {method})} { + error "Invalid arguments to git-version" + } + if {[llength $body] < 2 || [lindex $body end-1] ne {default}} { + error "Last arm of $type $name must be default" + } + + foreach {op vr cb} [lrange $body 0 end-2] { + if {[git-version $op $vr]} { + return [uplevel [list $type $name $parm $cb]] + } + } + + return [uplevel [list $type $name $parm [lindex $body end]]] + } + + default { + error "git-version >= x" + } + + } +} + +if {[git-version < 1.5]} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title [mc "git-gui: fatal error"] \ + -message "[appname] requires Git 1.5.0 or later. + +You are using [git-version]: + +[git --version]" + exit 1 +} + +###################################################################### +## +## configure our library + +set idx [file join $oguilib tclIndex] +if {[catch {set fd [open $idx r]} err]} { + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title [mc "git-gui: fatal error"] \ + -message $err + exit 1 +} +if {[gets $fd] eq {# Autogenerated by git-gui Makefile}} { + set idx [list] + while {[gets $fd n] >= 0} { + if {$n ne {} && ![string match #* $n]} { + lappend idx $n + } + } +} else { + set idx {} +} +close $fd + +if {$idx ne {}} { + set loaded [list] + foreach p $idx { + if {[lsearch -exact $loaded $p] >= 0} continue + source [file join $oguilib $p] + lappend loaded $p + } + unset loaded p +} else { + set auto_path [concat [list $oguilib] $auto_path] +} +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 system_config default_config + + if {$include_global} { + _parse_config system_config --system + _parse_config global_config --global + } + _parse_config repo_config + + foreach name [array names default_config] { + if {[catch {set v $system_config($name)}]} { + set system_config($name) $default_config($name) + } + } + foreach name [array names system_config] { + if {[catch {set v $global_config($name)}]} { + set global_config($name) $system_config($name) + } + if {[catch {set v $repo_config($name)}]} { + set repo_config($name) $system_config($name) + } + } +} + +###################################################################### +## +## feature option selection + +if {[regexp {^git-(.+)$} [file tail $argv0] _junk subcommand]} { + unset _junk +} else { + set subcommand gui +} +if {$subcommand eq {gui.sh}} { + set subcommand gui +} +if {$subcommand eq {gui} && [llength $argv] > 0} { + set subcommand [lindex $argv 0] + set argv [lrange $argv 1 end] +} + +enable_option multicommit +enable_option branch +enable_option transport +disable_option bare + +switch -- $subcommand { +browser - +blame { + enable_option bare + + disable_option multicommit + disable_option branch + disable_option transport +} +citool { + enable_option singlecommit + enable_option retcode + + disable_option multicommit + disable_option branch + disable_option transport + + while {[llength $argv] > 0} { + set a [lindex $argv 0] + switch -- $a { + --amend { + enable_option initialamend + } + --nocommit { + enable_option nocommit + enable_option nocommitmsg + } + --commitmsg { + disable_option nocommitmsg + } + default { + break + } + } + + set argv [lrange $argv 1 end] + } +} +} + +###################################################################### +## +## execution environment + +set have_tk85 [expr {[package vcompare $tk_version "8.5"] >= 0}] + +# Suggest our implementation of askpass, if none is set +if {![info exists env(SSH_ASKPASS)]} { + set env(SSH_ASKPASS) [gitexec git-gui--askpass] +} + +###################################################################### +## +## repository setup + +set picked 0 +if {[catch { + set _gitdir $env(GIT_DIR) + set _prefix {} + }] + && [catch { + set _gitdir [git rev-parse --git-dir] + set _prefix [git rev-parse --show-prefix] + } err]} { + load_config 1 + apply_config + choose_repository::pick + set picked 1 +} +if {![file isdirectory $_gitdir] && [is_Cygwin]} { + catch {set _gitdir [exec cygpath --windows $_gitdir]} +} +if {![file isdirectory $_gitdir]} { + catch {wm withdraw .} + 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 [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 [strcat [mc "Cannot use funny .git directory:"] "\n\n$_gitdir"] + exit 1 + } + if {[catch {cd [file dirname $_gitdir]} err]} { + catch {wm withdraw .} + error_popup [strcat [mc "No working directory"] " [file dirname $_gitdir]:\n\n$err"] + exit 1 + } +} +set _reponame [file split [file normalize $_gitdir]] +if {[lindex $_reponame end] eq {.git}} { + set _reponame [lindex $_reponame end-1] +} else { + set _reponame [lindex $_reponame end] +} + +###################################################################### +## +## global init + +set current_diff_path {} +set current_diff_side {} +set diff_actions [list] + +set HEAD {} +set PARENT {} +set MERGE_HEAD [list] +set commit_type {} +set empty_tree {} +set current_branch {} +set is_detached 0 +set current_diff_path {} +set is_3way_diff 0 +set is_conflict_diff 0 +set selected_commit_type new ++set diff_empty_count 0 + +set nullid "0000000000000000000000000000000000000000" +set nullid2 "0000000000000000000000000000000000000001" + +###################################################################### +## +## task management + +set rescan_active 0 +set diff_active 0 +set last_clicked {} + +set disable_on_lock [list] +set index_lock_type none + +proc lock_index {type} { + global index_lock_type disable_on_lock + + if {$index_lock_type eq {none}} { + set index_lock_type $type + foreach w $disable_on_lock { + uplevel #0 $w disabled + } + return 1 + } elseif {$index_lock_type eq "begin-$type"} { + set index_lock_type $type + return 1 + } + return 0 +} + +proc unlock_index {} { + global index_lock_type disable_on_lock + + set index_lock_type none + foreach w $disable_on_lock { + uplevel #0 $w normal + } +} + +###################################################################### +## +## status + +proc repository_state {ctvar hdvar mhvar} { + global current_branch + upvar $ctvar ct $hdvar hd $mhvar mh + + set mh [list] + + load_current_branch + if {[catch {set hd [git rev-parse --verify HEAD]}]} { + set hd {} + set ct initial + return + } + + set merge_head [gitdir MERGE_HEAD] + if {[file exists $merge_head]} { + set ct merge + set fd_mh [open $merge_head r] + while {[gets $fd_mh line] >= 0} { + lappend mh $line + } + close $fd_mh + return + } + + set ct normal +} + +proc PARENT {} { + global PARENT empty_tree + + set p [lindex $PARENT 0] + if {$p ne {}} { + return $p + } + if {$empty_tree eq {}} { + set empty_tree [git mktree << {}] + } + return $empty_tree +} + +proc force_amend {} { + global selected_commit_type + global HEAD PARENT MERGE_HEAD commit_type + + repository_state newType newHEAD newMERGE_HEAD + set HEAD $newHEAD + set PARENT $newHEAD + set MERGE_HEAD $newMERGE_HEAD + set commit_type $newType + + set selected_commit_type amend + do_select_commit_type +} + +proc rescan {after {honor_trustmtime 1}} { + global HEAD PARENT MERGE_HEAD commit_type + global ui_index ui_workdir ui_comm + global rescan_active file_states + global repo_config + + if {$rescan_active > 0 || ![lock_index read]} return + + repository_state newType newHEAD newMERGE_HEAD + if {[string match amend* $commit_type] + && $newType eq {normal} + && $newHEAD eq $HEAD} { + } else { + set HEAD $newHEAD + set PARENT $newHEAD + set MERGE_HEAD $newMERGE_HEAD + set commit_type $newType + } + + array unset file_states + + if {!$::GITGUI_BCK_exists && + (![$ui_comm edit modified] + || [string trim [$ui_comm get 0.0 end]] eq {})} { + if {[string match amend* $commit_type]} { + } elseif {[load_message GITGUI_MSG]} { + } elseif {[run_prepare_commit_msg_hook]} { + } elseif {[load_message MERGE_MSG]} { + } elseif {[load_message SQUASH_MSG]} { + } + $ui_comm edit reset + $ui_comm edit modified false + } + + if {$honor_trustmtime && $repo_config(gui.trustmtime) eq {true}} { + rescan_stage2 {} $after + } else { + set rescan_active 1 + ui_status [mc "Refreshing file status..."] + set fd_rf [git_read update-index \ + -q \ + --unmerged \ + --ignore-missing \ + --refresh \ + ] + fconfigure $fd_rf -blocking 0 -translation binary + fileevent $fd_rf readable \ + [list rescan_stage2 $fd_rf $after] + } +} + +if {[is_Cygwin]} { + set is_git_info_exclude {} + proc have_info_exclude {} { + global is_git_info_exclude + + if {$is_git_info_exclude eq {}} { + if {[catch {exec test -f [gitdir info exclude]}]} { + set is_git_info_exclude 0 + } else { + set is_git_info_exclude 1 + } + } + return $is_git_info_exclude + } +} else { + proc have_info_exclude {} { + return [file readable [gitdir info exclude]] + } +} + +proc rescan_stage2 {fd after} { + global rescan_active buf_rdi buf_rdf buf_rlo + + if {$fd ne {}} { + read $fd + if {![eof $fd]} return + close $fd + } + + set ls_others [list --exclude-per-directory=.gitignore] + if {[have_info_exclude]} { + lappend ls_others "--exclude-from=[gitdir info exclude]" + } + set user_exclude [get_config core.excludesfile] + if {$user_exclude ne {} && [file readable $user_exclude]} { + lappend ls_others "--exclude-from=$user_exclude" + } + + set buf_rdi {} + set buf_rdf {} + set buf_rlo {} + + set rescan_active 3 + 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] + + fconfigure $fd_di -blocking 0 -translation binary -encoding binary + fconfigure $fd_df -blocking 0 -translation binary -encoding binary + fconfigure $fd_lo -blocking 0 -translation binary -encoding binary + fileevent $fd_di readable [list read_diff_index $fd_di $after] + fileevent $fd_df readable [list read_diff_files $fd_df $after] + fileevent $fd_lo readable [list read_ls_others $fd_lo $after] +} + +proc load_message {file} { + global ui_comm + + set f [gitdir $file] + if {[file isfile $f]} { + if {[catch {set fd [open $f r]}]} { + return 0 + } + fconfigure $fd -eofchar {} + set content [string trim [read $fd]] + close $fd + regsub -all -line {[ \r\t]+$} $content {} content + $ui_comm delete 0.0 end + $ui_comm insert end $content + return 1 + } + return 0 +} + +proc run_prepare_commit_msg_hook {} { + global pch_error + + # prepare-commit-msg requires PREPARE_COMMIT_MSG exist. From git-gui + # it will be .git/MERGE_MSG (merge), .git/SQUASH_MSG (squash), or an + # empty file but existant file. + + set fd_pcm [open [gitdir PREPARE_COMMIT_MSG] a] + + if {[file isfile [gitdir MERGE_MSG]]} { + set pcm_source "merge" + set fd_mm [open [gitdir MERGE_MSG] r] + puts -nonewline $fd_pcm [read $fd_mm] + close $fd_mm + } elseif {[file isfile [gitdir SQUASH_MSG]]} { + set pcm_source "squash" + set fd_sm [open [gitdir SQUASH_MSG] r] + puts -nonewline $fd_pcm [read $fd_sm] + close $fd_sm + } else { + set pcm_source "" + } + + close $fd_pcm + + set fd_ph [githook_read prepare-commit-msg \ + [gitdir PREPARE_COMMIT_MSG] $pcm_source] + if {$fd_ph eq {}} { + catch {file delete [gitdir PREPARE_COMMIT_MSG]} + return 0; + } + + ui_status [mc "Calling prepare-commit-msg hook..."] + set pch_error {} + + fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fileevent $fd_ph readable \ + [list prepare_commit_msg_hook_wait $fd_ph] + + return 1; +} + +proc prepare_commit_msg_hook_wait {fd_ph} { + global pch_error + + append pch_error [read $fd_ph] + fconfigure $fd_ph -blocking 1 + if {[eof $fd_ph]} { + if {[catch {close $fd_ph}]} { + ui_status [mc "Commit declined by prepare-commit-msg hook."] + hook_failed_popup prepare-commit-msg $pch_error + catch {file delete [gitdir PREPARE_COMMIT_MSG]} + exit 1 + } else { + load_message PREPARE_COMMIT_MSG + } + set pch_error {} + catch {file delete [gitdir PREPARE_COMMIT_MSG]} + return + } + fconfigure $fd_ph -blocking 0 + catch {file delete [gitdir PREPARE_COMMIT_MSG]} +} + +proc read_diff_index {fd after} { + global buf_rdi + + append buf_rdi [read $fd] + set c 0 + set n [string length $buf_rdi] + while {$c < $n} { + set z1 [string first "\0" $buf_rdi $c] + if {$z1 == -1} break + incr z1 + set z2 [string first "\0" $buf_rdi $z1] + if {$z2 == -1} break + + incr c + set i [split [string range $buf_rdi $c [expr {$z1 - 2}]] { }] + set p [string range $buf_rdi $z1 [expr {$z2 - 1}]] + merge_state \ + [encoding convertfrom $p] \ + [lindex $i 4]? \ + [list [lindex $i 0] [lindex $i 2]] \ + [list] + set c $z2 + incr c + } + if {$c < $n} { + set buf_rdi [string range $buf_rdi $c end] + } else { + set buf_rdi {} + } + + rescan_done $fd buf_rdi $after +} + +proc read_diff_files {fd after} { + global buf_rdf + + append buf_rdf [read $fd] + set c 0 + set n [string length $buf_rdf] + while {$c < $n} { + set z1 [string first "\0" $buf_rdf $c] + if {$z1 == -1} break + incr z1 + set z2 [string first "\0" $buf_rdf $z1] + if {$z2 == -1} break + + incr c + set i [split [string range $buf_rdf $c [expr {$z1 - 2}]] { }] + set p [string range $buf_rdf $z1 [expr {$z2 - 1}]] + merge_state \ + [encoding convertfrom $p] \ + ?[lindex $i 4] \ + [list] \ + [list [lindex $i 0] [lindex $i 2]] + set c $z2 + incr c + } + if {$c < $n} { + set buf_rdf [string range $buf_rdf $c end] + } else { + set buf_rdf {} + } + + rescan_done $fd buf_rdf $after +} + +proc read_ls_others {fd after} { + global buf_rlo + + append buf_rlo [read $fd] + set pck [split $buf_rlo "\0"] + set buf_rlo [lindex $pck end] + foreach p [lrange $pck 0 end-1] { + set p [encoding convertfrom $p] + if {[string index $p end] eq {/}} { + set p [string range $p 0 end-1] + } + merge_state $p ?O + } + rescan_done $fd buf_rlo $after +} + +proc rescan_done {fd buf after} { + global rescan_active current_diff_path + global file_states repo_config + upvar $buf to_clear + + if {![eof $fd]} return + set to_clear {} + close $fd + if {[incr rescan_active -1] > 0} return + + prune_selection + unlock_index + display_all_files + if {$current_diff_path ne {}} { reshow_diff $after } + if {$current_diff_path eq {}} { select_first_diff $after } +} + +proc prune_selection {} { + global file_states selected_paths + + foreach path [array names selected_paths] { + if {[catch {set still_here $file_states($path)}]} { + unset selected_paths($path) + } + } +} + +###################################################################### +## +## ui helpers + +proc mapicon {w state path} { + global all_icons + + if {[catch {set r $all_icons($state$w)}]} { + puts "error: no icon for $w state={$state} $path" + return file_plain + } + return $r +} + +proc mapdesc {state path} { + global all_descs + + if {[catch {set r $all_descs($state)}]} { + puts "error: no desc for state={$state} $path" + return $state + } + return $r +} + +proc ui_status {msg} { + global main_status + if {[info exists main_status]} { + $main_status show $msg + } +} + +proc ui_ready {{test {}}} { + global main_status + if {[info exists main_status]} { + $main_status show [mc "Ready."] $test + } +} + +proc escape_path {path} { + regsub -all {\\} $path "\\\\" path + regsub -all "\n" $path "\\n" path + return $path +} + +proc short_path {path} { + return [escape_path [lindex [file split $path] end]] +} + +set next_icon_id 0 +set null_sha1 [string repeat 0 40] + +proc merge_state {path new_state {head_info {}} {index_info {}}} { + global file_states next_icon_id null_sha1 + + set s0 [string index $new_state 0] + set s1 [string index $new_state 1] + + if {[catch {set info $file_states($path)}]} { + set state __ + set icon n[incr next_icon_id] + } else { + set state [lindex $info 0] + set icon [lindex $info 1] + if {$head_info eq {}} {set head_info [lindex $info 2]} + if {$index_info eq {}} {set index_info [lindex $info 3]} + } + + if {$s0 eq {?}} {set s0 [string index $state 0]} \ + elseif {$s0 eq {_}} {set s0 _} + + if {$s1 eq {?}} {set s1 [string index $state 1]} \ + elseif {$s1 eq {_}} {set s1 _} + + if {$s0 eq {A} && $s1 eq {_} && $head_info eq {}} { + set head_info [list 0 $null_sha1] + } elseif {$s0 ne {_} && [string index $state 0] eq {_} + && $head_info eq {}} { + set head_info $index_info + } + + set file_states($path) [list $s0$s1 $icon \ + $head_info $index_info \ + ] + return $state +} + +proc display_file_helper {w path icon_name old_m new_m} { + global file_lists + + if {$new_m eq {_}} { + set lno [lsearch -sorted -exact $file_lists($w) $path] + if {$lno >= 0} { + set file_lists($w) [lreplace $file_lists($w) $lno $lno] + incr lno + $w conf -state normal + $w delete $lno.0 [expr {$lno + 1}].0 + $w conf -state disabled + } + } elseif {$old_m eq {_} && $new_m ne {_}} { + lappend file_lists($w) $path + set file_lists($w) [lsort -unique $file_lists($w)] + set lno [lsearch -sorted -exact $file_lists($w) $path] + incr lno + $w conf -state normal + $w image create $lno.0 \ + -align center -padx 5 -pady 1 \ + -name $icon_name \ + -image [mapicon $w $new_m $path] + $w insert $lno.1 "[escape_path $path]\n" + $w conf -state disabled + } elseif {$old_m ne $new_m} { + $w conf -state normal + $w image conf $icon_name -image [mapicon $w $new_m $path] + $w conf -state disabled + } +} + +proc display_file {path state} { + global file_states selected_paths + global ui_index ui_workdir + + set old_m [merge_state $path $state] + set s $file_states($path) + set new_m [lindex $s 0] + set icon_name [lindex $s 1] + + set o [string index $old_m 0] + set n [string index $new_m 0] + if {$o eq {U}} { + set o _ + } + if {$n eq {U}} { + set n _ + } + display_file_helper $ui_index $path $icon_name $o $n + + if {[string index $old_m 0] eq {U}} { + set o U + } else { + set o [string index $old_m 1] + } + if {[string index $new_m 0] eq {U}} { + set n U + } else { + set n [string index $new_m 1] + } + display_file_helper $ui_workdir $path $icon_name $o $n + + if {$new_m eq {__}} { + unset file_states($path) + catch {unset selected_paths($path)} + } +} + +proc display_all_files_helper {w path icon_name m} { + global file_lists + + lappend file_lists($w) $path + set lno [expr {[lindex [split [$w index end] .] 0] - 1}] + $w image create end \ + -align center -padx 5 -pady 1 \ + -name $icon_name \ + -image [mapicon $w $m $path] + $w insert end "[escape_path $path]\n" +} + +proc display_all_files {} { + global ui_index ui_workdir + global file_states file_lists + global last_clicked + + $ui_index conf -state normal + $ui_workdir conf -state normal + + $ui_index delete 0.0 end + $ui_workdir delete 0.0 end + set last_clicked {} + + set file_lists($ui_index) [list] + set file_lists($ui_workdir) [list] + + foreach path [lsort [array names file_states]] { + set s $file_states($path) + set m [lindex $s 0] + set icon_name [lindex $s 1] + + set s [string index $m 0] + if {$s ne {U} && $s ne {_}} { + display_all_files_helper $ui_index $path \ + $icon_name $s + } + + if {[string index $m 0] eq {U}} { + set s U + } else { + set s [string index $m 1] + } + if {$s ne {_}} { + display_all_files_helper $ui_workdir $path \ + $icon_name $s + } + } + + $ui_index conf -state disabled + $ui_workdir conf -state disabled +} + +###################################################################### +## +## icons + +set filemask { +#define mask_width 14 +#define mask_height 15 +static unsigned char mask_bits[] = { + 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, + 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, + 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f}; +} + +image create bitmap file_plain -background white -foreground black -data { +#define plain_width 14 +#define plain_height 15 +static unsigned char plain_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x02, 0x05, 0x02, 0x09, 0x02, 0x1f, 0x02, 0x10, + 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, + 0x02, 0x10, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_mod -background white -foreground blue -data { +#define mod_width 14 +#define mod_height 15 +static unsigned char mod_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x7a, 0x05, 0x02, 0x09, 0x7a, 0x1f, 0x02, 0x10, + 0xfa, 0x17, 0x02, 0x10, 0xfa, 0x17, 0x02, 0x10, 0xfa, 0x17, 0x02, 0x10, + 0xfa, 0x17, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_fulltick -background white -foreground "#007000" -data { +#define file_fulltick_width 14 +#define file_fulltick_height 15 +static unsigned char file_fulltick_bits[] = { + 0xfe, 0x01, 0x02, 0x1a, 0x02, 0x0c, 0x02, 0x0c, 0x02, 0x16, 0x02, 0x16, + 0x02, 0x13, 0x00, 0x13, 0x86, 0x11, 0x8c, 0x11, 0xd8, 0x10, 0xf2, 0x10, + 0x62, 0x10, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_parttick -background white -foreground "#005050" -data { +#define parttick_width 14 +#define parttick_height 15 +static unsigned char parttick_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x7a, 0x05, 0x02, 0x09, 0x7a, 0x1f, 0x02, 0x10, + 0x7a, 0x14, 0x02, 0x16, 0x02, 0x13, 0x8a, 0x11, 0xda, 0x10, 0x72, 0x10, + 0x22, 0x10, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_question -background white -foreground black -data { +#define file_question_width 14 +#define file_question_height 15 +static unsigned char file_question_bits[] = { + 0xfe, 0x01, 0x02, 0x02, 0xe2, 0x04, 0xf2, 0x09, 0x1a, 0x1b, 0x0a, 0x13, + 0x82, 0x11, 0xc2, 0x10, 0x62, 0x10, 0x62, 0x10, 0x02, 0x10, 0x62, 0x10, + 0x62, 0x10, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_removed -background white -foreground red -data { +#define file_removed_width 14 +#define file_removed_height 15 +static unsigned char file_removed_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x02, 0x05, 0x02, 0x09, 0x02, 0x1f, 0x02, 0x10, + 0x1a, 0x16, 0x32, 0x13, 0xe2, 0x11, 0xc2, 0x10, 0xe2, 0x11, 0x32, 0x13, + 0x1a, 0x16, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_merge -background white -foreground blue -data { +#define file_merge_width 14 +#define file_merge_height 15 +static unsigned char file_merge_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x62, 0x05, 0x62, 0x09, 0x62, 0x1f, 0x62, 0x10, + 0xfa, 0x11, 0xf2, 0x10, 0x62, 0x10, 0x02, 0x10, 0xfa, 0x17, 0x02, 0x10, + 0xfa, 0x17, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +image create bitmap file_statechange -background white -foreground green -data { +#define file_merge_width 14 +#define file_merge_height 15 +static unsigned char file_statechange_bits[] = { + 0xfe, 0x01, 0x02, 0x03, 0x02, 0x05, 0x02, 0x09, 0x02, 0x1f, 0x62, 0x10, + 0x62, 0x10, 0xba, 0x11, 0xba, 0x11, 0x62, 0x10, 0x62, 0x10, 0x02, 0x10, + 0x02, 0x10, 0x02, 0x10, 0xfe, 0x1f}; +} -maskdata $filemask + +set ui_index .vpane.files.index.list +set ui_workdir .vpane.files.workdir.list + +set all_icons(_$ui_index) file_plain +set all_icons(A$ui_index) file_fulltick +set all_icons(M$ui_index) file_fulltick +set all_icons(D$ui_index) file_removed +set all_icons(U$ui_index) file_merge +set all_icons(T$ui_index) file_statechange + +set all_icons(_$ui_workdir) file_plain +set all_icons(M$ui_workdir) file_mod +set all_icons(D$ui_workdir) file_question +set all_icons(U$ui_workdir) file_merge +set all_icons(O$ui_workdir) file_plain +set all_icons(T$ui_workdir) file_statechange + +set max_status_desc 0 +foreach i { + {__ {mc "Unmodified"}} + + {_M {mc "Modified, not staged"}} + {M_ {mc "Staged for commit"}} + {MM {mc "Portions staged for commit"}} + {MD {mc "Staged for commit, missing"}} + + {_T {mc "File type changed, not staged"}} + {T_ {mc "File type changed, staged"}} + + {_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"}} + {U_ {mc "Requires merge resolution"}} + {UU {mc "Requires merge resolution"}} + {UM {mc "Requires merge resolution"}} + {UD {mc "Requires merge resolution"}} + {UT {mc "Requires merge resolution"}} + } { + 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]) $text +} +unset i + +###################################################################### +## +## util + +proc scrollbar2many {list mode args} { + foreach w $list {eval $w $mode $args} +} + +proc many2scrollbar {list mode sb top bottom} { + $sb set $top $bottom + foreach w $list {$w $mode moveto $top} +} + +proc incr_font_size {font {amt 1}} { + set sz [font configure $font -size] + incr sz $amt + font configure $font -size $sz + font configure ${font}bold -size $sz + font configure ${font}italic -size $sz +} + +###################################################################### +## +## ui commands + +set starting_gitk_msg [mc "Starting gitk... please wait..."] + +proc do_gitk {revs} { + # -- Always start gitk through whatever we were loaded with. This + # lets us bypass using shell process on Windows systems. + # + set exe [_which gitk -script] + set cmd [list [info nameofexecutable] $exe] + if {$exe eq {}} { + error_popup [mc "Couldn't find gitk in PATH"] + } else { + global env + + if {[info exists env(GIT_DIR)]} { + set old_GIT_DIR $env(GIT_DIR) + } else { + set old_GIT_DIR {} + } + + set pwd [pwd] + cd [file dirname [gitdir]] + set env(GIT_DIR) [file tail [gitdir]] + + eval exec $cmd $revs & + + if {$old_GIT_DIR eq {}} { + unset env(GIT_DIR) + } else { + set env(GIT_DIR) $old_GIT_DIR + } + cd $pwd + + ui_status $::starting_gitk_msg + after 10000 { + ui_ready $starting_gitk_msg + } + } +} + +proc do_explore {} { + set explorer {} + if {[is_Cygwin] || [is_Windows]} { + set explorer "explorer.exe" + } elseif {[is_MacOSX]} { + set explorer "open" + } else { + # freedesktop.org-conforming system is our best shot + set explorer "xdg-open" + } - eval exec $explorer [file dirname [gitdir]] & ++ eval exec $explorer [list [file nativename [file dirname [gitdir]]]] & +} + +set is_quitting 0 +set ret_code 1 + +proc terminate_me {win} { + global ret_code + if {$win ne {.}} return + exit $ret_code +} + +proc do_quit {{rc {1}}} { + global ui_comm is_quitting repo_config commit_type + global GITGUI_BCK_exists GITGUI_BCK_i + global ui_comm_spell + global ret_code + + if {$is_quitting} return + set is_quitting 1 + + if {[winfo exists $ui_comm]} { + # -- Stash our current commit buffer. + # + set save [gitdir GITGUI_MSG] + if {$GITGUI_BCK_exists && ![$ui_comm edit modified]} { + file rename -force [gitdir GITGUI_BCK] $save + set GITGUI_BCK_exists 0 + } else { + set msg [string trim [$ui_comm get 0.0 end]] + regsub -all -line {[ \r\t]+$} $msg {} msg + if {(![string match amend* $commit_type] + || [$ui_comm edit modified]) + && $msg ne {}} { + catch { + set fd [open $save w] + puts -nonewline $fd $msg + close $fd + } + } else { + catch {file delete $save} + } + } + + # -- Cancel our spellchecker if its running. + # + if {[info exists ui_comm_spell]} { + $ui_comm_spell stop + } + + # -- Remove our editor backup, its not needed. + # + after cancel $GITGUI_BCK_i + if {$GITGUI_BCK_exists} { + catch {file delete [gitdir GITGUI_BCK]} + } + + # -- Stash our current window geometry into this repository. + # + set cfg_geometry [list] + lappend cfg_geometry [wm geometry .] + 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 {} + } + if {$cfg_geometry ne $rc_geometry} { + catch {git config gui.geometry $cfg_geometry} + } + } + + set ret_code $rc + destroy . +} + +proc do_rescan {} { + rescan ui_ready +} + +proc ui_do_rescan {} { + rescan {force_first_diff ui_ready} +} + +proc do_commit {} { + commit_tree +} + +proc next_diff {{after {}}} { + global next_diff_p next_diff_w next_diff_i + show_diff $next_diff_p $next_diff_w {} {} $after +} + +proc find_anchor_pos {lst name} { + set lid [lsearch -sorted -exact $lst $name] + + if {$lid == -1} { + set lid 0 + foreach lname $lst { + if {$lname >= $name} break + incr lid + } + } + + return $lid +} + +proc find_file_from {flist idx delta path mmask} { + global file_states + + set len [llength $flist] + while {$idx >= 0 && $idx < $len} { + set name [lindex $flist $idx] + + if {$name ne $path && [info exists file_states($name)]} { + set state [lindex $file_states($name) 0] + + if {$mmask eq {} || [regexp $mmask $state]} { + return $idx + } + } + + incr idx $delta + } + + return {} +} + +proc find_next_diff {w path {lno {}} {mmask {}}} { + global next_diff_p next_diff_w next_diff_i + global file_lists ui_index ui_workdir + + set flist $file_lists($w) + if {$lno eq {}} { + set lno [find_anchor_pos $flist $path] + } else { + incr lno -1 + } + + if {$mmask ne {} && ![regexp {(^\^)|(\$$)} $mmask]} { + if {$w eq $ui_index} { + set mmask "^$mmask" + } else { + set mmask "$mmask\$" + } + } + + set idx [find_file_from $flist $lno 1 $path $mmask] + if {$idx eq {}} { + incr lno -1 + set idx [find_file_from $flist $lno -1 $path $mmask] + } + + if {$idx ne {}} { + set next_diff_w $w + set next_diff_p [lindex $flist $idx] + set next_diff_i [expr {$idx+1}] + return 1 + } else { + return 0 + } +} + +proc next_diff_after_action {w path {lno {}} {mmask {}}} { + global current_diff_path + + if {$path ne $current_diff_path} { + return {} + } elseif {[find_next_diff $w $path $lno $mmask]} { + return {next_diff;} + } else { + return {reshow_diff;} + } +} + +proc select_first_diff {after} { + global ui_workdir + + if {[find_next_diff $ui_workdir {} 1 {^_?U}] || + [find_next_diff $ui_workdir {} 1 {[^O]$}]} { + next_diff $after + } else { + uplevel #0 $after + } +} + +proc force_first_diff {after} { + global ui_workdir current_diff_path file_states + + if {[info exists file_states($current_diff_path)]} { + set state [lindex $file_states($current_diff_path) 0] + } else { + set state {OO} + } + + set reselect 0 + if {[string first {U} $state] >= 0} { + # Already a conflict, do nothing + } elseif {[find_next_diff $ui_workdir $current_diff_path {} {^_?U}]} { + set reselect 1 + } elseif {[string index $state 1] ne {O}} { + # Already a diff & no conflicts, do nothing + } elseif {[find_next_diff $ui_workdir $current_diff_path {} {[^O]$}]} { + set reselect 1 + } + + if {$reselect} { + next_diff $after + } else { + uplevel #0 $after + } +} + +proc toggle_or_diff {w x y} { + global file_states file_lists current_diff_path ui_index ui_workdir + global last_clicked selected_paths + + set pos [split [$w index @$x,$y] .] + set lno [lindex $pos 0] + set col [lindex $pos 1] + set path [lindex $file_lists($w) [expr {$lno - 1}]] + if {$path eq {}} { + set last_clicked {} + return + } + + set last_clicked [list $w $lno] + array unset selected_paths + $ui_index tag remove in_sel 0.0 end + $ui_workdir tag remove in_sel 0.0 end + + # Determine the state of the file + if {[info exists file_states($path)]} { + set state [lindex $file_states($path) 0] + } else { + set state {__} + } + + # Restage the file, or simply show the diff + if {$col == 0 && $y > 1} { + # Conflicts need special handling + if {[string first {U} $state] >= 0} { + # $w must always be $ui_workdir, but... + if {$w ne $ui_workdir} { set lno {} } + merge_stage_workdir $path $lno + return + } + + if {[string index $state 1] eq {O}} { + set mmask {} + } else { + set mmask {[^O]} + } + + set after [next_diff_after_action $w $path $lno $mmask] + + if {$w eq $ui_index} { + update_indexinfo \ + "Unstaging [short_path $path] from commit" \ + [list $path] \ + [concat $after [list ui_ready]] + } elseif {$w eq $ui_workdir} { + update_index \ + "Adding [short_path $path]" \ + [list $path] \ + [concat $after [list ui_ready]] + } + } else { + show_diff $path $w $lno + } +} + +proc add_one_to_selection {w x y} { + global file_lists last_clicked selected_paths + + set lno [lindex [split [$w index @$x,$y] .] 0] + set path [lindex $file_lists($w) [expr {$lno - 1}]] + if {$path eq {}} { + set last_clicked {} + return + } + + if {$last_clicked ne {} + && [lindex $last_clicked 0] ne $w} { + array unset selected_paths + [lindex $last_clicked 0] tag remove in_sel 0.0 end + } + + set last_clicked [list $w $lno] + if {[catch {set in_sel $selected_paths($path)}]} { + set in_sel 0 + } + if {$in_sel} { + unset selected_paths($path) + $w tag remove in_sel $lno.0 [expr {$lno + 1}].0 + } else { + set selected_paths($path) 1 + $w tag add in_sel $lno.0 [expr {$lno + 1}].0 + } +} + +proc add_range_to_selection {w x y} { + global file_lists last_clicked selected_paths + + if {[lindex $last_clicked 0] ne $w} { + toggle_or_diff $w $x $y + return + } + + set lno [lindex [split [$w index @$x,$y] .] 0] + set lc [lindex $last_clicked 1] + if {$lc < $lno} { + set begin $lc + set end $lno + } else { + set begin $lno + set end $lc + } + + foreach path [lrange $file_lists($w) \ + [expr {$begin - 1}] \ + [expr {$end - 1}]] { + set selected_paths($path) 1 + } + $w tag add in_sel $begin.0 [expr {$end + 1}].0 +} + +proc show_more_context {} { + global repo_config + if {$repo_config(gui.diffcontext) < 99} { + incr repo_config(gui.diffcontext) + reshow_diff + } +} + +proc show_less_context {} { + global repo_config + if {$repo_config(gui.diffcontext) > 1} { + incr repo_config(gui.diffcontext) -1 + reshow_diff + } +} + +###################################################################### +## +## ui construction + +load_config 0 +apply_config +set ui_comm {} + +# -- Menu Bar +# +menu .mbar -tearoff 0 ++if {[is_MacOSX]} { ++ # -- Apple Menu (Mac OS X only) ++ # ++ .mbar add cascade -label Apple -menu .mbar.apple ++ menu .mbar.apple ++} +.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 [mc Branch] -menu .mbar.branch +} +if {[is_enabled multicommit] || [is_enabled singlecommit]} { + .mbar add cascade -label [mc Commit@@noun] -menu .mbar.commit +} +if {[is_enabled transport]} { + .mbar add cascade -label [mc Merge] -menu .mbar.merge + .mbar add cascade -label [mc Remote] -menu .mbar.remote +} +if {[is_enabled multicommit] || [is_enabled singlecommit]} { + .mbar add cascade -label [mc Tools] -menu .mbar.tools +} - . configure -menu .mbar + +# -- Repository Menu +# +menu .mbar.repository + +.mbar.repository add command \ + -label [mc "Explore Working Copy"] \ + -command {do_explore} +.mbar.repository add separator + +.mbar.repository add command \ + -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 [mc "Browse Branch Files..."] \ + -command browser_open::dialog +.mbar.repository add separator + +.mbar.repository add command \ + -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 [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 [mc "Browse %s's Files" $current_branch] + .mbar.repository entryconf $::ui_visualize_current \ + -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 [mc "Database Statistics"] \ + -command do_stats + + .mbar.repository add command -label [mc "Compress Database"] \ + -command do_gc + + .mbar.repository add command -label [mc "Verify Database"] \ + -command do_fsck_objects + + .mbar.repository add separator + + if {[is_Cygwin]} { + .mbar.repository add command \ + -label [mc "Create Desktop Icon"] \ + -command do_cygwin_shortcut + } elseif {[is_Windows]} { + .mbar.repository add command \ + -label [mc "Create Desktop Icon"] \ + -command do_windows_shortcut + } elseif {[is_MacOSX]} { + .mbar.repository add command \ + -label [mc "Create Desktop Icon"] \ + -command do_macosx_app + } +} + +if {[is_MacOSX]} { + proc ::tk::mac::Quit {args} { do_quit } +} else { + .mbar.repository add command -label [mc Quit] \ + -command do_quit \ + -accelerator $M1T-Q +} + +# -- Edit Menu +# +menu .mbar.edit +.mbar.edit add command -label [mc Undo] \ + -command {catch {[focus] edit undo}} \ + -accelerator $M1T-Z +.mbar.edit add command -label [mc Redo] \ + -command {catch {[focus] edit redo}} \ + -accelerator $M1T-Y +.mbar.edit add separator +.mbar.edit add command -label [mc Cut] \ + -command {catch {tk_textCut [focus]}} \ + -accelerator $M1T-X +.mbar.edit add command -label [mc Copy] \ + -command {catch {tk_textCopy [focus]}} \ + -accelerator $M1T-C +.mbar.edit add command -label [mc Paste] \ + -command {catch {tk_textPaste [focus]; [focus] see insert}} \ + -accelerator $M1T-V +.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 [mc "Select All"] \ + -command {catch {[focus] tag add sel 0.0 end}} \ + -accelerator $M1T-A + +# -- Branch Menu +# +if {[is_enabled branch]} { + menu .mbar.branch + + .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 [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 [mc "Rename..."] \ + -command branch_rename::dialog + lappend disable_on_lock [list .mbar.branch entryconf \ + [.mbar.branch index last] -state] + + .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 [mc "Reset..."] \ + -command merge::reset_hard + lappend disable_on_lock [list .mbar.branch entryconf \ + [.mbar.branch index last] -state] +} + +# -- Commit Menu +# +proc commit_btn_caption {} { + if {[is_enabled nocommit]} { + return [mc "Done"] + } else { + return [mc Commit@@verb] + } +} + +if {[is_enabled multicommit] || [is_enabled singlecommit]} { + menu .mbar.commit + + if {![is_enabled nocommit]} { + .mbar.commit add radiobutton \ + -label [mc "New Commit"] \ + -command do_select_commit_type \ + -variable selected_commit_type \ + -value new + lappend disable_on_lock \ + [list .mbar.commit entryconf [.mbar.commit index last] -state] + + .mbar.commit add radiobutton \ + -label [mc "Amend Last Commit"] \ + -command do_select_commit_type \ + -variable selected_commit_type \ + -value amend + lappend disable_on_lock \ + [list .mbar.commit entryconf [.mbar.commit index last] -state] + + .mbar.commit add separator + } + + .mbar.commit add command -label [mc Rescan] \ + -command ui_do_rescan \ + -accelerator F5 + lappend disable_on_lock \ + [list .mbar.commit entryconf [.mbar.commit index last] -state] + + .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 [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 [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 [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 [mc "Show Less Context"] \ + -command show_less_context \ + -accelerator $M1T-\- + + .mbar.commit add command -label [mc "Show More Context"] \ + -command show_more_context \ + -accelerator $M1T-= + + .mbar.commit add separator + + if {![is_enabled nocommitmsg]} { + .mbar.commit add command -label [mc "Sign Off"] \ + -command do_signoff \ + -accelerator $M1T-S + } + + .mbar.commit add command -label [commit_btn_caption] \ + -command do_commit \ + -accelerator $M1T-Return + lappend disable_on_lock \ + [list .mbar.commit entryconf [.mbar.commit index last] -state] +} + +# -- Merge Menu +# +if {[is_enabled branch]} { + menu .mbar.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 [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.remote + + .mbar.remote add command \ + -label [mc "Add..."] \ + -command remote_add::dialog \ + -accelerator $M1T-A + .mbar.remote add command \ + -label [mc "Push..."] \ + -command do_push_anywhere \ + -accelerator $M1T-P + .mbar.remote add command \ + -label [mc "Delete Branch..."] \ + -command remote_branch_delete::dialog +} + +if {[is_MacOSX]} { - # -- Apple Menu (Mac OS X only) - # - .mbar add cascade -label Apple -menu .mbar.apple - menu .mbar.apple - - .mbar.apple add command -label [mc "About %s" [appname]] \ - -command do_about - .mbar.apple add separator - .mbar.apple add command \ - -label [mc "Preferences..."] \ - -command do_options \ - -accelerator $M1T-, - bind . <$M1B-,> do_options ++ proc ::tk::mac::ShowPreferences {} {do_options} +} else { + # -- Edit Menu + # + .mbar.edit add separator + .mbar.edit add command -label [mc "Options..."] \ + -command do_options +} + +# -- Tools Menu +# +if {[is_enabled multicommit] || [is_enabled singlecommit]} { + set tools_menubar .mbar.tools + menu $tools_menubar + $tools_menubar add separator + $tools_menubar add command -label [mc "Add..."] -command tools_add::dialog + $tools_menubar add command -label [mc "Remove..."] -command tools_remove::dialog + set tools_tailcnt 3 + if {[array names repo_config guitool.*.cmd] ne {}} { + tools_populate_all + } +} + +# -- Help Menu +# +.mbar add cascade -label [mc Help] -menu .mbar.help +menu .mbar.help + - if {![is_MacOSX]} { ++if {[is_MacOSX]} { ++ .mbar.apple add command -label [mc "About %s" [appname]] \ ++ -command do_about ++ .mbar.apple add separator ++} else { + .mbar.help add command -label [mc "About %s" [appname]] \ + -command do_about +} ++. configure -menu .mbar + ++set doc_path [githtmldir] ++if {$doc_path ne {}} { ++ set doc_path [file join $doc_path index.html] + - set doc_path [file dirname [gitexec]] - set doc_path [file join $doc_path Documentation index.html] - - if {[is_Cygwin]} { - set doc_path [exec cygpath --mixed $doc_path] ++ if {[is_Cygwin]} { ++ set doc_path [exec cygpath --mixed $doc_path] ++ } +} + +if {[file isfile $doc_path]} { + set doc_url "file:$doc_path" +} else { + set doc_url {http://www.kernel.org/pub/software/scm/git/docs/} +} + +proc start_browser {url} { + git "web--browse" $url +} + +.mbar.help add command -label [mc "Online Documentation"] \ + -command [list start_browser $doc_url] + +.mbar.help add command -label [mc "Show SSH Key"] \ + -command do_ssh_key + +unset doc_path doc_url + +# -- Standard bindings +# +wm protocol . WM_DELETE_WINDOW do_quit +bind all <$M1B-Key-q> do_quit +bind all <$M1B-Key-Q> do_quit +bind all <$M1B-Key-w> {destroy [winfo toplevel %W]} +bind all <$M1B-Key-W> {destroy [winfo toplevel %W]} + +set subcommand_args {} +proc usage {} { + puts stderr "usage: $::argv0 $::subcommand $::subcommand_args" + exit 1 +} + +proc normalize_relpath {path} { + set elements {} + foreach item [file split $path] { + if {$item eq {.}} continue + if {$item eq {..} && [llength $elements] > 0 + && [lindex $elements end] ne {..}} { + set elements [lrange $elements 0 end-1] + continue + } + lappend elements $item + } + return [eval file join $elements] +} + +# -- Not a normal commit type invocation? Do that instead! +# +switch -- $subcommand { +browser - +blame { + if {$subcommand eq "blame"} { + set subcommand_args {[--line=] rev? path} + } else { + set subcommand_args {rev? path} + } + if {$argv eq {}} usage + set head {} + set path {} + set jump_spec {} + set is_path 0 + foreach a $argv { + if {$is_path || [file exists $_prefix$a]} { + if {$path ne {}} usage + set path [normalize_relpath $_prefix$a] + break + } elseif {$a eq {--}} { + if {$path ne {}} { + if {$head ne {}} usage + set head $path + set path {} + } + set is_path 1 + } elseif {[regexp {^--line=(\d+)$} $a a lnum]} { + if {$jump_spec ne {} || $head ne {}} usage + set jump_spec [list $lnum] + } elseif {$head eq {}} { + if {$head ne {}} usage + set head $a + set is_path 1 + } else { + usage + } + } + unset is_path + + if {$head ne {} && $path eq {}} { + set path [normalize_relpath $_prefix$head] + set head {} + } + + if {$head eq {}} { + load_current_branch + } else { + if {[regexp {^[0-9a-f]{1,39}$} $head]} { + if {[catch { + set head [git rev-parse --verify $head] + } err]} { + puts stderr $err + exit 1 + } + } + set current_branch $head + } + + switch -- $subcommand { + browser { + if {$jump_spec ne {}} usage + if {$head eq {}} { + if {$path ne {} && [file isdirectory $path]} { + set head $current_branch + } else { + set head $path + set path {} + } + } + browser::new $head $path + } + blame { + if {$head eq {} && ![file exists $path]} { + puts stderr [mc "fatal: cannot stat path %s: No such file or directory" $path] + exit 1 + } + blame::new $head $path $jump_spec + } + } + return +} +citool - +gui { + if {[llength $argv] != 0} { + puts -nonewline stderr "usage: $argv0" + if {$subcommand ne {gui} + && [file tail $argv0] ne "git-$subcommand"} { + puts -nonewline stderr " $subcommand" + } + puts stderr {} + exit 1 + } + # fall through to setup UI for commits +} +default { + puts stderr "usage: $argv0 \[{blame|browser|citool}\]" + exit 1 +} +} + +# -- Branch Control +# +frame .branch \ + -borderwidth 1 \ + -relief sunken +label .branch.l1 \ + -text [mc "Current Branch:"] \ + -anchor w \ + -justify left +label .branch.cb \ + -textvariable current_branch \ + -anchor w \ + -justify left +pack .branch.l1 -side left +pack .branch.cb -side left -fill x +pack .branch -side top -fill x + +# -- Main Window Layout +# +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 [mc "Staged Changes (Will Commit)"] \ + -background lightgreen -foreground black +text $ui_index -background white -foreground black \ + -borderwidth 0 \ + -width 20 -height 10 \ + -wrap none \ + -cursor $cursor_ptr \ + -xscrollcommand {.vpane.files.index.sx set} \ + -yscrollcommand {.vpane.files.index.sy set} \ + -state disabled +scrollbar .vpane.files.index.sx -orient h -command [list $ui_index xview] +scrollbar .vpane.files.index.sy -orient v -command [list $ui_index yview] +pack .vpane.files.index.title -side top -fill x +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 + +# -- Working Directory File List +# +frame .vpane.files.workdir -height 100 -width 200 +label .vpane.files.workdir.title -text [mc "Unstaged Changes"] \ + -background lightsalmon -foreground black +text $ui_workdir -background white -foreground black \ + -borderwidth 0 \ + -width 20 -height 10 \ + -wrap none \ + -cursor $cursor_ptr \ + -xscrollcommand {.vpane.files.workdir.sx set} \ + -yscrollcommand {.vpane.files.workdir.sy set} \ + -state disabled +scrollbar .vpane.files.workdir.sx -orient h -command [list $ui_workdir xview] +scrollbar .vpane.files.workdir.sy -orient v -command [list $ui_workdir yview] +pack .vpane.files.workdir.title -side top -fill x +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 + $i tag conf in_diff -background [$i tag cget in_sel -background] +} +unset i + +# -- Diff and Commit Area +# +frame .vpane.lower -height 300 -width 400 +frame .vpane.lower.commarea +frame .vpane.lower.diff -relief sunken -borderwidth 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 +# +frame .vpane.lower.commarea.buttons +label .vpane.lower.commarea.buttons.l -text {} \ + -anchor w \ + -justify left +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 [mc Rescan] \ + -command ui_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 [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} + +if {![is_enabled nocommitmsg]} { + 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_btn_caption] \ + -command do_commit +pack .vpane.lower.commarea.buttons.commit -side top -fill x +lappend disable_on_lock \ + {.vpane.lower.commarea.buttons.commit conf -state} + +if {![is_enabled nocommit]} { + button .vpane.lower.commarea.buttons.push -text [mc Push] \ + -command do_push_anywhere + pack .vpane.lower.commarea.buttons.push -side top -fill x +} + +# -- Commit Message Buffer +# +frame .vpane.lower.commarea.buffer +frame .vpane.lower.commarea.buffer.header +set ui_comm .vpane.lower.commarea.buffer.t +set ui_coml .vpane.lower.commarea.buffer.header.l + +if {![is_enabled nocommit]} { + radiobutton .vpane.lower.commarea.buffer.header.new \ + -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 [mc "Amend Last Commit"] \ + -command do_select_commit_type \ + -variable selected_commit_type \ + -value amend + lappend disable_on_lock \ + [list .vpane.lower.commarea.buffer.header.amend conf -state] +} + +label $ui_coml \ + -anchor w \ + -justify left +proc trace_commit_type {varname args} { + global ui_coml commit_type + switch -glob -- $commit_type { + 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 +} +trace add variable commit_type write trace_commit_type +pack $ui_coml -side left -fill x + +if {![is_enabled nocommit]} { + pack .vpane.lower.commarea.buffer.header.amend -side right + pack .vpane.lower.commarea.buffer.header.new -side right +} + +text $ui_comm -background white -foreground black \ + -borderwidth 1 \ + -undo true \ + -maxundo 20 \ + -autoseparators true \ + -relief sunken \ + -width $repo_config(gui.commitmsgwidth) -height 9 -wrap none \ + -font font_diff \ + -yscrollcommand {.vpane.lower.commarea.buffer.sby set} +scrollbar .vpane.lower.commarea.buffer.sby \ + -command [list $ui_comm yview] +pack .vpane.lower.commarea.buffer.header -side top -fill x +pack .vpane.lower.commarea.buffer.sby -side right -fill y +pack $ui_comm -side left -fill y +pack .vpane.lower.commarea.buffer -side left -fill y + +# -- Commit Message Buffer Context Menu +# +set ctxm .vpane.lower.commarea.buffer.ctxm +menu $ctxm -tearoff 0 +$ctxm add command \ + -label [mc Cut] \ + -command {tk_textCut $ui_comm} +$ctxm add command \ + -label [mc Copy] \ + -command {tk_textCopy $ui_comm} +$ctxm add command \ + -label [mc Paste] \ + -command {tk_textPaste $ui_comm} +$ctxm add command \ + -label [mc Delete] \ - -command {$ui_comm delete sel.first sel.last} ++ -command {catch {$ui_comm delete sel.first sel.last}} +$ctxm add separator +$ctxm add command \ + -label [mc "Select All"] \ + -command {focus $ui_comm;$ui_comm tag add sel 0.0 end} +$ctxm add command \ + -label [mc "Copy All"] \ + -command { + $ui_comm tag add sel 0.0 end + tk_textCopy $ui_comm + $ui_comm tag remove sel 0.0 end + } +$ctxm add separator +$ctxm add command \ + -label [mc "Sign Off"] \ + -command do_signoff +set ui_comm_ctxm $ctxm + +# -- Diff Header +# +proc trace_current_diff_path {varname args} { + global current_diff_path diff_actions file_states + if {$current_diff_path eq {}} { + set s {} + set f {} + set p {} + set o disabled + } else { + set p $current_diff_path + set s [mapdesc [lindex $file_states($p) 0] $p] + set f [mc "File:"] + set p [escape_path $p] + set o normal + } + + .vpane.lower.diff.header.status configure -text $s + .vpane.lower.diff.header.file configure -text $f + .vpane.lower.diff.header.path configure -text $p + foreach w $diff_actions { + uplevel #0 $w $o + } +} +trace add variable current_diff_path write trace_current_diff_path + +frame .vpane.lower.diff.header -background gold +label .vpane.lower.diff.header.status \ + -background gold \ + -foreground black \ + -width $max_status_desc \ + -anchor w \ + -justify left +label .vpane.lower.diff.header.file \ + -background gold \ + -foreground black \ + -anchor w \ + -justify left +label .vpane.lower.diff.header.path \ + -background gold \ + -foreground black \ + -anchor w \ + -justify left +pack .vpane.lower.diff.header.status -side left +pack .vpane.lower.diff.header.file -side left +pack .vpane.lower.diff.header.path -fill x +set ctxm .vpane.lower.diff.header.ctxm +menu $ctxm -tearoff 0 +$ctxm add command \ + -label [mc Copy] \ + -command { + clipboard clear + clipboard append \ + -format STRING \ + -type STRING \ + -- $current_diff_path + } +lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] +bind_button3 .vpane.lower.diff.header.path "tk_popup $ctxm %X %Y" + +# -- Diff Body +# +frame .vpane.lower.diff.body +set ui_diff .vpane.lower.diff.body.t +text $ui_diff -background white -foreground black \ + -borderwidth 0 \ + -width 80 -height 15 -wrap none \ + -font font_diff \ + -xscrollcommand {.vpane.lower.diff.body.sbx set} \ + -yscrollcommand {.vpane.lower.diff.body.sby set} \ + -state disabled +scrollbar .vpane.lower.diff.body.sbx -orient horizontal \ + -command [list $ui_diff xview] +scrollbar .vpane.lower.diff.body.sby -orient vertical \ + -command [list $ui_diff yview] +pack .vpane.lower.diff.body.sbx -side bottom -fill x +pack .vpane.lower.diff.body.sby -side right -fill y +pack $ui_diff -side left -fill both -expand 1 +pack .vpane.lower.diff.header -side top -fill x +pack .vpane.lower.diff.body -side bottom -fill both -expand 1 + +$ui_diff tag conf d_cr -elide true +$ui_diff tag conf d_@ -foreground blue -font font_diffbold +$ui_diff tag conf d_+ -foreground {#00a000} +$ui_diff tag conf d_- -foreground red + +$ui_diff tag conf d_++ -foreground {#00a000} +$ui_diff tag conf d_-- -foreground red +$ui_diff tag conf d_+s \ + -foreground {#00a000} \ + -background {#e2effa} +$ui_diff tag conf d_-s \ + -foreground red \ + -background {#e2effa} +$ui_diff tag conf d_s+ \ + -foreground {#00a000} \ + -background ivory1 +$ui_diff tag conf d_s- \ + -foreground red \ + -background ivory1 + +$ui_diff tag conf d<<<<<<< \ + -foreground orange \ + -font font_diffbold +$ui_diff tag conf d======= \ + -foreground orange \ + -font font_diffbold +$ui_diff tag conf d>>>>>>> \ + -foreground orange \ + -font font_diffbold + +$ui_diff tag raise sel + +# -- Diff Body Context Menu +# + +proc create_common_diff_popup {ctxm} { + $ctxm add command \ + -label [mc "Show Less Context"] \ + -command show_less_context + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add command \ + -label [mc "Show More Context"] \ + -command show_more_context + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add separator + $ctxm add command \ + -label [mc Refresh] \ + -command reshow_diff + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add command \ + -label [mc Copy] \ + -command {tk_textCopy $ui_diff} + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add command \ + -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 [mc "Copy All"] \ + -command { + $ui_diff tag add sel 0.0 end + tk_textCopy $ui_diff + $ui_diff tag remove sel 0.0 end + } + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add separator + $ctxm add command \ + -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 [mc "Increase Font Size"] \ + -command {incr_font_size font_diff 1} + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add separator + set emenu $ctxm.enc + menu $emenu + build_encoding_menu $emenu [list force_diff_encoding] + $ctxm add cascade \ + -label [mc "Encoding"] \ + -menu $emenu + lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] + $ctxm add separator + $ctxm add command -label [mc "Options..."] \ + -command do_options +} + +set ctxm .vpane.lower.diff.body.ctxm +menu $ctxm -tearoff 0 +$ctxm add command \ + -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 command \ + -label [mc "Apply/Reverse Line"] \ + -command {apply_line $cursorX $cursorY; do_rescan} +set ui_diff_applyline [$ctxm index last] +lappend diff_actions [list $ctxm entryconf $ui_diff_applyline -state] +$ctxm add separator +create_common_diff_popup $ctxm + +set ctxmmg .vpane.lower.diff.body.ctxmmg +menu $ctxmmg -tearoff 0 +$ctxmmg add command \ + -label [mc "Run Merge Tool"] \ + -command {merge_resolve_tool} +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add separator +$ctxmmg add command \ + -label [mc "Use Remote Version"] \ + -command {merge_resolve_one 3} +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add command \ + -label [mc "Use Local Version"] \ + -command {merge_resolve_one 2} +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add command \ + -label [mc "Revert To Base"] \ + -command {merge_resolve_one 1} +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add separator +create_common_diff_popup $ctxmmg + +proc popup_diff_menu {ctxm ctxmmg x y X Y} { + global current_diff_path file_states + set ::cursorX $x + set ::cursorY $y + if {[info exists file_states($current_diff_path)]} { + set state [lindex $file_states($current_diff_path) 0] + } else { + set state {__} + } + if {[string first {U} $state] >= 0} { + tk_popup $ctxmmg $X $Y + } else { + if {$::ui_index eq $::current_diff_side} { + set l [mc "Unstage Hunk From Commit"] + set t [mc "Unstage Line From Commit"] + } else { + set l [mc "Stage Hunk For Commit"] + set t [mc "Stage Line For Commit"] + } + if {$::is_3way_diff + || $current_diff_path eq {} + || {__} eq $state + || {_O} eq $state + || {_T} eq $state + || {T_} eq $state} { + set s disabled + } else { + set s normal + } + $ctxm entryconf $::ui_diff_applyhunk -state $s -label $l + $ctxm entryconf $::ui_diff_applyline -state $s -label $t + tk_popup $ctxm $X $Y + } +} +bind_button3 $ui_diff [list popup_diff_menu $ctxm $ctxmmg %x %y %X %Y] + +# -- Status Bar +# +set main_status [::status_bar::new .status] +pack .status -anchor w -side bottom -fill x +$main_status show [mc "Initializing..."] + +# -- Load geometry +# +catch { +set gm $repo_config(gui.geometry) +wm geometry . [lindex $gm 0] +.vpane sash place 0 \ + [lindex $gm 1] \ + [lindex [.vpane sash coord 0] 1] +.vpane.files sash place 0 \ + [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} +bind $ui_comm <$M1B-Key-X> {tk_textCut %W;break} +bind $ui_comm <$M1B-Key-c> {tk_textCopy %W;break} +bind $ui_comm <$M1B-Key-C> {tk_textCopy %W;break} +bind $ui_comm <$M1B-Key-v> {tk_textPaste %W; %W see insert; break} +bind $ui_comm <$M1B-Key-V> {tk_textPaste %W; %W see insert; break} +bind $ui_comm <$M1B-Key-a> {%W tag add sel 0.0 end;break} +bind $ui_comm <$M1B-Key-A> {%W tag add sel 0.0 end;break} +bind $ui_comm <$M1B-Key-minus> {show_less_context;break} +bind $ui_comm <$M1B-Key-KP_Subtract> {show_less_context;break} +bind $ui_comm <$M1B-Key-equal> {show_more_context;break} +bind $ui_comm <$M1B-Key-plus> {show_more_context;break} +bind $ui_comm <$M1B-Key-KP_Add> {show_more_context;break} + +bind $ui_diff <$M1B-Key-x> {tk_textCopy %W;break} +bind $ui_diff <$M1B-Key-X> {tk_textCopy %W;break} +bind $ui_diff <$M1B-Key-c> {tk_textCopy %W;break} +bind $ui_diff <$M1B-Key-C> {tk_textCopy %W;break} +bind $ui_diff <$M1B-Key-v> {break} +bind $ui_diff <$M1B-Key-V> {break} +bind $ui_diff <$M1B-Key-a> {%W tag add sel 0.0 end;break} +bind $ui_diff <$M1B-Key-A> {%W tag add sel 0.0 end;break} +bind $ui_diff {catch {%W yview scroll -1 units};break} +bind $ui_diff {catch {%W yview scroll 1 units};break} +bind $ui_diff {catch {%W xview scroll -1 units};break} +bind $ui_diff {catch {%W xview scroll 1 units};break} +bind $ui_diff {catch {%W yview scroll -1 units};break} +bind $ui_diff {catch {%W yview scroll 1 units};break} +bind $ui_diff {catch {%W xview scroll -1 units};break} +bind $ui_diff {catch {%W xview scroll 1 units};break} +bind $ui_diff {catch {%W yview scroll -1 pages};break} +bind $ui_diff {catch {%W yview scroll 1 pages};break} +bind $ui_diff {focus %W} + +if {[is_enabled branch]} { + bind . <$M1B-Key-n> branch_create::dialog + bind . <$M1B-Key-N> branch_create::dialog + bind . <$M1B-Key-o> branch_checkout::dialog + bind . <$M1B-Key-O> branch_checkout::dialog + bind . <$M1B-Key-m> merge::dialog + bind . <$M1B-Key-M> merge::dialog +} +if {[is_enabled transport]} { + bind . <$M1B-Key-p> do_push_anywhere + bind . <$M1B-Key-P> do_push_anywhere +} + +bind . ui_do_rescan +bind . <$M1B-Key-r> ui_do_rescan +bind . <$M1B-Key-R> ui_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-minus> {show_less_context;break} +bind . <$M1B-Key-KP_Subtract> {show_less_context;break} +bind . <$M1B-Key-equal> {show_more_context;break} +bind . <$M1B-Key-plus> {show_more_context;break} +bind . <$M1B-Key-KP_Add> {show_more_context;break} +bind . <$M1B-Key-Return> do_commit +foreach i [list $ui_index $ui_workdir] { + bind $i "toggle_or_diff $i %x %y; break" + bind $i <$M1B-Button-1> "add_one_to_selection $i %x %y; break" + bind $i "add_range_to_selection $i %x %y; break" +} +unset i + +set file_lists($ui_index) [list] +set file_lists($ui_workdir) [list] + +wm title . "[appname] ([reponame]) [file normalize [file dirname [gitdir]]]" +focus -force $ui_comm + +# -- Warn the user about environmental problems. Cygwin's Tcl +# does *not* pass its env array onto any processes it spawns. +# This means that git processes get none of our environment. +# +if {[is_Cygwin]} { + set ignored_env 0 + set suggest_user {} + set msg [mc "Possible environment issues exist. + +The following environment variables are probably +going to be ignored by any Git subprocess run +by %s: + +" [appname]] + foreach name [array names env] { + switch -regexp -- $name { + {^GIT_INDEX_FILE$} - + {^GIT_OBJECT_DIRECTORY$} - + {^GIT_ALTERNATE_OBJECT_DIRECTORIES$} - + {^GIT_DIFF_OPTS$} - + {^GIT_EXTERNAL_DIFF$} - + {^GIT_PAGER$} - + {^GIT_TRACE$} - + {^GIT_CONFIG$} - + {^GIT_(AUTHOR|COMMITTER)_DATE$} { + append msg " - $name\n" + incr ignored_env + } + {^GIT_(AUTHOR|COMMITTER)_(NAME|EMAIL)$} { + append msg " - $name\n" + incr ignored_env + set suggest_user $name + } + } + } + if {$ignored_env > 0} { + append msg [mc " +This is due to a known issue with the +Tcl binary distributed by Cygwin."] + + if {$suggest_user ne {}} { + append msg [mc " + +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 + } + unset ignored_env msg suggest_user name +} + +# -- Only initialize complex UI if we are going to stay running. +# +if {[is_enabled transport]} { + load_all_remotes + + set n [.mbar.remote index end] + populate_remotes_menu + set n [expr {[.mbar.remote index end] - $n}] + if {$n > 0} { + if {[.mbar.remote type 0] eq "tearoff"} { incr n } + .mbar.remote insert $n separator + } + unset n +} + +if {[winfo exists $ui_comm]} { + set GITGUI_BCK_exists [load_message GITGUI_BCK] + + # -- If both our backup and message files exist use the + # newer of the two files to initialize the buffer. + # + if {$GITGUI_BCK_exists} { + set m [gitdir GITGUI_MSG] + if {[file isfile $m]} { + if {[file mtime [gitdir GITGUI_BCK]] > [file mtime $m]} { + catch {file delete [gitdir GITGUI_MSG]} + } else { + $ui_comm delete 0.0 end + $ui_comm edit reset + $ui_comm edit modified false + catch {file delete [gitdir GITGUI_BCK]} + set GITGUI_BCK_exists 0 + } + } + unset m + } + + proc backup_commit_buffer {} { + global ui_comm GITGUI_BCK_exists + + set m [$ui_comm edit modified] + if {$m || $GITGUI_BCK_exists} { + set msg [string trim [$ui_comm get 0.0 end]] + regsub -all -line {[ \r\t]+$} $msg {} msg + + if {$msg eq {}} { + if {$GITGUI_BCK_exists} { + catch {file delete [gitdir GITGUI_BCK]} + set GITGUI_BCK_exists 0 + } + } elseif {$m} { + catch { + set fd [open [gitdir GITGUI_BCK] w] + puts -nonewline $fd $msg + close $fd + set GITGUI_BCK_exists 1 + } + } + + $ui_comm edit modified false + } + + set ::GITGUI_BCK_i [after 2000 backup_commit_buffer] + } + + backup_commit_buffer + + # -- If the user has aspell available we can drive it + # in pipe mode to spellcheck the commit message. + # + set spell_cmd [list |] + set spell_dict [get_config gui.spellingdictionary] + lappend spell_cmd aspell + if {$spell_dict ne {}} { + lappend spell_cmd --master=$spell_dict + } + lappend spell_cmd --mode=none + lappend spell_cmd --encoding=utf-8 + lappend spell_cmd pipe + if {$spell_dict eq {none} + || [catch {set spell_fd [open $spell_cmd r+]} spell_err]} { + bind_button3 $ui_comm [list tk_popup $ui_comm_ctxm %X %Y] + } else { + set ui_comm_spell [spellcheck::init \ + $spell_fd \ + $ui_comm \ + $ui_comm_ctxm \ + ] + } + unset -nocomplain spell_cmd spell_fd spell_err spell_dict +} + +lock_index begin-read +if {![winfo ismapped .]} { + wm deiconify . +} +after 1 { + if {[is_enabled initialamend]} { + force_amend + } else { + do_rescan + } + + if {[is_enabled nocommitmsg]} { + $ui_comm configure -state disabled -background gray + } +} +if {[is_enabled multicommit]} { + after 1000 hint_gc +} +if {[is_enabled retcode]} { + bind . {+terminate_me %W} +} +if {$picked && [is_config_true gui.autoexplore]} { + do_explore +} diff --cc git-gui/lib/branch_delete.tcl index ef1930b49,000000000..20d5e4230 mode 100644,000000..100644 --- a/git-gui/lib/branch_delete.tcl +++ b/git-gui/lib/branch_delete.tcl @@@ -1,147 -1,0 +1,147 @@@ +# git-gui branch delete support +# Copyright (C) 2007 Shawn Pearce + +class branch_delete { + +field w ; # widget path +field w_heads ; # listbox of local head names +field w_check ; # revision picker for merge test +field w_delete ; # delete button + +constructor dialog {} { + global current_branch + + make_toplevel top w + wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch"]] + if {$top ne {.}} { + wm geometry $top "+[winfo rootx .]+[winfo rooty .]" + } + + 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 [mc Delete] \ + -default active \ + -state disabled \ + -command [cb _delete] + pack $w_delete -side right + 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.list -text [mc "Local Branches"] + set w_heads $w.list.l + listbox $w_heads \ + -height 10 \ + -width 70 \ + -selectmode extended \ + -exportselection false \ + -yscrollcommand [list $w.list.sby set] + scrollbar $w.list.sby -command [list $w.list.l yview] + pack $w.list.sby -side right -fill y + pack $w.list.l -side left -fill both -expand 1 + pack $w.list -fill both -expand 1 -pady 5 -padx 5 + + set w_check [choose_rev::new \ + $w.check \ + [mc "Delete Only If Merged Into"] \ + ] - $w_check none [mc "Always (Do not perform merge test.)"] ++ $w_check none [mc "Always (Do not perform merge checks)"] + pack $w.check -anchor nw -fill x -pady 5 -padx 5 + + foreach h [load_all_heads] { + if {$h ne $current_branch} { + $w_heads insert end $h + } + } + + bind $w_heads <> [cb _select] + bind $w " + grab $w + focus $w + " + bind $w [list destroy $w] + bind $w [cb _delete]\;break + tkwait window $w +} + +method _select {} { + if {[$w_heads curselection] eq {}} { + $w_delete configure -state disabled + } else { + $w_delete configure -state normal + } +} + +method _delete {} { + if {[catch {set check_cmt [$w_check commit_or_die]}]} { + return + } + + set to_delete [list] + set not_merged [list] + foreach i [$w_heads curselection] { + set b [$w_heads get $i] + if {[catch { + set o [git rev-parse --verify "refs/heads/$b"] + }]} continue + if {$check_cmt ne {}} { + if {[catch {set m [git merge-base $o $check_cmt]}]} continue + if {$o ne $m} { + lappend not_merged $b + continue + } + } + lappend to_delete [list $b $o] + } + if {$not_merged ne {}} { + set msg "[mc "The following branches are not completely merged into %s:" [$w_check get]] + + - [join $not_merged "\n - "]" + tk_messageBox \ + -icon info \ + -type ok \ + -title [wm title $w] \ + -parent $w \ + -message $msg + } + if {$to_delete eq {}} return + if {$check_cmt eq {}} { - set msg [mc "Recovering deleted branches is difficult. \n\n Delete the selected branches?"] ++ set msg [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"] + if {[tk_messageBox \ + -icon warning \ + -type yesno \ + -title [wm title $w] \ + -parent $w \ + -message $msg] ne yes} { + return + } + } + + set failed {} + foreach i $to_delete { + set b [lindex $i 0] + set o [lindex $i 1] + if {[catch {git branch -D $b} err]} { + append failed " - $b: $err\n" + } + } + + if {$failed ne {}} { + tk_messageBox \ + -icon error \ + -type ok \ + -title [wm title $w] \ + -parent $w \ + -message [mc "Failed to delete branches:\n%s" $failed] + } + + destroy $w +} + +} diff --cc git-gui/lib/checkout_op.tcl index caca88831,000000000..9e7412c44 mode 100644,000000..100644 --- a/git-gui/lib/checkout_op.tcl +++ b/git-gui/lib/checkout_op.tcl @@@ -1,610 -1,0 +1,645 @@@ +# git-gui commit checkout support +# Copyright (C) 2007 Shawn Pearce + +class checkout_op { + +field w {}; # our window (if we have one) +field w_cons {}; # embedded console window object + +field new_expr ; # expression the user saw/thinks this is +field new_hash ; # commit SHA-1 we are switching to +field new_ref ; # ref we are updating/creating ++field old_hash ; # commit SHA-1 that was checked out when we started + +field parent_w .; # window that started us +field merge_type none; # type of merge to apply to existing branch +field merge_base {}; # merge base if we have another ref involved +field fetch_spec {}; # refetch tracking branch if used? +field checkout 1; # actually checkout the branch? +field create 0; # create the branch if it doesn't exist? +field remote_source {}; # same as fetch_spec, to setup tracking + +field reset_ok 0; # did the user agree to reset? +field fetch_ok 0; # did the fetch succeed? + +field readtree_d {}; # buffered output from read-tree +field update_old {}; # was the update-ref call deferred? +field reflog_msg {}; # log message for the update-ref call + +constructor new {expr hash {ref {}}} { + set new_expr $expr + set new_hash $hash + set new_ref $ref + + return $this +} + +method parent {path} { + set parent_w [winfo toplevel $path] +} + +method enable_merge {type} { + set merge_type $type +} + +method enable_fetch {spec} { + set fetch_spec $spec +} + +method remote_source {spec} { + set remote_source $spec +} + +method enable_checkout {co} { + set checkout $co +} + +method enable_create {co} { + set create $co +} + +method run {} { + if {$fetch_spec ne {}} { + global M1B + + # We were asked to refresh a single tracking branch + # before we get to work. We should do that before we + # consider any ref updating. + # + set fetch_ok 0 + set l_trck [lindex $fetch_spec 0] + set remote [lindex $fetch_spec 1] + set r_head [lindex $fetch_spec 2] + regsub ^refs/heads/ $r_head {} r_name + + set cmd [list git fetch $remote] + if {$l_trck ne {}} { + lappend cmd +$r_head:$l_trck + } else { + lappend cmd $r_head + } + + _toplevel $this {Refreshing Tracking Branch} + set w_cons [::console::embed \ + $w.console \ + [mc "Fetching %s from %s" $r_name $remote]] + pack $w.console -fill both -expand 1 + $w_cons exec $cmd [cb _finish_fetch] + + bind $w <$M1B-Key-w> break + bind $w <$M1B-Key-W> break + bind $w " + [list grab $w] + [list focus $w] + " + wm protocol $w WM_DELETE_WINDOW [cb _noop] + tkwait window $w + + if {!$fetch_ok} { + delete_this + return 0 + } + } + + if {$new_ref ne {}} { + # If we have a ref we need to update it before we can + # proceed with a checkout (if one was enabled). + # + if {![_update_ref $this]} { + delete_this + return 0 + } + } + + if {$checkout} { + _checkout $this + return 1 + } + + delete_this + return 1 +} + +method _noop {} {} + +method _finish_fetch {ok} { + if {$ok} { + set l_trck [lindex $fetch_spec 0] + if {$l_trck eq {}} { + set l_trck FETCH_HEAD + } + if {[catch {set new_hash [git rev-parse --verify "$l_trck^0"]} err]} { + set ok 0 + $w_cons insert [mc "fatal: Cannot resolve %s" $l_trck] + $w_cons insert $err + } + } + + $w_cons done $ok + set w_cons {} + wm protocol $w WM_DELETE_WINDOW {} + + if {$ok} { + destroy $w + set w {} + } else { + button $w.close -text [mc Close] -command [list destroy $w] + pack $w.close -side bottom -anchor e -padx 10 -pady 10 + } + + set fetch_ok $ok +} + +method _update_ref {} { + global null_sha1 current_branch repo_config + + set ref $new_ref + set new $new_hash + + set is_current 0 + set rh refs/heads/ + set rn [string length $rh] + if {[string equal -length $rn $rh $ref]} { + set newbranch [string range $ref $rn end] + if {$current_branch eq $newbranch} { + set is_current 1 + } + } else { + set newbranch $ref + } + + if {[catch {set cur [git rev-parse --verify "$ref^0"]}]} { + # Assume it does not exist, and that is what the error was. + # + if {!$create} { + _error $this [mc "Branch '%s' does not exist." $newbranch] + return 0 + } + + set reflog_msg "branch: Created from $new_expr" + set cur $null_sha1 + + if {($repo_config(branch.autosetupmerge) eq {true} + || $repo_config(branch.autosetupmerge) eq {always}) + && $remote_source ne {} + && "refs/heads/$newbranch" eq $ref} { + + set c_remote [lindex $remote_source 1] + set c_merge [lindex $remote_source 2] + if {[catch { + git config branch.$newbranch.remote $c_remote + git config branch.$newbranch.merge $c_merge + } err]} { + _error $this [strcat \ + [mc "Failed to configure simplified git-pull for '%s'." $newbranch] \ + "\n\n$err"] + } + } + } elseif {$create && $merge_type eq {none}} { + # We were told to create it, but not do a merge. + # Bad. Name shouldn't have existed. + # + _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. + # We are probably just a simple branch switch. + # Use whatever value we just read. + # + set new $cur + set new_hash $cur + } elseif {$new eq $cur} { + # No merge would be required, don't compute anything. + # + } else { + catch {set merge_base [git merge-base $new $cur]} + if {$merge_base eq $cur} { + # The current branch is older. + # + set reflog_msg "merge $new_expr: Fast-forward" + } else { + switch -- $merge_type { + ff { + if {$merge_base eq $new} { + # The current branch is actually newer. + # + set new $cur + set new_hash $cur + } else { + _error $this [mc "Branch '%s' already exists.\n\nIt cannot fast-forward to %s.\nA merge is required." $newbranch $new_expr] + return 0 + } + } + reset { + # The current branch will lose things. + # + if {[_confirm_reset $this $cur]} { + set reflog_msg "reset $new_expr" + } else { + return 0 + } + } + default { + _error $this [mc "Merge strategy '%s' not supported." $merge_type] + return 0 + } + } + } + } + + if {$new ne $cur} { + if {$is_current} { + # No so fast. We should defer this in case + # we cannot update the working directory. + # + set update_old $cur + return 1 + } + + if {[catch { + git update-ref -m $reflog_msg $ref $new $cur + } err]} { + _error $this [strcat [mc "Failed to update '%s'." $newbranch] "\n\n$err"] + return 0 + } + } + + return 1 +} + +method _checkout {} { + if {[lock_index checkout_op]} { + after idle [cb _start_checkout] + } else { + _error $this [mc "Staging area (index) is already locked."] + delete_this + } +} + +method _start_checkout {} { + global HEAD commit_type + + # -- Our in memory state should match the repository. + # - repository_state curType curHEAD curMERGE_HEAD ++ repository_state curType old_hash curMERGE_HEAD + if {[string match amend* $commit_type] + && $curType eq {normal} - && $curHEAD eq $HEAD} { - } elseif {$commit_type ne $curType || $HEAD ne $curHEAD} { ++ && $old_hash eq $HEAD} { ++ } elseif {$commit_type ne $curType || $HEAD ne $old_hash} { + 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 + return + } + - if {$curHEAD eq $new_hash} { ++ if {$old_hash eq $new_hash} { + _after_readtree $this + } elseif {[is_config_true gui.trustmtime]} { + _readtree $this + } else { + ui_status [mc "Refreshing file status..."] + set fd [git_read update-index \ + -q \ + --unmerged \ + --ignore-missing \ + --refresh \ + ] + fconfigure $fd -blocking 0 -translation binary + fileevent $fd readable [cb _refresh_wait $fd] + } +} + +method _refresh_wait {fd} { + read $fd + if {[eof $fd]} { + close $fd + _readtree $this + } +} + +method _name {} { + if {$new_ref eq {}} { + return [string range $new_hash 0 7] + } + + set rh refs/heads/ + set rn [string length $rh] + if {[string equal -length $rn $rh $new_ref]} { + return [string range $new_ref $rn end] + } else { + return $new_ref + } +} + +method _readtree {} { + global HEAD + + set readtree_d {} + $::main_status start \ + [mc "Updating working directory to '%s'..." [_name $this]] \ + [mc "files checked out"] + + set fd [git_read --stderr read-tree \ + -m \ + -u \ + -v \ + --exclude-per-directory=.gitignore \ + $HEAD \ + $new_hash \ + ] + fconfigure $fd -blocking 0 -translation binary + fileevent $fd readable [cb _readtree_wait $fd] +} + +method _readtree_wait {fd} { + global current_branch + + set buf [read $fd] + $::main_status update_meter $buf + append readtree_d $buf + + fconfigure $fd -blocking 1 + if {![eof $fd]} { + fconfigure $fd -blocking 0 + return + } + + if {[catch {close $fd}]} { + set err $readtree_d + regsub {^fatal: } $err {} err + $::main_status stop [mc "Aborted checkout of '%s' (file level merging is required)." [_name $this]] + warn_popup [strcat [mc "File level merge required."] " + +$err + +" [mc "Staying on branch '%s'." $current_branch]] + unlock_index + delete_this + return + } + + $::main_status stop + _after_readtree $this +} + +method _after_readtree {} { + global selected_commit_type commit_type HEAD MERGE_HEAD PARENT + global current_branch is_detached + global ui_comm + + set name [_name $this] + set log "checkout: moving" + if {!$is_detached} { + append log " from $current_branch" + } + + # -- Move/create HEAD as a symbolic ref. Core git does not + # even check for failure here, it Just Works(tm). If it + # doesn't we are in some really ugly state that is difficult + # to recover from within git-gui. + # + set rh refs/heads/ + set rn [string length $rh] + if {[string equal -length $rn $rh $new_ref]} { + set new_branch [string range $new_ref $rn end] + if {$is_detached || $current_branch ne $new_branch} { + append log " to $new_branch" + if {[catch { + git symbolic-ref -m $log HEAD $new_ref + } err]} { + _fatal $this $err + } + set current_branch $new_branch + set is_detached 0 + } + } else { + if {!$is_detached || $new_hash ne $HEAD} { + append log " to $new_expr" + if {[catch { + _detach_HEAD $log $new_hash + } err]} { + _fatal $this $err + } + } + set current_branch HEAD + set is_detached 1 + } + + # -- We had to defer updating the branch itself until we + # knew the working directory would update. So now we + # need to finish that work. If it fails we're in big + # trouble. + # + if {$update_old ne {}} { + if {[catch { + git update-ref \ + -m $reflog_msg \ + $new_ref \ + $new_hash \ + $update_old + } err]} { + _fatal $this $err + } + } + + if {$is_detached} { + 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'."] + } + ++ # -- Run the post-checkout hook. ++ # ++ set fd_ph [githook_read post-checkout $old_hash $new_hash 1] ++ if {$fd_ph ne {}} { ++ global pch_error ++ set pch_error {} ++ fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} ++ fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph] ++ } else { ++ _update_repo_state $this ++ } ++} ++ ++method _postcheckout_wait {fd_ph} { ++ global pch_error ++ ++ append pch_error [read $fd_ph] ++ fconfigure $fd_ph -blocking 1 ++ if {[eof $fd_ph]} { ++ if {[catch {close $fd_ph}]} { ++ hook_failed_popup post-checkout $pch_error 0 ++ } ++ unset pch_error ++ _update_repo_state $this ++ return ++ } ++ fconfigure $fd_ph -blocking 0 ++} ++ ++method _update_repo_state {} { + # -- Update our repository state. If we were previously in + # amend mode we need to toss the current buffer and do a + # full rescan to update our file lists. If we weren't in + # amend mode our file lists are accurate and we can avoid + # the rescan. + # ++ global selected_commit_type commit_type HEAD MERGE_HEAD PARENT ++ global ui_comm ++ + unlock_index ++ set name [_name $this] + set selected_commit_type new + if {[string match amend* $commit_type]} { + $ui_comm delete 0.0 end + $ui_comm edit reset + $ui_comm edit modified false + rescan [list ui_status [mc "Checked out '%s'." $name]] + } else { + repository_state commit_type HEAD MERGE_HEAD + set PARENT $HEAD + ui_status [mc "Checked out '%s'." $name] + } + delete_this +} + +git-version proc _detach_HEAD {log new} { + >= 1.5.3 { + git update-ref --no-deref -m $log HEAD $new + } + default { + set p [gitdir HEAD] + file delete $p + set fd [open $p w] + fconfigure $fd -translation lf -encoding utf-8 + puts $fd $new + close $fd + } +} + +method _confirm_reset {cur} { + set reset_ok 0 + set name [_name $this] + set gitk [list do_gitk [list $cur ^$new_hash]] + + _toplevel $this {Confirm Branch Reset} + pack [label $w.msg1 \ + -anchor w \ + -justify left \ + -text [mc "Resetting '%s' to '%s' will lose the following commits:" $name $new_expr]\ + ] -anchor w + + set list $w.list.l + frame $w.list + text $list \ + -font font_diff \ + -width 80 \ + -height 10 \ + -wrap none \ + -xscrollcommand [list $w.list.sbx set] \ + -yscrollcommand [list $w.list.sby set] + scrollbar $w.list.sbx -orient h -command [list $list xview] + scrollbar $w.list.sby -orient v -command [list $list yview] + pack $w.list.sbx -fill x -side bottom + pack $w.list.sby -fill y -side right + pack $list -fill both -expand 1 + pack $w.list -fill both -expand 1 -padx 5 -pady 5 + + pack [label $w.msg2 \ + -anchor w \ + -justify left \ + -text [mc "Recovering lost commits may not be easy."] \ + ] + pack [label $w.msg3 \ + -anchor w \ + -justify left \ + -text [mc "Reset '%s'?" $name] \ + ] + + frame $w.buttons + button $w.buttons.visualize \ + -text [mc Visualize] \ + -command $gitk + pack $w.buttons.visualize -side left + button $w.buttons.reset \ + -text [mc Reset] \ + -command " + set @reset_ok 1 + destroy $w + " + pack $w.buttons.reset -side right + button $w.buttons.cancel \ + -default active \ + -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 fd [git_read rev-list --pretty=oneline $cur ^$new_hash] + while {[gets $fd line] > 0} { + set abbr [string range $line 0 7] + set subj [string range $line 41 end] + $list insert end "$abbr $subj\n" + } + close $fd + $list configure -state disabled + + bind $w $gitk + bind $w " + grab $w + focus $w.buttons.cancel + " + bind $w [list destroy $w] + bind $w [list destroy $w] + tkwait window $w + return $reset_ok +} + +method _error {msg} { + if {[winfo ismapped $parent_w]} { + set p $parent_w + } else { + set p . + } + + tk_messageBox \ + -icon error \ + -type ok \ + -title [wm title $p] \ + -parent $p \ + -message $msg +} + +method _toplevel {title} { + regsub -all {::} $this {__} w + set w .$w + + if {[winfo ismapped $parent_w]} { + set p $parent_w + } else { + set p . + } + + toplevel $w + wm title $w $title + wm geometry $w "+[winfo rootx $p]+[winfo rooty $p]" +} + +method _fatal {err} { + 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. %s will now close and give up." [appname]] " + +$err"] + exit 1 +} + +} diff --cc git-gui/lib/choose_repository.tcl index f9ff62a3b,000000000..633cc572b mode 100644,000000..100644 --- a/git-gui/lib/choose_repository.tcl +++ b/git-gui/lib/choose_repository.tcl @@@ -1,1048 -1,0 +1,1079 @@@ +# 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 w_localpath ; # Entry widget bound to local_path + +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 Apple -menu .mbar.apple + menu $w.mbar.apple + $w.mbar.apple add command \ + -label [mc "About %s" [appname]] \ + -command do_about + $w.mbar.apple add command \ + -label [mc "Show SSH Key"] \ + -command do_ssh_key + } 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 + $w.mbar.help add command \ + -label [mc "Show SSH Key"] \ + -command do_ssh_key + } + + wm protocol $top WM_DELETE_WINDOW exit + bind $top <$M1B-q> exit + bind $top <$M1B-Q> exit + bind $top exit + } else { + wm geometry $top "+[winfo rootx .]+[winfo rooty .]" + bind $top [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 [cb _invoke_next] + bind $top " + [cb _center] + grab $top + focus $top + bind $top {} + " + 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 {[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 \ + -borderwidth 1 \ + -relief sunken \ + -width 50 + button $w_body.where.b \ + -text [mc "Browse"] \ + -command [cb _new_local_path] + set w_localpath $w_body.where.t + + grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew + pack $w_body.where -fill x + ++ grid columnconfigure $w_body.where 1 -weight 1 ++ + trace add variable @local_path write [cb _write_local_path] + bind $w_body.h [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 {![_new_ok $p]} { + return + } + set local_path $p + $w_localpath icursor end +} + +method _do_new2 {} { + if {![_new_ok $local_path]} { + return + } + if {![_git_init $this]} { + return + } + set done 1 +} + +proc _new_ok {p} { + if {[file isdirectory $p]} { + if {[_is_git [file join $p .git]]} { + error_popup [mc "Directory %s already exists." $p] + return 0 + } + } elseif {[file exists $p]} { + error_popup [mc "File %s already exists." $p] + return 0 + } + return 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 "Source Location:"] + entry $args.origin_t \ + -textvariable @origin_url \ + -borderwidth 1 \ + -relief sunken \ + -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 "Target Directory:"] + entry $args.where_t \ + -textvariable @local_path \ + -borderwidth 1 \ + -relief sunken \ + -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 + set w_localpath $args.where_t + + 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 " + [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 {[file exists $local_path]} { + error_popup [mc "Location %s already exists." $local_path] + return + } + + 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 ++ # -- Run the post-checkout hook. ++ # ++ set fd_ph [githook_read post-checkout [string repeat 0 40] \ ++ [git rev-parse HEAD] 1] ++ if {$fd_ph ne {}} { ++ global pch_error ++ set pch_error {} ++ fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} ++ fileevent $fd_ph readable [cb _postcheckout_wait $fd_ph] ++ } else { ++ set done 1 ++ } ++} ++ ++method _postcheckout_wait {fd_ph} { ++ global pch_error ++ ++ append pch_error [read $fd_ph] ++ fconfigure $fd_ph -blocking 1 ++ if {[eof $fd_ph]} { ++ if {[catch {close $fd_ph}]} { ++ hook_failed_popup post-checkout $pch_error 0 ++ } ++ unset pch_error ++ set done 1 ++ return ++ } ++ fconfigure $fd_ph -blocking 0 +} + +###################################################################### +## +## 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 \ + -borderwidth 1 \ + -relief sunken \ + -width 50 + button $w_body.where.b \ + -text [mc "Browse"] \ + -command [cb _open_local_path] + + grid $w_body.where.l $w_body.where.t $w_body.where.b -sticky ew + pack $w_body.where -fill x + ++ grid columnconfigure $w_body.where 1 -weight 1 ++ + trace add variable @local_path write [cb _write_local_path] + bind $w_body.h [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 +} + +} diff --cc git-gui/lib/commit.tcl index 9cc841059,000000000..7f459cd56 mode 100644,000000..100644 --- a/git-gui/lib/commit.tcl +++ b/git-gui/lib/commit.tcl @@@ -1,476 -1,0 +1,485 @@@ +# git-gui misc. commit reading/writing support +# Copyright (C) 2006, 2007 Shawn Pearce + +proc load_last_commit {} { + global HEAD PARENT MERGE_HEAD commit_type ui_comm + global repo_config + + if {[llength $PARENT] == 0} { + 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 [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 + } + + set msg {} + set parents [list] + if {[catch { + set fd [git_read cat-file commit $curHEAD] + fconfigure $fd -encoding binary -translation lf + # By default commits are assumed to be in utf-8 + set enc utf-8 + while {[gets $fd line] > 0} { + if {[string match {parent *} $line]} { + lappend parents [string range $line 7 end] + } elseif {[string match {encoding *} $line]} { + set enc [string tolower [string range $line 9 end]] + } + } + set msg [read $fd] + close $fd + + set enc [tcl_encoding $enc] + if {$enc ne {}} { + set msg [encoding convertfrom $enc $msg] + } + set msg [string trim $msg] + } err]} { + error_popup [strcat [mc "Error loading commit data for amend:"] "\n\n$err"] + return + } + + set HEAD $curHEAD + set PARENT $parents + set MERGE_HEAD [list] + switch -- [llength $parents] { + 0 {set commit_type amend-initial} + 1 {set commit_type amend} + default {set commit_type amend-merge} + } + + $ui_comm delete 0.0 end + $ui_comm insert end $msg + $ui_comm edit reset + $ui_comm edit modified false + rescan ui_ready +} + +set GIT_COMMITTER_IDENT {} + +proc committer_ident {} { + global GIT_COMMITTER_IDENT + + if {$GIT_COMMITTER_IDENT eq {}} { + if {[catch {set me [git var GIT_COMMITTER_IDENT]} 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 [strcat [mc "Invalid GIT_COMMITTER_IDENT:"] "\n\n$me"] + return {} + } + } + + return $GIT_COMMITTER_IDENT +} + +proc do_signoff {} { + global ui_comm + + set me [committer_ident] + if {$me eq {}} return + + set sob "Signed-off-by: $me" + set last [$ui_comm get {end -1c linestart} {end -1c}] + if {$last ne $sob} { + $ui_comm edit separator + if {$last ne {} + && ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} { + $ui_comm insert end "\n" + } + $ui_comm insert end "\n$sob" + $ui_comm edit separator + $ui_comm see end + } +} + +proc create_new_commit {} { + global commit_type ui_comm + + set commit_type normal + $ui_comm delete 0.0 end + $ui_comm edit reset + $ui_comm edit modified false + rescan ui_ready +} + ++proc setup_commit_encoding {msg_wt {quiet 0}} { ++ global repo_config ++ ++ if {[catch {set enc $repo_config(i18n.commitencoding)}]} { ++ set enc utf-8 ++ } ++ set use_enc [tcl_encoding $enc] ++ if {$use_enc ne {}} { ++ fconfigure $msg_wt -encoding $use_enc ++ } else { ++ if {!$quiet} { ++ error_popup [mc "warning: Tcl does not support encoding '%s'." $enc] ++ } ++ fconfigure $msg_wt -encoding utf-8 ++ } ++} ++ +proc commit_tree {} { + global HEAD commit_type file_states ui_comm repo_config + global pch_error + + if {[committer_ident] eq {}} return + if {![lock_index update]} return + + # -- Our in memory state should match the repository. + # + repository_state curType curHEAD curMERGE_HEAD + if {[string match amend* $commit_type] + && $curType eq {normal} + && $curHEAD eq $HEAD} { + } elseif {$commit_type ne $curType || $HEAD ne $curHEAD} { + 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 + } + + # -- At least one file should differ in the index. + # + set files_ready 0 + foreach path [array names file_states] { + switch -glob -- [lindex $file_states($path) 0] { + _? {continue} + A? - + D? - + T_ - + M? {set files_ready 1} + _U - + U? { + error_popup [mc "Unmerged files cannot be committed. + +File %s has merge conflicts. You must resolve them and stage the file before committing. +" [short_path $path]] + unlock_index + return + } + default { + error_popup [mc "Unknown file state %s detected. + +File %s cannot be committed by this program. +" [lindex $s 0] [short_path $path]] + } + } + } + if {!$files_ready && ![string match *merge $curType] && ![is_enabled nocommit]} { + info_popup [mc "No changes to commit. + +You must stage at least 1 file before you can commit. +"] + unlock_index + return + } + + if {[is_enabled nocommitmsg]} { do_quit 0 } + + # -- A message is required. + # + set msg [string trim [$ui_comm get 1.0 end]] + regsub -all -line {[ \t\r]+$} $msg {} msg + if {$msg eq {}} { + error_popup [mc "Please supply a commit message. + +A good commit message has the following format: + +- First line: Describe in one sentence what you did. +- Second line: Blank +- Remaining lines: Describe why this change is good. +"] + unlock_index + return + } + + # -- Build the message file. + # + set msg_p [gitdir GITGUI_EDITMSG] + set msg_wt [open $msg_p w] + fconfigure $msg_wt -translation lf - if {[catch {set enc $repo_config(i18n.commitencoding)}]} { - set enc utf-8 - } - set use_enc [tcl_encoding $enc] - if {$use_enc ne {}} { - fconfigure $msg_wt -encoding $use_enc - } else { - error_popup [mc "warning: Tcl does not support encoding '%s'." $enc] - fconfigure $msg_wt -encoding utf-8 - } ++ setup_commit_encoding $msg_wt + puts $msg_wt $msg + close $msg_wt + + if {[is_enabled nocommit]} { do_quit 0 } + + # -- Run the pre-commit hook. + # + set fd_ph [githook_read pre-commit] + if {$fd_ph eq {}} { + commit_commitmsg $curHEAD $msg_p + return + } + + ui_status [mc "Calling pre-commit hook..."] + set pch_error {} + fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fileevent $fd_ph readable \ + [list commit_prehook_wait $fd_ph $curHEAD $msg_p] +} + +proc commit_prehook_wait {fd_ph curHEAD msg_p} { + global pch_error + + append pch_error [read $fd_ph] + fconfigure $fd_ph -blocking 1 + if {[eof $fd_ph]} { + if {[catch {close $fd_ph}]} { + catch {file delete $msg_p} + ui_status [mc "Commit declined by pre-commit hook."] + hook_failed_popup pre-commit $pch_error + unlock_index + } else { + commit_commitmsg $curHEAD $msg_p + } + set pch_error {} + return + } + fconfigure $fd_ph -blocking 0 +} + +proc commit_commitmsg {curHEAD msg_p} { + global pch_error + + # -- Run the commit-msg hook. + # + set fd_ph [githook_read commit-msg $msg_p] + if {$fd_ph eq {}} { + commit_writetree $curHEAD $msg_p + return + } + + ui_status [mc "Calling commit-msg hook..."] + set pch_error {} + fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fileevent $fd_ph readable \ + [list commit_commitmsg_wait $fd_ph $curHEAD $msg_p] +} + +proc commit_commitmsg_wait {fd_ph curHEAD msg_p} { + global pch_error + + append pch_error [read $fd_ph] + fconfigure $fd_ph -blocking 1 + if {[eof $fd_ph]} { + if {[catch {close $fd_ph}]} { + catch {file delete $msg_p} + ui_status [mc "Commit declined by commit-msg hook."] + hook_failed_popup commit-msg $pch_error + unlock_index + } else { + commit_writetree $curHEAD $msg_p + } + set pch_error {} + return + } + fconfigure $fd_ph -blocking 0 +} + +proc commit_writetree {curHEAD msg_p} { + ui_status [mc "Committing changes..."] + set fd_wt [git_read write-tree] + fileevent $fd_wt readable \ + [list commit_committree $fd_wt $curHEAD $msg_p] +} + +proc commit_committree {fd_wt curHEAD msg_p} { + global HEAD PARENT MERGE_HEAD commit_type + global current_branch + global ui_comm selected_commit_type + global file_states selected_paths rescan_active + global repo_config + + gets $fd_wt tree_id + if {[catch {close $fd_wt} err]} { + catch {file delete $msg_p} + error_popup [strcat [mc "write-tree failed:"] "\n\n$err"] + ui_status [mc "Commit failed."] + unlock_index + return + } + + # -- Verify this wasn't an empty change. + # + if {$commit_type eq {normal}} { + set fd_ot [git_read cat-file commit $PARENT] + fconfigure $fd_ot -encoding binary -translation lf + set old_tree [gets $fd_ot] + close $fd_ot + + if {[string equal -length 5 {tree } $old_tree] + && [string length $old_tree] == 45} { + set old_tree [string range $old_tree 5 end] + } else { + error [mc "Commit %s appears to be corrupt" $PARENT] + } + + if {$tree_id eq $old_tree} { + catch {file delete $msg_p} + 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 [mc "No changes to commit."]} + return + } + } + + # -- Create the commit. + # + set cmd [list commit-tree $tree_id] + foreach p [concat $PARENT $MERGE_HEAD] { + lappend cmd -p $p + } + lappend cmd <$msg_p + if {[catch {set cmt_id [eval git $cmd]} err]} { + catch {file delete $msg_p} + error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"] + ui_status [mc "Commit failed."] + unlock_index + return + } + + # -- Update the HEAD ref. + # + set reflogm commit + if {$commit_type ne {normal}} { + append reflogm " ($commit_type)" + } + set msg_fd [open $msg_p r] ++ setup_commit_encoding $msg_fd 1 + gets $msg_fd subject + close $msg_fd + append reflogm {: } $subject + if {[catch { + git update-ref -m $reflogm HEAD $cmt_id $curHEAD + } err]} { + catch {file delete $msg_p} + error_popup [strcat [mc "update-ref failed:"] "\n\n$err"] + ui_status [mc "Commit failed."] + unlock_index + return + } + + # -- Cleanup after ourselves. + # + catch {file delete $msg_p} + catch {file delete [gitdir MERGE_HEAD]} + catch {file delete [gitdir MERGE_MSG]} + catch {file delete [gitdir SQUASH_MSG]} + catch {file delete [gitdir GITGUI_MSG]} + + # -- Let rerere do its thing. + # + if {[get_config rerere.enabled] eq {}} { + set rerere [file isdirectory [gitdir rr-cache]] + } else { + set rerere [is_config_true rerere.enabled] + } + if {$rerere} { + catch {git rerere} + } + + # -- Run the post-commit hook. + # + set fd_ph [githook_read post-commit] + if {$fd_ph ne {}} { - upvar #0 pch_error$cmt_id pc_err - set pc_err {} ++ global pch_error ++ set pch_error {} + fconfigure $fd_ph -blocking 0 -translation binary -eofchar {} + fileevent $fd_ph readable \ + [list commit_postcommit_wait $fd_ph $cmt_id] + } + + $ui_comm delete 0.0 end + $ui_comm edit reset + $ui_comm edit modified false + if {$::GITGUI_BCK_exists} { + catch {file delete [gitdir GITGUI_BCK]} + set ::GITGUI_BCK_exists 0 + } + + if {[is_enabled singlecommit]} { do_quit 0 } + + # -- Update in memory status + # + set selected_commit_type new + set commit_type normal + set HEAD $cmt_id + set PARENT $cmt_id + set MERGE_HEAD [list] + + foreach path [array names file_states] { + set s $file_states($path) + set m [lindex $s 0] + switch -glob -- $m { + _O - + _M - + _D {continue} + __ - + A_ - + M_ - + T_ - + D_ { + unset file_states($path) + catch {unset selected_paths($path)} + } + DO { + set file_states($path) [list _O [lindex $s 1] {} {}] + } + AM - + AD - + MM - + MD { + set file_states($path) [list \ + _[string index $m 1] \ + [lindex $s 1] \ + [lindex $s 3] \ + {}] + } + } + } + + display_all_files + unlock_index + reshow_diff + ui_status [mc "Created commit %s: %s" [string range $cmt_id 0 7] $subject] +} + +proc commit_postcommit_wait {fd_ph cmt_id} { - upvar #0 pch_error$cmt_id pch_error ++ global pch_error + + append pch_error [read $fd_ph] + fconfigure $fd_ph -blocking 1 + if {[eof $fd_ph]} { + if {[catch {close $fd_ph}]} { + hook_failed_popup post-commit $pch_error 0 + } + unset pch_error + return + } + fconfigure $fd_ph -blocking 0 +} diff --cc git-gui/lib/diff.tcl index bbbf15c87,000000000..925b3f56c mode 100644,000000..100644 --- a/git-gui/lib/diff.tcl +++ b/git-gui/lib/diff.tcl @@@ -1,643 -1,0 +1,652 @@@ +# git-gui diff viewer +# Copyright (C) 2006, 2007 Shawn Pearce + +proc clear_diff {} { + global ui_diff current_diff_path current_diff_header + global ui_index ui_workdir + + $ui_diff conf -state normal + $ui_diff delete 0.0 end + $ui_diff conf -state disabled + + set current_diff_path {} + set current_diff_header {} + + $ui_index tag remove in_diff 0.0 end + $ui_workdir tag remove in_diff 0.0 end +} + +proc reshow_diff {{after {}}} { + global file_states file_lists + global current_diff_path current_diff_side + global ui_diff + + set p $current_diff_path + if {$p eq {}} { + # No diff is being shown. + } elseif {$current_diff_side eq {}} { + clear_diff + } elseif {[catch {set s $file_states($p)}] + || [lsearch -sorted -exact $file_lists($current_diff_side) $p] == -1} { + + if {[find_next_diff $current_diff_side $p {} {[^O]}]} { + next_diff $after + } else { + clear_diff + } + } else { + set save_pos [lindex [$ui_diff yview] 0] + show_diff $p $current_diff_side {} $save_pos $after + } +} + +proc force_diff_encoding {enc} { + global current_diff_path + + if {$current_diff_path ne {}} { + force_path_encoding $current_diff_path $enc + reshow_diff + } +} + +proc handle_empty_diff {} { + global current_diff_path file_states file_lists ++ global diff_empty_count + + set path $current_diff_path + set s $file_states($path) + if {[lindex $s 0] ne {_M}} return + ++ # Prevent infinite rescan loops ++ incr diff_empty_count ++ if {$diff_empty_count > 1} return ++ + info_popup [mc "No differences detected. + +%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." [short_path $path]] + + clear_diff + display_file $path __ + rescan ui_ready 0 +} + +proc show_diff {path w {lno {}} {scroll_pos {}} {callback {}}} { + global file_states file_lists + global is_3way_diff is_conflict_diff diff_active repo_config + global ui_diff ui_index ui_workdir + global current_diff_path current_diff_side current_diff_header + global current_diff_queue + + if {$diff_active || ![lock_index read]} return + + clear_diff + if {$lno == {}} { + set lno [lsearch -sorted -exact $file_lists($w) $path] + if {$lno >= 0} { + incr lno + } + } + if {$lno >= 1} { + $w tag add in_diff $lno.0 [expr {$lno + 1}].0 + $w see $lno.0 + } + + set s $file_states($path) + set m [lindex $s 0] + set is_conflict_diff 0 + set current_diff_path $path + set current_diff_side $w + set current_diff_queue {} + ui_status [mc "Loading diff of %s..." [escape_path $path]] + + set cont_info [list $scroll_pos $callback] + + if {[string first {U} $m] >= 0} { + merge_load_stages $path [list show_unmerged_diff $cont_info] + } elseif {$m eq {_O}} { + show_other_diff $path $w $m $cont_info + } else { + start_show_diff $cont_info + } +} + +proc show_unmerged_diff {cont_info} { + global current_diff_path current_diff_side + global merge_stages ui_diff is_conflict_diff + global current_diff_queue + + if {$merge_stages(2) eq {}} { + set is_conflict_diff 1 + lappend current_diff_queue \ + [list [mc "LOCAL: deleted\nREMOTE:\n"] d======= \ + [list ":1:$current_diff_path" ":3:$current_diff_path"]] + } elseif {$merge_stages(3) eq {}} { + set is_conflict_diff 1 + lappend current_diff_queue \ + [list [mc "REMOTE: deleted\nLOCAL:\n"] d======= \ + [list ":1:$current_diff_path" ":2:$current_diff_path"]] + } elseif {[lindex $merge_stages(1) 0] eq {120000} + || [lindex $merge_stages(2) 0] eq {120000} + || [lindex $merge_stages(3) 0] eq {120000}} { + set is_conflict_diff 1 + lappend current_diff_queue \ + [list [mc "LOCAL:\n"] d======= \ + [list ":1:$current_diff_path" ":2:$current_diff_path"]] + lappend current_diff_queue \ + [list [mc "REMOTE:\n"] d======= \ + [list ":1:$current_diff_path" ":3:$current_diff_path"]] + } else { + start_show_diff $cont_info + return + } + + advance_diff_queue $cont_info +} + +proc advance_diff_queue {cont_info} { + global current_diff_queue ui_diff + + set item [lindex $current_diff_queue 0] + set current_diff_queue [lrange $current_diff_queue 1 end] + + $ui_diff conf -state normal + $ui_diff insert end [lindex $item 0] [lindex $item 1] + $ui_diff conf -state disabled + + start_show_diff $cont_info [lindex $item 2] +} + +proc show_other_diff {path w m cont_info} { + global file_states file_lists + global is_3way_diff diff_active repo_config + global ui_diff ui_index ui_workdir + global current_diff_path current_diff_side current_diff_header + + # - Git won't give us the diff, there's nothing to compare to! + # + if {$m eq {_O}} { + set max_sz 100000 + set type unknown + if {[catch { + set type [file type $path] + switch -- $type { + directory { + set type submodule + set content {} + set sz 0 + } + link { + set content [file readlink $path] + set sz [string length $content] + } + file { + set fd [open $path r] + fconfigure $fd \ + -eofchar {} \ + -encoding [get_path_encoding $path] + set content [read $fd $max_sz] + close $fd + set sz [file size $path] + } + default { + error "'$type' not supported" + } + } + } err ]} { + set diff_active 0 + unlock_index + 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 [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]} { + set type [string range $type $n end] + regsub {^:?\s*} $type {} type + } + $ui_diff insert end "* $type\n" d_@ + } + if {[string first "\0" $content] != -1} { + $ui_diff insert end \ + [mc "* Binary file (not showing content)."] \ + d_@ + } else { + if {$sz > $max_sz} { + $ui_diff insert end [mc \ +"* Untracked file is %d bytes. +* Showing only first %d bytes. +" $sz $max_sz] d_@ + } + $ui_diff insert end $content + if {$sz > $max_sz} { + $ui_diff insert end [mc " +* Untracked file clipped here by %s. +* To see the entire file, use an external editor. +" [appname]] d_@ + } + } + $ui_diff conf -state disabled + set diff_active 0 + unlock_index + set scroll_pos [lindex $cont_info 0] + if {$scroll_pos ne {}} { + update + $ui_diff yview moveto $scroll_pos + } + ui_ready + set callback [lindex $cont_info 1] + if {$callback ne {}} { + eval $callback + } + return + } +} + +proc start_show_diff {cont_info {add_opts {}}} { + global file_states file_lists + global is_3way_diff diff_active repo_config + global ui_diff ui_index ui_workdir + global current_diff_path current_diff_side current_diff_header + + set path $current_diff_path + set w $current_diff_side + + set s $file_states($path) + set m [lindex $s 0] + set is_3way_diff 0 + set diff_active 1 + set current_diff_header {} + + set cmd [list] + if {$w eq $ui_index} { + lappend cmd diff-index + lappend cmd --cached + } elseif {$w eq $ui_workdir} { + if {[string first {U} $m] >= 0} { + lappend cmd diff + } else { + lappend cmd diff-files + } + } + + lappend cmd -p + lappend cmd --no-color + if {$repo_config(gui.diffcontext) >= 1} { + lappend cmd "-U$repo_config(gui.diffcontext)" + } + if {$w eq $ui_index} { + lappend cmd [PARENT] + } + if {$add_opts ne {}} { + eval lappend cmd $add_opts + } else { + lappend cmd -- + lappend cmd $path + } + + if {[catch {set fd [eval git_read --nice $cmd]} err]} { + set diff_active 0 + unlock_index + ui_status [mc "Unable to display %s" [escape_path $path]] + error_popup [strcat [mc "Error loading diff:"] "\n\n$err"] + return + } + + set ::current_diff_inheader 1 + fconfigure $fd \ + -blocking 0 \ + -encoding [get_path_encoding $path] \ + -translation lf + fileevent $fd readable [list read_diff $fd $cont_info] +} + +proc read_diff {fd cont_info} { + global ui_diff diff_active + global is_3way_diff is_conflict_diff current_diff_header + global current_diff_queue ++ global diff_empty_count + + $ui_diff conf -state normal + while {[gets $fd line] >= 0} { + # -- Cleanup uninteresting diff header lines. + # + if {$::current_diff_inheader} { + if { [string match {diff --git *} $line] + || [string match {diff --cc *} $line] + || [string match {diff --combined *} $line] + || [string match {--- *} $line] + || [string match {+++ *} $line]} { + append current_diff_header $line "\n" + continue + } + } + if {[string match {index *} $line]} continue + if {$line eq {deleted file mode 120000}} { + set line "deleted symlink" + } + set ::current_diff_inheader 0 + + # -- Automatically detect if this is a 3 way diff. + # + if {[string match {@@@ *} $line]} {set is_3way_diff 1} + + if {[string match {mode *} $line] + || [string match {new file *} $line] + || [regexp {^(old|new) mode *} $line] + || [string match {deleted file *} $line] + || [string match {deleted symlink} $line] + || [string match {Binary files * and * differ} $line] + || $line eq {\ No newline at end of file} + || [regexp {^\* Unmerged path } $line]} { + set tags {} + } elseif {$is_3way_diff} { + set op [string range $line 0 1] + switch -- $op { + { } {set tags {}} + {@@} {set tags d_@} + { +} {set tags d_s+} + { -} {set tags d_s-} + {+ } {set tags d_+s} + {- } {set tags d_-s} + {--} {set tags d_--} + {++} { + if {[regexp {^\+\+([<>]{7} |={7})} $line _g op]} { + set is_conflict_diff 1 + set line [string replace $line 0 1 { }] + set tags d$op + } else { + set tags d_++ + } + } + default { + puts "error: Unhandled 3 way diff marker: {$op}" + set tags {} + } + } + } else { + set op [string index $line 0] + switch -- $op { + { } {set tags {}} + {@} {set tags d_@} + {-} {set tags d_-} + {+} { + if {[regexp {^\+([<>]{7} |={7})} $line _g op]} { + set is_conflict_diff 1 + set tags d$op + } else { + set tags d_+ + } + } + default { + puts "error: Unhandled 2 way diff marker: {$op}" + set tags {} + } + } + } + $ui_diff insert end $line $tags + if {[string index $line end] eq "\r"} { + $ui_diff tag add d_cr {end - 2c} + } + $ui_diff insert end "\n" $tags + } + $ui_diff conf -state disabled + + if {[eof $fd]} { + close $fd + + if {$current_diff_queue ne {}} { + advance_diff_queue $cont_info + return + } + + set diff_active 0 + unlock_index + set scroll_pos [lindex $cont_info 0] + if {$scroll_pos ne {}} { + update + $ui_diff yview moveto $scroll_pos + } + ui_ready + + if {[$ui_diff index end] eq {2.0}} { + handle_empty_diff ++ } else { ++ set diff_empty_count 0 + } ++ + set callback [lindex $cont_info 1] + if {$callback ne {}} { + eval $callback + } + } +} + +proc apply_hunk {x y} { + global current_diff_path current_diff_header current_diff_side + global ui_diff ui_index file_states + + if {$current_diff_path eq {} || $current_diff_header eq {}} return + if {![lock_index apply_hunk]} return + + set apply_cmd {apply --cached --whitespace=nowarn} + set mi [lindex $file_states($current_diff_path) 0] + if {$current_diff_side eq $ui_index} { + 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 failed_msg [mc "Failed to stage selected hunk."] + if {[string index $mi 1] ne {M}} { + unlock_index + return + } + } + + set s_lno [lindex [split [$ui_diff index @$x,$y] .] 0] + set s_lno [$ui_diff search -backwards -regexp ^@@ $s_lno.0 0.0] + if {$s_lno eq {}} { + unlock_index + return + } + + set e_lno [$ui_diff search -forwards -regexp ^@@ "$s_lno + 1 lines" end] + if {$e_lno eq {}} { + set e_lno end + } + + if {[catch { + set enc [get_path_encoding $current_diff_path] + set p [eval git_write $apply_cmd] + fconfigure $p -translation binary -encoding $enc + puts -nonewline $p $current_diff_header + puts -nonewline $p [$ui_diff get $s_lno $e_lno] + close $p} err]} { + error_popup [append $failed_msg "\n\n$err"] + unlock_index + return + } + + $ui_diff conf -state normal + $ui_diff delete $s_lno $e_lno + $ui_diff conf -state disabled + + if {[$ui_diff get 1.0 end] eq "\n"} { + set o _ + } else { + set o ? + } + + if {$current_diff_side eq $ui_index} { + set mi ${o}M + } elseif {[string index $mi 0] eq {_}} { + set mi M$o + } else { + set mi ?$o + } + unlock_index + display_file $current_diff_path $mi + # This should trigger shift to the next changed file + if {$o eq {_}} { + reshow_diff + } +} + +proc apply_line {x y} { + global current_diff_path current_diff_header current_diff_side + global ui_diff ui_index file_states + + if {$current_diff_path eq {} || $current_diff_header eq {}} return + if {![lock_index apply_hunk]} return + + set apply_cmd {apply --cached --whitespace=nowarn} + set mi [lindex $file_states($current_diff_path) 0] + if {$current_diff_side eq $ui_index} { + set failed_msg [mc "Failed to unstage selected line."] + set to_context {+} + lappend apply_cmd --reverse + if {[string index $mi 0] ne {M}} { + unlock_index + return + } + } else { + set failed_msg [mc "Failed to stage selected line."] + set to_context {-} + if {[string index $mi 1] ne {M}} { + unlock_index + return + } + } + + set the_l [$ui_diff index @$x,$y] + + # operate only on change lines + set c1 [$ui_diff get "$the_l linestart"] + if {$c1 ne {+} && $c1 ne {-}} { + unlock_index + return + } + set sign $c1 + + set i_l [$ui_diff search -backwards -regexp ^@@ $the_l 0.0] + if {$i_l eq {}} { + unlock_index + return + } + # $i_l is now at the beginning of a line + + # pick start line number from hunk header + set hh [$ui_diff get $i_l "$i_l + 1 lines"] + set hh [lindex [split $hh ,] 0] + set hln [lindex [split $hh -] 1] + + # There is a special situation to take care of. Consider this hunk: + # + # @@ -10,4 +10,4 @@ + # context before + # -old 1 + # -old 2 + # +new 1 + # +new 2 + # context after + # + # We used to keep the context lines in the order they appear in the + # hunk. But then it is not possible to correctly stage only + # "-old 1" and "+new 1" - it would result in this staged text: + # + # context before + # old 2 + # new 1 + # context after + # + # (By symmetry it is not possible to *un*stage "old 2" and "new 2".) + # + # We resolve the problem by introducing an asymmetry, namely, when + # a "+" line is *staged*, it is moved in front of the context lines + # that are generated from the "-" lines that are immediately before + # the "+" block. That is, we construct this patch: + # + # @@ -10,4 +10,5 @@ + # context before + # +new 1 + # old 1 + # old 2 + # context after + # + # But we do *not* treat "-" lines that are *un*staged in a special + # way. + # + # With this asymmetry it is possible to stage the change + # "old 1" -> "new 1" directly, and to stage the change + # "old 2" -> "new 2" by first staging the entire hunk and + # then unstaging the change "old 1" -> "new 1". + + # This is non-empty if and only if we are _staging_ changes; + # then it accumulates the consecutive "-" lines (after converting + # them to context lines) in order to be moved after the "+" change + # line. + set pre_context {} + + set n 0 + set i_l [$ui_diff index "$i_l + 1 lines"] + set patch {} + while {[$ui_diff compare $i_l < "end - 1 chars"] && + [$ui_diff get $i_l "$i_l + 2 chars"] ne {@@}} { + set next_l [$ui_diff index "$i_l + 1 lines"] + set c1 [$ui_diff get $i_l] + if {[$ui_diff compare $i_l <= $the_l] && + [$ui_diff compare $the_l < $next_l]} { + # the line to stage/unstage + set ln [$ui_diff get $i_l $next_l] + if {$c1 eq {-}} { + set n [expr $n+1] + set patch "$patch$pre_context$ln" + } else { + set patch "$patch$ln$pre_context" + } + set pre_context {} + } elseif {$c1 ne {-} && $c1 ne {+}} { + # context line + set ln [$ui_diff get $i_l $next_l] + set patch "$patch$pre_context$ln" + set n [expr $n+1] + set pre_context {} + } elseif {$c1 eq $to_context} { + # turn change line into context line + set ln [$ui_diff get "$i_l + 1 chars" $next_l] + if {$c1 eq {-}} { + set pre_context "$pre_context $ln" + } else { + set patch "$patch $ln" + } + set n [expr $n+1] + } + set i_l $next_l + } + set patch "@@ -$hln,$n +$hln,[eval expr $n $sign 1] @@\n$patch" + + if {[catch { + set enc [get_path_encoding $current_diff_path] + set p [eval git_write $apply_cmd] + fconfigure $p -translation binary -encoding $enc + puts -nonewline $p $current_diff_header + puts -nonewline $p $patch + close $p} err]} { + error_popup [append $failed_msg "\n\n$err"] + } + + unlock_index +} diff --cc git-gui/lib/mergetool.tcl index eb2b4b56a,000000000..3fe90e697 mode 100644,000000..100644 --- a/git-gui/lib/mergetool.tcl +++ b/git-gui/lib/mergetool.tcl @@@ -1,393 -1,0 +1,393 @@@ +# git-gui merge conflict resolution +# parts based on git-mergetool (c) 2006 Theodore Y. Ts'o + +proc merge_resolve_one {stage} { + global current_diff_path + + switch -- $stage { + 1 { set targetquestion [mc "Force resolution to the base version?"] } + 2 { set targetquestion [mc "Force resolution to this branch?"] } + 3 { set targetquestion [mc "Force resolution to the other branch?"] } + } + + set op_question [strcat $targetquestion "\n" \ +[mc "Note that the diff shows only conflicting changes. + +%s will be overwritten. + +This operation can be undone only by restarting the merge." \ + [short_path $current_diff_path]]] + + if {[ask_popup $op_question] eq {yes}} { + merge_load_stages $current_diff_path [list merge_force_stage $stage] + } +} + +proc merge_stage_workdir {path {lno {}}} { + global current_diff_path diff_active + global current_diff_side ui_workdir + + if {$diff_active} return + + if {$path ne $current_diff_path || $ui_workdir ne $current_diff_side} { + show_diff $path $ui_workdir $lno {} [list do_merge_stage_workdir $path] + } else { + do_merge_stage_workdir $path + } +} + +proc do_merge_stage_workdir {path} { + global current_diff_path is_conflict_diff + + if {$path ne $current_diff_path} return; + + if {$is_conflict_diff} { + if {[ask_popup [mc "File %s seems to have unresolved conflicts, still stage?" \ + [short_path $path]]] ne {yes}} { + return + } + } + + merge_add_resolution $path +} + +proc merge_add_resolution {path} { + global current_diff_path ui_workdir + + set after [next_diff_after_action $ui_workdir $path {} {^_?U}] + + update_index \ + [mc "Adding resolution for %s" [short_path $path]] \ + [list $path] \ + [concat $after [list ui_ready]] +} + +proc merge_force_stage {stage} { + global current_diff_path merge_stages + + if {$merge_stages($stage) ne {}} { + git checkout-index -f --stage=$stage -- $current_diff_path + } else { + file delete -- $current_diff_path + } + + merge_add_resolution $current_diff_path +} + +proc merge_load_stages {path cont} { + global merge_stages_fd merge_stages merge_stages_buf + + if {[info exists merge_stages_fd]} { + catch { kill_file_process $merge_stages_fd } + catch { close $merge_stages_fd } + } + + set merge_stages(0) {} + set merge_stages(1) {} + set merge_stages(2) {} + set merge_stages(3) {} + set merge_stages_buf {} + - set merge_stages_fd [eval git_read ls-files -u -z -- $path] ++ set merge_stages_fd [eval git_read ls-files -u -z -- {$path}] + + fconfigure $merge_stages_fd -blocking 0 -translation binary -encoding binary + fileevent $merge_stages_fd readable [list read_merge_stages $merge_stages_fd $cont] +} + +proc read_merge_stages {fd cont} { + global merge_stages_buf merge_stages_fd merge_stages + + append merge_stages_buf [read $fd] + set pck [split $merge_stages_buf "\0"] + set merge_stages_buf [lindex $pck end] + + if {[eof $fd] && $merge_stages_buf ne {}} { + lappend pck {} + set merge_stages_buf {} + } + + foreach p [lrange $pck 0 end-1] { + set fcols [split $p "\t"] + set cols [split [lindex $fcols 0] " "] + set stage [lindex $cols 2] + + set merge_stages($stage) [lrange $cols 0 1] + } + + if {[eof $fd]} { + close $fd + unset merge_stages_fd + eval $cont + } +} + +proc merge_resolve_tool {} { + global current_diff_path + + merge_load_stages $current_diff_path [list merge_resolve_tool2] +} + +proc merge_resolve_tool2 {} { + global current_diff_path merge_stages + + # Validate the stages + if {$merge_stages(2) eq {} || + [lindex $merge_stages(2) 0] eq {120000} || + [lindex $merge_stages(2) 0] eq {160000} || + $merge_stages(3) eq {} || + [lindex $merge_stages(3) 0] eq {120000} || + [lindex $merge_stages(3) 0] eq {160000} + } { + error_popup [mc "Cannot resolve deletion or link conflicts using a tool"] + return + } + + if {![file exists $current_diff_path]} { + error_popup [mc "Conflict file does not exist"] + return + } + + # Determine the tool to use + set tool [get_config merge.tool] + if {$tool eq {}} { set tool meld } + + set merge_tool_path [get_config "mergetool.$tool.path"] + if {$merge_tool_path eq {}} { + switch -- $tool { + emerge { set merge_tool_path "emacs" } + araxis { set merge_tool_path "compare" } + default { set merge_tool_path $tool } + } + } + + # Make file names + set filebase [file rootname $current_diff_path] + set fileext [file extension $current_diff_path] + set basename [lindex [file split $current_diff_path] end] + + set MERGED $current_diff_path + set BASE "./$MERGED.BASE$fileext" + set LOCAL "./$MERGED.LOCAL$fileext" + set REMOTE "./$MERGED.REMOTE$fileext" + set BACKUP "./$MERGED.BACKUP$fileext" + + set base_stage $merge_stages(1) + + # Build the command line + switch -- $tool { + kdiff3 { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Base)" \ + --L2 "$MERGED (Local)" --L3 "$MERGED (Remote)" -o "$MERGED" "$BASE" "$LOCAL" "$REMOTE"] + } else { + set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Local)" \ + --L2 "$MERGED (Remote)" -o "$MERGED" "$LOCAL" "$REMOTE"] + } + } + tkdiff { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" -a "$BASE" -o "$MERGED" "$LOCAL" "$REMOTE"] + } else { + set cmdline [list "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"] + } + } + meld { + set cmdline [list "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"] + } + gvimdiff { + set cmdline [list "$merge_tool_path" -f "$LOCAL" "$MERGED" "$REMOTE"] + } + xxdiff { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" -X --show-merged-pane \ + -R {Accel.SaveAsMerged: "Ctrl-S"} \ + -R {Accel.Search: "Ctrl+F"} \ + -R {Accel.SearchForward: "Ctrl-G"} \ + --merged-file "$MERGED" "$LOCAL" "$BASE" "$REMOTE"] + } else { + set cmdline [list "$merge_tool_path" -X --show-merged-pane \ + -R {Accel.SaveAsMerged: "Ctrl-S"} \ + -R {Accel.Search: "Ctrl+F"} \ + -R {Accel.SearchForward: "Ctrl-G"} \ + --merged-file "$MERGED" "$LOCAL" "$REMOTE"] + } + } + opendiff { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"] + } else { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -merge "$MERGED"] + } + } + ecmerge { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"] + } else { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" --default --mode=merge2 --to="$MERGED"] + } + } + emerge { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" -f emerge-files-with-ancestor-command \ + "$LOCAL" "$REMOTE" "$BASE" "$basename"] + } else { + set cmdline [list "$merge_tool_path" -f emerge-files-command \ + "$LOCAL" "$REMOTE" "$basename"] + } + } + winmerge { + if {$base_stage ne {}} { + # This tool does not support 3-way merges. + # Use the 'conflict file' resolution feature instead. + set cmdline [list "$merge_tool_path" -e -ub "$MERGED"] + } else { + set cmdline [list "$merge_tool_path" -e -ub -wl \ + -dl "Theirs File" -dr "Mine File" "$REMOTE" "$LOCAL" "$MERGED"] + } + } + araxis { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" -wait -merge -3 -a1 \ + -title1:"'$MERGED (Base)'" -title2:"'$MERGED (Local)'" \ + -title3:"'$MERGED (Remote)'" \ + "$BASE" "$LOCAL" "$REMOTE" "$MERGED"] + } else { + set cmdline [list "$merge_tool_path" -wait -2 \ + -title1:"'$MERGED (Local)'" -title2:"'$MERGED (Remote)'" \ + "$LOCAL" "$REMOTE" "$MERGED"] + } + } + p4merge { + set cmdline [list "$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED"] + } + vimdiff { + error_popup [mc "Not a GUI merge tool: '%s'" $tool] + return + } + default { + error_popup [mc "Unsupported merge tool '%s'" $tool] + return + } + } + + merge_tool_start $cmdline $MERGED $BACKUP [list $BASE $LOCAL $REMOTE] +} + +proc delete_temp_files {files} { + foreach fname $files { + file delete $fname + } +} + +proc merge_tool_get_stages {target stages} { + global merge_stages + + set i 1 + foreach fname $stages { + if {$merge_stages($i) eq {}} { + file delete $fname + catch { close [open $fname w] } + } else { + # A hack to support autocrlf properly + git checkout-index -f --stage=$i -- $target + file rename -force -- $target $fname + } + incr i + } +} + +proc merge_tool_start {cmdline target backup stages} { + global merge_stages mtool_target mtool_tmpfiles mtool_fd mtool_mtime + + if {[info exists mtool_fd]} { + if {[ask_popup [mc "Merge tool is already running, terminate it?"]] eq {yes}} { + catch { kill_file_process $mtool_fd } + catch { close $mtool_fd } + unset mtool_fd + + set old_backup [lindex $mtool_tmpfiles end] + file rename -force -- $old_backup $mtool_target + delete_temp_files $mtool_tmpfiles + } else { + return + } + } + + # Save the original file + file rename -force -- $target $backup + + # Get the blobs; it destroys $target + if {[catch {merge_tool_get_stages $target $stages} err]} { + file rename -force -- $backup $target + delete_temp_files $stages + error_popup [mc "Error retrieving versions:\n%s" $err] + return + } + + # Restore the conflict file + file copy -force -- $backup $target + + # Initialize global state + set mtool_target $target + set mtool_mtime [file mtime $target] + set mtool_tmpfiles $stages + + lappend mtool_tmpfiles $backup + + # Force redirection to avoid interpreting output on stderr + # as an error, and launch the tool + lappend cmdline {2>@1} + + if {[catch { set mtool_fd [_open_stdout_stderr $cmdline] } err]} { + delete_temp_files $mtool_tmpfiles + error_popup [mc "Could not start the merge tool:\n\n%s" $err] + return + } + + ui_status [mc "Running merge tool..."] + + fconfigure $mtool_fd -blocking 0 -translation binary -encoding binary + fileevent $mtool_fd readable [list read_mtool_output $mtool_fd] +} + +proc read_mtool_output {fd} { + global mtool_fd mtool_tmpfiles + + read $fd + if {[eof $fd]} { + unset mtool_fd + + fconfigure $fd -blocking 1 + merge_tool_finish $fd + } +} + +proc merge_tool_finish {fd} { + global mtool_tmpfiles mtool_target mtool_mtime + + set backup [lindex $mtool_tmpfiles end] + set failed 0 + + # Check the return code + if {[catch {close $fd} err]} { + set failed 1 + if {$err ne {child process exited abnormally}} { + error_popup [strcat [mc "Merge tool failed."] "\n\n$err"] + } + } + + # Finish + if {$failed} { + file rename -force -- $backup $mtool_target + delete_temp_files $mtool_tmpfiles + ui_status [mc "Merge tool failed."] + } else { - if {[is_config_true merge.keepbackup]} { ++ if {[is_config_true mergetool.keepbackup]} { + file rename -force -- $backup "$mtool_target.orig" + } + + delete_temp_files $mtool_tmpfiles + + reshow_diff + } +} diff --cc git-gui/lib/remote_branch_delete.tcl index 89eb0f70f,000000000..4e02fc0d3 mode 100644,000000..100644 --- a/git-gui/lib/remote_branch_delete.tcl +++ b/git-gui/lib/remote_branch_delete.tcl @@@ -1,345 -1,0 +1,343 @@@ +# git-gui remote branch deleting support +# Copyright (C) 2007 Shawn Pearce + +class remote_branch_delete { + +field w +field head_m + +field urltype {url} +field remote {} +field url {} + +field checktype {head} +field check_head {} + +field status {} +field idle_id {} +field full_list {} +field head_list {} +field active_ls {} +field head_cache +field full_cache +field cached + +constructor dialog {} { + global all_remotes M1B + + make_toplevel top w + wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch Remotely"]] + if {$top ne {.}} { + wm geometry $top "+[winfo rootx .]+[winfo rooty .]" + } + + label $w.header -text [mc "Delete Branch Remotely"] -font font_uibold + pack $w.header -side top -fill x + + frame $w.buttons + button $w.buttons.delete -text [mc Delete] \ + -default active \ + -command [cb _delete] + pack $w.buttons.delete -side right + 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 [mc "From Repository"] + if {$all_remotes ne {}} { + radiobutton $w.dest.remote_r \ + -text [mc "Remote:"] \ + -value remote \ + -variable @urltype + eval tk_optionMenu $w.dest.remote_m @remote $all_remotes + grid $w.dest.remote_r $w.dest.remote_m -sticky w + if {[lsearch -sorted -exact $all_remotes origin] != -1} { + set remote origin + } else { + set remote [lindex $all_remotes 0] + } + set urltype remote + trace add variable @remote write [cb _write_remote] + } else { + set urltype url + } + radiobutton $w.dest.url_r \ + -text [mc "Arbitrary Location:"] \ + -value url \ + -variable @urltype + entry $w.dest.url_t \ + -borderwidth 1 \ + -relief sunken \ + -width 50 \ + -textvariable @url \ + -validate key \ + -validatecommand { + if {%d == 1 && [regexp {\s} %S]} {return 0} + return 1 + } + trace add variable @url write [cb _write_url] + grid $w.dest.url_r $w.dest.url_t -sticky we -padx {0 5} + grid columnconfigure $w.dest 1 -weight 1 + pack $w.dest -anchor nw -fill x -pady 5 -padx 5 + + labelframe $w.heads -text [mc "Branches"] + listbox $w.heads.l \ + -height 10 \ + -width 70 \ + -listvariable @head_list \ + -selectmode extended \ + -yscrollcommand [list $w.heads.sby set] + scrollbar $w.heads.sby -command [list $w.heads.l yview] + + frame $w.heads.footer + label $w.heads.footer.status \ + -textvariable @status \ + -anchor w \ + -justify left + button $w.heads.footer.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.footer -side bottom -fill x + pack $w.heads.sby -side right -fill y + 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 [mc "Delete Only If"] + radiobutton $w.validate.head_r \ + -text [mc "Merged Into:"] \ + -value head \ + -variable @checktype + set head_m [tk_optionMenu $w.validate.head_m @check_head {}] + trace add variable @head_list write [cb _write_head_list] + 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 [mc "Always (Do not perform merge checks)"] \ + -value always \ + -variable @checktype + grid $w.validate.always_r -columnspan 2 -sticky w + grid columnconfigure $w.validate 1 -weight 1 + pack $w.validate -anchor nw -fill x -pady 5 -padx 5 + + trace add variable @urltype write [cb _write_urltype] + _rescan $this + + bind $w [cb _rescan] + bind $w <$M1B-Key-r> [cb _rescan] + bind $w <$M1B-Key-R> [cb _rescan] + bind $w [cb _delete] + bind $w [list destroy $w] + return $w +} + +method _delete {} { + switch $urltype { + remote {set uri $remote} + url {set uri $url} + } + + set cache $urltype:$uri + set crev {} + if {$checktype eq {head}} { + if {$check_head eq {}} { + tk_messageBox \ + -icon error \ + -type ok \ + -title [wm title $w] \ + -parent $w \ + -message [mc "A branch is required for 'Merged Into'."] + return + } + set crev $full_cache("$cache\nrefs/heads/$check_head") + } + + set not_merged [list] + set need_fetch 0 + set have_selection 0 + set push_cmd [list git push] + lappend push_cmd -v + lappend push_cmd $uri + + foreach i [$w.heads.l curselection] { + set ref [lindex $full_list $i] + if {$crev ne {}} { + set obj $full_cache("$cache\n$ref") + if {[catch {set m [git merge-base $obj $crev]}]} { + set need_fetch 1 + set m {} + } + if {$obj ne $m} { + lappend not_merged [lindex $head_list $i] + continue + } + } + + lappend push_cmd :$ref + set have_selection 1 + } + + if {$not_merged ne {}} { + set msg [mc "The following branches are not completely merged into %s: + + - %s" $check_head [join $not_merged "\n - "]] + + if {$need_fetch} { + 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 \ + -icon info \ + -type ok \ + -title [wm title $w] \ + -parent $w \ + -message $msg + if {!$have_selection} return + } + + if {!$have_selection} { + tk_messageBox \ + -icon error \ + -type ok \ + -title [wm title $w] \ + -parent $w \ + -message [mc "Please select one or more branches to delete."] + return + } + + if {[tk_messageBox \ + -icon warning \ + -type yesno \ + -title [wm title $w] \ + -parent $w \ - -message [mc "Recovering deleted branches is difficult. - - Delete the selected branches?"]] ne yes} { ++ -message [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]] ne yes} { + return + } + + destroy $w + + set cons [console::new \ + "push $uri" \ + [mc "Deleting branches from %s" $uri]] + console::exec $cons $push_cmd +} + +method _rescan {{force 1}} { + switch $urltype { + remote {set uri $remote} + url {set uri $url} + } + + if {$force} { + unset -nocomplain cached($urltype:$uri) + } + + if {$idle_id ne {}} { + after cancel $idle_id + set idle_id {} + } + + _load $this $urltype:$uri $uri +} + +method _write_remote {args} { set urltype remote } +method _write_url {args} { set urltype url } +method _write_check_head {args} { set checktype head } + +method _write_head_list {args} { + $head_m delete 0 end + foreach abr $head_list { + $head_m insert end radiobutton \ + -label $abr \ + -value $abr \ + -variable @check_head + } + if {[lsearch -exact -sorted $head_list $check_head] < 0} { + set check_head {} + } +} + +method _write_urltype {args} { + if {$urltype eq {url}} { + if {$idle_id ne {}} { + after cancel $idle_id + } + _load $this none: {} + set idle_id [after 1000 [cb _rescan 0]] + } else { + _rescan $this 0 + } +} + +method _load {cache uri} { + if {$active_ls ne {}} { + catch {close $active_ls} + } + + if {$uri eq {}} { + $w.heads.l conf -state disabled + set head_list [list] + set full_list [list] + set status [mc "No repository selected."] + return + } + + if {[catch {set x $cached($cache)}]} { + set status [mc "Scanning %s..." $uri] + $w.heads.l conf -state disabled + set head_list [list] + set full_list [list] + set head_cache($cache) [list] + set full_cache($cache) [list] + set active_ls [git_read ls-remote $uri] + fconfigure $active_ls \ + -blocking 0 \ + -translation lf \ + -encoding utf-8 + fileevent $active_ls readable [cb _read $cache $active_ls] + } else { + set status {} + set full_list $full_cache($cache) + set head_list $head_cache($cache) + $w.heads.l conf -state normal + } +} + +method _read {cache fd} { + if {$fd ne $active_ls} { + catch {close $fd} + return + } + + while {[gets $fd line] >= 0} { + if {[string match {*^{}} $line]} continue + if {[regexp {^([0-9a-f]{40}) (.*)$} $line _junk obj ref]} { + if {[regsub ^refs/heads/ $ref {} abr]} { + lappend head_list $abr + lappend head_cache($cache) $abr + lappend full_list $ref + lappend full_cache($cache) $ref + set full_cache("$cache\n$ref") $obj + } + } + } + + if {[eof $fd]} { + if {[catch {close $fd} err]} { + set status $err + set head_list [list] + set full_list [list] + } else { + set status {} + set cached($cache) 1 + $w.heads.l conf -state normal + } + } +} ifdeleted { + catch {close $fd} +} + +} diff --cc git-gui/lib/shortcut.tcl index 38c3151b0,000000000..2f20eb39c mode 100644,000000..100644 --- a/git-gui/lib/shortcut.tcl +++ b/git-gui/lib/shortcut.tcl @@@ -1,139 -1,0 +1,139 @@@ +# git-gui desktop icon creators +# Copyright (C) 2006, 2007 Shawn Pearce + +proc do_windows_shortcut {} { + set fn [tk_getSaveFile \ + -parent . \ + -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ + -initialfile "Git [reponame].lnk"] + if {$fn != {}} { + if {[file extension $fn] ne {.lnk}} { + set fn ${fn}.lnk + } + if {[catch { + win32_create_lnk $fn [list \ + [info nameofexecutable] \ + [file normalize $::argv0] \ + ] \ + [file dirname [file normalize [gitdir]]] + } err]} { + error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] + } + } +} + +proc do_cygwin_shortcut {} { + global argv0 + + if {[catch { + set desktop [exec cygpath \ + --windows \ + --absolute \ + --long-name \ + --desktop] + }]} { + set desktop . + } + set fn [tk_getSaveFile \ + -parent . \ + -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ + -initialdir $desktop \ + -initialfile "Git [reponame].lnk"] + if {$fn != {}} { + if {[file extension $fn] ne {.lnk}} { + set fn ${fn}.lnk + } + if {[catch { + set sh [exec cygpath \ + --windows \ + --absolute \ + /bin/sh.exe] + set me [exec cygpath \ + --unix \ + --absolute \ + $argv0] + win32_create_lnk $fn [list \ + $sh -c \ - "CHERE_INVOKING=1 source /etc/profile;[sq $me]" \ ++ "CHERE_INVOKING=1 source /etc/profile;[sq $me] &" \ + ] \ + [file dirname [file normalize [gitdir]]] + } err]} { + error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] + } + } +} + +proc do_macosx_app {} { + global argv0 env + + set fn [tk_getSaveFile \ + -parent . \ + -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ + -initialdir [file join $env(HOME) Desktop] \ + -initialfile "Git [reponame].app"] + if {$fn != {}} { + if {[file extension $fn] ne {.app}} { + set fn ${fn}.app + } + if {[catch { + set Contents [file join $fn Contents] + set MacOS [file join $Contents MacOS] + set exe [file join $MacOS git-gui] + + file mkdir $MacOS + + set fd [open [file join $Contents Info.plist] w] + puts $fd { + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + git-gui + CFBundleIdentifier + org.spearce.git-gui + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + NSPrincipalClass + NSApplication + +} + close $fd + + set fd [open $exe w] + puts $fd "#!/bin/sh" + foreach name [lsort [array names env]] { + set value $env($name) + switch -- $name { + GIT_DIR { set value [file normalize [gitdir]] } + } + + switch -glob -- $name { + SSH_* - + GIT_* { + puts $fd "if test \"z\$$name\" = z; then" + puts $fd " export $name=[sq $value]" + puts $fd "fi &&" + } + } + } + puts $fd "export PATH=[sq [file dirname $::_git]]:\$PATH &&" + puts $fd "cd [sq [file normalize [pwd]]] &&" + puts $fd "exec \\" + puts $fd " [sq [info nameofexecutable]] \\" + puts $fd " [sq [file normalize $argv0]]" + close $fd + + file attributes $exe -permissions u+x,g+x,o+x + } err]} { + error_popup [strcat [mc "Cannot write icon:"] "\n\n$err"] + } + } +} diff --cc git-gui/lib/tools.tcl index 6ae63b6c7,000000000..95e6e5553 mode 100644,000000..100644 --- a/git-gui/lib/tools.tcl +++ b/git-gui/lib/tools.tcl @@@ -1,159 -1,0 +1,159 @@@ +# git-gui Tools menu implementation + +proc tools_list {} { + global repo_config + + set names {} + foreach item [array names repo_config guitool.*.cmd] { + lappend names [string range $item 8 end-4] + } + return [lsort $names] +} + +proc tools_populate_all {} { + global tools_menubar tools_menutbl + global tools_tailcnt + + set mbar_end [$tools_menubar index end] + set mbar_base [expr {$mbar_end - $tools_tailcnt}] + if {$mbar_base >= 0} { + $tools_menubar delete 0 $mbar_base + } + + array unset tools_menutbl + + foreach fullname [tools_list] { + tools_populate_one $fullname + } +} + +proc tools_create_item {parent args} { + global tools_menubar tools_tailcnt + if {$parent eq $tools_menubar} { + set pos [expr {[$parent index end]-$tools_tailcnt+1}] + eval [list $parent insert $pos] $args + } else { + eval [list $parent add] $args + } +} + +proc tools_populate_one {fullname} { + global tools_menubar tools_menutbl tools_id + + if {![info exists tools_id]} { + set tools_id 0 + } + + set names [split $fullname '/'] + set parent $tools_menubar + for {set i 0} {$i < [llength $names]-1} {incr i} { + set subname [join [lrange $names 0 $i] '/'] + if {[info exists tools_menutbl($subname)]} { + set parent $tools_menutbl($subname) + } else { + set subid $parent.t$tools_id + tools_create_item $parent cascade \ + -label [lindex $names $i] -menu $subid + menu $subid + set tools_menutbl($subname) $subid + set parent $subid + incr tools_id + } + } + + tools_create_item $parent command \ + -label [lindex $names end] \ + -command [list tools_exec $fullname] +} + +proc tools_exec {fullname} { + global repo_config env current_diff_path + global current_branch is_detached + + if {[is_config_true "guitool.$fullname.needsfile"]} { + if {$current_diff_path eq {}} { + error_popup [mc "Running %s requires a selected file." $fullname] + return + } + } + + catch { unset env(ARGS) } + catch { unset env(REVISION) } + + if {[get_config "guitool.$fullname.revprompt"] ne {} || + [get_config "guitool.$fullname.argprompt"] ne {}} { + set dlg [tools_askdlg::dialog $fullname] + if {![tools_askdlg::execute $dlg]} { + return + } + } elseif {[is_config_true "guitool.$fullname.confirm"]} { + if {[ask_popup [mc "Are you sure you want to run %s?" $fullname]] ne {yes}} { + return + } + } + + set env(GIT_GUITOOL) $fullname + set env(FILENAME) $current_diff_path + if {$is_detached} { + set env(CUR_BRANCH) "" + } else { + set env(CUR_BRANCH) $current_branch + } + + set cmdline $repo_config(guitool.$fullname.cmd) + if {[is_config_true "guitool.$fullname.noconsole"]} { + tools_run_silent [list sh -c $cmdline] \ + [list tools_complete $fullname {}] + } else { + regsub {/} $fullname { / } title + set w [console::new \ + [mc "Tool: %s" $title] \ + [mc "Running: %s" $cmdline]] + console::exec $w [list sh -c $cmdline] \ + [list tools_complete $fullname $w] + } + + unset env(GIT_GUITOOL) + unset env(FILENAME) + unset env(CUR_BRANCH) + catch { unset env(ARGS) } + catch { unset env(REVISION) } +} + +proc tools_run_silent {cmd after} { + lappend cmd 2>@1 + set fd [_open_stdout_stderr $cmd] + + fconfigure $fd -blocking 0 -translation binary + fileevent $fd readable [list tools_consume_input $fd $after] +} + +proc tools_consume_input {fd after} { + read $fd + if {[eof $fd]} { + fconfigure $fd -blocking 1 + if {[catch {close $fd}]} { + uplevel #0 $after 0 + } else { + uplevel #0 $after 1 + } + } +} + +proc tools_complete {fullname w {ok 1}} { + if {$w ne {}} { + console::done $w $ok + } + + if {$ok} { - set msg [mc "Tool completed succesfully: %s" $fullname] ++ set msg [mc "Tool completed successfully: %s" $fullname] + } else { + set msg [mc "Tool failed: %s" $fullname] + } + + if {[is_config_true "guitool.$fullname.norescan"]} { + ui_status $msg + } else { + rescan [list ui_status $msg] + } +} diff --cc git-gui/po/de.po index a6f730b4e,000000000..51abb50bb mode 100644,000000..100644 --- a/git-gui/po/de.po +++ b/git-gui/po/de.po @@@ -1,2574 -1,0 +1,2564 @@@ +# 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 , 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: git-gui\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-06 20:51+0100\n" +"PO-Revision-Date: 2008-12-06 21:22+0100\n" +"Last-Translator: Christian Stimming \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: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: Programmfehler" + +#: git-gui.sh:593 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Ungültige Zeichensatz-Angabe in %s:" + +#: git-gui.sh:620 +msgid "Main Font" +msgstr "Programmschriftart" + +#: git-gui.sh:621 +msgid "Diff/Console Font" +msgstr "Vergleich-Schriftart" + +#: git-gui.sh:635 +msgid "Cannot find git in PATH." +msgstr "Git kann im PATH nicht gefunden werden." + +#: git-gui.sh:662 +msgid "Cannot parse Git version string:" +msgstr "Git Versionsangabe kann nicht erkannt werden:" + +#: 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 "" +"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:918 +msgid "Git directory not found:" +msgstr "Git-Verzeichnis nicht gefunden:" + +#: git-gui.sh:925 +msgid "Cannot move to top of working directory:" +msgstr "" +"Es konnte nicht in das oberste Verzeichnis der Arbeitskopie gewechselt " +"werden:" + +#: git-gui.sh:932 +msgid "Cannot use funny .git directory:" +msgstr "Unerwartete Struktur des .git Verzeichnis:" + +#: git-gui.sh:937 +msgid "No working directory" +msgstr "Kein Arbeitsverzeichnis" + +#: git-gui.sh:1084 lib/checkout_op.tcl:283 +msgid "Refreshing file status..." +msgstr "Dateistatus aktualisieren..." + +#: git-gui.sh:1149 +msgid "Scanning for modified files ..." +msgstr "Nach geänderten Dateien suchen..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "Aufrufen der Eintragen-Vorbereiten-Kontrolle..." + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "Eintragen abgelehnt durch Eintragen-Vorbereiten-Kontrolle (»prepare-commit hook«)." + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Bereit." + +#: git-gui.sh:1590 +msgid "Unmodified" +msgstr "Unverändert" + +#: git-gui.sh:1592 +msgid "Modified, not staged" +msgstr "Verändert, nicht bereitgestellt" + +#: git-gui.sh:1593 git-gui.sh:1598 +msgid "Staged for commit" +msgstr "Bereitgestellt zum Eintragen" + +#: git-gui.sh:1594 git-gui.sh:1599 +msgid "Portions staged for commit" +msgstr "Teilweise bereitgestellt zum Eintragen" + +#: git-gui.sh:1595 git-gui.sh:1600 +msgid "Staged for commit, missing" +msgstr "Bereitgestellt zum Eintragen, fehlend" + +#: git-gui.sh:1658 +msgid "File type changed, not staged" +msgstr "Dateityp geändert, nicht bereitgestellt" + +#: git-gui.sh:1659 +msgid "File type changed, staged" +msgstr "Dateityp geändert, bereitgestellt" + +#: git-gui.sh:1661 +msgid "Untracked, not staged" +msgstr "Nicht unter Versionskontrolle, nicht bereitgestellt" + +#: git-gui.sh:1602 +msgid "Missing" +msgstr "Fehlend" + +#: git-gui.sh:1603 +msgid "Staged for removal" +msgstr "Bereitgestellt zum Löschen" + +#: git-gui.sh:1604 +msgid "Staged for removal, still present" +msgstr "Bereitgestellt zum Löschen, trotzdem vorhanden" + +#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609 +msgid "Requires merge resolution" +msgstr "Konfliktauflösung nötig" + +#: git-gui.sh:1644 +msgid "Starting gitk... please wait..." +msgstr "Gitk wird gestartet... bitte warten." + +#: git-gui.sh:1698 +msgid "Couldn't find gitk in PATH" +msgstr "Gitk kann im PATH nicht gefunden werden." + +#: git-gui.sh:1948 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Projektarchiv" + +#: git-gui.sh:1861 +msgid "Edit" +msgstr "Bearbeiten" + +#: git-gui.sh:1863 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Zweig" + +#: git-gui.sh:1866 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Version" + +#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167 +msgid "Merge" +msgstr "Zusammenführen" + +#: git-gui.sh:1870 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Andere Archive" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Werkzeuge" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Arbeitskopie im Dateimanager" + +#: git-gui.sh:2247 +msgid "Browse Current Branch's Files" +msgstr "Aktuellen Zweig durchblättern" + +#: git-gui.sh:1883 +msgid "Browse Branch Files..." +msgstr "Einen Zweig durchblättern..." + +#: git-gui.sh:1888 +msgid "Visualize Current Branch's History" +msgstr "Aktuellen Zweig darstellen" + +#: git-gui.sh:1892 +msgid "Visualize All Branch History" +msgstr "Alle Zweige darstellen" + +#: git-gui.sh:1899 +#, tcl-format +msgid "Browse %s's Files" +msgstr "Zweig »%s« durchblättern" + +#: git-gui.sh:1901 +#, tcl-format +msgid "Visualize %s's History" +msgstr "Historie von »%s« darstellen" + +#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Datenbankstatistik" + +#: git-gui.sh:1909 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Datenbank komprimieren" + +#: git-gui.sh:1912 +msgid "Verify Database" +msgstr "Datenbank überprüfen" + +#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Desktop-Icon erstellen" + +#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185 +msgid "Quit" +msgstr "Beenden" + +#: git-gui.sh:1939 +msgid "Undo" +msgstr "Rückgängig" + +#: git-gui.sh:1942 +msgid "Redo" +msgstr "Wiederholen" + +#: git-gui.sh:1946 git-gui.sh:2443 +msgid "Cut" +msgstr "Ausschneiden" + +#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Kopieren" + +#: git-gui.sh:1952 git-gui.sh:2449 +msgid "Paste" +msgstr "Einfügen" + +#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Löschen" + +#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71 +msgid "Select All" +msgstr "Alle auswählen" + +#: git-gui.sh:1968 +msgid "Create..." +msgstr "Erstellen..." + +#: git-gui.sh:1974 +msgid "Checkout..." +msgstr "Umstellen..." + +#: git-gui.sh:1980 +msgid "Rename..." +msgstr "Umbenennen..." + +#: git-gui.sh:1985 git-gui.sh:2085 +msgid "Delete..." +msgstr "Löschen..." + +#: git-gui.sh:1990 +msgid "Reset..." +msgstr "Zurücksetzen..." + +#: git-gui.sh:2372 +msgid "Done" +msgstr "Fertig" + +#: git-gui.sh:2374 +msgid "Commit@@verb" +msgstr "Eintragen" + +#: git-gui.sh:2383 git-gui.sh:2786 +msgid "New Commit" +msgstr "Neue Version" + +#: git-gui.sh:2010 git-gui.sh:2396 +msgid "Amend Last Commit" +msgstr "Letzte nachbessern" + +#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Neu laden" + +#: git-gui.sh:2025 +msgid "Stage To Commit" +msgstr "Zum Eintragen bereitstellen" + +#: git-gui.sh:2031 +msgid "Stage Changed Files To Commit" +msgstr "Geänderte Dateien bereitstellen" + +#: git-gui.sh:2037 +msgid "Unstage From Commit" +msgstr "Aus der Bereitstellung herausnehmen" + +#: git-gui.sh:2042 lib/index.tcl:395 +msgid "Revert Changes" +msgstr "Änderungen verwerfen" + +#: git-gui.sh:2141 git-gui.sh:2702 +msgid "Show Less Context" +msgstr "Weniger Zeilen anzeigen" + +#: git-gui.sh:2145 git-gui.sh:2706 +msgid "Show More Context" +msgstr "Mehr Zeilen anzeigen" + +#: git-gui.sh:2151 git-gui.sh:2470 git-gui.sh:2569 +msgid "Sign Off" +msgstr "Abzeichnen" + +#: git-gui.sh:2458 +msgid "Local Merge..." +msgstr "Lokales Zusammenführen..." + +#: git-gui.sh:2069 +msgid "Abort Merge..." +msgstr "Zusammenführen abbrechen..." + +#: git-gui.sh:2475 +msgid "Add..." +msgstr "Hinzufügen..." + +#: git-gui.sh:2479 +msgid "Push..." +msgstr "Versenden..." + +#: git-gui.sh:2483 +msgid "Delete Branch..." +msgstr "Zweig löschen..." + +#: git-gui.sh:2493 git-gui.sh:2515 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50 +#, tcl-format +msgid "About %s" +msgstr "Über %s" + +#: git-gui.sh:2099 +msgid "Preferences..." +msgstr "Einstellungen..." + +#: git-gui.sh:2107 git-gui.sh:2639 +msgid "Options..." +msgstr "Optionen..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Entfernen..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Hilfe" + +#: git-gui.sh:2154 +msgid "Online Documentation" +msgstr "Online-Dokumentation" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "SSH-Schlüssel anzeigen" + +#: git-gui.sh:2707 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"Fehler: Verzeichnis »%s« kann nicht gelesen werden: Datei oder Verzeichnis " +"nicht gefunden" + +#: git-gui.sh:2271 +msgid "Current Branch:" +msgstr "Aktueller Zweig:" + +#: git-gui.sh:2292 +msgid "Staged Changes (Will Commit)" +msgstr "Bereitstellung (zum Eintragen)" + +#: git-gui.sh:2312 +msgid "Unstaged Changes" +msgstr "Nicht bereitgestellte Änderungen" + +#: git-gui.sh:2362 +msgid "Stage Changed" +msgstr "Alles bereitstellen" + +#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182 +msgid "Push" +msgstr "Versenden" + +#: git-gui.sh:2408 +msgid "Initial Commit Message:" +msgstr "Erste Versionsbeschreibung:" + +#: git-gui.sh:2409 +msgid "Amended Commit Message:" +msgstr "Nachgebesserte Beschreibung:" + +#: git-gui.sh:2410 +msgid "Amended Initial Commit Message:" +msgstr "Nachgebesserte erste Beschreibung:" + +#: git-gui.sh:2411 +msgid "Amended Merge Commit Message:" +msgstr "Nachgebesserte Zusammenführungs-Beschreibung:" + +#: git-gui.sh:2412 +msgid "Merge Commit Message:" +msgstr "Zusammenführungs-Beschreibung:" + +#: git-gui.sh:2413 +msgid "Commit Message:" +msgstr "Versionsbeschreibung:" + +#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73 +msgid "Copy All" +msgstr "Alle kopieren" + +#: git-gui.sh:2483 lib/blame.tcl:107 +msgid "File:" +msgstr "Datei:" + +#: git-gui.sh:2834 +msgid "Refresh" +msgstr "Aktualisieren" + +#: git-gui.sh:2631 +msgid "Decrease Font Size" +msgstr "Schriftgröße verkleinern" + +#: git-gui.sh:2635 +msgid "Increase Font Size" +msgstr "Schriftgröße vergrößern" + +#: git-gui.sh:3033 lib/blame.tcl:281 +msgid "Encoding" +msgstr "Zeichenkodierung" + +#: git-gui.sh:3044 +msgid "Apply/Reverse Hunk" +msgstr "Kontext anwenden/umkehren" + +#: git-gui.sh:2875 +msgid "Apply/Reverse Line" +msgstr "Zeile anwenden/umkehren" + +#: git-gui.sh:2885 +msgid "Run Merge Tool" +msgstr "Zusammenführungswerkzeug" + +#: git-gui.sh:2890 +msgid "Use Remote Version" +msgstr "Entfernte Version benutzen" + +#: git-gui.sh:2894 +msgid "Use Local Version" +msgstr "Lokale Version benutzen" + +#: git-gui.sh:2898 +msgid "Revert To Base" +msgstr "Ursprüngliche Version benutzen" + +#: git-gui.sh:3091 +msgid "Unstage Hunk From Commit" +msgstr "Kontext aus Bereitstellung herausnehmen" + +#: git-gui.sh:2748 +msgid "Unstage Line From Commit" +msgstr "Zeile aus der Bereitstellung herausnehmen" + +#: git-gui.sh:2750 +msgid "Stage Hunk For Commit" +msgstr "Kontext zur Bereitstellung hinzufügen" + +#: git-gui.sh:2751 +msgid "Stage Line For Commit" +msgstr "Zeile zur Bereitstellung hinzufügen" + +#: git-gui.sh:2771 +msgid "Initializing..." +msgstr "Initialisieren..." + +#: git-gui.sh:2762 +#, 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 "" +"Möglicherweise gibt es Probleme mit manchen Umgebungsvariablen.\n" +"\n" +"Die folgenden Umgebungsvariablen können vermutlich nicht \n" +"von %s an Git weitergegeben werden:\n" +"\n" + +#: git-gui.sh:2792 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" +"\n" +"Dies ist ein bekanntes Problem der Tcl-Version, die\n" +"in Cygwin mitgeliefert wird." + +#: git-gui.sh:2797 +#, 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" +"Um den Namen »%s« zu ändern, sollten Sie die \n" +"gewünschten Werte für die Einstellung user.name und \n" +"user.email in Ihre Datei ~/.gitconfig einfügen.\n" + +#: lib/about.tcl:26 +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:264 +msgid "Copy Commit" +msgstr "Version kopieren" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Text suchen..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Volle Kopie-Erkennung" + +#: lib/blame.tcl:263 +msgid "Show History Context" +msgstr "Historien-Kontext anzeigen" + +#: lib/blame.tcl:266 +msgid "Blame Parent Commit" +msgstr "Elternversion annotieren" + +#: lib/blame.tcl:394 +#, tcl-format +msgid "Reading %s..." +msgstr "%s lesen..." + +#: lib/blame.tcl:488 +msgid "Loading copy/move tracking annotations..." +msgstr "Annotierungen für Kopieren/Verschieben werden geladen..." + +#: lib/blame.tcl:508 +msgid "lines annotated" +msgstr "Zeilen annotiert" + +#: lib/blame.tcl:689 +msgid "Loading original location annotations..." +msgstr "Annotierungen für ursprünglichen Ort werden geladen..." + +#: lib/blame.tcl:692 +msgid "Annotation complete." +msgstr "Annotierung vollständig." + +#: lib/blame.tcl:737 +msgid "Busy" +msgstr "Verarbeitung läuft" + +#: lib/blame.tcl:738 +msgid "Annotation process is already running." +msgstr "Annotierung läuft bereits." + +#: lib/blame.tcl:777 +msgid "Running thorough copy detection..." +msgstr "Intensive Kopie-Erkennung läuft..." + +#: lib/blame.tcl:827 +msgid "Loading annotation..." +msgstr "Annotierung laden..." + +#: lib/blame.tcl:802 +msgid "Author:" +msgstr "Autor:" + +#: lib/blame.tcl:806 +msgid "Committer:" +msgstr "Eintragender:" + +#: lib/blame.tcl:811 +msgid "Original File:" +msgstr "Ursprüngliche Datei:" + +#: lib/blame.tcl:1021 +msgid "Cannot find HEAD commit:" +msgstr "Zweigspitze (»HEAD«) kann nicht gefunden werden:" + +#: lib/blame.tcl:1076 +msgid "Cannot find parent commit:" +msgstr "Elternversion kann nicht gefunden werden:" + +#: lib/blame.tcl:1001 +msgid "Unable to display parent" +msgstr "Elternversion kann nicht angezeigt werden" + +#: lib/blame.tcl:1002 lib/diff.tcl:191 +msgid "Error loading diff:" +msgstr "Fehler beim Laden des Vergleichs:" + +#: lib/blame.tcl:1142 +msgid "Originally By:" +msgstr "Ursprünglich von:" + +#: lib/blame.tcl:931 +msgid "In File:" +msgstr "In Datei:" + +#: lib/blame.tcl:936 +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 "Auf 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:282 +#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171 +#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97 +msgid "Cancel" +msgstr "Abbrechen" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 +msgid "Revision" +msgstr "Version" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242 +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:371 +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 zusammengeführt nach" + +#: 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "%s laden..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Nach oben]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Dateien des Zweigs durchblättern" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:987 +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 "Fehler: »%s« kann nicht als Zweig oder Version erkannt werden" + +#: lib/checkout_op.tcl:140 lib/console.tcl:81 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:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "Fehler beim Einrichten der vereinfachten git-pull für »%s«." + +#: lib/checkout_op.tcl:228 +#, 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:323 +msgid "files checked out" +msgstr "Dateien aktualisiert" + +#: lib/checkout_op.tcl:353 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "" +"Auf Zweig »%s« umstellen 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 lib/checkout_op.tcl:450 +#, 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:163 +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:74 +msgid "Font Size" +msgstr "Schriftgröße" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Schriftbeispiel" + +#: lib/choose_font.tcl:103 +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:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376 +msgid "Create New Repository" +msgstr "Neues Projektarchiv" + +#: lib/choose_repository.tcl:87 +msgid "New..." +msgstr "Neu..." + +#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460 +msgid "Clone Existing Repository" +msgstr "Projektarchiv klonen" + +#: lib/choose_repository.tcl:100 +msgid "Clone..." +msgstr "Klonen..." + +#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976 +msgid "Open Existing Repository" +msgstr "Projektarchiv öffnen" + +#: lib/choose_repository.tcl:113 +msgid "Open..." +msgstr "Öffnen..." + +#: lib/choose_repository.tcl:126 +msgid "Recent Repositories" +msgstr "Zuletzt benutzte Projektarchive" + +#: lib/choose_repository.tcl:132 +msgid "Open Recent Repository:" +msgstr "Zuletzt benutztes Projektarchiv öffnen:" + +#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303 +#: lib/choose_repository.tcl:310 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Projektarchiv »%s« konnte nicht erstellt werden:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Verzeichnis:" + +#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537 +#: lib/choose_repository.tcl:1011 +msgid "Git Repository" +msgstr "Git Projektarchiv" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "Verzeichnis »%s« existiert bereits." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Datei »%s« existiert bereits." + +#: lib/choose_repository.tcl:455 +msgid "Clone" +msgstr "Klonen" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "Herkunft:" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +msgstr "Zielverzeichnis:" + +#: lib/choose_repository.tcl:490 +msgid "Clone Type:" +msgstr "Art des Klonens:" + +#: lib/choose_repository.tcl:495 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Standard (schnell, teilweise redundant, Hardlinks)" + +#: lib/choose_repository.tcl:501 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Alles kopieren (langsamer, volle Redundanz)" + +#: lib/choose_repository.tcl:507 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Verknüpft (schnell, nicht empfohlen, kein Backup)" + +#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806 +#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Kein Git-Projektarchiv in »%s« gefunden." + +#: lib/choose_repository.tcl:579 +msgid "Standard only available for local repository." +msgstr "Standard ist nur für lokale Projektarchive verfügbar." + +#: lib/choose_repository.tcl:583 +msgid "Shared only available for local repository." +msgstr "Verknüpft ist nur für lokale Projektarchive verfügbar." + +#: lib/choose_repository.tcl:604 +#, tcl-format +msgid "Location %s already exists." +msgstr "Projektarchiv »%s« existiert bereits." + +#: lib/choose_repository.tcl:615 +msgid "Failed to configure origin" +msgstr "Der Ursprungsort konnte nicht eingerichtet werden" + +#: lib/choose_repository.tcl:627 +msgid "Counting objects" +msgstr "Objekte werden gezählt" + +#: lib/choose_repository.tcl:628 +msgid "buckets" +msgstr "Buckets" + +#: lib/choose_repository.tcl:652 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Kopien von Objekten/Info/Alternates konnten nicht erstellt werden: %s" + +#: lib/choose_repository.tcl:688 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Von »%s« konnte nichts geklont werden." + +#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904 +#: lib/choose_repository.tcl:916 +msgid "The 'master' branch has not been initialized." +msgstr "Der »master«-Zweig wurde noch nicht initialisiert." + +#: lib/choose_repository.tcl:703 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Hardlinks nicht verfügbar. Stattdessen wird kopiert." + +#: lib/choose_repository.tcl:715 +#, tcl-format +msgid "Cloning from %s" +msgstr "Kopieren von »%s«" + +#: lib/choose_repository.tcl:746 +msgid "Copying objects" +msgstr "Objektdatenbank kopieren" + +#: lib/choose_repository.tcl:747 +msgid "KiB" +msgstr "KB" + +#: lib/choose_repository.tcl:771 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Objekt kann nicht kopiert werden: %s" + +#: lib/choose_repository.tcl:781 +msgid "Linking objects" +msgstr "Objekte verlinken" + +#: lib/choose_repository.tcl:782 +msgid "objects" +msgstr "Objekte" + +#: lib/choose_repository.tcl:790 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Für Objekt konnte kein Hardlink erstellt werden: %s" + +#: lib/choose_repository.tcl:845 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "" +"Zweige und Objekte konnten nicht angefordert werden. Kontrollieren Sie die " +"Ausgaben auf der Konsole für weitere Angaben." + +#: lib/choose_repository.tcl:856 +msgid "Cannot fetch tags. See console output for details." +msgstr "" +"Markierungen konnten nicht angefordert werden. Kontrollieren Sie die " +"Ausgaben auf der Konsole für weitere Angaben." + +#: lib/choose_repository.tcl:880 +msgid "Cannot determine HEAD. See console output for details." +msgstr "" +"Die Zweigspitze (HEAD) konnte nicht gefunden werden. Kontrollieren Sie die " +"Ausgaben auf der Konsole für weitere Angaben." + +#: lib/choose_repository.tcl:889 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Verzeichnis »%s« kann nicht aufgeräumt werden." + +#: lib/choose_repository.tcl:895 +msgid "Clone failed." +msgstr "Klonen fehlgeschlagen." + +#: lib/choose_repository.tcl:902 +msgid "No default branch obtained." +msgstr "Kein voreingestellter Zweig gefunden." + +#: lib/choose_repository.tcl:913 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "»%s« wurde nicht als Version gefunden." + +#: lib/choose_repository.tcl:925 +msgid "Creating working directory" +msgstr "Arbeitskopie erstellen" + +#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127 +#: lib/index.tcl:193 +msgid "files" +msgstr "Dateien" + +#: lib/choose_repository.tcl:955 +msgid "Initial file checkout failed." +msgstr "Erstellen der Arbeitskopie fehlgeschlagen." + +#: lib/choose_repository.tcl:971 +msgid "Open" +msgstr "Öffnen" + +#: lib/choose_repository.tcl:981 +msgid "Repository:" +msgstr "Projektarchiv:" + +#: lib/choose_repository.tcl:1031 +#, 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:538 +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:531 +msgid "Updated" +msgstr "Aktualisiert" + +#: lib/choose_rev.tcl:559 +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 sentence 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:207 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "Warning: Tcl/Tk unterstützt die Zeichencodierung »%s« nicht." + +#: lib/commit.tcl:221 +msgid "Calling pre-commit hook..." +msgstr "Aufrufen der Vor-Eintragen-Kontrolle..." + +#: lib/commit.tcl:236 +msgid "Commit declined by pre-commit hook." +msgstr "Eintragen abgelehnt durch Vor-Eintragen-Kontrolle (»pre-commit hook«)." + +#: lib/commit.tcl:259 +msgid "Calling commit-msg hook..." +msgstr "Aufrufen der Versionsbeschreibungs-Kontrolle..." + +#: lib/commit.tcl:274 +msgid "Commit declined by commit-msg hook." +msgstr "" +"Eintragen abgelehnt durch Versionsbeschreibungs-Kontrolle (»commit-message " +"hook«)." + +#: lib/commit.tcl:287 +msgid "Committing changes..." +msgstr "Änderungen eintragen..." + +#: lib/commit.tcl:303 +msgid "write-tree failed:" +msgstr "write-tree fehlgeschlagen:" + +#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368 +msgid "Commit failed." +msgstr "Eintragen fehlgeschlagen." + +#: lib/commit.tcl:321 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "Version »%s« scheint beschädigt zu sein" + +#: lib/commit.tcl:326 +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:333 +msgid "No changes to commit." +msgstr "Keine Änderungen, die eingetragen werden können." + +#: lib/commit.tcl:347 +msgid "commit-tree failed:" +msgstr "commit-tree fehlgeschlagen:" + +#: lib/commit.tcl:367 +msgid "update-ref failed:" +msgstr "update-ref fehlgeschlagen:" + +#: lib/commit.tcl:454 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Version %s übertragen: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Verarbeitung. Bitte warten..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Erfolgreich" + +#: lib/console.tcl:200 +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 Aufräumen 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:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" +"LOKAL: gelöscht\n" +"ANDERES:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" +"ANDERES: gelöscht\n" +"LOKAL:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "LOKAL:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "ANDERES:\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, 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:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Datei nicht unter Versionskontrolle, Dateigröße %d Bytes.\n" +"* Nur erste %d Bytes werden angezeigt.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* Datei nicht unter Versionskontrolle, hier abgeschnitten durch %s.\n" +"* Zum Ansehen der vollständigen Datei externen Editor benutzen.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "" +"Fehler beim Herausnehmen des gewählten Kontexts aus der Bereitstellung." + +#: lib/diff.tcl:310 +msgid "Failed to stage selected hunk." +msgstr "Fehler beim Bereitstellen des gewählten Kontexts." + +#: lib/diff.tcl:386 +msgid "Failed to unstage selected line." +msgstr "Fehler beim Herausnehmen der gewählten Zeile aus der Bereitstellung." + +#: lib/diff.tcl:394 +msgid "Failed to stage selected line." +msgstr "Fehler beim Bereitstellen der gewählten Zeile." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Voreinstellung" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Systemweit (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Andere" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "Fehler" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "Warnung" + +#: lib/error.tcl:94 +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:6 +msgid "Unable to unlock the index." +msgstr "Bereitstellung kann nicht wieder freigegeben werden." + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Fehler in Bereitstellung" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"Das Aktualisieren der Git-Bereitstellung ist fehlgeschlagen. Eine allgemeine " +"Git-Aktualisierung wird jetzt gestartet, um git-gui wieder mit git zu " +"synchronisieren." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Fortsetzen" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "Bereitstellung freigeben" + +#: lib/index.tcl:282 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "Datei »%s« aus der Bereitstellung herausnehmen" + +#: lib/index.tcl:313 +msgid "Ready to commit." +msgstr "Bereit zum Eintragen." + +#: lib/index.tcl:326 +#, tcl-format +msgid "Adding %s" +msgstr "»%s« hinzufügen..." + +#: lib/index.tcl:381 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Änderungen in Datei »%s« verwerfen?" + +#: lib/index.tcl:383 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Änderungen in den gewählten %i Dateien verwerfen?" + +#: lib/index.tcl:391 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "" +"Alle nicht bereitgestellten Änderungen werden beim Verwerfen verloren gehen." + +#: lib/index.tcl:394 +msgid "Do Nothing" +msgstr "Nichts tun" + +#: lib/index.tcl:419 +msgid "Reverting selected files" +msgstr "Änderungen in gewählten Dateien verwerfen" + +#: lib/index.tcl:423 +#, tcl-format +msgid "Reverting %s" +msgstr "Änderungen in %s verwerfen" + +#: 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:130 +msgid "Merge completed successfully." +msgstr "Zusammenführen erfolgreich abgeschlossen." + +#: lib/merge.tcl:132 +msgid "Merge failed. Conflict resolution is required." +msgstr "Zusammenführen fehlgeschlagen. Konfliktauflösung ist notwendig." + +#: lib/merge.tcl:157 +#, tcl-format +msgid "Merge Into %s" +msgstr "Zusammenführen in »%s«" + +#: lib/merge.tcl:176 +msgid "Revision To Merge" +msgstr "Zusammenzuführende Version" + +#: lib/merge.tcl:211 +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:221 +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:227 +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:238 +msgid "Aborting" +msgstr "Abbruch" + +#: lib/merge.tcl:238 +msgid "files reset" +msgstr "Dateien zurückgesetzt" + +#: lib/merge.tcl:265 +msgid "Abort failed." +msgstr "Abbruch fehlgeschlagen." + +#: lib/merge.tcl:267 +msgid "Abort completed. Ready." +msgstr "Abbruch durchgeführt. Bereit." + +#: lib/mergetool.tcl:14 +msgid "Force resolution to the base version?" +msgstr "Konflikt durch Basisversion ersetzen?" + +#: lib/mergetool.tcl:15 +msgid "Force resolution to this branch?" +msgstr "Konflikt durch diesen Zweig ersetzen?" + +#: lib/mergetool.tcl:16 +msgid "Force resolution to the other branch?" +msgstr "Konflikt durch anderen Zweig ersetzen?" + +#: lib/mergetool.tcl:20 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"Hinweis: Der Vergleich zeigt nur konfliktverursachende Änderungen an.\n" +"\n" +"»%s« wird überschrieben.\n" +"\n" +"Diese Operation kann nur rückgängig gemacht werden, wenn die\n" +"Zusammenführung erneut gestartet wird." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "Datei »%s« hat nicht aufgelöste Konflikte. Trotzdem bereitstellen?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "Auflösung hinzugefügt für %s" + +#: lib/mergetool.tcl:119 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "" +"Konflikte durch gelöschte Dateien oder symbolische Links können nicht durch " +"das Zusamenführungswerkzeug gelöst werden." + +#: lib/mergetool.tcl:124 +msgid "Conflict file does not exist" +msgstr "Konflikt-Datei existiert nicht" + +#: lib/mergetool.tcl:236 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "Kein GUI Zusammenführungswerkzeug: »%s«" + +#: lib/mergetool.tcl:240 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "Unbekanntes Zusammenführungswerkzeug: »%s«" + +#: lib/mergetool.tcl:275 +msgid "Merge tool is already running, terminate it?" +msgstr "Zusammenführungswerkzeug läuft bereits. Soll es abgebrochen werden?" + +#: lib/mergetool.tcl:295 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"Fehler beim Abrufen der Dateiversionen:\n" +"%s" + +#: lib/mergetool.tcl:315 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" +"Zusammenführungswerkzeug konnte nicht gestartet werden:\n" +"\n" +"%s" + +#: lib/mergetool.tcl:319 +msgid "Running merge tool..." +msgstr "Zusammenführungswerkzeug starten..." + +#: lib/mergetool.tcl:347 lib/mergetool.tcl:363 +msgid "Merge tool failed." +msgstr "Zusammenführungswerkzeug fehlgeschlagen." + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "Ungültige globale Zeichenkodierung »%s«" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "Ungültige Archiv-Zeichenkodierung »%s«" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Voreinstellungen wiederherstellen" + +#: lib/option.tcl:99 +msgid "Save" +msgstr "Speichern" + +#: lib/option.tcl:109 +#, tcl-format +msgid "%s Repository" +msgstr "Projektarchiv %s" + +#: lib/option.tcl:110 +msgid "Global (All Repositories)" +msgstr "Global (Alle Projektarchive)" + +#: lib/option.tcl:116 +msgid "User Name" +msgstr "Benutzername" + +#: lib/option.tcl:117 +msgid "Email Address" +msgstr "E-Mail-Adresse" + +#: lib/option.tcl:119 +msgid "Summarize Merge Commits" +msgstr "Zusammenführungs-Versionen zusammenfassen" + +#: lib/option.tcl:120 +msgid "Merge Verbosity" +msgstr "Ausführlichkeit der Zusammenführen-Meldungen" + +#: lib/option.tcl:121 +msgid "Show Diffstat After Merge" +msgstr "Vergleichsstatistik nach Zusammenführen anzeigen" + +#: lib/option.tcl:122 +msgid "Use Merge Tool" +msgstr "Zusammenführungswerkzeug" + +#: lib/option.tcl:124 +msgid "Trust File Modification Timestamps" +msgstr "Auf Dateiänderungsdatum verlassen" + +#: lib/option.tcl:124 +msgid "Prune Tracking Branches During Fetch" +msgstr "Übernahmezweige aufräumen während Anforderung" + +#: lib/option.tcl:125 +msgid "Match Tracking Branches" +msgstr "Passend zu Übernahmezweig" + +#: lib/option.tcl:126 +msgid "Blame Copy Only On Changed Files" +msgstr "Kopie-Annotieren nur bei geänderten Dateien" + +#: lib/option.tcl:127 +msgid "Minimum Letters To Blame Copy On" +msgstr "Mindestzahl Zeichen für Kopie-Annotieren" + +#: lib/option.tcl:128 +msgid "Blame History Context Radius (days)" +msgstr "Anzahl Tage für Historien-Kontext" + +#: lib/option.tcl:129 +msgid "Number of Diff Context Lines" +msgstr "Anzahl der Kontextzeilen beim Vergleich" + +#: lib/option.tcl:127 +msgid "Commit Message Text Width" +msgstr "Textbreite der Versionsbeschreibung" + +#: lib/option.tcl:128 +msgid "New Branch Name Template" +msgstr "Namensvorschlag für neue Zweige" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "Voreingestellte Zeichenkodierung" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Ändern" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Wörterbuch Rechtschreibprüfung:" + +#: lib/option.tcl:216 +msgid "Change Font" +msgstr "Schriftart ändern" + +#: lib/option.tcl:220 +#, tcl-format +msgid "Choose %s" +msgstr "%s wählen" + +#: lib/option.tcl:226 +msgid "pt." +msgstr "pt." + +#: lib/option.tcl:240 +msgid "Preferences" +msgstr "Einstellungen" + +#: lib/option.tcl:275 +msgid "Failed to completely save options:" +msgstr "Optionen konnten nicht gespeichert werden:" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "Anderes Archiv hinzufügen" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "Neues anderes Archiv hinzufügen" + +#: lib/remote_add.tcl:28 +msgid "Add" +msgstr "Hinzufügen" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Einzelheiten des anderen Archivs" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "Adresse:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Weitere Aktion jetzt" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Gleich anfordern" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "Anderes Archiv initialisieren und dahin versenden" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Nichts tun" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Bitte geben Sie einen Namen des anderen Archivs an." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "»%s« ist kein zulässiger Name eines anderen Archivs." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Fehler beim Hinzufügen des anderen Archivs »%s« aus Herkunftsort »%s«." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "»%s« anfordern" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "»%s« anfordern" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "" +"Initialisieren eines anderen Archivs an Adresse »%s« ist nicht möglich." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 +#, tcl-format +msgid "push %s" +msgstr "»%s« versenden..." + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "Einrichten von »%s« an »%s«" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +msgstr "Zweig in anderem Archiv löschen" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "In 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 Location:" +msgstr "Adresse:" + +#: lib/remote_branch_delete.tcl:84 +msgid "Branches" +msgstr "Zweige" + +#: lib/remote_branch_delete.tcl:109 +msgid "Delete Only If" +msgstr "Nur löschen, wenn" + +#: lib/remote_branch_delete.tcl:111 +msgid "Merged Into:" +msgstr "Zusammengeführt 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:163 +msgid "Remove Remote" +msgstr "Anderes Archiv entfernen" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Aufräumen von" + +#: lib/remote.tcl:170 +msgid "Fetch from" +msgstr "Anfordern von" + +#: lib/remote.tcl:213 +msgid "Push to" +msgstr "Versenden nach" + +#: lib/search.tcl:21 +msgid "Find:" +msgstr "Suchen:" + +#: lib/search.tcl:22 +msgid "Next" +msgstr "Nächster" + +#: lib/search.tcl:23 +msgid "Prev" +msgstr "Voriger" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Groß-/Kleinschreibung unterscheiden" + +#: 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/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Rechtschreibprüfungsprogramm nicht unterstützt" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "Rechtschreibprüfung nicht verfügbar" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Unbenutzbare Konfiguration der Rechtschreibprüfung" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Wörterbuch auf %s zurückgesetzt." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "Rechtschreibprüfungsprogramm mit Fehler abgebrochen" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Unbekanntes Rechtschreibprüfungsprogramm" + +#: lib/spellcheck.tcl:180 +msgid "No Suggestions" +msgstr "Keine Vorschläge" + +#: lib/spellcheck.tcl:381 +msgid "Unexpected EOF from spell checker" +msgstr "Unerwartetes EOF vom Rechtschreibprüfungsprogramm" + +#: lib/spellcheck.tcl:385 +msgid "Spell Checker Failed" +msgstr "Rechtschreibprüfung fehlgeschlagen" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Keine Schlüssel gefunden." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Öffentlicher Schlüssel gefunden in: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Schlüssel erzeugen" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "In Zwischenablage kopieren" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "Ihr OpenSSH öffenlicher Schlüssel" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Erzeugen..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"Konnte »ssh-keygen« nicht starten:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "Schlüsselerzeugung fehlgeschlagen." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "Schlüsselerzeugung erfolgreich, aber keine Schlüssel gefunden." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "Ihr Schlüssel ist abgelegt in: %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i von %*i %s (%3i%%)" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "Werkzeug hinzufügen" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "Neues Kommando für Werkzeug hinzufügen" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Global hinzufügen" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Einzelheiten des Werkzeugs" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "Benutzen Sie einen Schrägstrich »/«, um Untermenüs zu erstellen:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Kommando:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Bestätigungsfrage vor Starten anzeigen" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "Benutzer nach Version fragen (setzt $REVISION)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Benutzer nach zusätzlichen Argumenten fragen (setzt $ARGS)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Kein Ausgabefenster zeigen" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "Nur starten, wenn ein Vergleich gewählt ist ($FILENAME ist nicht leer)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Bitte geben Sie einen Werkzeugnamen an." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "Werkzeug »%s« existiert bereits." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"Werkzeug konnte nicht hinzugefügt werden:\n" +"\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Werkzeug entfernen" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Werkzeugkommandos entfernen" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Entfernen" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Werkzeuge für lokales Archiv werden in Blau angezeigt)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Kommando aufrufen: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Argumente" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "Ok" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "Um »%s« zu starten, muss eine Datei ausgewählt sein." + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "Wollen Sie %s wirklich starten?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Werkzeug: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Starten: %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "Werkzeug erfolgreich abgeschlossen: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "Werkzeug fehlgeschlagen: %s" + +#: 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 "Aufräumen von »%s«" + +#: lib/transport.tcl:19 +#, tcl-format +msgid "Pruning tracking branches deleted from %s" +msgstr "Übernahmezweige aufräumen und entfernen, die in »%s« gelöscht wurden" + +#: lib/transport.tcl:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Änderungen nach »%s« versenden" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "Spiegeln nach %s" + +#: lib/transport.tcl:82 +#, 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 "Lokale Zweige" + +#: 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" diff --cc git-gui/po/fr.po index 45773ab3d,000000000..a944ace6c mode 100644,000000..100644 --- a/git-gui/po/fr.po +++ b/git-gui/po/fr.po @@@ -1,2568 -1,0 +1,2558 @@@ +# translation of fr.po to French +# Translation of git-gui to French. +# Copyright (C) 2008 Shawn Pearce, et al. +# This file is distributed under the same license as the git package. +# +# Christian Couder , 2008. +# Alexandre Bourget , 2008. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-11-16 13:56-0800\n" +"PO-Revision-Date: 2008-11-20 10:20+0100\n" +"Last-Translator: Christian Couder \n" +"Language-Team: French\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: erreur fatale" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Police invalide spécifiée dans %s :" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "Police principale" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Police diff/console" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "Impossible de trouver git dans PATH." + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Impossible de parser la version de Git :" + +#: git-gui.sh:783 +#, 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 "" +"Impossible de déterminer la version de Git.\n" +"\n" +"%s affirme qu'il s'agit de la version '%s'.\n" +"\n" +"%s nécessite au moins Git 1.5.0.\n" +"\n" - "Peut'on considérer que '%s' est en version 1.5.0 ?\n" ++"Peut-on considérer que '%s' est en version 1.5.0 ?\n" + +#: git-gui.sh:1062 +msgid "Git directory not found:" +msgstr "Impossible de trouver le répertoire git :" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Impossible d'aller à la racine du répertoire de travail :" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "Impossible d'utiliser le répertoire .git:" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Aucun répertoire de travail" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." - msgstr "Rafraichissement du status des fichiers..." ++msgstr "Rafraîchissement du statut des fichiers..." + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Recherche de fichiers modifiés..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "Lancement de l'action de préparation du message de commit..." + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "Commit refusé par l'action de préparation du message de commit." + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Prêt." + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Non modifié" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Modifié, pas indexé" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Indexé" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Portions indexées" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Indexés, manquant" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "Le type de fichier a changé, non indexé" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "Le type de fichier a changé, indexé" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Non versionné, non indexé" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "Manquant" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Indexé pour suppression" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Indexé pour suppression, toujours présent" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "Nécessite la résolution d'une fusion" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "Lancement de gitk... un instant..." + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "Impossible de trouver gitk dans PATH." + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Dépôt" + +#: git-gui.sh:2281 +msgid "Edit" - msgstr "Edition" ++msgstr "Édition" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Branche" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Commit" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "Fusionner" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Dépôt distant" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Outils" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Explorer la copie de travail" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "Naviguer dans la branche courante" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "Naviguer dans la branche..." + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" - msgstr "Visualiser historique branche courante" ++msgstr "Visualiser l'historique de la branche courante" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "Voir l'historique de toutes les branches" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" - msgstr "Naviguer l'arborescence de %s" ++msgstr "Parcourir l'arborescence de %s" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" - msgstr "Voir l'historique de la branche: %s" ++msgstr "Voir l'historique de la branche : %s" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Statistiques du dépôt" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Comprimer le dépôt" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Vérifier le dépôt" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" - msgstr "Créer icône sur bureau" ++msgstr "Créer une icône sur le bureau" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Quitter" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "Défaire" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "Refaire" + +#: git-gui.sh:2378 git-gui.sh:2923 +msgid "Cut" +msgstr "Couper" + +#: git-gui.sh:2381 git-gui.sh:2926 git-gui.sh:3000 git-gui.sh:3082 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Copier" + +#: git-gui.sh:2384 git-gui.sh:2929 +msgid "Paste" +msgstr "Coller" + +#: git-gui.sh:2387 git-gui.sh:2932 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Supprimer" + +#: git-gui.sh:2391 git-gui.sh:2936 git-gui.sh:3086 lib/console.tcl:71 +msgid "Select All" +msgstr "Tout sélectionner" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "Créer..." + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Charger (checkout)..." + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Renommer..." + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Supprimer..." + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Réinitialiser..." + +#: git-gui.sh:2432 +msgid "Done" +msgstr "Effectué" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "Commiter@@verb" + +#: git-gui.sh:2443 git-gui.sh:2864 +msgid "New Commit" +msgstr "Nouveau commit" + +#: git-gui.sh:2451 git-gui.sh:2871 +msgid "Amend Last Commit" +msgstr "Corriger dernier commit" + +#: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Recharger modifs." + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Indexer" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Indexer toutes modifications" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Désindexer" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" - msgstr "Annuler les modifications (revert)" ++msgstr "Annuler les modifications" + +#: git-gui.sh:2491 git-gui.sh:3069 +msgid "Show Less Context" +msgstr "Montrer moins de contexte" + +#: git-gui.sh:2495 git-gui.sh:3073 +msgid "Show More Context" +msgstr "Montrer plus de contexte" + +#: git-gui.sh:2502 git-gui.sh:2838 git-gui.sh:2947 +msgid "Sign Off" +msgstr "Signer" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "Fusion locale..." + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "Abandonner fusion..." + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "Ajouter..." + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "Pousser..." + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "Supprimer branche..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "À propos de %s" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Préférences..." + +#: git-gui.sh:2565 git-gui.sh:3115 +msgid "Options..." +msgstr "Options..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Supprimer..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Aide" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Documentation en ligne" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" - msgstr "Montrer clé SSH" ++msgstr "Montrer la clé SSH" + +#: git-gui.sh:2707 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"erreur fatale : pas d'infos sur le chemin %s : Fichier ou répertoire " +"inexistant" + +#: git-gui.sh:2740 +msgid "Current Branch:" +msgstr "Branche courante :" + +#: git-gui.sh:2761 +msgid "Staged Changes (Will Commit)" +msgstr "Modifs. indexées (pour commit)" + +#: git-gui.sh:2781 +msgid "Unstaged Changes" +msgstr "Modifs. non indexées" + +#: git-gui.sh:2831 +msgid "Stage Changed" +msgstr "Indexer modifs." + +#: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182 +msgid "Push" +msgstr "Pousser" + +#: git-gui.sh:2885 +msgid "Initial Commit Message:" +msgstr "Message de commit initial :" + +#: git-gui.sh:2886 +msgid "Amended Commit Message:" +msgstr "Message de commit corrigé :" + +#: git-gui.sh:2887 +msgid "Amended Initial Commit Message:" +msgstr "Message de commit initial corrigé :" + +#: git-gui.sh:2888 +msgid "Amended Merge Commit Message:" +msgstr "Message de commit de fusion corrigé :" + +#: git-gui.sh:2889 +msgid "Merge Commit Message:" +msgstr "Message de commit de fusion :" + +#: git-gui.sh:2890 +msgid "Commit Message:" +msgstr "Message de commit :" + +#: git-gui.sh:2939 git-gui.sh:3090 lib/console.tcl:73 +msgid "Copy All" +msgstr "Copier tout" + +#: git-gui.sh:2963 lib/blame.tcl:104 +msgid "File:" +msgstr "Fichier :" + +#: git-gui.sh:3078 +msgid "Refresh" - msgstr "Rafraichir" ++msgstr "Rafraîchir" + +#: git-gui.sh:3099 +msgid "Decrease Font Size" +msgstr "Diminuer la police" + +#: git-gui.sh:3103 +msgid "Increase Font Size" +msgstr "Agrandir la police" + +#: git-gui.sh:3111 lib/blame.tcl:281 +msgid "Encoding" - msgstr "Encodage" ++msgstr "Codage des caractères" + +#: git-gui.sh:3122 +msgid "Apply/Reverse Hunk" +msgstr "Appliquer/Inverser section" + +#: git-gui.sh:3127 +msgid "Apply/Reverse Line" +msgstr "Appliquer/Inverser la ligne" + +#: git-gui.sh:3137 +msgid "Run Merge Tool" - msgstr "Lancer outil de merge" ++msgstr "Lancer l'outil de fusion" + +#: git-gui.sh:3142 +msgid "Use Remote Version" +msgstr "Utiliser la version distante" + +#: git-gui.sh:3146 +msgid "Use Local Version" +msgstr "Utiliser la version locale" + +#: git-gui.sh:3150 +msgid "Revert To Base" +msgstr "Revenir à la version de base" + +#: git-gui.sh:3169 +msgid "Unstage Hunk From Commit" +msgstr "Désindexer la section" + +#: git-gui.sh:3170 +msgid "Unstage Line From Commit" +msgstr "Désindexer la ligne" + +#: git-gui.sh:3172 +msgid "Stage Hunk For Commit" +msgstr "Indexer la section" + +#: git-gui.sh:3173 +msgid "Stage Line For Commit" +msgstr "Indexer la ligne" + +#: git-gui.sh:3196 +msgid "Initializing..." +msgstr "Initialisation..." + +#: git-gui.sh:3301 +#, 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 "" +"Des problèmes d'environnement sont possibles.\n" +"\n" +"Les variables d'environnement suivantes seront\n" +"probablement ignorées par tous les\n" +"sous-processus de Git lancés par %s\n" +"\n" + +#: git-gui.sh:3331 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" +"\n" - "Ceci est du à un problème connu avec\n" ++"Ceci est dû à un problème connu avec\n" +"le binaire Tcl distribué par Cygwin." + +#: git-gui.sh:3336 +#, 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" +"Un bon remplacement pour %s\n" +"est de mettre les valeurs pour 'user.name' (nom\n" +"de l'utilisateur) et 'user.email' (addresse email\n" +"de l'utilisateur) dans votre fichier '~/.gitconfig'.\n" + +#: lib/about.tcl:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - une interface graphique utilisateur pour Git" + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Visionneur de fichier" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Commit :" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Copier commit" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Chercher texte..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Lancer la détection approfondie des copies" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "Montrer l'historique" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "Blâmer le commit parent" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "Lecture de %s..." + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "Chargement des annotations de suivi des copies/déplacements..." + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "lignes annotées" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "Chargement des annotations d'emplacement original" + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "Annotation terminée." + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "Occupé" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "Annotation en cours d'exécution." + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "Recherche de copie approfondie en cours..." + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "Chargement des annotations..." + +#: lib/blame.tcl:964 +msgid "Author:" +msgstr "Auteur :" + +#: lib/blame.tcl:968 +msgid "Committer:" +msgstr "Commiteur :" + +#: lib/blame.tcl:973 +msgid "Original File:" +msgstr "Fichier original :" + +#: lib/blame.tcl:1021 +msgid "Cannot find HEAD commit:" - msgstr "Impossible de trouver le commit HEAD:" ++msgstr "Impossible de trouver le commit HEAD :" + +#: lib/blame.tcl:1076 +msgid "Cannot find parent commit:" - msgstr "Impossible de trouver le commit parent:" ++msgstr "Impossible de trouver le commit parent :" + +#: lib/blame.tcl:1091 +msgid "Unable to display parent" +msgstr "Impossible d'afficher le parent" + +#: lib/blame.tcl:1092 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "Erreur lors du chargement des différences :" + +#: lib/blame.tcl:1232 +msgid "Originally By:" - msgstr "A l'origine par :" ++msgstr "À l'origine par :" + +#: lib/blame.tcl:1238 +msgid "In File:" +msgstr "Dans le fichier :" + +#: lib/blame.tcl:1243 +msgid "Copied Or Moved Here By:" +msgstr "Copié ou déplacé ici par :" + +#: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19 +msgid "Checkout Branch" +msgstr "Charger la branche (checkout)" + +#: lib/branch_checkout.tcl:23 +msgid "Checkout" +msgstr "Charger (checkout)" + +#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 +#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:97 +msgid "Cancel" +msgstr "Annuler" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Révision" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +msgid "Options" +msgstr "Options" + +#: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92 +msgid "Fetch Tracking Branch" +msgstr "Récupérer la branche de suivi" + +#: lib/branch_checkout.tcl:44 +msgid "Detach From Local Branch" +msgstr "Détacher de la branche locale" + +#: lib/branch_create.tcl:22 +msgid "Create Branch" - msgstr "Créer branche" ++msgstr "Créer une branche" + +#: lib/branch_create.tcl:27 +msgid "Create New Branch" - msgstr "Créer nouvelle branche" ++msgstr "Créer une nouvelle branche" + +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +msgid "Create" +msgstr "Créer" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Nom de branche" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +msgid "Name:" +msgstr "Nom :" + +#: lib/branch_create.tcl:58 +msgid "Match Tracking Branch Name" +msgstr "Trouver nom de branche de suivi" + +#: lib/branch_create.tcl:66 +msgid "Starting Revision" +msgstr "Révision initiale" + +#: lib/branch_create.tcl:72 +msgid "Update Existing Branch:" - msgstr "Mettre à jour branche existante :" ++msgstr "Mettre à jour une branche existante :" + +#: lib/branch_create.tcl:75 +msgid "No" +msgstr "Non" + +#: lib/branch_create.tcl:80 +msgid "Fast Forward Only" - msgstr "Mise-à-jour rectiligne seulement (fast-forward)" ++msgstr "Mise à jour rectiligne seulement (fast-forward)" + +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +msgid "Reset" +msgstr "Réinitialiser" + +#: lib/branch_create.tcl:97 +msgid "Checkout After Creation" +msgstr "Charger (checkout) après création" + +#: lib/branch_create.tcl:131 +msgid "Please select a tracking branch." +msgstr "Choisissez une branche de suivi" + +#: lib/branch_create.tcl:140 +#, tcl-format +msgid "Tracking branch %s is not a branch in the remote repository." +msgstr "La branche de suivi %s n'est pas une branche dans le dépôt distant." + +#: lib/branch_create.tcl:153 lib/branch_rename.tcl:86 +msgid "Please supply a branch name." +msgstr "Fournissez un nom de branche." + +#: lib/branch_create.tcl:164 lib/branch_rename.tcl:106 +#, tcl-format +msgid "'%s' is not an acceptable branch name." +msgstr "'%s' n'est pas un nom de branche acceptable." + +#: lib/branch_delete.tcl:15 +msgid "Delete Branch" +msgstr "Supprimer branche" + +#: lib/branch_delete.tcl:20 +msgid "Delete Local Branch" +msgstr "Supprimer branche locale" + +#: lib/branch_delete.tcl:37 +msgid "Local Branches" +msgstr "Branches locales" + +#: lib/branch_delete.tcl:52 +msgid "Delete Only If Merged Into" - msgstr "Supprimer seulement si fusionnée dans:" ++msgstr "Supprimer seulement si fusionnée dans :" + +#: lib/branch_delete.tcl:54 +msgid "Always (Do not perform merge test.)" +msgstr "Toujours (Ne pas faire de test de fusion.)" + +#: lib/branch_delete.tcl:103 +#, tcl-format +msgid "The following branches are not completely merged into %s:" +msgstr "Les branches suivantes ne sont pas complètement fusionnées dans %s :" + - #: lib/branch_delete.tcl:115 - msgid "" - "Recovering deleted branches is difficult. \n" - "\n" - " Delete the selected branches?" - msgstr "" - "Récupérer des branches supprimées est difficile.\n" - "\n" - "Supprimer les branches sélectionnées ?" - +#: lib/branch_delete.tcl:141 +#, tcl-format +msgid "" +"Failed to delete branches:\n" +"%s" +msgstr "" - "La suppression des branches suivantes a échouée :\n" ++"La suppression des branches suivantes a échoué :\n" +"%s" + +#: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22 +msgid "Rename Branch" +msgstr "Renommer branche" + +#: lib/branch_rename.tcl:26 +msgid "Rename" +msgstr "Renommer" + +#: lib/branch_rename.tcl:36 +msgid "Branch:" +msgstr "Branche :" + +#: lib/branch_rename.tcl:39 +msgid "New Name:" +msgstr "Nouveau nom :" + +#: lib/branch_rename.tcl:75 +msgid "Please select a branch to rename." +msgstr "Merci de sélectionner une branche à renommer." + +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#, tcl-format +msgid "Branch '%s' already exists." +msgstr "La branche '%s' existe déjà." + +#: lib/branch_rename.tcl:117 +#, tcl-format +msgid "Failed to rename '%s'." +msgstr "Échec pour renommer '%s'." + +#: lib/browser.tcl:17 +msgid "Starting..." +msgstr "Lancement..." + +#: lib/browser.tcl:26 +msgid "File Browser" +msgstr "Visionneur de fichier" + +#: lib/browser.tcl:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "Chargement de %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Jusqu'au parent]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Naviguer dans les fichiers de le branche" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Naviguer" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "Récupération de %s à partir de %s" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "erreur fatale : Impossible de résoudre %s" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Fermer" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "La branche '%s' n'existe pas." + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "Échec de la configuration simplifiée de git-pull pour '%s'." + +#: lib/checkout_op.tcl:228 +#, tcl-format +msgid "" +"Branch '%s' already exists.\n" +"\n" +"It cannot fast-forward to %s.\n" +"A merge is required." +msgstr "" +"La branche '%s' existe déjà.\n" +"\n" +"Impossible de faire une avance rapide (fast forward) vers %s.\n" +"Une fusion est nécessaire." + +#: lib/checkout_op.tcl:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "La stratégie de fusion '%s' n'est pas supportée." + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." - msgstr "La mise à jour de '%s' a échouée." ++msgstr "La mise à jour de '%s' a échoué." + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." - msgstr "L'index (staging area) est déjà vérouillé" ++msgstr "L'index (staging area) est déjà verrouillé." + +#: lib/checkout_op.tcl:288 +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'état lors de la dernière synchronisation ne correspond plus à l'état du " - "dépôt\n" ++"dépôt.\n" +"\n" +"Un autre programme Git a modifié ce dépôt depuis la dernière " +"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir " +"modifier la branche courante.\n" +"\n" +"Cela va être fait tout de suite automatiquement.\n" + +#: lib/checkout_op.tcl:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "Mise à jour du répertoire courant avec '%s'..." + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "fichiers chargés" + +#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "Chargement de '%s' abandonné (il est nécessaire de fusionner des fichiers)." + +#: lib/checkout_op.tcl:376 +msgid "File level merge required." +msgstr "Il est nécessaire de fusionner des fichiers." + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Le répertoire de travail reste sur la branche '%s'." + +#: lib/checkout_op.tcl:451 +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 "" - "Vous n'êtes plus ur une branche locale.\n" ++"Vous n'êtes plus sur une branche locale.\n" +"\n" - "Si vous vouliez être sur une branche, créez en une maintenant en partant de " ++"Si vous vouliez être sur une branche, créez-en une maintenant en partant de " +"'Cet emprunt détaché'." + +#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "'%s' chargé." + +#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "Réinitialiser '%s' à '%s' va faire perdre les commits suivants :" + +#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "Récupérer les commits perdus ne sera peut être pas facile." + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Réinitialiser '%s' ?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Visualiser" + +#: lib/checkout_op.tcl:600 +#, 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 "" +"Le changement de la branche courante a échoué.\n" +"\n" +"Le répertoire courant n'est que partiellement modifié. Les fichiers ont été " +"mis à jour avec succès, mais la mise à jour d'un fichier interne à Git a " +"échouée.\n" +"\n" - "Cela n'aurait pas du se produire. %s va abandonner et se terminer." ++"Cela n'aurait pas dû se produire. %s va abandonner et se terminer." + +#: lib/choose_font.tcl:39 +msgid "Select" +msgstr "Sélectionner" + +#: lib/choose_font.tcl:53 +msgid "Font Family" +msgstr "Familles de polices" + +#: lib/choose_font.tcl:74 +msgid "Font Size" +msgstr "Taille de police" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Exemple de police" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" - "C'est un texte d'exemple.\n" - "Si vous aimez ce texte, vous pouvez choisir cette police" ++"Ceci est un texte d'exemple.\n" ++"Si vous aimez ce texte, vous pouvez choisir cette police." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Créer nouveau dépôt" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Nouveau..." + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" - msgstr "Cloner dépôt existant" ++msgstr "Cloner un dépôt existant" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Cloner..." + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" - msgstr "Ouvrir dépôt existant" ++msgstr "Ouvrir un dépôt existant" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Ouvrir..." + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" - msgstr "Dépôt récemment utilisés" ++msgstr "Dépôts récemment utilisés" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" - msgstr "Ouvrir dépôt récent :" ++msgstr "Ouvrir un dépôt récent :" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" - msgstr "La création du dépôt %s a échouée :" ++msgstr "La création du dépôt %s a échoué :" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Répertoire :" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Dépôt Git" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "Le répertoire %s existe déjà." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Le fichier %s existe déjà." + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Cloner" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" - msgstr "Emplacement source:" ++msgstr "Emplacement source :" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" - msgstr "Répertoire cible:" ++msgstr "Répertoire cible :" + +#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Type de clonage :" + +#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Standard (rapide, semi-redondant, liens durs)" + +#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Copy complète (plus lent, sauvegarde redondante)" + +#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Partagé (le plus rapide, non recommandé, pas de sauvegarde)" + +#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 +#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "'%s' n'est pas un dépôt Git." + +#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "Standard n'est disponible que pour un dépôt local." + +#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "Partagé n'est disponible que pour un dépôt local." + +#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "L'emplacement %s existe déjà." + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" - msgstr "La configuration de l'origine a échouée." ++msgstr "La configuration de l'origine a échoué." + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Décompte des objets" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "paniers" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Impossible de copier 'objects/info/alternates' : %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Il n'y a rien à cloner depuis %s." + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "La branche 'master' n'a pas été initialisée." + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Les liens durs ne sont pas supportés. Une copie sera effectuée à la place." + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Clonage depuis %s" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Copie des objets" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Impossible de copier l'objet : %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Liaison des objets" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "objets" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Impossible créer un lien dur pour l'objet : %s" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "" +"Impossible de récupérer les branches et objets. Voir la sortie console pour " +"plus de détails." + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "" +"Impossible de récupérer les marques (tags). Voir la sortie console pour plus " +"de détails." + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "Impossible de déterminer HEAD. Voir la sortie console pour plus de détails." + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Impossible de nettoyer %s" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "Le clonage a échoué." + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Aucune branche par défaut n'a été obtenue." + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Impossible de résoudre %s comme commit." + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Création du répertoire de travail" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "fichiers" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." - msgstr "Chargement initial du fichier échoué." ++msgstr "Le chargement initial du fichier a échoué." + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Ouvrir" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Dépôt :" + +#: lib/choose_repository.tcl:1037 +#, tcl-format +msgid "Failed to open repository %s:" +msgstr "Impossible d'ouvrir le dépôt %s :" + +#: lib/choose_rev.tcl:53 +msgid "This Detached Checkout" +msgstr "Cet emprunt détaché" + +#: lib/choose_rev.tcl:60 +msgid "Revision Expression:" +msgstr "Expression de révision :" + +#: lib/choose_rev.tcl:74 +msgid "Local Branch" +msgstr "Branche locale" + +#: lib/choose_rev.tcl:79 +msgid "Tracking Branch" +msgstr "Branche de suivi" + +#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538 +msgid "Tag" +msgstr "Marque (tag)" + +#: lib/choose_rev.tcl:317 +#, tcl-format +msgid "Invalid revision: %s" +msgstr "Révision invalide : %s" + +#: lib/choose_rev.tcl:338 +msgid "No revision selected." - msgstr "Pas de révision selectionnée." ++msgstr "Pas de révision sélectionnée." + +#: lib/choose_rev.tcl:346 +msgid "Revision expression is empty." +msgstr "L'expression de révision est vide." + +#: lib/choose_rev.tcl:531 +msgid "Updated" - msgstr "Mise-à-jour:" ++msgstr "Mise à jour:" + +#: lib/choose_rev.tcl:559 +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 "" +"Il n'y a rien à corriger.\n" +"\n" +"Vous allez créer le commit initial. Il n'y a pas de commit avant celui-ci à " +"corriger.\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 "" +"Impossible de corriger pendant une fusion.\n" +"\n" - "Vous êtes actuellement au milieu d'une fusion qui n'a pas été completement " - "terminée. Vous ne pouvez pas corriger le commit précédant sauf si vous " ++"Vous êtes actuellement au milieu d'une fusion qui n'a pas été complètement " ++"terminée. Vous ne pouvez pas corriger le commit précédent sauf si vous " +"abandonnez la fusion courante.\n" + +#: lib/commit.tcl:49 +msgid "Error loading commit data for amend:" +msgstr "Erreur lors du chargement des données de commit pour correction :" + +#: lib/commit.tcl:76 +msgid "Unable to obtain your identity:" +msgstr "Impossible d'obtenir votre identité :" + +#: lib/commit.tcl:81 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "GIT_COMMITTER_IDENT invalide :" + +#: 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'état lors de la dernière synchronisation ne correspond plus à l'état du " +"dépôt.\n" +"\n" +"Un autre programme Git a modifié ce dépôt depuis la dernière " +"synchronisation. Une resynshronisation doit être effectuée avant de pouvoir " +"créer un nouveau commit.\n" +"\n" +"Cela va être fait tout de suite automatiquement.\n" + +#: lib/commit.tcl:156 +#, 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 "" +"Des fichiers non fusionnés ne peuvent être commités.\n" +"\n" +"Le fichier %s a des conflicts de fusion. Vous devez les résoudre et pré-" +"commiter le fichier avant de pouvoir commiter.\n" + +#: lib/commit.tcl:164 +#, tcl-format +msgid "" +"Unknown file state %s detected.\n" +"\n" +"File %s cannot be committed by this program.\n" +msgstr "" +"Un état de fichier inconnu %s a été détecté.\n" +"\n" +"Le fichier %s ne peut pas être commité par ce programme.\n" + +#: lib/commit.tcl:172 +msgid "" +"No changes to commit.\n" +"\n" +"You must stage at least 1 file before you can commit.\n" +msgstr "" +"Pas de modification à commiter.\n" +"\n" +"Vous devez indexer au moins 1 fichier avant de pouvoir commiter.\n" + +#: lib/commit.tcl:187 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence what you did.\n" +"- Second line: Blank\n" +"- Remaining lines: Describe why this change is good.\n" +msgstr "" +"Merci de fournir un message de commit.\n" +"\n" +"Un bon message de commit a le format suivant :\n" +"\n" +"- Première ligne : décrire en une phrase ce que vous avez fait.\n" +"- Deuxième ligne : rien.\n" +"- Lignes suivantes : Décrire pourquoi ces modifications sont bonnes.\n" + +#: lib/commit.tcl:211 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." - msgstr "attention : Tcl ne supporte pas l'encodage '%s'." ++msgstr "attention : Tcl ne supporte pas le codage '%s'." + +#: lib/commit.tcl:227 +msgid "Calling pre-commit hook..." +msgstr "Lancement de l'action d'avant-commit..." + +#: lib/commit.tcl:242 +msgid "Commit declined by pre-commit hook." +msgstr "Commit refusé par l'action d'avant-commit." + +#: lib/commit.tcl:265 +msgid "Calling commit-msg hook..." +msgstr "Lancement de l'action \"message de commit\"..." + +#: lib/commit.tcl:280 +msgid "Commit declined by commit-msg hook." +msgstr "Commit refusé par l'action \"message de commit\"." + +#: lib/commit.tcl:293 +msgid "Committing changes..." +msgstr "Commit des modifications..." + +#: lib/commit.tcl:309 +msgid "write-tree failed:" +msgstr "write-tree a échoué :" + +#: lib/commit.tcl:310 lib/commit.tcl:354 lib/commit.tcl:374 +msgid "Commit failed." +msgstr "Le commit a échoué." + +#: lib/commit.tcl:327 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "Le commit %s semble être corrompu" + +#: lib/commit.tcl:332 +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 "" +"Pas de modification à commiter.\n" +"\n" +"Aucun fichier n'a été modifié par ce commit et il ne s'agit pas d'un commit " +"de fusion.\n" +"\n" +"Une resynchronisation va être lancée tout de suite automatiquement.\n" + +#: lib/commit.tcl:339 +msgid "No changes to commit." +msgstr "Pas de modifications à commiter." + +#: lib/commit.tcl:353 +msgid "commit-tree failed:" +msgstr "commit-tree a échoué :" + +#: lib/commit.tcl:373 +msgid "update-ref failed:" - msgstr "update-ref a échoué" ++msgstr "update-ref a échoué :" + +#: lib/commit.tcl:461 +#, tcl-format +msgid "Created commit %s: %s" - msgstr "Commit créé %s : %s" ++msgstr "Commit %s créé : %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Travail en cours... merci de patienter..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Succès" + +#: lib/console.tcl:200 +msgid "Error: Command Failed" +msgstr "Erreur : échec de la commande" + +#: lib/database.tcl:43 +msgid "Number of loose objects" +msgstr "Nombre d'objets en fichier particulier" + +#: lib/database.tcl:44 +msgid "Disk space used by loose objects" +msgstr "Espace disque utilisé par les fichiers particuliers" + +#: lib/database.tcl:45 +msgid "Number of packed objects" +msgstr "Nombre d'objets empaquetés" + +#: lib/database.tcl:46 +msgid "Number of packs" +msgstr "Nombre de paquets d'objets" + +#: lib/database.tcl:47 +msgid "Disk space used by packed objects" +msgstr "Espace disque utilisé par les objets empaquetés" + +#: lib/database.tcl:48 +msgid "Packed objects waiting for pruning" +msgstr "Objets empaquetés attendant d'être supprimés" + +#: lib/database.tcl:49 +msgid "Garbage files" +msgstr "Fichiers poubelle" + +#: lib/database.tcl:72 +msgid "Compressing the object database" +msgstr "Compression de la base des objets" + +#: lib/database.tcl:83 +msgid "Verifying the object database with fsck-objects" +msgstr "Vérification de la base des objets avec 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 "" +"Ce dépôt comprend actuellement environ %i objets ayant leur fichier " +"particulier.\n" +"\n" +"Pour conserver une performance optimale, il est fortement recommandé de " +"comprimer la base quand plus de %i objets ayant leur fichier particulier " +"existent.\n" +"\n" +"Comprimer la base maintenant ?" + +#: lib/date.tcl:25 +#, tcl-format +msgid "Invalid date from Git: %s" +msgstr "Date invalide de Git : %s" + +#: lib/diff.tcl:59 +#, 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 "" +"Aucune différence détectée.\n" +"\n" +"%s ne comporte aucune modification.\n" +"\n" +"La date de modification de ce fichier a été mise à jour par une autre " +"application, mais le contenu du fichier n'a pas changé.\n" +"\n" +"Une resynchronisation va être lancée automatiquement pour trouver d'autres " +"fichiers qui pourraient se trouver dans le même état." + +#: lib/diff.tcl:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "Chargement des différences de %s..." + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" - "LOCAL: supprimé\n" - "DISTANT:\n" ++"LOCAL : supprimé\n" ++"DISTANT :\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" - "DISTANT: supprimé\n" - "LOCAL:\n" ++"DISTANT : supprimé\n" ++"LOCAL :\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" - msgstr "LOCAL:\n" ++msgstr "LOCAL :\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" - msgstr "DISTANT:\n" ++msgstr "DISTANT :\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Impossible d'afficher %s" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Erreur lors du chargement du fichier :" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Dépôt Git (sous projet)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* Fichier binaire (pas d'apperçu du contenu)." + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Le fichier non suivi fait %d octets.\n" - "* On montre seulement les premiers %d octets.\n" ++"* Seuls les %d premiers octets sont montrés.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* Fichier suivi raccourcis ici de %s.\n" - "* Pour voir le fichier entier, utiliser un éditeur externe.\n" ++"* Pour voir le fichier entier, utilisez un éditeur externe.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Échec lors de la désindexation de la section sélectionnée." + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Échec lors de l'indexation de la section." + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "Échec lors de la désindexation de la ligne sélectionnée." + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "Échec lors de l'indexation de la ligne." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Défaut" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Système (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Autre" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "erreur" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "attention" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "Vous devez corriger les erreurs suivantes avant de pouvoir commiter." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." - msgstr "Impossible de dévérouiller l'index." ++msgstr "Impossible de déverrouiller l'index." + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Erreur de l'index" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"Échec de la mise à jour de l'index. Une resynchronisation va être lancée " +"automatiquement." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Continuer" + +#: lib/index.tcl:31 +msgid "Unlock Index" - msgstr "Déverouiller l'index" ++msgstr "Déverrouiller l'index" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" - msgstr "Désindexation de: %s" ++msgstr "Désindexation de : %s" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Prêt à être commité." + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "Ajout de %s" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Annuler les modifications dans le fichier %s ? " + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Annuler les modifications dans ces %i fichiers ?" + +#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "" +"Toutes les modifications non-indexées seront définitivement perdues par " +"l'annulation." + +#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "Ne rien faire" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "Annuler modifications dans fichiers selectionnés" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "Annulation des modifications dans %s" + +#: 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 "" +"Impossible de fusionner pendant une correction.\n" +"\n" +"Vous devez finir de corriger ce commit avant de lancer une quelconque " +"fusion.\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'état lors de la dernière synchronisation ne correspond plus à l'état du " +"dépôt.\n" +"\n" +"Un autre programme Git a modifié ce dépôt depuis la dernière " +"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir " +"fusionner de nouveau.\n" +"\n" +"Cela va être fait tout de suite automatiquement\n" + +#: lib/merge.tcl:45 +#, 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 "" +"Vous êtes au milieu d'une fusion conflictuelle.\n" +"\n" +"Le fichier %s a des conflicts de fusion.\n" +"\n" +"Vous devez les résoudre, puis indexer le fichier, et enfin commiter pour " +"terminer la fusion courante. Seulement à ce moment là sera-t-il possible " +"d'effectuer une nouvelle fusion.\n" + +#: lib/merge.tcl:55 +#, 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 "" +"Vous êtes au milieu d'une modification.\n" +"\n" - "Le fichier %s est modifié.\n" ++"Le fichier %s a été modifié.\n" +"\n" +"Vous devriez terminer le commit courant avant de lancer une fusion. En " +"faisait comme cela, vous éviterez de devoir éventuellement abandonner une " - "fusion ayant échouée.\n" ++"fusion ayant échoué.\n" + +#: lib/merge.tcl:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s de %s" + +#: lib/merge.tcl:120 +#, tcl-format +msgid "Merging %s and %s..." +msgstr "Fusion de %s et %s..." + +#: lib/merge.tcl:131 +msgid "Merge completed successfully." +msgstr "La fusion s'est faite avec succès." + +#: lib/merge.tcl:133 +msgid "Merge failed. Conflict resolution is required." - msgstr "La fusion a echouée. Il est nécessaire de résoudre les conflicts." ++msgstr "La fusion a echoué. Il est nécessaire de résoudre les conflits." + +#: lib/merge.tcl:158 +#, tcl-format +msgid "Merge Into %s" +msgstr "Fusion dans %s" + +#: lib/merge.tcl:177 +msgid "Revision To Merge" +msgstr "Révision à fusionner" + +#: lib/merge.tcl:212 +msgid "" +"Cannot abort while amending.\n" +"\n" +"You must finish amending this commit.\n" +msgstr "" +"Impossible d'abandonner en cours de correction.\n" +"\n" +"Vous devez finir de corriger ce commit.\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 "" +"Abandonner la fusion ?\n" +"\n" +"Abandonner la fusion courante entrainera la perte de TOUTES les " +"modifications non commitées.\n" +"\n" +"Abandonner quand même la fusion courante ?" + +#: 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 "" +"Réinitialiser les modifications ?\n" +"\n" +"Réinitialiser les modifications va faire perdre TOUTES les modifications non " +"commitées.\n" +"\n" +"Réinitialiser quand même les modifications courantes ?" + +#: lib/merge.tcl:239 +msgid "Aborting" +msgstr "Abandon" + +#: lib/merge.tcl:239 +msgid "files reset" +msgstr "fichiers réinitialisés" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "L'abandon a échoué." + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "Abandon teminé. Prêt." + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "Forcer la résolution à la version de base ?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "Forcer la résolution à cette branche ?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "Forcer la résolution à l'autre branche ?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" - "Noter que le diff ne montre que les modifications en conflict.\n" ++"Noter que le diff ne montre que les modifications en conflit.\n" +"\n" +"%s sera écrasé.\n" +"\n" - "Cette opération ne peut être défaite qu'en relançant la fusion." ++"Cette opération ne peut être inversée qu'en relançant la fusion." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" - msgstr "Le fichier %s semble avoir des conflicts non résolus, indéxer quand même ?" ++msgstr "Le fichier %s semble avoir des conflits non résolus, indexer quand même ?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "Ajouter une résolution pour %s" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" - msgstr "Impossible de résoudre la suppression ou de relier des conflicts en utilisant un outil" ++msgstr "Impossible de résoudre la suppression ou de relier des conflits en utilisant un outil" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" - msgstr "Le fichier en conflict n'existe pas." ++msgstr "Le fichier en conflit n'existe pas." + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "'%s' n'est pas un outil graphique pour fusionner des fichiers." + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "Outil de fusion '%s' non supporté" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "L'outil de fusion tourne déjà, faut-il le terminer ?" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" - "Erreur lors de la récupération des versions:\n" ++"Erreur lors de la récupération des versions :\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" - "Impossible de lancer l'outil de fusion:\n" ++"Impossible de lancer l'outil de fusion :\n" +"\n" +"%s" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "Lancement de l'outil de fusion..." + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "L'outil de fusion a échoué." + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" - msgstr "Encodage global invalide '%s'" ++msgstr "Codage global '%s' invalide" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" - msgstr "Encodage de dépôt invalide '%s'" ++msgstr "Codage de dépôt '%s' invalide" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Remettre les valeurs par défaut" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "Sauvegarder" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" - msgstr "Dépôt: %s" ++msgstr "Dépôt : %s" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Globales (tous les dépôts)" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "Nom d'utilisateur" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "Adresse email" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "Résumer les commits de fusion" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "Fusion bavarde" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "Montrer statistiques de diff après fusion" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "Utiliser outil de fusion" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "Faire confiance aux dates de modification de fichiers " + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "Purger les branches de suivi pendant la récupération" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "Faire correspondre les branches de suivi" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "Annoter les copies seulement sur fichiers modifiés" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "Minimum de caratères pour annoter une copie" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "Distance de blâme dans l'historique (jours)" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "Nombre de lignes de contexte dans les diffs" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "Largeur du texte de message de commit" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Nouveau modèle de nom de branche" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" - msgstr "Encodage du contenu des fichiers par défaut" ++msgstr "Codage du contenu des fichiers par défaut" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Modifier" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Dictionnaire d'orthographe :" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "Modifier les polices" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "Choisir %s" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "pt." + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Préférences" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" - msgstr "La sauvegarde complète des options a échouée :" ++msgstr "La sauvegarde complète des options a échoué :" + +#: lib/remote.tcl:163 +msgid "Remove Remote" - msgstr "Supprimer dépôt distant" ++msgstr "Supprimer un dépôt distant" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Purger de" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "Récupérer de" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "Pousser vers" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" - msgstr "Ajouter dépôt distant" ++msgstr "Ajouter un dépôt distant" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" - msgstr "Ajouter nouveau dépôt distant" ++msgstr "Ajouter un nouveau dépôt distant" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "Ajouter" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Détails des dépôts distants" + +#: lib/remote_add.tcl:50 +msgid "Location:" - msgstr "Emplacement:" ++msgstr "Emplacement :" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Action supplémentaire" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Récupérer immédiatement" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" - msgstr "Initialiser dépôt distant et pousser" ++msgstr "Initialiser un dépôt distant et pousser" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Ne rien faire d'autre maintenant" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Merci de fournir un nom de dépôt distant." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "'%s' n'est pas un nom de dépôt distant acceptable." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Échec de l'ajout du dépôt distant '%s' à l'emplacement '%s'." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "récupérer %s" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "Récupération de %s" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "Pas de méthode connue pour initialiser le dépôt à l'emplacement '%s'." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:71 +#, tcl-format +msgid "push %s" +msgstr "pousser %s" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "Mise en place de %s (à %s)" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" - msgstr "Supprimer branche à distance" ++msgstr "Supprimer une branche à distance" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "Dépôt source" + +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 +msgid "Remote:" +msgstr "Branche distante :" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 +msgid "Arbitrary Location:" +msgstr "Emplacement arbitraire :" + +#: lib/remote_branch_delete.tcl:84 +msgid "Branches" +msgstr "Branches" + +#: lib/remote_branch_delete.tcl:109 +msgid "Delete Only If" +msgstr "Supprimer seulement si" + +#: lib/remote_branch_delete.tcl:111 +msgid "Merged Into:" +msgstr "Fusionné dans :" + +#: lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Toujours (ne pas vérifier les fusions)" + +#: lib/remote_branch_delete.tcl:152 +msgid "A branch is required for 'Merged Into'." +msgstr "Une branche est nécessaire pour 'Fusionné dans'." + +#: lib/remote_branch_delete.tcl:184 +#, tcl-format +msgid "" +"The following branches are not completely merged into %s:\n" +"\n" +" - %s" +msgstr "" +"Les branches suivantes ne sont pas complètement fusionnées dans %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 "" - "Une ou plusieurs des tests de fusion ont échoués parce que vous n'avez pas " - "récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord." ++"Un ou plusieurs des tests de fusion ont échoué parce que vous n'avez pas " ++"récupéré les commits nécessaires. Essayez de récupérer à partir de %s d'abord." + +#: lib/remote_branch_delete.tcl:207 +msgid "Please select one or more branches to delete." +msgstr "Merci de sélectionner une ou plusieurs branches à supprimer." + +#: lib/remote_branch_delete.tcl:216 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" - "Récupérer des branches supprimées est difficile.\n" ++"Il est difficile de récupérer des branches supprimées.\n" +"\n" - "Souhaitez vous supprimer les branches sélectionnées ?" ++"Supprimer les branches sélectionnées ?" + +#: lib/remote_branch_delete.tcl:226 +#, tcl-format +msgid "Deleting branches from %s" - msgstr "Supprimer les branches de %s" ++msgstr "Suppression des branches de %s" + +#: lib/remote_branch_delete.tcl:286 +msgid "No repository selected." +msgstr "Aucun dépôt n'est sélectionné." + +#: lib/remote_branch_delete.tcl:291 +#, tcl-format +msgid "Scanning %s..." +msgstr "Synchronisation de %s..." + +#: lib/search.tcl:21 +msgid "Find:" +msgstr "Chercher :" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "Suivant" + +#: lib/search.tcl:24 +msgid "Prev" - msgstr "Précédant" ++msgstr "Précédent" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Sensible à la casse" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" - msgstr "Impossible d'écrire le raccourcis :" ++msgstr "Impossible d'écrire le raccourci :" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Impossible d'écrire l'icône :" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Vérificateur d'orthographe non supporté" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "La vérification d'orthographe n'est pas disponible" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Configuration de vérification d'orthographe invalide" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Réinitialisation du dictionnaire à %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" - msgstr "La vérification d'orthographe a échouée silentieusement au démarrage" ++msgstr "La vérification d'orthographe a échoué silencieusement au démarrage" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Vérificateur d'orthographe non reconnu" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Aucune suggestion" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "EOF inattendue envoyée par le vérificateur d'orthographe" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "Le vérificateur d'orthographe a échoué" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Aucune clé trouvée." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Clé publique trouvée dans : %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Générer une clé" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" - msgstr "Copier dans le presse papier" ++msgstr "Copier dans le presse-papier" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" - msgstr "Votre clé publique Open SSH" ++msgstr "Votre clé publique OpenSSH" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Génération..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" - "Impossible de lancer ssh-keygen:\n" ++"Impossible de lancer ssh-keygen :\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "La génération a échoué." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "La génération a réussi, mais aucune clé n'a été trouvée." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "Votre clé est dans : %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i de %*i %s (%3i%%)" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "Lancer %s nécessite qu'un fichier soit sélectionné." + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" - msgstr "Êtes vous sûr de vouloir lancer %s ?" ++msgstr "Êtes-vous sûr de vouloir lancer %s ?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Outil : %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Lancement de : %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "L'outil a terminé avec succès : %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "L'outil a échoué : %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" - msgstr "Ajouter outil" ++msgstr "Ajouter un outil" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" - msgstr "Ajouter nouvelle commande d'outil" ++msgstr "Ajouter une nouvelle commande d'outil" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Ajouter globalement" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Détails sur l'outil" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" - msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous menus :" ++msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous-menus :" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Commande :" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Montrer une boîte de dialogue avant le lancement" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "Demander à l'utilisateur de sélectionner une révision (change $REVISION)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Demander à l'utilisateur des arguments supplémentaires (change $ARGS)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Ne pas montrer la fenêtre de sortie des commandes" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" - msgstr "Lancer seulement si un diff est selectionné ($FILENAME non vide)" ++msgstr "Lancer seulement si un diff est sélectionné ($FILENAME non vide)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Merci de fournir un nom pour l'outil." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "L'outil '%s' existe déjà." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" - "Impossible d'ajouter l'outil:\n" ++"Impossible d'ajouter l'outil :\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Supprimer l'outil" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Supprimer des commandes d'outil" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Supprimer" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Le bleu indique des outils locaux au dépôt)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Lancer commande : %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Arguments" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: lib/transport.tcl:7 +#, tcl-format +msgid "Fetching new changes from %s" +msgstr "Récupération des dernières modifications de %s" + +#: lib/transport.tcl:18 +#, tcl-format +msgid "remote prune %s" +msgstr "purger à distance %s" + +#: lib/transport.tcl:19 +#, tcl-format +msgid "Pruning tracking branches deleted from %s" +msgstr "Nettoyer les branches de suivi supprimées de %s" + +#: lib/transport.tcl:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Les modifications sont poussées vers %s" + +#: lib/transport.tcl:72 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Pousse %s %s vers %s" + +#: lib/transport.tcl:89 +msgid "Push Branches" +msgstr "Pousser branches" + +#: lib/transport.tcl:103 +msgid "Source Branches" +msgstr "Branches source" + +#: lib/transport.tcl:120 +msgid "Destination Repository" +msgstr "Dépôt de destination" + +#: lib/transport.tcl:158 +msgid "Transfer Options" +msgstr "Options de transfert" + +#: lib/transport.tcl:160 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "" +"Forcer l'écrasement d'une branche existante (peut supprimer des " +"modifications)" + +#: lib/transport.tcl:164 +msgid "Use thin pack (for slow network connections)" +msgstr "Utiliser des petits paquets (pour les connexions lentes)" + +#: lib/transport.tcl:168 +msgid "Include tags" +msgstr "Inclure les marques (tags)" + diff --cc git-gui/po/git-gui.pot index 15aea0dc6,000000000..53b7d3634 mode 100644,000000..100644 --- a/git-gui/po/git-gui.pot +++ b/git-gui/po/git-gui.pot @@@ -1,2376 -1,0 +1,2369 @@@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "" + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "" + +#: git-gui.sh:783 +#, 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:1062 +msgid "Git directory not found:" +msgstr "" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "" + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "" + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "" + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "" + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "" + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "" + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "" + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "" + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "" + +#: git-gui.sh:2378 git-gui.sh:2937 +msgid "Cut" +msgstr "" + +#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "" + +#: git-gui.sh:2384 git-gui.sh:2943 +msgid "Paste" +msgstr "" + +#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "" + +#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +msgid "Select All" +msgstr "" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "" + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "" + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "" + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "" + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "" + +#: git-gui.sh:2432 +msgid "Done" +msgstr "" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "" + +#: git-gui.sh:2443 git-gui.sh:2878 +msgid "New Commit" +msgstr "" + +#: git-gui.sh:2451 git-gui.sh:2885 +msgid "Amend Last Commit" +msgstr "" + +#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "" + +#: git-gui.sh:2491 git-gui.sh:3083 +msgid "Show Less Context" +msgstr "" + +#: git-gui.sh:2495 git-gui.sh:3087 +msgid "Show More Context" +msgstr "" + +#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +msgid "Sign Off" +msgstr "" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "" + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "" + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "" + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "" + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "" + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "" + +#: git-gui.sh:2565 git-gui.sh:3129 +msgid "Options..." +msgstr "" + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "" + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "" + +#: git-gui.sh:2721 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" + +#: git-gui.sh:2754 +msgid "Current Branch:" +msgstr "" + +#: git-gui.sh:2775 +msgid "Staged Changes (Will Commit)" +msgstr "" + +#: git-gui.sh:2795 +msgid "Unstaged Changes" +msgstr "" + +#: git-gui.sh:2845 +msgid "Stage Changed" +msgstr "" + +#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +msgid "Push" +msgstr "" + +#: git-gui.sh:2899 +msgid "Initial Commit Message:" +msgstr "" + +#: git-gui.sh:2900 +msgid "Amended Commit Message:" +msgstr "" + +#: git-gui.sh:2901 +msgid "Amended Initial Commit Message:" +msgstr "" + +#: git-gui.sh:2902 +msgid "Amended Merge Commit Message:" +msgstr "" + +#: git-gui.sh:2903 +msgid "Merge Commit Message:" +msgstr "" + +#: git-gui.sh:2904 +msgid "Commit Message:" +msgstr "" + +#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +msgid "Copy All" +msgstr "" + +#: git-gui.sh:2977 lib/blame.tcl:104 +msgid "File:" +msgstr "" + +#: git-gui.sh:3092 +msgid "Refresh" +msgstr "" + +#: git-gui.sh:3113 +msgid "Decrease Font Size" +msgstr "" + +#: git-gui.sh:3117 +msgid "Increase Font Size" +msgstr "" + +#: git-gui.sh:3125 lib/blame.tcl:281 +msgid "Encoding" +msgstr "" + +#: git-gui.sh:3136 +msgid "Apply/Reverse Hunk" +msgstr "" + +#: git-gui.sh:3141 +msgid "Apply/Reverse Line" +msgstr "" + +#: git-gui.sh:3151 +msgid "Run Merge Tool" +msgstr "" + +#: git-gui.sh:3156 +msgid "Use Remote Version" +msgstr "" + +#: git-gui.sh:3160 +msgid "Use Local Version" +msgstr "" + +#: git-gui.sh:3164 +msgid "Revert To Base" +msgstr "" + +#: git-gui.sh:3183 +msgid "Unstage Hunk From Commit" +msgstr "" + +#: git-gui.sh:3184 +msgid "Unstage Line From Commit" +msgstr "" + +#: git-gui.sh:3186 +msgid "Stage Hunk For Commit" +msgstr "" + +#: git-gui.sh:3187 +msgid "Stage Line For Commit" +msgstr "" + +#: git-gui.sh:3210 +msgid "Initializing..." +msgstr "" + +#: git-gui.sh:3315 +#, 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:3345 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" + +#: git-gui.sh:3350 +#, 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:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "" + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "" + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "" + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "" + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "" + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "" + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "" + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "" + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "" + +#: lib/blame.tcl:963 +msgid "Author:" +msgstr "" + +#: lib/blame.tcl:967 +msgid "Committer:" +msgstr "" + +#: lib/blame.tcl:972 +msgid "Original File:" +msgstr "" + +#: lib/blame.tcl:1020 +msgid "Cannot find HEAD commit:" +msgstr "" + +#: lib/blame.tcl:1075 +msgid "Cannot find parent commit:" +msgstr "" + +#: lib/blame.tcl:1090 +msgid "Unable to display parent" +msgstr "" + +#: lib/blame.tcl:1091 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "" + +#: lib/blame.tcl:1231 +msgid "Originally By:" +msgstr "" + +#: lib/blame.tcl:1237 +msgid "In File:" +msgstr "" + +#: lib/blame.tcl:1242 +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:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:108 +msgid "Cancel" +msgstr "" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +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:377 +msgid "Create" +msgstr "" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +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:536 +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:201 +#, 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "" + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "" + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "" + +#: lib/checkout_op.tcl:228 +#, 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:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "" + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "" + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "" + +#: lib/checkout_op.tcl:288 +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:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "" + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "" + +#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "" + +#: lib/checkout_op.tcl:376 +msgid "File level merge required." +msgstr "" + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "" + +#: lib/checkout_op.tcl:451 +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:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "" + +#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "" + +#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "" + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "" + +#: lib/checkout_op.tcl:600 +#, 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:74 +msgid "Font Size" +msgstr "" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "" + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "" + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "" + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "" + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "" + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +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:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "" + +#: 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:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "" + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "" + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "" + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "" + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "" + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "" + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "" + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "" + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "" + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "" + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "" + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "" + +#: lib/choose_repository.tcl:1037 +#, 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:538 +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:531 +msgid "Updated" +msgstr "" + +#: lib/choose_rev.tcl:559 +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:48 +msgid "Error loading commit data for amend:" +msgstr "" + +#: lib/commit.tcl:75 +msgid "Unable to obtain your identity:" +msgstr "" + +#: lib/commit.tcl:80 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "" + +#: lib/commit.tcl:132 +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:155 +#, 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:163 +#, tcl-format +msgid "" +"Unknown file state %s detected.\n" +"\n" +"File %s cannot be committed by this program.\n" +msgstr "" + +#: lib/commit.tcl:171 +msgid "" +"No changes to commit.\n" +"\n" +"You must stage at least 1 file before you can commit.\n" +msgstr "" + +#: lib/commit.tcl:186 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence what you did.\n" +"- Second line: Blank\n" +"- Remaining lines: Describe why this change is good.\n" +msgstr "" + +#: lib/commit.tcl:210 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "" + +#: lib/commit.tcl:226 +msgid "Calling pre-commit hook..." +msgstr "" + +#: lib/commit.tcl:241 +msgid "Commit declined by pre-commit hook." +msgstr "" + +#: lib/commit.tcl:264 +msgid "Calling commit-msg hook..." +msgstr "" + +#: lib/commit.tcl:279 +msgid "Commit declined by commit-msg hook." +msgstr "" + +#: lib/commit.tcl:292 +msgid "Committing changes..." +msgstr "" + +#: lib/commit.tcl:308 +msgid "write-tree failed:" +msgstr "" + +#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +msgid "Commit failed." +msgstr "" + +#: lib/commit.tcl:326 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "" + +#: lib/commit.tcl:331 +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:338 +msgid "No changes to commit." +msgstr "" + +#: lib/commit.tcl:352 +msgid "commit-tree failed:" +msgstr "" + +#: lib/commit.tcl:372 +msgid "update-ref failed:" +msgstr "" + +#: lib/commit.tcl:460 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "" + +#: lib/console.tcl:186 +msgid "Success" +msgstr "" + +#: lib/console.tcl:200 +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:59 +#, 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:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "" + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "" + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "" + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "" + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "" + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "" + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "" + +#: lib/error.tcl:94 +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 "" + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "" + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "" + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "" + +#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "" + +#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +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:45 +#, 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:55 +#, 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:107 +#, tcl-format +msgid "%s of %s" +msgstr "" + +#: lib/merge.tcl:120 +#, 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:239 +msgid "files reset" +msgstr "" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "" + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "" + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "" + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "" + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "" + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "" + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "" + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "" + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "" + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "" + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "" + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 +#, tcl-format +msgid "push %s" +msgstr "" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +msgstr "" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "" + +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 +msgid "Remote:" +msgstr "" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 +msgid "Arbitrary Location:" +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/search.tcl:21 +msgid "Find:" +msgstr "" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "" + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "" + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "" + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "" + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "" + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "" + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "" + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "" + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +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:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "" + +#: lib/transport.tcl:82 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "" + +#: lib/transport.tcl:100 +msgid "Push Branches" +msgstr "" + +#: lib/transport.tcl:114 +msgid "Source Branches" +msgstr "" + +#: lib/transport.tcl:131 +msgid "Destination Repository" +msgstr "" + +#: lib/transport.tcl:169 +msgid "Transfer Options" +msgstr "" + +#: lib/transport.tcl:171 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "" + +#: lib/transport.tcl:175 +msgid "Use thin pack (for slow network connections)" +msgstr "" + +#: lib/transport.tcl:179 +msgid "Include tags" +msgstr "" diff --cc git-gui/po/hu.po index f761b6415,000000000..0f87bc1cb mode 100644,000000..100644 --- a/git-gui/po/hu.po +++ b/git-gui/po/hu.po @@@ -1,2612 -1,0 +1,2602 @@@ +# 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 , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: git-gui-i 18n\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: 2008-12-10 15:00+0100\n" +"Last-Translator: Miklos Vajna \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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: végzetes hiba" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Érvénytelen font lett megadva itt: %s:" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "Fő betűtípus" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Diff/konzol betűtípus" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "A git nem található a PATH-ban." + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Nem értelmezhető a Git verzió sztring:" + +#: git-gui.sh:783 +#, 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:1062 +msgid "Git directory not found:" +msgstr "A Git könyvtár nem található:" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Nem lehet a munkakönyvtár tetejére lépni:" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "Nem használható vicces .git könyvtár:" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Nincs munkakönyvtár" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "A fájlok státuszának frissítése..." + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Módosított fájlok keresése ..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "A prepare-commit-msg hurok meghívása..." + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "A commitot megakadályozta a prepare-commit-msg hurok." + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Kész." + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Nem módosított" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Módosított, de nem kiválasztott" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Kiválasztva commitolásra" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Részek kiválasztva commitolásra" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Kiválasztva commitolásra, hiányzó" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "Fájl típus megváltozott, nem kiválasztott" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "A fájltípus megváltozott, kiválasztott" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Nem követett, nem kiválasztott" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "Hiányzó" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Kiválasztva eltávolításra" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Kiválasztva eltávolításra, jelenleg is elérhető" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "Merge feloldás szükséges" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "A gitk indítása... várjunk..." + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "A gitk nem található a PATH-ban." + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Repó" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "Szerkesztés" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Branch" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Commit@@főnév" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "Merge" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Távoli" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Eszközök" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Munkamásolat felfedezése" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "A jelenlegi branch fájljainak böngészése" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "A branch fájljainak böngészése..." + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "A jelenlegi branch történetének vizualizálása" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "Az összes branch történetének vizualizálása" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "A(z) %s branch fájljainak böngészése" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "A(z) %s branch történetének vizualizálása" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Adatbázis statisztikák" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Adatbázis tömörítése" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Adatbázis ellenőrzése" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Asztal ikon létrehozása" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Kilépés" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "Visszavonás" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "Mégis" + +#: git-gui.sh:2378 git-gui.sh:2937 +msgid "Cut" +msgstr "Kivágás" + +#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Másolás" + +#: git-gui.sh:2384 git-gui.sh:2943 +msgid "Paste" +msgstr "Beillesztés" + +#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Törlés" + +#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +msgid "Select All" +msgstr "Mindent kiválaszt" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "Létrehozás..." + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Checkout..." + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Átnevezés..." + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Törlés..." + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Visszaállítás..." + +#: git-gui.sh:2432 +msgid "Done" +msgstr "Kész" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "Commit@@ige" + +#: git-gui.sh:2443 git-gui.sh:2878 +msgid "New Commit" +msgstr "Új commit" + +#: git-gui.sh:2451 git-gui.sh:2885 +msgid "Amend Last Commit" +msgstr "Utolsó commit javítása" + +#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Keresés újra" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Kiválasztás commitolásra" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Módosított fájlok kiválasztása commitolásra" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Commitba való kiválasztás visszavonása" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "Változtatások visszaállítása" + +#: git-gui.sh:2491 git-gui.sh:3083 +msgid "Show Less Context" +msgstr "Kevesebb környezet mutatása" + +#: git-gui.sh:2495 git-gui.sh:3087 +msgid "Show More Context" +msgstr "Több környezet mutatása" + +#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +msgid "Sign Off" +msgstr "Aláír" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "Helyi merge..." + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "Merge megszakítása..." + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "Hozzáadás..." + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "Push..." + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "Branch törlése..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Névjegy: %s" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Beállítások..." + +#: git-gui.sh:2565 git-gui.sh:3129 +msgid "Options..." +msgstr "Opciók..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Eltávolítás..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Segítség" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Online dokumentáció" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "SSH kulcs mutatása" + +#: git-gui.sh:2721 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"végzetes hiba: nem érhető el a(z) %s útvonal: Nincs ilyen fájl vagy könyvtár" + +#: git-gui.sh:2754 +msgid "Current Branch:" +msgstr "Jelenlegi branch:" + +#: git-gui.sh:2775 +msgid "Staged Changes (Will Commit)" +msgstr "Kiválasztott változtatások (commitolva lesz)" + +#: git-gui.sh:2795 +msgid "Unstaged Changes" +msgstr "Kiválasztatlan változtatások" + +#: git-gui.sh:2845 +msgid "Stage Changed" +msgstr "Változtatások kiválasztása" + +#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +msgid "Push" +msgstr "Push" + +#: git-gui.sh:2899 +msgid "Initial Commit Message:" +msgstr "Kezdeti commit üzenet:" + +#: git-gui.sh:2900 +msgid "Amended Commit Message:" +msgstr "Javító commit üzenet:" + +#: git-gui.sh:2901 +msgid "Amended Initial Commit Message:" +msgstr "Kezdeti javító commit üzenet:" + +#: git-gui.sh:2902 +msgid "Amended Merge Commit Message:" +msgstr "Javító merge commit üzenet:" + +#: git-gui.sh:2903 +msgid "Merge Commit Message:" +msgstr "Merge commit üzenet:" + +#: git-gui.sh:2904 +msgid "Commit Message:" +msgstr "Commit üzenet:" + +#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +msgid "Copy All" +msgstr "Összes másolása" + +#: git-gui.sh:2977 lib/blame.tcl:104 +msgid "File:" +msgstr "Fájl:" + +#: git-gui.sh:3092 +msgid "Refresh" +msgstr "Frissítés" + +#: git-gui.sh:3113 +msgid "Decrease Font Size" +msgstr "Font méret csökkentése" + +#: git-gui.sh:3117 +msgid "Increase Font Size" +msgstr "Fönt méret növelése" + +#: git-gui.sh:3125 lib/blame.tcl:281 +msgid "Encoding" +msgstr "Kódolás" + +#: git-gui.sh:3136 +msgid "Apply/Reverse Hunk" +msgstr "Hunk alkalmazása/visszaállítása" + +#: git-gui.sh:3141 +msgid "Apply/Reverse Line" +msgstr "Sor alkalmazása/visszaállítása" + +#: git-gui.sh:3151 +msgid "Run Merge Tool" +msgstr "Merge eszköz futtatása" + +#: git-gui.sh:3156 +msgid "Use Remote Version" +msgstr "Távoli verzió használata" + +#: git-gui.sh:3160 +msgid "Use Local Version" +msgstr "Helyi verzió használata" + +#: git-gui.sh:3164 +msgid "Revert To Base" +msgstr "Visszaállítás az alaphoz" + +#: git-gui.sh:3183 +msgid "Unstage Hunk From Commit" +msgstr "Hunk törlése commitból" + +#: git-gui.sh:3184 +msgid "Unstage Line From Commit" +msgstr "A sor kiválasztásának törlése" + +#: git-gui.sh:3186 +msgid "Stage Hunk For Commit" +msgstr "Hunk kiválasztása commitba" + +#: git-gui.sh:3187 +msgid "Stage Line For Commit" +msgstr "Sor kiválasztása commitba" + +#: git-gui.sh:3210 +msgid "Initializing..." +msgstr "Inicializálás..." + +#: git-gui.sh:3315 +#, 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 "" +"Lehetséges, hogy környezeti problémák vannak.\n" +"\n" +"A következő környezeti változók valószínűleg\n" +"figyelmen kívül lesznek hagyva a(z) %s által\n" +"indított folyamatok által:\n" +"\n" + +#: git-gui.sh:3345 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" +"\n" +"Ez a Cygwin által terjesztett Tcl binárisban\n" +"lévő ismert hiba miatt van." + +#: git-gui.sh:3350 +#, 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" +"Egy jó helyettesítés a(z) %s számára\n" +"a user.name és user.email beállítások\n" +"elhelyezése a személyes\n" +"~/.gitconfig fájlba.\n" + +#: lib/about.tcl:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - egy grafikus felület a Githez." + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Fájl néző" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Commit:" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Commit másolása" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Szöveg keresése..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Teljes másolat-érzékelés bekapcsolása" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "Történeti környezet mutatása" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "Szülő commit vizsgálata" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "A(z) %s olvasása..." + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "A másolást/átnevezést követő annotációk betöltése..." + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "sor annotálva" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "Az eredeti hely annotációk betöltése..." + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "Az annotáció kész." + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "Elfoglalt" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "Az annotációs folyamat már fut." + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "Futtatás másolás-érzékelésen keresztül..." + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "Az annotáció betöltése..." + +#: lib/blame.tcl:963 +msgid "Author:" +msgstr "Szerző:" + +#: lib/blame.tcl:967 +msgid "Committer:" +msgstr "Commiter:" + +#: lib/blame.tcl:972 +msgid "Original File:" +msgstr "Eredeti fájl:" + +#: lib/blame.tcl:1020 +msgid "Cannot find HEAD commit:" +msgstr "Nem található a HEAD commit:" + +#: lib/blame.tcl:1075 +msgid "Cannot find parent commit:" +msgstr "Nem található a szülő commit:" + +#: lib/blame.tcl:1090 +msgid "Unable to display parent" +msgstr "Nem lehet megjeleníteni a szülőt" + +#: lib/blame.tcl:1091 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "Hiba a diff betöltése közben:" + +#: lib/blame.tcl:1231 +msgid "Originally By:" +msgstr "Eredeti szerző:" + +#: lib/blame.tcl:1237 +msgid "In File:" +msgstr "Ebben a fájlban:" + +#: lib/blame.tcl:1242 +msgid "Copied Or Moved Here By:" +msgstr "Ide másolta vagy helyezte:" + +#: 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:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:108 +msgid "Cancel" +msgstr "Mégsem" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Revízió" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +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:377 +msgid "Create" +msgstr "Létrehozás" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Branch neve" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +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:536 +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:201 +#, 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "A(z) %s betöltése..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Fel a szülőhöz]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "A branch fájljainak böngészése" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Böngészés" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "A(z) %s letöltése innen: %s" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "végzetes: Nem lehet feloldani a következőt: %s" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Bezárás" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "A(z) '%s' branch nem létezik." + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "" +"Nem sikerült beállítani az egyszerűsített git-pull-t a(z) '%s' számára." + +#: lib/checkout_op.tcl:228 +#, 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:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "A(z) '%s' merge strategy nem támogatott." + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "Nem sikerült frissíteni a következőt: '%s'." + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "A kiválasztási terület (index) már zárolva van." + +#: lib/checkout_op.tcl:288 +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:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "A munkkönyvtár frissiítése a következőre: '%s'..." + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "fájl frissítve" + +#: lib/checkout_op.tcl:375 +#, 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:376 +msgid "File level merge required." +msgstr "Fájlszintű merge-ölés szükséges." + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Jelenleg a(z) '%s' branchen." + +#: lib/checkout_op.tcl:451 +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:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "'%s' kifejtve." + +#: lib/checkout_op.tcl:500 +#, 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:522 +msgid "Recovering lost commits may not be easy." +msgstr "Az elveszett commitok helyreállítása nem biztos, hogy egyszerű." + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Visszaállítjuk a következőt: '%s'?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Vizualizálás" + +#: lib/checkout_op.tcl:600 +#, 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 +msgid "Select" +msgstr "Kiválaszt" + +#: lib/choose_font.tcl:53 +msgid "Font Family" +msgstr "Font család" + +#: lib/choose_font.tcl:74 +msgid "Font Size" +msgstr "Font méret" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Font példa" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"Ez egy példa szöveg.\n" +"Ha ez megfelel, ez lehet a betűtípus." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Új repó létrehozása" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Új..." + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "Létező repó másolása" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Másolás..." + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "Létező könyvtár megnyitása" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Meggyitás..." + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "Legutóbbi repók" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "Legutóbbi repók megnyitása:" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Nem sikerült letrehozni a(z) %s repót:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Könyvtár:" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Git repó" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "A(z) '%s' könyvtár már létezik." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "A(z) '%s' fájl már létezik." + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Bezárás" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "Forrás helye:" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +msgstr "Cél könyvtár:" + +#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Másolás típusa:" + +#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Általános (Gyors, félig-redundáns, hardlinkek)" + +#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Teljes másolás (Lassabb, redundáns biztonsági mentés)" + +#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Megosztott (Leggyorsabb, nem ajánlott, nincs mentés)" + +#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 +#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Nem Git repó: %s" + +#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "A standard csak helyi repókra érhető el." + +#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "A megosztott csak helyi repókra érhető el." + +#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "A(z) '%s' hely már létezik." + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "Nem sikerült beállítani az origint" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Objektumok számolása" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "vödrök" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Nem sikerült másolni az objects/info/alternates-t: %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Semmi másolni való nincs innen: %s" + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "A 'master' branch nincs inicializálva." + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Nem érhetőek el hardlinkek. Másolás használata." + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Másolás innen: %s" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Objektumok másolása" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Nem sikerült másolni az objektumot: %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Objektumok összefűzése" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "objektum" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Nem sikerült hardlinkelni az objektumot: %s" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "" +"Nem sikerült letölteni a branch-eket és az objektumokat. Bővebben a " +"konzolos kimenetben." + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "Nem sikerült letölteni a tageket. Bővebben a konzolos kimenetben." + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "Nem sikerült megállapítani a HEAD-et. Bővebben a konzolos kimenetben." + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Nem sikerült tiszítani: %s." + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "A másolás nem sikerült." + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Nincs alapértelmezett branch." + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Nem sikerült felöldani a(z) %s objektumot commitként." + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Munkakönyvtár létrehozása" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "fájl" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "A kezdeti fájl-kibontás sikertelen." + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Megnyitás" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Repó:" + +#: lib/choose_repository.tcl:1037 +#, tcl-format +msgid "Failed to open repository %s:" +msgstr "Nem sikerült megnyitni a(z) %s repót:" + +#: 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:538 +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:531 +msgid "Updated" +msgstr "Frissítve" + +#: lib/choose_rev.tcl:559 +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 "" +"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:48 +msgid "Error loading commit data for amend:" +msgstr "Hiba a javítandó commit adat betöltése közben:" + +#: lib/commit.tcl:75 +msgid "Unable to obtain your identity:" +msgstr "Nem sikerült megállapítani az azonosítót:" + +#: lib/commit.tcl:80 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "Érvénytelen GIT_COMMITTER_IDENT:" + +#: lib/commit.tcl:132 +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:155 +#, 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:163 +#, 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:171 +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:186 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence 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:210 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "figyelmeztetés: a Tcl nem támogatja a(z) '%s' kódolást." + +#: lib/commit.tcl:226 +msgid "Calling pre-commit hook..." +msgstr "A pre-commit hurok meghívása..." + +#: lib/commit.tcl:241 +msgid "Commit declined by pre-commit hook." +msgstr "A commitot megakadályozta a pre-commit hurok. " + +#: lib/commit.tcl:264 +msgid "Calling commit-msg hook..." +msgstr "A commit-msg hurok meghívása..." + +#: lib/commit.tcl:279 +msgid "Commit declined by commit-msg hook." +msgstr "A commiot megakadályozta a commit-msg hurok." + +#: lib/commit.tcl:292 +msgid "Committing changes..." +msgstr "A változtatások commitolása..." + +#: lib/commit.tcl:308 +msgid "write-tree failed:" +msgstr "a write-tree sikertelen:" + +#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +msgid "Commit failed." +msgstr "A commit nem sikerült." + +#: lib/commit.tcl:326 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "A(z) %s commit sérültnek tűnik" + +#: lib/commit.tcl:331 +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:338 +msgid "No changes to commit." +msgstr "Nincs commitolandó változtatás." + +#: lib/commit.tcl:352 +msgid "commit-tree failed:" +msgstr "a commit-tree sikertelen:" + +#: lib/commit.tcl:372 +msgid "update-ref failed:" +msgstr "az update-ref sikertelen:" + +#: lib/commit.tcl:460 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Létrejött a %s commit: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Munka folyamatban.. Várjunk..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Siker" + +#: lib/console.tcl:200 +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 "" +"Ennek a repónak jelenleg %i különálló objektuma van.\n" +"\n" +"Az optimális teljesítményhez erősen ajánlott az adatbázis tömörítése, ha " +"több mint %i objektum létezik.\n" +"\n" +"Lehet most tömöríteni az adatbázist?" + +#: lib/date.tcl:25 +#, tcl-format +msgid "Invalid date from Git: %s" +msgstr "Érvénytelen dátum a Git-től: %s" + +#: lib/diff.tcl:59 +#, 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:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "A(z) %s diff-jének betöltése..." + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" +"HELYI: törölve\n" +"TÁVOLI:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" +"TÁVOLI: törölve\n" +"HELYI:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "HELYI:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "TÁVOLI:\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Nem lehet megjeleníteni a következőt: %s" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Hiba a fájl betöltése közben:" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Git repó (alprojekt)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* Bináris fájl (tartalom elrejtése)." + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Nem követett fájl %d bájttal.\n" +"* Csak az első %d bájt mutatása.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* Nem követett fájlt levágta a(z) %s.\n" +"* A teljes tartalom megjelenítéséhez használjunk külső szövegszerkesztőt.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Nem visszavonni a hunk kiválasztását." + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Nem sikerült kiválasztani a hunkot." + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "Nem sikerült visszavonni a sor kiválasztását." + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "Nem sikerült kiválasztani a sort." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Alapértelmezés" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Rendszer (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Más" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "hiba" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "figyelmeztetés" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "Ki kell javítanunk a fenti hibákat commit előtt." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." +msgstr "Nem sikerült az index zárolásának feloldása." + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Index hiba" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"A Git index frissítése sikertelen volt. Egy újraolvasás automatikusan " +"elindult, hogy a git-gui újra szinkonban legyen." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Folytatás" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "Index zárolásának feloldása" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "A(z) %s commitba való kiválasztásának visszavonása" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Commitolásra kész." + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "A(z) %s hozzáadása..." + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Visszaállítja a változtatásokat a(z) %s fájlban?" + +#: lib/index.tcl:398 +#, 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:406 +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:409 +msgid "Do Nothing" +msgstr "Ne csináljunk semmit" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "A kiválasztott fájlok visszaállítása" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "%s visszaállítása" + +#: 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:45 +#, 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:55 +#, 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:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s / %s" + +#: lib/merge.tcl:120 +#, 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:239 +msgid "files reset" +msgstr "fájl visszaállítva" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "A félbeszakítás nem sikerült." + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "A megkeszakítás befejeződött. Kész." + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "Feloldás erőltetése az alap verzióhoz?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "Feloldás erőltetése ehhez a branch-hez?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "Feloldás erőltetése a másik branch-hez?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"Megjegyzés: csak az ütköző különbségek látszanak.\n" +"\n" +"A(z) %s felül lesz írva.\n" +"\n" +"Ez a művelet csak a merge újraindításával lesz visszavonható." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "" +"A(z) %s fájl nem feloldott ütközéseket tartalmaz, mégis legyen kiválasztva?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "Feloldás hozzáadása a(z) %s számára" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "Nem lehet feloldani törlési vagy link ütközést egy eszközzel" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "A konfiklus-fájl nem létezik." + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "Nem GUI merge eszköz: %s" + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "A(z) '%s' merge eszköz nem támogatott" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "A merge eszköz már fut, le legyen állítva?" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"Hiba a verziók kinyerése közben:\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" +"A merge eszköz indítása sikertelen:\n" +"\n" +"%s" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "A merge eszköz futtatása..." + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "A merge eszköz nem sikerült." + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "Érvénytelen globális kódolás '%s'" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "Érvénytelen repó kódolás '%s'" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Alapértelmezés visszaállítása" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "Mentés" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "%s Repó" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Globális (minden repó)" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "Felhasználónév" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "Email cím" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "A merge commitok összegzése" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "Merge beszédesség" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "Diffstat mutatása merge után" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "Merge eszköz használata" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "A fájl módosítási dátumok megbízhatóak" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "A követő branchek eltávolítása letöltés alatt" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "A követő branchek egyeztetése" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "A blame másolás bekapcsolása csak megváltozott fájlokra" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "Minimum betűszám blame másolás-érzékeléshez" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "Blame történet környezet sugár (napokban)" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "A diff környezeti sorok száma" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "Commit üzenet szövegének szélessége" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Új branch név sablon" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "Alapértelmezett fájltartalom-kódolás" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Megváltoztatás" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Helyesírás-ellenőrző szótár:" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "Betűtípus megváltoztatása" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "%s választása" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "pt." + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Beállítások" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "Nem sikerült teljesen elmenteni a beállításokat:" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "Remote eltávolítása" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Törlés innen" + +# tcl-format +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "Letöltés innen" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "Push ide" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "Remote hozzáadása" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "Új remote hozzáadása" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "Hozzáadás" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Remote részletei" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "Hely:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Következő művelet" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Letöltés most" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "Távoli repó inicializálása és push" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Ne csináljunk semmit" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Adjunk megy egy remote nevet." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "A(z) '%s' nem egy elfogadható remote név." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Nem sikerült a(t) '%s' remote hozzáadása innen: '%s'." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "a(z) %s letöltése" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "A(z) %s letöltése" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "Nem tudni, hogy hogy kell a(z) '%s' helyen repót inicializálni." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 +#, tcl-format +msgid "push %s" +msgstr "%s push-olása" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "A(z) %s beállítása itt: %s" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +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:134 +msgid "Remote:" +msgstr "Távoli:" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 +msgid "Arbitrary Location:" +msgstr "Önkényes hely:" + +#: 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 +#, 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:\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 "" +"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/search.tcl:21 +msgid "Find:" +msgstr "Keresés:" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "Következő" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "Előző" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Kisbetű-nagybetű számít" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "Nem sikerült írni a gyorsbillentyűt:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Nem sikerült írni az ikont:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Nem támogatott helyesírás-ellenőrző" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "A helyesírás-ellenőrzés nem elérhető" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Érvénytelen a helyesírás-ellenőrző beállítása" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Szótár visszaállítása a következőre: %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "A helyesírás-ellenőrő indítása sikertelen" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Ismeretlen helyesírás-ellenőrző" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Nincs javaslat" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "Nem várt EOF a helyesírás-ellenőrzőtől" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "A helyesírás-ellenőrzés sikertelen" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Nincsenek kulcsok." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Nyilvános kulcs található ebben: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Kulcs generálása" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "Másolás vágólapra" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "Az OpenSSH publikus kulcsunk" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Generálás..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"Az ssh-keygen indítása sikertelen:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "A generálás nem sikerült." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "A generálás sikeres, de egy kulcs se található." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "A kulcsunk itt van: %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i / %*i %s (%3i%%)" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "A(z) %s futtatása egy kiválasztott fájlt igényel." + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "Biztos benne, hogy futtatni kívánja: %s?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Eszköz: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Futtatás: %s..." + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "Az eszköz sikeresen befejeződött: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "Az eszköz sikertelen: %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "Eszköz hozzáadása" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "Új eszköz-parancs hozzáadása" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Globális hozzáadás" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Eszköz részletei" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "Használjunk '/' szeparátorokat almenü-fa létrehozásához:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Parancs:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Parancsablak mutatása futtatás előtt" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "" +"Megkéri a felhasználót, hogy válasszon ki egy revíziót (a $REVISION-t " +"állítja)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Megkérdezi a felhasználót további argumentumokért (a $ARGS-ot állítja)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Ne mutassa a parancs kimeneti ablakát" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "Futtatás csak ha egy diff ki van választva (a $FILENAME nem üres)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Adjunk meg egy eszköz nevet." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "A(z) '%s' eszköz már létezik." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"Az eszköz nem hozzáadható:\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Eszköz eltávolítása" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Eszköz parancsok eltávolítása" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Eltávolítás" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Kék jelzi a repó-specifikus eszközöket)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Parancs futtatása: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Argumentumok" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: 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 "a(z) %s távoli törlése" + +#: 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:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Változások pusholása ide: %s" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "Tükrözés a következő helyre: %s" + +#: lib/transport.tcl:82 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Pusholás: %s %s, ide: %s" + +#: lib/transport.tcl:100 +msgid "Push Branches" +msgstr "Branchek pusholása" + +#: lib/transport.tcl:114 +msgid "Source Branches" +msgstr "Forrás branchek" + +#: lib/transport.tcl:131 +msgid "Destination Repository" +msgstr "Cél repó" + +#: lib/transport.tcl:169 +msgid "Transfer Options" +msgstr "Átviteli opciók" + +#: lib/transport.tcl:171 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "" +"Létező branch felülírásának erőltetése (lehet, hogy el fog dobni " +"változtatásokat)" + +#: lib/transport.tcl:175 +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:179 +msgid "Include tags" +msgstr "Tageket is" + +#~ 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" + +#~ msgid "Apple" +#~ msgstr "Apple" + +#~ msgid "URL:" +#~ msgstr "URL:" + +#~ msgid "Delete Remote Branch" +#~ msgstr "Távoli branch törlése" + +#~ msgid "Not connected to aspell" +#~ msgstr "Nincs kapcsolat az aspellhez" + +#~ 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 Existing To Commit" +#~ msgstr "Hozzáadás létező commithoz" + +#~ 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 --cc git-gui/po/it.po index 294e59588,000000000..762632c22 mode 100644,000000..100644 --- a/git-gui/po/it.po +++ b/git-gui/po/it.po @@@ -1,2577 -1,0 +1,2567 @@@ +# 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 , 2007 +# Michele Ballabio , 2007. +# +# +msgid "" +msgstr "" +"Project-Id-Version: git-gui\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: 2008-12-09 13:04+0100\n" +"Last-Translator: Michele Ballabio \n" +"Language-Team: Italian \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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: errore grave" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Caratteri non validi specificati in %s:" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "Caratteri principali" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Caratteri per confronti e terminale" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "Impossibile trovare git nel PATH" + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Impossibile determinare la versione di Git:" + +#: git-gui.sh:783 +#, 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:1062 +msgid "Git directory not found:" +msgstr "Non trovo la directory di git: " + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Impossibile spostarsi sulla directory principale del progetto:" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "Impossibile usare una .git directory strana:" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Nessuna directory di lavoro" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "Controllo dello stato dei file in corso..." + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Ricerca di file modificati in corso..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "Avvio prepare-commit-msg hook..." + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "Revisione rifiutata dal prepare-commit-msg hook." + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Pronto." + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Non modificato" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Modificato, non preparato per una nuova revisione" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Preparato per una nuova revisione" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Parti preparate per una nuova revisione" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Preparato per una nuova revisione, mancante" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "Tipo di file modificato, non preparato per una nuova revisione" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "Tipo di file modificato, preparato per una nuova revisione" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Non tracciato, non preparato per una nuova revisione" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "Mancante" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Preparato per la rimozione" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Preparato alla rimozione, ancora presente" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "Richiede risoluzione dei conflitti" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "Avvio di gitk... attendere..." + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "Impossibile trovare gitk nel PATH" + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Archivio" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "Modifica" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Ramo" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Revisione" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "Fusione (Merge)" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Remoto" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Strumenti" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Esplora copia di lavoro" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "Esplora i file del ramo attuale" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "Esplora i file del ramo..." + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "Visualizza la cronologia del ramo attuale" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "Visualizza la cronologia di tutti i rami" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "Esplora i file di %s" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "Visualizza la cronologia di %s" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Statistiche dell'archivio" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Comprimi l'archivio" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Verifica l'archivio" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Crea icona desktop" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Esci" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "Annulla" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "Ripeti" + +#: git-gui.sh:2378 git-gui.sh:2937 +msgid "Cut" +msgstr "Taglia" + +#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Copia" + +#: git-gui.sh:2384 git-gui.sh:2943 +msgid "Paste" +msgstr "Incolla" + +#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Elimina" + +#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +msgid "Select All" +msgstr "Seleziona tutto" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "Crea..." + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Attiva..." + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Rinomina" + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Elimina..." + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Ripristina..." + +#: git-gui.sh:2432 +msgid "Done" +msgstr "Fatto" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "Nuova revisione" + +#: git-gui.sh:2443 git-gui.sh:2878 +msgid "New Commit" +msgstr "Nuova revisione" + +#: git-gui.sh:2451 git-gui.sh:2885 +msgid "Amend Last Commit" +msgstr "Correggi l'ultima revisione" + +#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Analizza nuovamente" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Prepara per una nuova revisione" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Prepara i file modificati per una nuova revisione" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Annulla preparazione" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "Annulla modifiche" + +#: git-gui.sh:2491 git-gui.sh:3083 +msgid "Show Less Context" +msgstr "Mostra meno contesto" + +#: git-gui.sh:2495 git-gui.sh:3087 +msgid "Show More Context" +msgstr "Mostra più contesto" + +#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +msgid "Sign Off" +msgstr "Sign Off" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "Fusione locale..." + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "Interrompi fusione..." + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "Aggiungi..." + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "Propaga..." + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "Elimina ramo..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Informazioni su %s" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Preferenze..." + +#: git-gui.sh:2565 git-gui.sh:3129 +msgid "Options..." +msgstr "Opzioni..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Rimuovi..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Aiuto" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Documentazione sul web" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "Mostra chave SSH" + +#: git-gui.sh:2721 +#, 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:2754 +msgid "Current Branch:" +msgstr "Ramo attuale:" + +#: git-gui.sh:2775 +msgid "Staged Changes (Will Commit)" +msgstr "Modifiche preparate (saranno nella nuova revisione)" + +#: git-gui.sh:2795 +msgid "Unstaged Changes" +msgstr "Modifiche non preparate" + +#: git-gui.sh:2845 +msgid "Stage Changed" +msgstr "Prepara modificati" + +#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +msgid "Push" +msgstr "Propaga (Push)" + +#: git-gui.sh:2899 +msgid "Initial Commit Message:" +msgstr "Messaggio di revisione iniziale:" + +#: git-gui.sh:2900 +msgid "Amended Commit Message:" +msgstr "Messaggio di revisione corretto:" + +#: git-gui.sh:2901 +msgid "Amended Initial Commit Message:" +msgstr "Messaggio iniziale di revisione corretto:" + +#: git-gui.sh:2902 +msgid "Amended Merge Commit Message:" +msgstr "Messaggio di fusione corretto:" + +#: git-gui.sh:2903 +msgid "Merge Commit Message:" +msgstr "Messaggio di fusione:" + +#: git-gui.sh:2904 +msgid "Commit Message:" +msgstr "Messaggio di revisione:" + +#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +msgid "Copy All" +msgstr "Copia tutto" + +#: git-gui.sh:2977 lib/blame.tcl:104 +msgid "File:" +msgstr "File:" + +#: git-gui.sh:3092 +msgid "Refresh" +msgstr "Rinfresca" + +#: git-gui.sh:3113 +msgid "Decrease Font Size" +msgstr "Diminuisci dimensione caratteri" + +#: git-gui.sh:3117 +msgid "Increase Font Size" +msgstr "Aumenta dimensione caratteri" + +#: git-gui.sh:3125 lib/blame.tcl:281 +msgid "Encoding" +msgstr "Codifica" + +#: git-gui.sh:3136 +msgid "Apply/Reverse Hunk" +msgstr "Applica/Inverti sezione" + +#: git-gui.sh:3141 +msgid "Apply/Reverse Line" +msgstr "Applica/Inverti riga" + +#: git-gui.sh:3151 +msgid "Run Merge Tool" +msgstr "Avvia programma esterno per la risoluzione dei conflitti" + +#: git-gui.sh:3156 +msgid "Use Remote Version" +msgstr "Usa versione remota" + +#: git-gui.sh:3160 +msgid "Use Local Version" +msgstr "Usa versione locale" + +#: git-gui.sh:3164 +msgid "Revert To Base" +msgstr "Ritorna alla revisione comune" + +#: git-gui.sh:3183 +msgid "Unstage Hunk From Commit" +msgstr "Annulla preparazione della sezione per una nuova revisione" + +#: git-gui.sh:3184 +msgid "Unstage Line From Commit" +msgstr "Annulla preparazione della linea per una nuova revisione" + +#: git-gui.sh:3186 +msgid "Stage Hunk For Commit" +msgstr "Prepara sezione per una nuova revisione" + +#: git-gui.sh:3187 +msgid "Stage Line For Commit" +msgstr "Prepara linea per una nuova revisione" + +#: git-gui.sh:3210 +msgid "Initializing..." +msgstr "Inizializzazione..." + +#: git-gui.sh:3315 +#, 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:3345 +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:3350 +#, 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:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - un'interfaccia grafica per Git." + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Mostra file" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Revisione:" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Copia revisione" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Trova testo..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Ricerca accurata delle copie" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "Mostra contesto nella cronologia" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "Annota la revisione precedente" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "Lettura di %s..." + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "Caricamento annotazioni per copie/spostamenti..." + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "linee annotate" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "Caricamento annotazioni per posizione originaria..." + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "Annotazione completata." + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "Occupato" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "Il processo di annotazione è già in corso." + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "Ricerca accurata delle copie in corso..." + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "Caricamento annotazioni..." + +#: lib/blame.tcl:963 +msgid "Author:" +msgstr "Autore:" + +#: lib/blame.tcl:967 +msgid "Committer:" +msgstr "Revisione creata da:" + +#: lib/blame.tcl:972 +msgid "Original File:" +msgstr "File originario:" + +#: lib/blame.tcl:1020 +msgid "Cannot find HEAD commit:" +msgstr "Impossibile trovare la revisione HEAD:" + +#: lib/blame.tcl:1075 +msgid "Cannot find parent commit:" +msgstr "Impossibile trovare la revisione precedente:" + +#: lib/blame.tcl:1090 +msgid "Unable to display parent" +msgstr "Impossibile visualizzare la revisione precedente" + +#: lib/blame.tcl:1091 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "Errore nel caricamento delle differenze:" + +#: lib/blame.tcl:1231 +msgid "Originally By:" +msgstr "In origine da:" + +#: lib/blame.tcl:1237 +msgid "In File:" +msgstr "Nel file:" + +#: lib/blame.tcl:1242 +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:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:108 +msgid "Cancel" +msgstr "Annulla" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Revisione" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +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:377 +msgid "Create" +msgstr "Crea" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Nome del ramo" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +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:536 +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 "" +"Impossibile cancellare i rami:\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:201 +#, 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "Caricamento %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Directory superiore]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Esplora i file del ramo" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Esplora" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "Recupero %s da %s" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "errore grave: impossibile risolvere %s" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Chiudi" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "Il ramo '%s' non esiste." + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "Impossibile configurare git-pull semplificato per '%s'." + +#: lib/checkout_op.tcl:228 +#, 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:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "La strategia di fusione '%s' non è supportata." + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "Impossibile aggiornare '%s'." + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "" +"L'area di preparazione per una nuova revisione (indice) è già bloccata." + +#: lib/checkout_op.tcl:288 +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 " +"attuale.\n" +"\n" +"La nuova analisi comincerà ora.\n" + +#: lib/checkout_op.tcl:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "Aggiornamento della directory di lavoro a '%s' in corso..." + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "file presenti nella directory di lavoro" + +#: lib/checkout_op.tcl:375 +#, 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:376 +msgid "File level merge required." +msgstr "E' richiesta una fusione a livello file." + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Si rimarrà sul ramo '%s'." + +#: lib/checkout_op.tcl:451 +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:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "Attivazione di '%s' completata." + +#: lib/checkout_op.tcl:500 +#, 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:522 +msgid "Recovering lost commits may not be easy." +msgstr "Ricomporre le revisioni perdute potrebbe non essere semplice." + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Ripristinare '%s'?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Visualizza" + +#: lib/checkout_op.tcl:600 +#, 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 "" +"Impossibile preparare il ramo attuale.\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:74 +msgid "Font Size" +msgstr "Dimensione caratteri" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Esempio caratteri" + +#: lib/choose_font.tcl:103 +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, scegli questo carattere." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Crea nuovo archivio" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Nuovo..." + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "Clona archivio esistente" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Clona..." + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "Apri archivio esistente" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Apri..." + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "Archivi recenti" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "Apri archivio recente:" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Impossibile creare l'archivio %s:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Directory:" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Archivio Git" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "La directory %s esiste già." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Il file %s esiste già." + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Clona" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "Posizione sorgente:" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +msgstr "Directory di destinazione:" + +#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Tipo di clone:" + +#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Standard (veloce, semi-ridondante, con hardlink)" + +#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Copia completa (più lento, backup ridondante)" + +#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Shared (il più veloce, non raccomandato, nessun backup)" + +#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 +#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "%s non è un archivio Git." + +#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "Standard è disponibile solo per archivi locali." + +#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "Shared è disponibile solo per archivi locali." + +#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "Il file/directory %s esiste già." + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "Impossibile configurare origin" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Calcolo oggetti" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Impossibile copiare oggetti/info/alternate: %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Niente da clonare da %s." + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "Il ramo 'master' non è stato inizializzato." + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia." + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Clonazione da %s" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Copia degli oggetti" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Impossibile copiare oggetto: %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Collegamento oggetti" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "oggetti" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Hardlink impossibile sull'oggetto: %s" + +#: lib/choose_repository.tcl:852 +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:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "" +"Impossibile recuperare le etichette. Controllare i dettagli forniti dalla " +"console." + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "" +"Impossibile determinare HEAD. Controllare i dettagli forniti dalla console." + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Impossibile ripulire %s" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "Clonazione non riuscita." + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Non è stato trovato un ramo predefinito." + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Impossibile risolvere %s come una revisione." + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Creazione directory di lavoro" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "file" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "Attivazione iniziale non riuscita." + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Apri" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Archivio:" + +#: lib/choose_repository.tcl:1037 +#, 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:538 +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:531 +msgid "Updated" +msgstr "Aggiornato" + +#: lib/choose_rev.tcl:559 +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:48 +msgid "Error loading commit data for amend:" +msgstr "Errore durante il caricamento dei dati della revisione da correggere:" + +#: lib/commit.tcl:75 +msgid "Unable to obtain your identity:" +msgstr "Impossibile ottenere la tua identità:" + +#: lib/commit.tcl:80 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "GIT_COMMITTER_IDENT non valida:" + +#: lib/commit.tcl:132 +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:155 +#, 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:163 +#, 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:171 +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:186 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence 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:210 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "attenzione: Tcl non supporta la codifica '%s'." + +#: lib/commit.tcl:226 +msgid "Calling pre-commit hook..." +msgstr "Avvio pre-commit hook..." + +#: lib/commit.tcl:241 +msgid "Commit declined by pre-commit hook." +msgstr "Revisione rifiutata dal pre-commit hook." + +#: lib/commit.tcl:264 +msgid "Calling commit-msg hook..." +msgstr "Avvio commit-msg hook..." + +#: lib/commit.tcl:279 +msgid "Commit declined by commit-msg hook." +msgstr "Revisione rifiutata dal commit-msg hook." + +#: lib/commit.tcl:292 +msgid "Committing changes..." +msgstr "Archiviazione modifiche..." + +#: lib/commit.tcl:308 +msgid "write-tree failed:" +msgstr "write-tree non riuscito:" + +#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +msgid "Commit failed." +msgstr "Impossibile creare una nuova revisione." + +#: lib/commit.tcl:326 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "La revisione %s sembra essere danneggiata" + +#: lib/commit.tcl:331 +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:338 +msgid "No changes to commit." +msgstr "Nessuna modifica per la nuova revisione." + +#: lib/commit.tcl:352 +msgid "commit-tree failed:" +msgstr "commit-tree non riuscito:" + +#: lib/commit.tcl:372 +msgid "update-ref failed:" +msgstr "update-ref non riuscito:" + +#: lib/commit.tcl:460 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Creata revisione %s: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Elaborazione in corso... attendere..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Successo" + +#: lib/console.tcl:200 +msgid "Error: Command Failed" +msgstr "Errore: comando non riuscito" + +#: 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:59 +#, 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:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "Caricamento delle differenze di %s..." + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" +"LOCALE: cancellato\n" +"REMOTO:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" +"REMOTO: cancellato\n" +"LOCALE:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "LOCALE:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "REMOTO:\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Impossibile visualizzare %s" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Errore nel caricamento del file:" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Archivio Git (sottoprogetto)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* File binario (il contenuto non sarà mostrato)." + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Il file non tracciato è di %d byte.\n" +"* Saranno visualizzati solo i primi %d byte.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* %s non visualizza completamente questo file non tracciato.\n" +"* Per visualizzare il file completo, usare un programma esterno.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Impossibile rimuovere la sezione scelta dalla nuova revisione." + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Impossibile preparare la sezione scelta per una nuova revisione." + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "Impossibile rimuovere la riga scelta dalla nuova revisione." + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "Impossibile preparare la riga scelta per una nuova revisione." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Predefinito" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Codifica di sistema (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Altro" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "errore" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "attenzione" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "" +"Bisogna correggere gli errori suddetti prima di creare una nuova revisione." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." +msgstr "Impossibile sbloccare l'accesso all'indice" + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Errore nell'indice" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"Impossibile aggiornare l'indice. Ora sarà avviata una nuova analisi che " +"aggiornerà git-gui." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Continua" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "Sblocca l'accesso all'indice" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "%s non farà parte della prossima revisione" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Pronto per creare una nuova revisione." + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "Aggiunta di %s in corso" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Annullare le modifiche nel file %s?" + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Annullare le modifiche in questi %i file?" + +#: lib/index.tcl:406 +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:409 +msgid "Do Nothing" +msgstr "Non fare niente" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "Annullo le modifiche nei file selezionati" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "Annullo le modifiche in %s" + +#: 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:45 +#, 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 attuale. Solo a questo punto potrai " +"iniziare un'altra fusione.\n" + +#: lib/merge.tcl:55 +#, 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 attuale 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:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s di %s" + +#: lib/merge.tcl:120 +#, 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 non riuscita. 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 attuale causerà la perdita di *TUTTE* le " +"modifiche non ancora presenti nell'archivio.\n" +"\n" +"Continuare con l'interruzione della fusione attuale?" + +#: 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 attuale 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 attuali?" + +#: lib/merge.tcl:239 +msgid "Aborting" +msgstr "Interruzione" + +#: lib/merge.tcl:239 +msgid "files reset" +msgstr "ripristino file" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "Interruzione non riuscita." + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "Interruzione completata. Pronto." + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "Imporre la risoluzione alla revisione comune?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "Imporre la risoluzione al ramo attuale?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "Imporre la risoluzione all'altro ramo?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"Si stanno mostrando solo le modifiche con conflitti.\n" +"\n" +"%s sarà sovrascritto.\n" +"\n" +"Questa operazione può essere modificata solo ricominciando la fusione." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "" +"Il file %s sembra contenere conflitti non risolti, preparare per la prossima " +"revisione?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "" +"La risoluzione dei conflitti per %s è preparata per la prossima revisione" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "" +"Non è possibile risolvere i conflitti per cancellazioni o link con un " +"programma esterno" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "Non esiste un file con conflitti." + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "'%s' non è una GUI per la risoluzione dei conflitti." + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "Il programma '%s' non è supportato" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "La risoluzione dei conflitti è già avviata, terminarla?" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"Errore: revisione non trovata:\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" +"Impossibile avviare la risoluzione dei conflitti:\n" +"\n" +"%s" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "Avvio del programma per la risoluzione dei conflitti in corso..." + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "Risoluzione dei conflitti non riuscita." + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "" +"La codifica dei caratteri '%s' specificata per tutti gli archivi non è valida" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "" +"La codifica dei caratteri '%s' specificata per l'archivio attuale non è " +"valida" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Ripristina valori predefiniti" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "Salva" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "Archivio di %s" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Tutti gli archivi" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "Nome utente" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "Indirizzo Email" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "Riepilogo nelle revisioni di fusione" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "Prolissità della fusione" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "Mostra statistiche delle differenze dopo la fusione" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "Programma da utilizzare per la risoluzione dei conflitti" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "Fidati delle date di modifica dei file" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "" +"Effettua potatura dei duplicati locali di rami remoti durante il recupero" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "Appaia duplicati locali di rami remoti" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "Ricerca copie solo nei file modificati" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "Numero minimo di lettere che attivano la ricerca delle copie" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "Giorni di contesto nella cronologia delle annotazioni" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "Numero di linee di contesto nelle differenze" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "Larghezza del messaggio di revisione" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Modello per il nome di un nuovo ramo" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "Codifica predefinita per il contenuto dei file" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Cambia" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Lingua dizionario:" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "Cambia caratteri" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "Scegli %s" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "pt." + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Preferenze" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "Impossibile salvare completamente le opzioni:" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "Rimuovi archivio remoto" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Effettua potatura da" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "Recupera da" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "Propaga verso" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "Aggiungi archivio remoto" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "Aggiungi nuovo archivio remoto" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "Aggiungi" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Dettagli sull'archivio remoto" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "Posizione:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Altra azione" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Recupera subito" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "Inizializza l'archivio remoto e propaga" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Non fare altro" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Inserire un nome per l'archivio remoto." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "'%s' non è utilizzabile come nome di archivio remoto." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Impossibile aggiungere l'archivio remoto '%s' posto in '%s'." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "recupera da %s" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "Recupero %s" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "Impossibile inizializzare l'archivio posto in '%s'." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 +#, tcl-format +msgid "push %s" +msgstr "propaga verso %s" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "Imposto %s (in %s)" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +msgstr "Elimina ramo remoto" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "Da archivio" + +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 +msgid "Remote:" +msgstr "Remoto:" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 +msgid "Arbitrary Location:" +msgstr "Posizione specifica:" + +#: 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 "" +"Impossibile verificare una o più fusioni: 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/search.tcl:21 +msgid "Find:" +msgstr "Trova:" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "Succ" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "Prec" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Distingui maiuscole" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "Impossibile scrivere shortcut:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Impossibile scrivere icona:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Correttore ortografico non supportato" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "Correzione ortografica indisponibile" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "La configurazione del correttore ortografico non è valida" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Il dizionario è stato reimpostato su %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "Il correttore ortografico ha riportato un errore all'avvio" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Correttore ortografico non riconosciuto" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Nessun suggerimento" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "Il correttore ortografico ha mandato un EOF inaspettato" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "Errore nel correttore ortografico" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Chiavi non trovate." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Chiave pubblica trovata in: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Crea chiave" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "Copia negli appunti" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "La tua chiave pubblica OpenSSH" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Creazione chiave in corso..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"Impossibile avviare ssh-keygen:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "Errore durante la creazione della chiave." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "La chiave è stata creata con successo, ma non è stata trovata." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "La chiave è in: %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%1$s ... %6$s: %2$*i di %4$*i (%7$3i%%)" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "Bisogna selezionare un file prima di eseguire %s." + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "Vuoi davvero eseguire %s?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Strumento: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Eseguo: %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "Il programma esterno è terminato con successo: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "Il programma esterno ha riportato un errore: %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "Aggiungi strumento" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "Aggiungi un nuovo comando" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Aggiungi per tutti gli archivi" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Dettagli sullo strumento" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "Utilizza il separatore '/' per creare un albero di sottomenu:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Comando:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Mostra una finestra di dialogo prima dell'avvio" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "Chiedi all'utente di scegliere una revisione (imposta $REVISION)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Chiedi all'utente di fornire argomenti aggiuntivi (imposta $ARGS)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Non mostrare la finestra di comando" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "Avvia solo se è selezionata una differenza ($FILENAME non è vuoto)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Bisogna dare un nome allo strumento." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "Lo strumento '%s' esiste già." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"Impossibile aggiungere lo strumento:\n" +"\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Rimuovi strumento" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Rimuovi i comandi dello strumento" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Rimuovi" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Il colore blu indica strumenti per l'archivio locale)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Avvia il comando: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Argomenti" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: 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:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Propagazione modifiche a %s" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "Mirroring verso %s" + +#: lib/transport.tcl:82 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Propagazione %s %s a %s" + +#: lib/transport.tcl:100 +msgid "Push Branches" +msgstr "Propaga rami" + +#: lib/transport.tcl:114 +msgid "Source Branches" +msgstr "Rami di origine" + +#: lib/transport.tcl:131 +msgid "Destination Repository" +msgstr "Archivio di destinazione" + +#: lib/transport.tcl:169 +msgid "Transfer Options" +msgstr "Opzioni di trasferimento" + +#: lib/transport.tcl:171 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "Sovrascrivi ramo esistente (alcune modifiche potrebbero essere perse)" + +#: lib/transport.tcl:175 +msgid "Use thin pack (for slow network connections)" +msgstr "Utilizza 'thin pack' (per connessioni lente)" + +#: lib/transport.tcl:179 +msgid "Include tags" +msgstr "Includi etichette" diff --cc git-gui/po/ja.po index 09d60bef7,000000000..63c469510 mode 100644,000000..100644 --- a/git-gui/po/ja.po +++ b/git-gui/po/ja.po @@@ -1,2540 -1,0 +1,2530 @@@ +# Translation of git-gui to Japanese +# Copyright (C) 2007 Shawn Pearce +# This file is distributed under the same license as the git-gui package. +# しらいし ななこ , 2007. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: git-gui\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: 2008-12-09 06:27+0900\n" +"Last-Translator: しらいし ななこ \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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: 致命的なエラー" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "%s に無効なフォントが指定されています:" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "主フォント" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "diff/コンソール・フォント" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "PATH 中に git が見つかりません" + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Git バージョン名が理解できません:" + +#: git-gui.sh:783 +#, 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:1062 +msgid "Git directory not found:" +msgstr "Git ディレクトリが見つかりません:" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "作業ディレクトリの最上位に移動できません" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "変な .git ディレクトリは使えません" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "作業ディレクトリがありません" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "ファイル状態を更新しています…" + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "変更されたファイルをスキャンしています…" + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "prepare-commit-msg フックを実行中・・・" + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "prepare-commit-msg フックがコミットを拒否しました" + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "準備完了" + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "変更無し" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "変更あり、コミット未予定" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "コミット予定済" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "部分的にコミット予定済" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "コミット予定済、ファイル無し" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "ファイル型変更、コミット未予定" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "ファイル型変更、コミット予定済" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "管理外、コミット未予定" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "ファイル無し" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "削除予定済" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "削除予定済、ファイル未削除" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "要マージ解決" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "gitk を起動中…お待ち下さい…" + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "PATH 中に gitk が見つかりません" + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "リポジトリ" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "編集" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "ブランチ" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "コミット" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "マージ" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "リモート" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "ツール" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "ワーキングコピーをブラウズ" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "現在のブランチのファイルを見る" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "ブランチのファイルを見る…" + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "現在のブランチの履歴を見る" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "全てのブランチの履歴を見る" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "ブランチ %s のファイルを見る" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "ブランチ %s の履歴を見る" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "データベース統計" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "データベース圧縮" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "データベース検証" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "デスクトップ・アイコンを作る" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "終了" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "元に戻す" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "やり直し" + +#: git-gui.sh:2378 git-gui.sh:2923 +msgid "Cut" +msgstr "切り取り" + +#: git-gui.sh:2381 git-gui.sh:2926 git-gui.sh:3000 git-gui.sh:3082 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "コピー" + +#: git-gui.sh:2384 git-gui.sh:2929 +msgid "Paste" +msgstr "貼り付け" + +#: git-gui.sh:2387 git-gui.sh:2932 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "削除" + +#: git-gui.sh:2391 git-gui.sh:2936 git-gui.sh:3086 lib/console.tcl:71 +msgid "Select All" +msgstr "全て選択" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "作成…" + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "チェックアウト" + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "名前変更…" + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "削除…" + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "リセット…" + +#: git-gui.sh:2432 +msgid "Done" +msgstr "完了" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "コミット" + +#: git-gui.sh:2443 git-gui.sh:2864 +msgid "New Commit" +msgstr "新規コミット" + +#: git-gui.sh:2451 git-gui.sh:2871 +msgid "Amend Last Commit" +msgstr "最新コミットを訂正" + +#: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "再スキャン" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "コミット予定する" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "変更されたファイルをコミット予定" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "コミットから降ろす" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "変更を元に戻す" + +#: git-gui.sh:2491 git-gui.sh:3069 +msgid "Show Less Context" +msgstr "文脈を少なく" + +#: git-gui.sh:2495 git-gui.sh:3073 +msgid "Show More Context" +msgstr "文脈を多く" + +#: git-gui.sh:2502 git-gui.sh:2838 git-gui.sh:2947 +msgid "Sign Off" +msgstr "署名" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "ローカル・マージ…" + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "マージ中止…" + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "追加" + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "プッシュ…" + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "ブランチ削除..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "%s について" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "設定…" + +#: git-gui.sh:2565 git-gui.sh:3115 +msgid "Options..." +msgstr "オプション…" + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "削除..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "ヘルプ" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "オンライン・ドキュメント" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "SSH キーを表示" + +#: git-gui.sh:2707 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"致命的: パス %s が stat できません。そのようなファイルやディレクトリはありま" +"せん" + +#: git-gui.sh:2740 +msgid "Current Branch:" +msgstr "現在のブランチ" + +#: git-gui.sh:2761 +msgid "Staged Changes (Will Commit)" +msgstr "ステージングされた(コミット予定済の)変更" + +#: git-gui.sh:2781 +msgid "Unstaged Changes" +msgstr "コミット予定に入っていない変更" + +#: git-gui.sh:2831 +msgid "Stage Changed" +msgstr "変更をコミット予定に入れる" + +#: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182 +msgid "Push" +msgstr "プッシュ" + +#: git-gui.sh:2885 +msgid "Initial Commit Message:" +msgstr "最初のコミットメッセージ:" + +#: git-gui.sh:2886 +msgid "Amended Commit Message:" +msgstr "訂正したコミットメッセージ:" + +#: git-gui.sh:2887 +msgid "Amended Initial Commit Message:" +msgstr "訂正した最初のコミットメッセージ:" + +#: git-gui.sh:2888 +msgid "Amended Merge Commit Message:" +msgstr "訂正したマージコミットメッセージ:" + +#: git-gui.sh:2889 +msgid "Merge Commit Message:" +msgstr "マージコミットメッセージ:" + +#: git-gui.sh:2890 +msgid "Commit Message:" +msgstr "コミットメッセージ:" + +#: git-gui.sh:2939 git-gui.sh:3090 lib/console.tcl:73 +msgid "Copy All" +msgstr "全てコピー" + +#: git-gui.sh:2963 lib/blame.tcl:104 +msgid "File:" +msgstr "ファイル:" + +#: git-gui.sh:3078 +msgid "Refresh" +msgstr "再読み込み" + +#: git-gui.sh:3099 +msgid "Decrease Font Size" +msgstr "フォントを小さく" + +#: git-gui.sh:3103 +msgid "Increase Font Size" +msgstr "フォントを大きく" + +#: git-gui.sh:3111 lib/blame.tcl:281 +msgid "Encoding" +msgstr "エンコーディング" + +#: git-gui.sh:3122 +msgid "Apply/Reverse Hunk" +msgstr "パッチを適用/取り消す" + +#: git-gui.sh:3127 +msgid "Apply/Reverse Line" +msgstr "パッチ行を適用/取り消す" + +#: git-gui.sh:3137 +msgid "Run Merge Tool" +msgstr "マージツールを起動" + +#: git-gui.sh:3142 +msgid "Use Remote Version" +msgstr "リモートの方を採用" + +#: git-gui.sh:3146 +msgid "Use Local Version" +msgstr "ローカルの方を採用" + +#: git-gui.sh:3150 +msgid "Revert To Base" +msgstr "ベース版を採用" + +#: git-gui.sh:3169 +msgid "Unstage Hunk From Commit" +msgstr "パッチをコミット予定から外す" + +#: git-gui.sh:3170 +msgid "Unstage Line From Commit" +msgstr "コミット予定から行を外す" + +#: git-gui.sh:3172 +msgid "Stage Hunk For Commit" +msgstr "パッチをコミット予定に加える" + +#: git-gui.sh:3173 +msgid "Stage Line For Commit" +msgstr "パッチ行をコミット予定に加える" + +#: git-gui.sh:3196 +msgid "Initializing..." +msgstr "初期化しています…" + +#: git-gui.sh:3301 +#, 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:3331 +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:3336 +#, 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:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "Git のグラフィカルUI git-gui" + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "ファイルピューワ" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "コミット:" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "コミットをコピー" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "テキストを検索" + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "コピー検知" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "文脈を見せる" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "親コミットを註釈" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "%s を読んでいます…" + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "コピー・移動追跡データを読んでいます…" + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "行を注釈しました" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "元位置行の注釈データを読んでいます…" + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "注釈完了しました" + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "実行中" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "すでに blame プロセスを実行中です。" + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "コピー検知を実行中…" + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "注釈を読み込んでいます…" + +#: lib/blame.tcl:964 +msgid "Author:" +msgstr "作者:" + +#: lib/blame.tcl:968 +msgid "Committer:" +msgstr "コミット者:" + +#: lib/blame.tcl:973 +msgid "Original File:" +msgstr "元ファイル" + +#: lib/blame.tcl:1021 +msgid "Cannot find HEAD commit:" +msgstr "HEAD コミットが見つかりません" + +#: lib/blame.tcl:1076 +msgid "Cannot find parent commit:" +msgstr "親コミットが見つかりません:" + +#: lib/blame.tcl:1091 +msgid "Unable to display parent" +msgstr "親を表示できません" + +#: lib/blame.tcl:1092 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "diff を読む際のエラーです:" + +#: lib/blame.tcl:1232 +msgid "Originally By:" +msgstr "原作者:" + +#: lib/blame.tcl:1238 +msgid "In File:" +msgstr "ファイル:" + +#: lib/blame.tcl:1243 +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:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:97 +msgid "Cancel" +msgstr "中止" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "リビジョン" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +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:377 +msgid "Create" +msgstr "作成" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "ブランチ名" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +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:536 +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:201 +#, 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "%s をロード中…" + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[上位フォルダへ]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "現在のブランチのファイルを見る" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "ブラウズ" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "%s から %s をフェッチしています" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "致命的エラー: %s を解決できません" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "閉じる" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "ブランチ'%s'は存在しません。" + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "'%s' に簡易 git-pull を設定できませんでした" + +#: lib/checkout_op.tcl:228 +#, 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:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "'%s' マージ戦略はサポートされていません。" + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "'%s' の更新に失敗しました。" + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "インデックスは既にロックされています。" + +#: lib/checkout_op.tcl:288 +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:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "作業ディレクトリを '%s' に更新しています…" + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "チェックアウトされたファイル" + +#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "'%s' のチェックアウトを中止しました(ファイル毎のマージが必要です)。" + +#: lib/checkout_op.tcl:376 +msgid "File level merge required." +msgstr "ファイル毎のマージが必要です。" + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "ブランチ '%s' に滞まります。" + +#: lib/checkout_op.tcl:451 +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:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "'%s' をチェックアウトしました" + +#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "'%s' を '%s' にリセットすると、以下のコミットが失なわれます:" + +#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "失なわれたコミットを回復するのは簡単ではありません。" + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "'%s' をリセットしますか?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "可視化" + +#: lib/checkout_op.tcl:600 +#, 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:74 +msgid "Font Size" +msgstr "フォントの大きさ" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "フォント・サンプル" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"これはサンプル文です。\n" +"このフォントが気に入ればお使いになれます。" + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git GUI" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "新しいリポジトリを作る" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "新規…" + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "既存リポジトリを複製する" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "複製…" + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "既存リポジトリを開く" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "開く…" + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "最近使ったリポジトリ" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "最近使ったリポジトリを開く" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "リポジトリ %s を作製できません:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "ディレクトリ:" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "GIT リポジトリ" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "ディレクトリ '%s' は既に存在します。" + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "ファイル '%s' は既に存在します。" + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "複製" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "ソースの位置" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +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:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Git リポジトリではありません: %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:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "'%s' は既に存在します。" + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "origin を設定できませんでした" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "オブジェクトを数えています" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "バケツ" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "objects/info/alternates を複写できません: %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "%s から複製する内容はありません" + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "'master' ブランチが初期化されていません" + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "ハードリンクが作れないので、コピーします" + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "%s から複製しています" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "オブジェクトを複写しています" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "オブジェクトを複写できません: %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "オブジェクトを連結しています" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "オブジェクト" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "オブジェクトをハードリンクできません: %s" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "ブランチやオブジェクトを取得できません。コンソール出力を見て下さい" + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "タグを取得できません。コンソール出力を見て下さい" + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "HEAD を確定できません。コンソール出力を見て下さい" + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "%s を掃除できません" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "複写に失敗しました。" + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "デフォールト・ブランチが取得されませんでした" + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "%s をコミットとして解釈できません" + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "作業ディレクトリを作成しています" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "ファイル" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "初期チェックアウトに失敗しました" + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "開く" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "リポジトリ:" + +#: lib/choose_repository.tcl:1037 +#, 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:538 +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:531 +msgid "Updated" +msgstr "更新しました" + +#: lib/choose_rev.tcl:559 +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:156 +#, 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:164 +#, 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:172 +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:187 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence 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:211 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "警告: Tcl はエンコーディング '%s' をサポートしていません" + +#: lib/commit.tcl:227 +msgid "Calling pre-commit hook..." +msgstr "コミット前フックを実行中・・・" + +#: lib/commit.tcl:242 +msgid "Commit declined by pre-commit hook." +msgstr "コミット前フックがコミットを拒否しました" + +#: lib/commit.tcl:265 +msgid "Calling commit-msg hook..." +msgstr "コミット・メッセージ・フックを実行中・・・" + +#: lib/commit.tcl:280 +msgid "Commit declined by commit-msg hook." +msgstr "コミット・メッセージ・フックがコミットを拒否しました" + +#: lib/commit.tcl:293 +msgid "Committing changes..." +msgstr "変更点をコミット中・・・" + +#: lib/commit.tcl:309 +msgid "write-tree failed:" +msgstr "write-tree が失敗しました:" + +#: lib/commit.tcl:310 lib/commit.tcl:354 lib/commit.tcl:374 +msgid "Commit failed." +msgstr "コミットに失敗しました。" + +#: lib/commit.tcl:327 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "コミット %s は壊れています" + +#: lib/commit.tcl:332 +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:339 +msgid "No changes to commit." +msgstr "コミットする変更がありません。" + +#: lib/commit.tcl:353 +msgid "commit-tree failed:" +msgstr "commit-tree が失敗しました:" + +#: lib/commit.tcl:373 +msgid "update-ref failed:" +msgstr "update-ref が失敗しました:" + +#: lib/commit.tcl:461 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "コミット %s を作成しました: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "実行中…お待ち下さい…" + +#: lib/console.tcl:186 +msgid "Success" +msgstr "成功" + +#: lib/console.tcl:200 +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:59 +#, 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:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "%s の変更点をロード中…" + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" +"LOCAL: 削除\n" +"Remote:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" +"REMOTE: 削除\n" +"LOCAL:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "LOCAL:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "REMOTE\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "%s を表示できません" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "ファイルを読む際のエラーです:" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Git リポジトリ(サブプロジェクト)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* バイナリファイル(内容は表示しません)" + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* 管理外のファイルの大きさは %d バイトです。\n" +"* 最初の %d バイトだけ表示しています。\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"\n" +"* %s は管理外のファイルをここで切りおとしました。\n" +"* 全体を見るには外部エディタを使ってください。\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "選択されたパッチをコミット予定から外せません。" + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "選択されたパッチをコミット予定に加えられません。" + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "選択されたパッチ行をコミット予定から外せません。" + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "選択されたパッチ行をコミット予定に加えられません。" + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "デフォールト" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "システム (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "その他" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "エラー" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "警告" + +#: lib/error.tcl:94 +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 インデックスの更新が失敗しました。git-gui と同期をとるために再スキャンし" +"ます。" + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "続行" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "インデックスのロック解除" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "コミットから '%s' を降ろす" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "コミット準備完了" + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "コミットに %s を加えています" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "ファイル %s にした変更を元に戻しますか?" + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "これら %i 個のファイルにした変更を元に戻しますか?" + +#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "変更を元に戻すとコミット予定していない変更は全て失われます。" + +#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "何もしない" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "選択されたファイルにした変更を元に戻します" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "%s にした変更を元に戻します" + +#: 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:45 +#, 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:55 +#, 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:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s の %s ブランチ" + +#: lib/merge.tcl:120 +#, 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:239 +msgid "files reset" +msgstr "リセットしたファイル" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "中断に失敗しました。" + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "中断完了。" + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "共通の版を使いますか?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "自分の側の版を使いますか?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "相手制の版を使いますか?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"競合する変更点だけが表示されていることに注意してください。\n" +"\n" +"%s は上書きされます。\n" +"\n" +"やり直すにはマージ全体をやり直してください。" + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "ファイル %s には解決していない競合部分がまだあるようですが、いいですか?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "%s への解決をステージします" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "ツールでは削除やリンク競合は扱えません" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "競合ファイルは存在しません。" + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "GUI マージツールではありません: %s" + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "マージツール '%s' はサポートしていません" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "マージツールはすでに起動しています。終了しますか?" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"版の取り出し時にエラーが出ました:\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" +"マージツールが起動できません:\n" +"\n" +"%s" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "マージツールを実行しています..." + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "マージツールが失敗しました。" + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "全体エンコーディングに 無効な %s が指定されています" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "リポジトリエンコーディングに 無効な %s が指定されています" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "既定値に戻す" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "保存" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "%s リポジトリ" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "大域(全てのリポジトリ)" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "ユーザ名" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "電子メールアドレス" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "マージコミットの要約" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "マージの冗長度" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "マージ後に diffstat を表示" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "マージツールを使用" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "ファイル変更時刻を信頼する" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "フェッチ中にトラッキングブランチを刈る" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "トラッキングブランチを合わせる" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "変更されたファイルのみコピー検知を行なう" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "コピーを検知する最少文字数" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "註釈する履歴半径(日数)" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "diff の文脈行数" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "コミットメッセージのテキスト幅" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "新しいブランチ名のテンプレート" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "ファイル内容のデフォールトエンコーディング" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "変更" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "スペルチェック辞書" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "フォントを変更" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "%s を選択" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "ポイント" + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "設定" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "完全にオプションを保存できません:" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "リモートを削除" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "から刈込む…" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "取得元" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "プッシュ先" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "リモートを追加" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "リモートを新規に追加" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "追加" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "リモートの詳細" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "場所:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "その他の動作" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "即座に取得" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "リモートレポジトリを初期化してプッシュ" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "何もしない" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "リモート名を指定して下さい。" + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "'%s' はリモート名に使えません。" + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "場所 '%2$s' のリモート '%1$s'の名前変更に失敗しました。" + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "%s を取得" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "%s からフェッチしています" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "リポジトリ '%s' を初期化できません。" + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:71 +#, tcl-format +msgid "push %s" +msgstr "%s をプッシュ" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "%2$s にある %1$s をセットアップします" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +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 Location:" +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 "" +"以下のブランチは %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/search.tcl:21 +msgid "Find:" +msgstr "検索:" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "次" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "前" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "大文字小文字を区別" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "ショートカットが書けません:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "アイコンが書けません:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "サポートされていないスペルチェッカーです" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "スペルチェック機能は使えません" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "スペルチェックの設定が不正です" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "辞書を %s に巻き戻します" + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "スペルチェッカーの起動に失敗しました" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "スペルチェッカーが判別できません" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "提案なし" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "スペルチェッカーが予想外の EOF を返しました" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "スペルチェック失敗" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "キーがありません。" + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "公開鍵がありました: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "鍵を生成" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "クリップボードにコピー" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "あなたの OpenSSH 公開鍵" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "生成中..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"ssh-keygen を起動できません:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "生成に失敗しました。" + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "生成には成功しましたが、鍵が見つかりません。" + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "あなたの鍵は %s にあります" + +#: 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/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "ファイルを選択してから %s を起動してください。" + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "本当に %s を起動しますか?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "ツール: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "実行中: %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "ツールが完了しました: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "ツールが失敗しました: %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "ツールの追加" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "新規ツールコマンドの追加" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "全体に追加" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "ツールの詳細" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "'/' でサブメニューを区切ります:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "コマンド:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "起動する前にダイアログを表示" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "ユーザにコミットを一つ選ばせる ($REVISION にセットします)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "ユーザに他の引数を追加させる ($ARGS にセットします)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "コマンドからの出力ウィンドウを見せない" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "パッチが選ばれているときだけ動かす($FILENAME が空でない)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "ツール名を指定して下さい。" + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "ツール '%s' は既に存在します。" + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"ツールを追加できません:\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "ツールの削除" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "ツールコマンドの削除" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "削除" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(青色はローカルレポジトリのツールです)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "コマンドを起動: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "引数" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: 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:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "%s へ変更をプッシュしています" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "%s へミラーしています" + +#: lib/transport.tcl:82 +#, 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 --cc git-gui/po/nb.po index 1c5137d84,000000000..6de93c28c mode 100644,000000..100644 --- a/git-gui/po/nb.po +++ b/git-gui/po/nb.po @@@ -1,2484 -1,0 +1,2474 @@@ +# Norwegian (Bokmål) translation of git-gui. +# Copyright (C) 2007-2008 Shawn Pearce, et al. +# This file is distributed under the same license as the git-gui package. +# +# Fredrik Skolmli , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: nb\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-11-16 13:56-0800\n" +"PO-Revision-Date: 2008-12-03 16:05+0100\n" +"Last-Translator: Fredrik Skolmli \n" +"Language-Team: Norwegian Bokmål\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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: Kritisk feil" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Ugyldig font spesifisert i %s:" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "Hovedskrifttype" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Diff-/Konsollskrifttype" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "Kan ikke finne git i PATH" + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Kan ikke tyde Git's oppgitte versjon:" + +#: git-gui.sh:783 +#, 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 "" +"Kan ikke avgjøre hvilken Git-versjon du har.\n" +"\n" +"%s sier versjonen er '%s'.\n" +"\n" +"%s krever Git versjon 1.5.0 eller nyere.\n" +"\n" +"Anta at '%s' er versjon 1.5.0?\n" + +#: git-gui.sh:1062 +msgid "Git directory not found:" +msgstr "Git-katalog ikke funnet:" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Kan ikke gå til toppen av arbeidskatalogen:" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Ingen arbeidskatalog" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "Oppdaterer filstatus..." + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Søker etter endrede filer..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "" + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "" + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Klar." + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Uendret" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Endret, ikke køet" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Køet for innsjekking" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Delvis køet for innsjekking" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Klar for innsjekking, fraværende" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "Filtype endret, ikke køet" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "Filtype endret, køet" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Usporet, ikke køet" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "Fraværende" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Køet for fjerning" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Køet for fjerning, fortsatt tilstede" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "Sammenslåingen krever konflikthåndtering" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "Starter gitk... Vennligst vent..." + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "Kunne ikke finne gitk i PATH" + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Arkiv" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "Redigere" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Gren" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Innsjekking" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "Sammenslåing" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Fjernarkiv" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Verktøy" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Utforsk arbeidskopien" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "Utforsk denne grens filer" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "Bla igjennom filer på gren..." + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "Visualiser denne grens historikk" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "Visualiser alle greners historikk" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "Bla i filene til %s" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "Visualiser historien til %s" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Databasestatistikk" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Kompress databasen" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Verifiser databasen" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Lag skrivebordsikon" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Avslutt" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "Angre" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "Gjør om" + +#: git-gui.sh:2378 git-gui.sh:2923 +msgid "Cut" +msgstr "Klipp ut" + +#: git-gui.sh:2381 git-gui.sh:2926 git-gui.sh:3000 git-gui.sh:3082 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Kopier" + +#: git-gui.sh:2384 git-gui.sh:2929 +msgid "Paste" +msgstr "Lim inn" + +#: git-gui.sh:2387 git-gui.sh:2932 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Slett" + +#: git-gui.sh:2391 git-gui.sh:2936 git-gui.sh:3086 lib/console.tcl:71 +msgid "Select All" +msgstr "Velg alle" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "Opprett..." + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Sjekk ut..." + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Endre navn..." + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Slett..." + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Tilbakestill..." + +#: git-gui.sh:2432 +msgid "Done" +msgstr "Ferdig" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "Sjekk inn" + +#: git-gui.sh:2443 git-gui.sh:2864 +msgid "New Commit" +msgstr "Ny innsjekking" + +#: git-gui.sh:2451 git-gui.sh:2871 +msgid "Amend Last Commit" +msgstr "Legg til forrige innsjekking" + +#: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Søk på ny" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Legg til i innsjekkingskøen" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Legg til endrede filer i innsjekkingskøen" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Fjern fra innsjekkingskøen" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "Tilbakestill endringer" + +#: git-gui.sh:2491 git-gui.sh:3069 +msgid "Show Less Context" +msgstr "Vis mindre innhold" + +#: git-gui.sh:2495 git-gui.sh:3073 +msgid "Show More Context" +msgstr "Vis mer innhold" + +#: git-gui.sh:2502 git-gui.sh:2838 git-gui.sh:2947 +msgid "Sign Off" +msgstr "Signér" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "Lokal sammenslåing..." + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "Avbryt sammenslåing..." + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "Legg til..." + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "Send..." + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "Fjern gren..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Om %s" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Innstillinger..." + +#: git-gui.sh:2565 git-gui.sh:3115 +msgid "Options..." +msgstr "Alternativer..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Fjern..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Hjelp" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Online dokumentasjon" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "Vis SSH-nøkkel" + +#: git-gui.sh:2707 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"kritisk: kunne ikke finne status for sti %s: Ingen slik fil eller katalog" + +#: git-gui.sh:2740 +msgid "Current Branch:" +msgstr "Nåværende gren:" + +#: git-gui.sh:2761 +msgid "Staged Changes (Will Commit)" +msgstr "Køede endringer (til innsjekking)" + +#: git-gui.sh:2781 +msgid "Unstaged Changes" +msgstr "Ukøede endringer" + +#: git-gui.sh:2831 +msgid "Stage Changed" +msgstr "Kø endret" + +#: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182 +msgid "Push" +msgstr "Send" + +#: git-gui.sh:2885 +msgid "Initial Commit Message:" +msgstr "Innledende innsjekkingsmelding:" + +#: git-gui.sh:2886 +msgid "Amended Commit Message:" +msgstr "Utdypt innsjekkingsmelding" + +#: git-gui.sh:2887 +msgid "Amended Initial Commit Message:" +msgstr "Utdypt innledende innsjekkingsmelding:" + +#: git-gui.sh:2888 +msgid "Amended Merge Commit Message:" +msgstr "Utdypt innsjekkingsmelding for sammenslåing:" + +#: git-gui.sh:2889 +msgid "Merge Commit Message:" +msgstr "Revisjonsmelding for sammenslåing:" + +#: git-gui.sh:2890 +msgid "Commit Message:" +msgstr "Revisjonsmelding:" + +#: git-gui.sh:2939 git-gui.sh:3090 lib/console.tcl:73 +msgid "Copy All" +msgstr "Kopier alle" + +#: git-gui.sh:2963 lib/blame.tcl:104 +msgid "File:" +msgstr "Fil:" + +#: git-gui.sh:3078 +msgid "Refresh" +msgstr "Oppdater" + +#: git-gui.sh:3099 +msgid "Decrease Font Size" +msgstr "Gjør teksten mindre" + +#: git-gui.sh:3103 +msgid "Increase Font Size" +msgstr "Gjør teksten større" + +#: git-gui.sh:3111 lib/blame.tcl:281 +msgid "Encoding" +msgstr "Tekstkoding" + +#: git-gui.sh:3122 +msgid "Apply/Reverse Hunk" +msgstr "Bruk/tilbakestill del" + +#: git-gui.sh:3127 +msgid "Apply/Reverse Line" +msgstr "Bruk/tilbakestill linje" + +#: git-gui.sh:3137 +msgid "Run Merge Tool" +msgstr "Start sammenslåingsprosess" + +#: git-gui.sh:3142 +msgid "Use Remote Version" +msgstr "Bruk versjon fra fjernarkiv" + +#: git-gui.sh:3146 +msgid "Use Local Version" +msgstr "Bruk lokal versjon" + +#: git-gui.sh:3150 +msgid "Revert To Base" +msgstr "Tilbakestill til baseversjonen" + +#: git-gui.sh:3169 +msgid "Unstage Hunk From Commit" +msgstr "Fjern delen fra innsjekkingskøen" + +#: git-gui.sh:3170 +msgid "Unstage Line From Commit" +msgstr "Fjern linjen fra innsjekkingskøen" + +#: git-gui.sh:3172 +msgid "Stage Hunk For Commit" +msgstr "Legg del i innsjekkingskøen" + +#: git-gui.sh:3173 +msgid "Stage Line For Commit" +msgstr "Legg til linje i innsjekkingskøen" + +#: git-gui.sh:3196 +msgid "Initializing..." +msgstr "Initsialiserer..." + +#: git-gui.sh:3301 +#, 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:3331 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" + +#: git-gui.sh:3336 +#, 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:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - Et grafisk brukergrensesnitt for Git." + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Filviser" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Innsjekking:" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Kopier innsjekking" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Søk etter tekst..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Gjennomfør full deteksjon av kopieringer" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "Vis historikkens innhold" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "Leser %s..." + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "" + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "" + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "" + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "Opptatt" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "" + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "Kjører kopidetektering..." + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "" + +#: lib/blame.tcl:964 +msgid "Author:" +msgstr "Forfatter:" + +#: lib/blame.tcl:968 +msgid "Committer:" +msgstr "Innsjekker:" + +#: lib/blame.tcl:973 +msgid "Original File:" +msgstr "Opprinnelig fil:" + +#: lib/blame.tcl:1021 +msgid "Cannot find HEAD commit:" +msgstr "Finner ikke HEAD's innsjekking:" + +#: lib/blame.tcl:1076 +msgid "Cannot find parent commit:" +msgstr "Kan ikke finne innsjekkingens forelder:" + +#: lib/blame.tcl:1091 +msgid "Unable to display parent" +msgstr "Kan ikke vise forelder" + +#: lib/blame.tcl:1092 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "Feil ved innlasting av forskjell:" + +#: lib/blame.tcl:1232 +msgid "Originally By:" +msgstr "Opprinnelig av:" + +#: lib/blame.tcl:1238 +msgid "In File:" +msgstr "I fil:" + +#: lib/blame.tcl:1243 +msgid "Copied Or Moved Here By:" +msgstr "Kopiert eller flyttet hit av:" + +#: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19 +msgid "Checkout Branch" +msgstr "Sjekk ut gren" + +#: lib/branch_checkout.tcl:23 +msgid "Checkout" +msgstr "Utsjekking" + +#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 +#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:97 +msgid "Cancel" +msgstr "Avbryt" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Revisjon" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +msgid "Options" +msgstr "Valg" + +#: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92 +msgid "Fetch Tracking Branch" +msgstr "Hent sporet gren" + +#: lib/branch_checkout.tcl:44 +msgid "Detach From Local Branch" +msgstr "Koble bort lokal gren" + +#: lib/branch_create.tcl:22 +msgid "Create Branch" +msgstr "Opprett gren" + +#: lib/branch_create.tcl:27 +msgid "Create New Branch" +msgstr "Opprett ny gren" + +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +msgid "Create" +msgstr "Opprett" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Navn på gren" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +msgid "Name:" +msgstr "Navn:" + +#: lib/branch_create.tcl:58 +msgid "Match Tracking Branch Name" +msgstr "Bruk navn på sporet gren" + +#: lib/branch_create.tcl:66 +msgid "Starting Revision" +msgstr "Starter revisjon" + +#: lib/branch_create.tcl:72 +msgid "Update Existing Branch:" +msgstr "Oppdater eksisterende gren:" + +#: lib/branch_create.tcl:75 +msgid "No" +msgstr "Nei" + +#: lib/branch_create.tcl:80 +msgid "Fast Forward Only" +msgstr "Kun hurtigfremspoling" + +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +msgid "Reset" +msgstr "Tilbakestill" + +#: lib/branch_create.tcl:97 +msgid "Checkout After Creation" +msgstr "Sjekk ut etter oppretting" + +#: lib/branch_create.tcl:131 +msgid "Please select a tracking branch." +msgstr "Velg en gren som skal følges." + +#: lib/branch_create.tcl:140 +#, tcl-format +msgid "Tracking branch %s is not a branch in the remote repository." +msgstr "Den fulgte grenen %s er ikke en gren i fjernarkivet." + +#: lib/branch_create.tcl:153 lib/branch_rename.tcl:86 +msgid "Please supply a branch name." +msgstr "Angi et navn for grenen." + +#: lib/branch_create.tcl:164 lib/branch_rename.tcl:106 +#, tcl-format +msgid "'%s' is not an acceptable branch name." +msgstr "'%s' kan ikke brukes som navn på en gren." + +#: lib/branch_delete.tcl:15 +msgid "Delete Branch" +msgstr "Fjern gren" + +#: lib/branch_delete.tcl:20 +msgid "Delete Local Branch" +msgstr "Fjern lokal gren" + +#: lib/branch_delete.tcl:37 +msgid "Local Branches" +msgstr "Lokale grener" + +#: lib/branch_delete.tcl:52 +msgid "Delete Only If Merged Into" +msgstr "Fjern kun ved sammenslåing" + +#: lib/branch_delete.tcl:54 +msgid "Always (Do not perform merge test.)" +msgstr "Alltid (Ikke utfør sammenslåingstest.)" + +#: lib/branch_delete.tcl:103 +#, tcl-format +msgid "The following branches are not completely merged into %s:" +msgstr "Følgende grener er ikke fullstendig slått sammen med %s:" + - #: lib/branch_delete.tcl:115 - msgid "" - "Recovering deleted branches is difficult. \n" - "\n" - " Delete the selected branches?" - msgstr "" - "Gjenoppretting av fjernede grener er vanskelig. \n" - "\n" - " Fjern valgte grener?" - +#: lib/branch_delete.tcl:141 +#, tcl-format +msgid "" +"Failed to delete branches:\n" +"%s" +msgstr "" +"Kunne ikke fjerne grener:\n" +"%s" + +#: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22 +msgid "Rename Branch" +msgstr "Gi gren nytt navn" + +#: lib/branch_rename.tcl:26 +msgid "Rename" +msgstr "Endre navn" + +#: lib/branch_rename.tcl:36 +msgid "Branch:" +msgstr "Gren:" + +#: lib/branch_rename.tcl:39 +msgid "New Name:" +msgstr "Nytt navn:" + +#: lib/branch_rename.tcl:75 +msgid "Please select a branch to rename." +msgstr "Vennligst velg grenen du vil endre navn på." + +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#, tcl-format +msgid "Branch '%s' already exists." +msgstr "Grenen '%s' eksisterer allerede." + +#: lib/branch_rename.tcl:117 +#, tcl-format +msgid "Failed to rename '%s'." +msgstr "Kunne ikke endre navnet '%s'." + +#: lib/browser.tcl:17 +msgid "Starting..." +msgstr "Starter..." + +#: lib/browser.tcl:26 +msgid "File Browser" +msgstr "Utforsker" + +#: lib/browser.tcl:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "Laster %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Opp til forelder]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Bla igjennom grenens filer" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Bla igjennom" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "Henter %s fra %s" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "kritisk: Kan ikke åpne %s" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Lukk" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "Grenen '%s' eksisterer ikke." + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "Kunne ikke konfigurere forenklet git-pull for '%s'." + +#: lib/checkout_op.tcl:228 +#, tcl-format +msgid "" +"Branch '%s' already exists.\n" +"\n" +"It cannot fast-forward to %s.\n" +"A merge is required." +msgstr "" +"Grenen '%s' eksisterer allerede.\n" +"\n" +"Den kan ikke hurtigfremspoles til %s.\n" +"En sammenslåing er påkrevd." + +#: lib/checkout_op.tcl:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "Sammenslåingsstrategien '%s' er ikke støttet." + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "Kunne ikke oppdatere '%s'." + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "Køområdet (index) er allerede låst." + +#: lib/checkout_op.tcl:288 +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:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "Oppdaterer arbeidskatalogen til '%s'..." + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "filer sjekket ut" + +#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "Avbrøt utsjekkingen av '%s' (sammenslåing på filnivå kreves)." + +#: lib/checkout_op.tcl:376 +msgid "File level merge required." +msgstr "Sammenslåing på filnivå kreves" + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Blir stående på grenen '%s'." + +#: lib/checkout_op.tcl:451 +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:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "Sjekket ut '%s'." + +#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "" +"Tilbakestilling av '%s' til '%s' vil medføre tap av følgende innsjekkinger:" + +#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "" +"Det vil kanskje ikke være så enkelt å gjenopprette en tapt innsjekking." + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Tilbakestill '%s'?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Visualiser" + +#: lib/checkout_op.tcl:600 +#, 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 "Velg" + +#: lib/choose_font.tcl:53 +msgid "Font Family" +msgstr "Skrifttype-familie" + +#: lib/choose_font.tcl:74 +msgid "Font Size" +msgstr "Skriftstørrelse" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Skrifteksempel" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"Dette er en eksempeltekst.\n" +"Hvis du liker hvordan teksten ser ut, kan du velge dette som din skrifttype." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Opprett nytt arkiv" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Ny..." + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "Klon eksistererende arkiv" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Klon..." + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "Åpne eksistererende arkiv" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Åpne..." + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "Nylig brukte arkiv" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "Åpne nylig brukt arkiv:" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Kunne ikke opprette arkivet %s:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Mappe:" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Git arkiv" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "Mappen %s eksisterer allerede." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Filen %s eksisterer allerede." + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Klon" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "Kildeplassering:" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +msgstr "Destinasjonsmappe:" + +#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Klontype:" + +#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Standard (rask, delvis redundant, hardlinker)" + +#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Full kopi (tregere, redundant sikkerhetskopi)" + +#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Delt (raskest, ikke anbefalt, ingen sikkerhetskopiering)" + +#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 +#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Ikke et Git-arkiv: %s" + +#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "Standard er kun tilgjengelig for lokalt arkiv." + +#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "Delt er kun tilgjengelig for lokalt arkiv." + +#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "Stedet %s eksisterer allerede." + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "Kunne ikke konfigurere kildeoppføring" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Teller objekter" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "bøtter" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Kunne ikke kopiere objekter/informasjon/alternativt: %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Ingenting å klone fra %s." + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "Grenen 'master' har ikke blitt initsialisert." + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Harde linker er utilgjengelig. Går tilbake til kopiering." + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Kloner fra %s" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Kopierer objekter" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "kB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Kunne ikke kopiere objekt: %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Lenker objekter" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "objekter" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Kunne ikke opprette hardlink med objektet: %s" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "Kunne ikke hente grener og objekter. Se utdata i konsoll for detaljer." + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "Kunne ikke hente tagger. Se utdata i konsoll for detaljer." + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "Kan ikke bestemme HEAD. Se utdata i konsoll for detaljer." + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Kunne ikke rydde opp %s" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "Kloning feilet." + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Ingen standardgren hentet." + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Kan ikke finne %s som en innsjekking." + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Oppretter arbeidskatalog" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "filer" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "Initsialiserende utsjekking feilet." + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Åpne" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Arkiv:" + +#: lib/choose_repository.tcl:1037 +#, tcl-format +msgid "Failed to open repository %s:" +msgstr "Kunne ikke åpne arkivet %s:" + +#: lib/choose_rev.tcl:53 +msgid "This Detached Checkout" +msgstr "Denne frakoblede utsjekkingen" + +#: lib/choose_rev.tcl:60 +msgid "Revision Expression:" +msgstr "Revisjonsuttrykk:" + +#: lib/choose_rev.tcl:74 +msgid "Local Branch" +msgstr "Lokal gren" + +#: lib/choose_rev.tcl:79 +msgid "Tracking Branch" +msgstr "Sporet gren" + +#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538 +msgid "Tag" +msgstr "Tag" + +#: lib/choose_rev.tcl:317 +#, tcl-format +msgid "Invalid revision: %s" +msgstr "Ugyldig revisjon: %s" + +#: lib/choose_rev.tcl:338 +msgid "No revision selected." +msgstr "Ingen revisjoner valgt." + +#: lib/choose_rev.tcl:346 +msgid "Revision expression is empty." +msgstr "Revisjonsuttrykk er tomt." + +#: lib/choose_rev.tcl:531 +msgid "Updated" +msgstr "Oppdatert" + +#: lib/choose_rev.tcl:559 +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 "" +"Det er ingenting å legge til.\n" +"\n" +"Du er i ferd med å lage den initsialiserende revisjonen. Det er ingen " +"tidligere revisjoner å tilføye.\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 "" +"Kan ikke tilføye under sammenslåing.\n" +"\n" +"Du er for øyeblikket under en pågående sammenslåing som ikke er fullført. Du " +"kan ikke tilføye en tidligere revisjon med mindre du først avbryter denne " +"sammenslåingen.\n" + +#: lib/commit.tcl:49 +msgid "Error loading commit data for amend:" +msgstr "Feil ved innhenting av revisjonsdata for tilføying:" + +#: lib/commit.tcl:76 +msgid "Unable to obtain your identity:" +msgstr "Kunne ikke avgjøre din identitet:" + +#: lib/commit.tcl:81 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "Ugyldig 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 "" + +#: lib/commit.tcl:156 +#, 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:164 +#, tcl-format +msgid "" +"Unknown file state %s detected.\n" +"\n" +"File %s cannot be committed by this program.\n" +msgstr "" +"Ukjent filstatus %s er funnet.\n" +"\n" +"Filen %s kan ikke sjekkes inn av dette programmet.\n" + +#: lib/commit.tcl:172 +msgid "" +"No changes to commit.\n" +"\n" +"You must stage at least 1 file before you can commit.\n" +msgstr "" +"Ingen endringer å sjekke inn.\n" +"\n" +"Du må køe minst en fil før du kan sjekke inn noe.\n" + +#: lib/commit.tcl:187 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence what you did.\n" +"- Second line: Blank\n" +"- Remaining lines: Describe why this change is good.\n" +msgstr "" +"Vennligst angi en revisjonsmelding.\n" +"\n" +"En god melding har følgende format:\n" +"\n" +"- Første linje: En beskrivelse av hva du har gjort i én setning.\n" +"- Andre linje: Blank\n" +"- Resterende linjer: Forklar hvorfor denne endringen er bra.\n" + +#: lib/commit.tcl:211 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "advarsel: Tcl støtter ikke denne tegnkodingen '%s'." + +#: lib/commit.tcl:227 +msgid "Calling pre-commit hook..." +msgstr "" + +#: lib/commit.tcl:242 +msgid "Commit declined by pre-commit hook." +msgstr "" + +#: lib/commit.tcl:265 +msgid "Calling commit-msg hook..." +msgstr "" + +#: lib/commit.tcl:280 +msgid "Commit declined by commit-msg hook." +msgstr "" + +#: lib/commit.tcl:293 +msgid "Committing changes..." +msgstr "Sjekker inn endringer..." + +#: lib/commit.tcl:309 +msgid "write-tree failed:" +msgstr "Skriving til tre feilet:" + +#: lib/commit.tcl:310 lib/commit.tcl:354 lib/commit.tcl:374 +msgid "Commit failed." +msgstr "Innsjekking feilet." + +#: lib/commit.tcl:327 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "Revisjon %s ser ut til å være korrupt" + +#: lib/commit.tcl:332 +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 "" +"Ingen endringer til innsjekking.\n" +"\n" +"Ingen filer ble endret av denne revisjonen, og det var ikke en revisjon fra " +"en sammenslåing.\n" +"\n" +"Et nytt søk vil bli startet automatisk.\n" + +#: lib/commit.tcl:339 +msgid "No changes to commit." +msgstr "Ingen endringer til innsekking." + +#: lib/commit.tcl:353 +msgid "commit-tree failed:" +msgstr "commit-tree feilet:" + +#: lib/commit.tcl:373 +msgid "update-ref failed:" +msgstr "update-ref feilet:" + +#: lib/commit.tcl:461 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Opprettet innsjekking %s: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Jobber... Vennligst vent..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Suksess" + +#: lib/console.tcl:200 +msgid "Error: Command Failed" +msgstr "Feil: Kommandoen feilet" + +#: lib/database.tcl:43 +msgid "Number of loose objects" +msgstr "Antall løse objekter" + +#: lib/database.tcl:44 +msgid "Disk space used by loose objects" +msgstr "Diskplass brukt av løse objekter" + +#: lib/database.tcl:45 +msgid "Number of packed objects" +msgstr "Antall pakkede objekter" + +#: lib/database.tcl:46 +msgid "Number of packs" +msgstr "Antall pakker" + +#: lib/database.tcl:47 +msgid "Disk space used by packed objects" +msgstr "Diskplass brukt av pakkede objekter" + +#: lib/database.tcl:48 +msgid "Packed objects waiting for pruning" +msgstr "Pakkede objekter som avventer fjerning" + +#: lib/database.tcl:49 +msgid "Garbage files" +msgstr "Avfallsfiler" + +#: lib/database.tcl:72 +msgid "Compressing the object database" +msgstr "Komprimerer objektdatabasen" + +#: lib/database.tcl:83 +msgid "Verifying the object database with fsck-objects" +msgstr "Verifiserer objektdatabasen med 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 "" +"Dette arkivet inneholder omtrent %i 'løse' objekter.\n" +"\n" +"For å sikre en optimal ytelse er det sterkt anbefalt at du komprimerer " +"databasen når det er flere enn %i 'løse' objekter i den.\n" +"\n" +"Komprimere databasen nå?" + +#: lib/date.tcl:25 +#, tcl-format +msgid "Invalid date from Git: %s" +msgstr "Ugyldig dato fra Git: %s" + +#: lib/diff.tcl:59 +#, 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 "" +"Ingen forandringer funnet.\n" +"\n" +"%s har ingen endringer.\n" +"\n" +"Tidsstempelet for endring på denne filen ble oppdatert av en annen " +" applikasjon, men innholdet er uendret.\n" +"\n" +"En gjennomsøking vil nå starte automatisk for å se om andre filer har " +"status." + +#: lib/diff.tcl:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "Laster inn forskjellene av %s..." + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "LOKAL: slettet\n" +"FJERN:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "FJERN: slettet\n" +"LOKAL:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "LOKAL:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "FJERN:\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Kan ikke vise %s" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Feil ved lesing av fil: %s" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Git-arkiv (underprosjekt)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* Binærfil (viser ikke innhold)" + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Usporet fil er %d bytes.\n" +"* Viser bare %d første bytes.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* Usporede filer klippet her av %s.\n" +"* For å se hele filen, bruk et eksternt redigeringsverktøy.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Kunne ikke fjerne den valgte delen fra innsjekkingskøen." + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Kunne ikke legge til den valgte delen i innsjekkingskøen." + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "Kunne ikke fjerne den valgte linjen fra innsjekkingskøen." + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "Kunne ikke legge til den valgte linjen i innsjekkingskøen." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Standard" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Systemets (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Andre" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "feil" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "advarsel" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "Du må rette de ovenstående feilene før innsjekking." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." +msgstr "Kunne ikke låse opp indexen." + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Feil på index" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"Oppdatering av Git's index mislyktes. Et nytt søk vil bli startet for å " +"resynkronisere git-gui." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Fortsett" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "Lås opp index" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "Fjerner %s fra innsjekkingskøen" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Klar til innsjekking." + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "Legger til %s" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Reverter endringene i filen %s?" + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Reverter endringene i disse %i filene?" + +#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "Endringer som ikke ligger i innsjekkingskøen vil bli tapt av denne " +"reverteringen" + +#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "Ikke gjør noe" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "Reverterer valgte filer" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "Reverterer %s" + +#: 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 "" +"Kunne ikke slå sammen under utvidelse.\n" +"\n" +"Du må først fullføre utvidelsen av denne revisjonen før du kan starte en " +"sammenslåing.\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 "" + +#: lib/merge.tcl:45 +#, 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:55 +#, 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:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s av %s" + +#: lib/merge.tcl:120 +#, tcl-format +msgid "Merging %s and %s..." +msgstr "Slår sammen %s og %s" + +#: lib/merge.tcl:131 +msgid "Merge completed successfully." +msgstr "Vellykket sammenslåing fullført." + +#: lib/merge.tcl:133 +msgid "Merge failed. Conflict resolution is required." +msgstr "Sammenslåing feilet. Håndtering av konflikten kreves." + +#: lib/merge.tcl:158 +#, tcl-format +msgid "Merge Into %s" +msgstr "Slå sammen inn i %s" + +#: lib/merge.tcl:177 +msgid "Revision To Merge" +msgstr "Revisjon til sammenslåing" + +#: lib/merge.tcl:212 +msgid "" +"Cannot abort while amending.\n" +"\n" +"You must finish amending this commit.\n" +msgstr "" +"Kan ikke avbryte under utvidelse av revisjon.\n" +"\n" +"Du må fullføre utvidelsen av denne revisjonen.\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 "" +"Avbryt sammenslåing?\n" +"\n" +"Avbryting av pågående sammenslåing vil føre til at *alle* endringer som ikke " +" er sjekket inn, vil gå tapt.\n" +"\n" +"Fortsette med å avbryte den pågående sammenslåingen?" + +#: 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 "" +"Nullstill endringer?\n" +"\n" +"Nullstilling av endringer vil føre til at *alle* endringer som ikke er " +"sjekket inn går tapt.\n" +"\n" +"Fortsette med nullstilling av endringer?" + +#: lib/merge.tcl:239 +msgid "Aborting" +msgstr "Avbryter" + +#: lib/merge.tcl:239 +msgid "files reset" +msgstr "filer tilbakestilt" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "Avbryting feilet." + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "Avbryting fullført. Klar." + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "Tving håndtering til opprinnelig versjon?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "Tving håndtering i denne grenen?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "Tving håndtering i den andre grenen?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"Merk deg at endringsvisningen kun viser motstridende endringer.\n" +"\n" +"%s vil bli overskrevet.\n" +"\n" +"Denne operasjonen kan kun bli angret ved å starte sammenslåingen på ny." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "Filen %s ser ut til å ha uløste konflikter, skal filen likevel køes?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "Legger til løsninge på konflikt for %s" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "Konfliktfil eksisterer ikke" + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "" + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"Kunne ikke hente versjoner:\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "" + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "" + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Gjennopprett standardverdier" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "Lagre" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "%s arkiv" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Globalt (alle arkiv)" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "Navn" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "Epost-adresse" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "Oppsummer innsjekkinger fra sammenslåinger" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "Detaljenivå på sammenslåing" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "Vis endringsstatistikk etter sammenslåing" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "Bruk sammenslåingsverktøy" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "Stol på filers tid for endring" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "Antall linjer sammenhengende endringer" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "Tekstbredde for vindu til innsjekkingsmeldinger" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Mal for navn på nye grener" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "Standard tekstenkoding for innhold i filer" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Endre" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Stavebokordlister:" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "Endre skrifttype" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "Velg %s" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "pt." + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Egenskaper" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "Kunne ikke lagre alternativ:" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "Fjern fjernarkiv" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Fjern fra" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "Hent fra" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "Send til" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "Legg til fjernarkiv" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "Legg til nytt fjernarkiv" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "Legg til" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Detaljer for fjernarkiv" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "Lokasjon:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Videre handling" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Hent umiddelbart" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "Initsialiser og send til fjernarkiv" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Ikke gjør mer nå" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Vennligst angi et navn for fjernarkivet." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "'%s' er ikke et tillatt navn for et fjernarkiv." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Kunne ikke legge til fjernarkivet '%s' på '%s'." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "hent %s" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "Henter %s" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "Vet ikke hvordan arkiv på '%s' skal opprettes." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:71 +#, tcl-format +msgid "push %s" +msgstr "send %s" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "Initsialiserer %s (på %s)" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +msgstr "Fjern gren fra fjernarkiv" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "Fra arkiv" + +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 +msgid "Remote:" +msgstr "Fjernarkiv:" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 +msgid "Arbitrary Location:" +msgstr "Vilkårlig lokasjon:" + +#: lib/remote_branch_delete.tcl:84 +msgid "Branches" +msgstr "Grener" + +#: lib/remote_branch_delete.tcl:109 +msgid "Delete Only If" +msgstr "Slett kun hvis" + +#: lib/remote_branch_delete.tcl:111 +msgid "Merged Into:" +msgstr "Slått sammen i:" + +#: lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Alltid (Ikke utfør sammenslåingskontroll)" + +#: lib/remote_branch_delete.tcl:152 +msgid "A branch is required for 'Merged Into'." +msgstr "En gren kreves for 'sammenslåing i'." + +#: lib/remote_branch_delete.tcl:184 +#, tcl-format +msgid "" +"The following branches are not completely merged into %s:\n" +"\n" +" - %s" +msgstr "" +"Følgende grener er ikke fullestendig sammenslått med %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 "" +"En eller flere av testene som blir kjørt under sammenslåing feilet fordi du" +"ikke har hentet inn de nødvendige innsjekkingene. Prøv å hent disse fra %s" +"først" + +#: lib/remote_branch_delete.tcl:207 +msgid "Please select one or more branches to delete." +msgstr "Velg en eller flere grener som skal fjernes." + +#: lib/remote_branch_delete.tcl:216 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Gjenoppretting av fjernede grener er vanskelig.\n" +"\n" +"Fjern den merkede grenen?" + +#: lib/remote_branch_delete.tcl:226 +#, tcl-format +msgid "Deleting branches from %s" +msgstr "Fjerner grenene fra %s" + +#: lib/remote_branch_delete.tcl:286 +msgid "No repository selected." +msgstr "Ingen arkiv valgt." + +#: lib/remote_branch_delete.tcl:291 +#, tcl-format +msgid "Scanning %s..." +msgstr "Søker %s..." + +#: lib/search.tcl:21 +msgid "Find:" +msgstr "Finn:" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "Neste" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "Forrige" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Skiller på store og små bokstaver" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "Kan ikke opprette snarvei:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Kan ikke opprette ikon:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Stavekontrolleren er ikke støttet" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "Stavekontroll er ikke tilgjengelig" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Ugyldig stavekontroll-konfigurasjon" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Reverterer ordbok til %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "Stavekontrollen feilet stille under oppstart" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Stavekontrolleren er ukjent" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Ingen forslag" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "Uventet slutt på filen fra stavekontrollen" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "Stavekontroll mislyktes" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Ingen nøkler funnet." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Funnet en offentlig nøkkel i: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Generer nøkkel" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "Kopier til utklippstavlen" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "Din offentlige OpenSSH-nøkkel" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Genererer..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"Kunne ikke starte ssh-keygen:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "Generering feilet." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "Generering vellykket, men ingen nøkler er funnet." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "Nøkkelen din ligger i: %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i av %*i %s (%3i%%)" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "Å kjøre %s krever at en fil er valgt" + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "Er du sikker på at du vil kjøre %s?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Verktøy: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Kjører: %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "Verktøyet ble fullført med suksess: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "Verktøy feilet: %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "Legg til verktøy" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "Legg til ny verktøykommando" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Legg til globalt" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Verktøydetaljer" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "Bruk '/'-separator for å lage undermenyer:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Kommando:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Vis en dialog før start" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "Spør brukeren om å velge en revisjon (setter $REVISION)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Spør brukeren for ytterligere paramtere (setter $ARGS)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Ikke vis kommandoens utdata i vinduet" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "Kjør kun om forskjellene er markert ($FILENAME er ikke tom)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Vennligst angi et navn for dette verktøyet." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "Verktøyet '%s' eksisterer allerede." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"Kunne ikke legge til verktøyet:\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Fjern verktøyet" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Fjern verktøyskommandoen" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Fjern" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Blue angir lokale verktøy til arkivet)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Kjør kommando: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Argumenter" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: lib/transport.tcl:7 +#, tcl-format +msgid "Fetching new changes from %s" +msgstr "Henter nye endringer fra %s" + +#: lib/transport.tcl:18 +#, tcl-format +msgid "remote prune %s" +msgstr "slett fjernarkiv %s" + +#: lib/transport.tcl:19 +#, tcl-format +msgid "Pruning tracking branches deleted from %s" +msgstr "Fjrner sporing av grener slettet fra %s" + +#: lib/transport.tcl:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Sender endringer til %s" + +#: lib/transport.tcl:72 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Sender %s %s til %s" + +#: lib/transport.tcl:89 +msgid "Push Branches" +msgstr "Send grener" + +#: lib/transport.tcl:103 +msgid "Source Branches" +msgstr "Kildegrener" + +#: lib/transport.tcl:120 +msgid "Destination Repository" +msgstr "Destinasjonsarkiv" + +#: lib/transport.tcl:158 +msgid "Transfer Options" +msgstr "Overføringsalternativer" + +#: lib/transport.tcl:160 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "Tving overskrivning av eksisterende gren (kan forkaste endringer)" + +#: lib/transport.tcl:164 +msgid "Use thin pack (for slow network connections)" +msgstr "Bruk tynne pakker (for tregere nettverkstilkoblinger)" + +#: lib/transport.tcl:168 +msgid "Include tags" +msgstr "Inkluder tagger" diff --cc git-gui/po/ru.po index db55b3e0a,000000000..0ffc4a418 mode 100644,000000..100644 --- a/git-gui/po/ru.po +++ b/git-gui/po/ru.po @@@ -1,1973 -1,0 +1,2541 @@@ +# 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 , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: git-gui\n" +"Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2008-03-14 07:18+0100\n" ++"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: 2007-10-22 22:30-0200\n" +"Last-Translator: Alex Riesen \n" +"Language-Team: Russian Translation \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 ++#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 ++#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: критическая ошибка" + - #: git-gui.sh:593 ++#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "В %s установлен неверный шрифт:" + - #: git-gui.sh:620 ++#: git-gui.sh:723 +msgid "Main Font" +msgstr "Шрифт интерфейса" + - #: git-gui.sh:621 ++#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Шрифт консоли и изменений (diff)" + - #: git-gui.sh:635 ++#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "git не найден в PATH." + - #: git-gui.sh:662 ++#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Невозможно распознать строку версии Git: " + - #: git-gui.sh:680 ++#: git-gui.sh:783 +#, 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 требуется версия Git, начиная с 1.5.0\n" +"\n" +"Принять '%s' как версию 1.5.0?\n" + - #: git-gui.sh:918 ++#: git-gui.sh:1062 +msgid "Git directory not found:" +msgstr "Каталог Git не найден:" + - #: git-gui.sh:925 ++#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Невозможно перейти к корню рабочего каталога репозитория: " + - #: git-gui.sh:932 ++#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" - msgstr "Каталог.git испорчен: " ++msgstr "Каталог .git испорчен: " + - #: git-gui.sh:937 ++#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Отсутствует рабочий каталог" + - #: git-gui.sh:1084 lib/checkout_op.tcl:283 ++#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "Обновление информации о состоянии файлов..." + - #: git-gui.sh:1149 ++#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Поиск измененных файлов..." + - #: git-gui.sh:1324 lib/browser.tcl:246 ++#: git-gui.sh:1367 ++msgid "Calling prepare-commit-msg hook..." ++msgstr "Вызов программы поддержки репозитория prepare-commit-msg..." ++ ++#: git-gui.sh:1384 ++msgid "Commit declined by prepare-commit-msg hook." ++msgstr "Сохранение прервано программой поддержки репозитория prepare-commit-msg" ++ ++#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Готово." + - #: git-gui.sh:1590 ++#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Не изменено" + - #: git-gui.sh:1592 ++#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Изменено, не подготовлено" + - #: git-gui.sh:1593 git-gui.sh:1598 ++#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Подготовлено для сохранения" + - #: git-gui.sh:1594 git-gui.sh:1599 ++#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Части, подготовленные для сохранения" + - #: git-gui.sh:1595 git-gui.sh:1600 ++#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Подготовлено для сохранения, отсутствует" + - #: git-gui.sh:1597 ++#: git-gui.sh:1826 ++msgid "File type changed, not staged" ++msgstr "Тип файла изменён, не подготовлено" ++ ++#: git-gui.sh:1827 ++msgid "File type changed, staged" ++msgstr "Тип файла изменён, подготовлено" ++ ++#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Не отслеживается, не подготовлено" + - #: git-gui.sh:1602 ++#: git-gui.sh:1834 +msgid "Missing" +msgstr "Отсутствует" + - #: git-gui.sh:1603 ++#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Подготовлено для удаления" + - #: git-gui.sh:1604 ++#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Подготовлено для удаления, еще не удалено" + - #: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609 ++#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 ++#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" - msgstr "Требуется разрешение конфликта при объединении" ++msgstr "Требуется разрешение конфликта при слиянии" + - #: git-gui.sh:1644 ++#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." - msgstr "Запускается gitk... пожалуйста, ждите..." ++msgstr "Запускается gitk... Подождите, пожалуйста..." + - #: git-gui.sh:1653 - #, tcl-format - msgid "" - "Unable to start gitk:\n" - "\n" - "%s does not exist" - msgstr "" - "Не удалось запустить gitk:\n" - "\n" - "%s не существует" ++#: git-gui.sh:1887 ++msgid "Couldn't find gitk in PATH" ++msgstr "gitk не найден в PATH." + - #: git-gui.sh:1860 lib/choose_repository.tcl:36 ++#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Репозиторий" + - #: git-gui.sh:1861 ++#: git-gui.sh:2281 +msgid "Edit" +msgstr "Редактировать" + - #: git-gui.sh:1863 lib/choose_rev.tcl:561 ++#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Ветвь" + - #: git-gui.sh:1866 lib/choose_rev.tcl:548 ++#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Состояние" + - #: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167 ++#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" - msgstr "Объединить" ++msgstr "Слияние" + - #: git-gui.sh:1870 lib/choose_rev.tcl:557 ++#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Внешние репозитории" + - #: git-gui.sh:1879 ++#: git-gui.sh:2293 ++msgid "Tools" ++msgstr "Вспомогательные операции" ++ ++#: git-gui.sh:2302 ++msgid "Explore Working Copy" ++msgstr "Просмотр рабочего каталога" ++ ++#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "Просмотреть файлы текущей ветви" + - #: git-gui.sh:1883 ++#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "Показать файлы ветви..." + - #: git-gui.sh:1888 ++#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" - msgstr "История текущей ветви наглядно" ++msgstr "Показать историю текущей ветви" + - #: git-gui.sh:1892 ++#: git-gui.sh:2320 +msgid "Visualize All Branch History" - msgstr "История всех ветвей наглядно" ++msgstr "Показать историю всех ветвей" + - #: git-gui.sh:1899 ++#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "Показать файлы ветви %s" + - #: git-gui.sh:1901 ++#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" - msgstr "История ветви %s наглядно" ++msgstr "Показать историю ветви %s" + - #: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67 ++#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Статистика базы данных" + - #: git-gui.sh:1909 lib/database.tcl:34 ++#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Сжать базу данных" + - #: git-gui.sh:1912 ++#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Проверить базу данных" + - #: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7 ++#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Создать ярлык на рабочем столе" + - #: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185 ++#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Выход" + - #: git-gui.sh:1939 ++#: git-gui.sh:2371 +msgid "Undo" +msgstr "Отменить" + - #: git-gui.sh:1942 ++#: git-gui.sh:2374 +msgid "Redo" +msgstr "Повторить" + - #: git-gui.sh:1946 git-gui.sh:2443 ++#: git-gui.sh:2378 git-gui.sh:2937 +msgid "Cut" +msgstr "Вырезать" + - #: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614 ++#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Копировать" + - #: git-gui.sh:1952 git-gui.sh:2449 ++#: git-gui.sh:2384 git-gui.sh:2943 +msgid "Paste" +msgstr "Вставить" + - #: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26 ++#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Удалить" + - #: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71 ++#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +msgid "Select All" +msgstr "Выделить все" + - #: git-gui.sh:1968 ++#: git-gui.sh:2400 +msgid "Create..." +msgstr "Создать..." + - #: git-gui.sh:1974 ++#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Перейти..." + - #: git-gui.sh:1980 ++#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Переименовать..." + - #: git-gui.sh:1985 git-gui.sh:2085 ++#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Удалить..." + - #: git-gui.sh:1990 ++#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Сбросить..." + - #: git-gui.sh:2002 git-gui.sh:2389 ++#: git-gui.sh:2432 ++msgid "Done" ++msgstr "Завершено" ++ ++#: git-gui.sh:2434 ++msgid "Commit@@verb" ++msgstr "Сохранить" ++ ++#: git-gui.sh:2443 git-gui.sh:2878 +msgid "New Commit" +msgstr "Новое состояние" + - #: git-gui.sh:2010 git-gui.sh:2396 ++#: git-gui.sh:2451 git-gui.sh:2885 +msgid "Amend Last Commit" +msgstr "Исправить последнее состояние" + - #: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99 ++#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Перечитать" + - #: git-gui.sh:2025 ++#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Подготовить для сохранения" + - #: git-gui.sh:2031 ++#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Подготовить измененные файлы для сохранения" + - #: git-gui.sh:2037 ++#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Убрать из подготовленного" + - #: git-gui.sh:2042 lib/index.tcl:395 ++#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "Отменить изменения" + - #: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467 - msgid "Sign Off" - msgstr "Подписать" ++#: git-gui.sh:2491 git-gui.sh:3083 ++msgid "Show Less Context" ++msgstr "Меньше контекста" + - #: git-gui.sh:2053 git-gui.sh:2372 - msgid "Commit@@verb" - msgstr "Сохранить" ++#: git-gui.sh:2495 git-gui.sh:3087 ++msgid "Show More Context" ++msgstr "Больше контекста" ++ ++#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 ++msgid "Sign Off" ++msgstr "Вставить Signed-off-by" + - #: git-gui.sh:2064 ++#: git-gui.sh:2518 +msgid "Local Merge..." - msgstr "Локальное объединение..." ++msgstr "Локальное слияние..." + - #: git-gui.sh:2069 ++#: git-gui.sh:2523 +msgid "Abort Merge..." - msgstr "Прервать объединение..." ++msgstr "Прервать слияние..." ++ ++#: git-gui.sh:2535 git-gui.sh:2575 ++msgid "Add..." ++msgstr "Добавить..." + - #: git-gui.sh:2081 ++#: git-gui.sh:2539 +msgid "Push..." +msgstr "Отправить..." + - #: git-gui.sh:2092 lib/choose_repository.tcl:41 - msgid "Apple" - msgstr "" ++#: git-gui.sh:2543 ++msgid "Delete Branch..." ++msgstr "Удалить ветвь..." + - #: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14 - #: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50 ++#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 ++#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "О %s" + - #: git-gui.sh:2099 ++#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Настройки..." + - #: git-gui.sh:2107 git-gui.sh:2639 ++#: git-gui.sh:2565 git-gui.sh:3129 +msgid "Options..." +msgstr "Настройки..." + - #: git-gui.sh:2113 lib/choose_repository.tcl:47 ++#: git-gui.sh:2576 ++msgid "Remove..." ++msgstr "Удалить..." ++ ++#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Помощь" + - #: git-gui.sh:2154 ++#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Документация в интернете" + - #: git-gui.sh:2238 ++#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 ++msgid "Show SSH Key" ++msgstr "Показать ключ SSH" ++ ++#: git-gui.sh:2721 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "критическая ошибка: %s: нет такого файла или каталога" + - #: git-gui.sh:2271 ++#: git-gui.sh:2754 +msgid "Current Branch:" +msgstr "Текущая ветвь:" + - #: git-gui.sh:2292 ++#: git-gui.sh:2775 +msgid "Staged Changes (Will Commit)" +msgstr "Подготовлено (будет сохранено)" + - #: git-gui.sh:2312 ++#: git-gui.sh:2795 +msgid "Unstaged Changes" +msgstr "Изменено (не будет сохранено)" + - #: git-gui.sh:2362 ++#: git-gui.sh:2845 +msgid "Stage Changed" +msgstr "Подготовить все" + - #: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182 ++#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +msgid "Push" +msgstr "Отправить" + - #: git-gui.sh:2408 ++#: git-gui.sh:2899 +msgid "Initial Commit Message:" +msgstr "Комментарий к первому состоянию:" + - #: git-gui.sh:2409 ++#: git-gui.sh:2900 +msgid "Amended Commit Message:" +msgstr "Комментарий к исправленному состоянию:" + - #: git-gui.sh:2410 ++#: git-gui.sh:2901 +msgid "Amended Initial Commit Message:" +msgstr "Комментарий к исправленному первоначальному состоянию:" + - #: git-gui.sh:2411 ++#: git-gui.sh:2902 +msgid "Amended Merge Commit Message:" - msgstr "Комментарий к исправленному объединению:" ++msgstr "Комментарий к исправленному слиянию:" + - #: git-gui.sh:2412 ++#: git-gui.sh:2903 +msgid "Merge Commit Message:" - msgstr "Комментарий к объединению:" ++msgstr "Комментарий к слиянию:" + - #: git-gui.sh:2413 ++#: git-gui.sh:2904 +msgid "Commit Message:" +msgstr "Комментарий к состоянию:" + - #: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73 ++#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +msgid "Copy All" +msgstr "Копировать все" + - #: git-gui.sh:2483 lib/blame.tcl:107 ++#: git-gui.sh:2977 lib/blame.tcl:104 +msgid "File:" +msgstr "Файл:" + - #: git-gui.sh:2589 - msgid "Apply/Reverse Hunk" - msgstr "Применить/Убрать изменение" - - #: git-gui.sh:2595 - msgid "Show Less Context" - msgstr "Меньше контекста" - - #: git-gui.sh:2602 - msgid "Show More Context" - msgstr "Больше контекста" - - #: git-gui.sh:2610 ++#: git-gui.sh:3092 +msgid "Refresh" +msgstr "Обновить" + - #: git-gui.sh:2631 ++#: git-gui.sh:3113 +msgid "Decrease Font Size" +msgstr "Уменьшить размер шрифта" + - #: git-gui.sh:2635 ++#: git-gui.sh:3117 +msgid "Increase Font Size" +msgstr "Увеличить размер шрифта" + - #: git-gui.sh:2646 ++#: git-gui.sh:3125 lib/blame.tcl:281 ++msgid "Encoding" ++msgstr "Кодировка" ++ ++#: git-gui.sh:3136 ++msgid "Apply/Reverse Hunk" ++msgstr "Применить/Убрать изменение" ++ ++#: git-gui.sh:3141 ++msgid "Apply/Reverse Line" ++msgstr "Применить/Убрать строку" ++ ++#: git-gui.sh:3151 ++msgid "Run Merge Tool" ++msgstr "Запустить программу слияния" ++ ++#: git-gui.sh:3156 ++msgid "Use Remote Version" ++msgstr "Взять внешнюю версию" ++ ++#: git-gui.sh:3160 ++msgid "Use Local Version" ++msgstr "Взять локальную версию" ++ ++#: git-gui.sh:3164 ++msgid "Revert To Base" ++msgstr "Отменить изменения" ++ ++#: git-gui.sh:3183 +msgid "Unstage Hunk From Commit" +msgstr "Не сохранять часть" + - #: git-gui.sh:2648 ++#: git-gui.sh:3184 ++msgid "Unstage Line From Commit" ++msgstr "Убрать строку из подготовленного" ++ ++#: git-gui.sh:3186 +msgid "Stage Hunk For Commit" +msgstr "Подготовить часть для сохранения" + - #: git-gui.sh:2667 ++#: git-gui.sh:3187 ++msgid "Stage Line For Commit" ++msgstr "Подготовить строку для сохранения" ++ ++#: git-gui.sh:3210 +msgid "Initializing..." +msgstr "Инициализация..." + - #: git-gui.sh:2762 ++#: git-gui.sh:3315 +#, 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:2792 ++#: git-gui.sh:3345 +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:2797 ++#: git-gui.sh:3350 +#, 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:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - графический пользовательский интерфейс к Git." + - #: lib/blame.tcl:77 ++#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Просмотр файла" + - #: lib/blame.tcl:81 ++#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Сохраненное состояние:" + - #: lib/blame.tcl:264 ++#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Скопировать SHA-1" + - #: lib/blame.tcl:384 ++#: lib/blame.tcl:275 ++msgid "Find Text..." ++msgstr "Найти текст..." ++ ++#: lib/blame.tcl:284 ++msgid "Do Full Copy Detection" ++msgstr "Провести полный поиск копий" ++ ++#: lib/blame.tcl:288 ++msgid "Show History Context" ++msgstr "Показать исторический контекст" ++ ++#: lib/blame.tcl:291 ++msgid "Blame Parent Commit" ++msgstr "Рассмотреть состояние предка" ++ ++#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "Чтение %s..." + - #: lib/blame.tcl:488 ++#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "Загрузка аннотации копирований/переименований..." + - #: lib/blame.tcl:508 ++#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "строк прокомментировано" + - #: lib/blame.tcl:689 ++#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "Загрузка аннотаций первоначального положения объекта..." + - #: lib/blame.tcl:692 ++#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "Аннотация завершена." + - #: lib/blame.tcl:746 ++#: lib/blame.tcl:802 ++msgid "Busy" ++msgstr "Занят" ++ ++#: lib/blame.tcl:803 ++msgid "Annotation process is already running." ++msgstr "Аннотация уже запущена" ++ ++#: lib/blame.tcl:842 ++msgid "Running thorough copy detection..." ++msgstr "Выполнение полного поиска копий..." ++ ++#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "Загрузка аннотации..." + - #: lib/blame.tcl:802 ++#: lib/blame.tcl:963 +msgid "Author:" +msgstr "Автор:" + - #: lib/blame.tcl:806 ++#: lib/blame.tcl:967 +msgid "Committer:" +msgstr "Сохранил:" + - #: lib/blame.tcl:811 ++#: lib/blame.tcl:972 +msgid "Original File:" +msgstr "Исходный файл:" + - #: lib/blame.tcl:925 ++#: lib/blame.tcl:1020 ++msgid "Cannot find HEAD commit:" ++msgstr "Невозможно найти текущее состояние:" ++ ++#: lib/blame.tcl:1075 ++msgid "Cannot find parent commit:" ++msgstr "Невозможно найти состояние предка:" ++ ++#: lib/blame.tcl:1090 ++msgid "Unable to display parent" ++msgstr "Не могу показать предка" ++ ++#: lib/blame.tcl:1091 lib/diff.tcl:297 ++msgid "Error loading diff:" ++msgstr "Ошибка загрузки изменений:" ++ ++#: lib/blame.tcl:1231 +msgid "Originally By:" +msgstr "Источник:" + - #: lib/blame.tcl:931 ++#: lib/blame.tcl:1237 +msgid "In File:" +msgstr "Файл:" + - #: lib/blame.tcl:936 ++#: lib/blame.tcl:1242 +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:282 - #: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171 - #: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97 ++#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 ++#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 ++#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 ++#: lib/transport.tcl:108 +msgid "Cancel" - msgstr "Отменить" ++msgstr "Отмена" + - #: lib/branch_checkout.tcl:32 lib/browser.tcl:287 ++#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Версия" + - #: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242 ++#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +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:371 ++#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +msgid "Create" +msgstr "Создать" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Название ветви" + - #: lib/branch_create.tcl:43 ++#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +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 ++#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +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 "Удалить только в случае, если было объединение с" ++msgstr "Удалить только в случае, если было слияние с" + +#: lib/branch_delete.tcl:54 +msgid "Always (Do not perform merge test.)" - msgstr "Всегда (не выполнять проверку на объединение)" ++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" - " Удалить выбранные ветви?" ++msgstr "Ветви, которые не полностью сливаются с %s:" + +#: 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 ++#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#, 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "Загрузка %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[На уровень выше]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Показать файлы ветви" + - #: lib/browser.tcl:278 lib/choose_repository.tcl:387 - #: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484 - #: lib/choose_repository.tcl:987 ++#: lib/browser.tcl:278 lib/choose_repository.tcl:394 ++#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 ++#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Показать" + - #: lib/checkout_op.tcl:79 ++#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "Получение %s из %s " + - #: lib/checkout_op.tcl:127 ++#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "критическая ошибка: невозможно разрешить %s" + - #: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31 ++#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 ++#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Закрыть" + - #: lib/checkout_op.tcl:169 ++#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "Ветвь '%s' не существует " + - #: lib/checkout_op.tcl:206 ++#: lib/checkout_op.tcl:193 ++#, tcl-format ++msgid "Failed to configure simplified git-pull for '%s'." ++msgstr "Ошибка создания упрощённой конфигурации git pull для '%s'." ++ ++#: lib/checkout_op.tcl:228 +#, 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 ++#: lib/checkout_op.tcl:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." - msgstr "Стратегия объединения '%s' не поддерживается." ++msgstr "Неизвестная стратегия слияния: '%s'." + - #: lib/checkout_op.tcl:239 ++#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "Не удалось обновить '%s'." + - #: lib/checkout_op.tcl:251 ++#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "Рабочая область заблокирована другим процессом." + - #: lib/checkout_op.tcl:266 ++#: lib/checkout_op.tcl:288 +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 ++#: lib/checkout_op.tcl:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "Обновление рабочего каталога из '%s'..." + - #: lib/checkout_op.tcl:323 ++#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "файлы извлечены" + - #: lib/checkout_op.tcl:353 ++#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." - msgstr "Прерван переход на '%s' (требуется объединение на уровне файлов)" ++msgstr "Прерван переход на '%s' (требуется слияние содержания файлов)" + - #: lib/checkout_op.tcl:354 ++#: lib/checkout_op.tcl:376 +msgid "File level merge required." - msgstr "Требуется объединение на уровне файлов." ++msgstr "Требуется слияние содержания файлов." + - #: lib/checkout_op.tcl:358 ++#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Ветвь '%s' остается текущей." + - #: lib/checkout_op.tcl:429 ++#: lib/checkout_op.tcl:451 +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 lib/checkout_op.tcl:450 ++#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "Ветвь '%s' сделана текущей." + - #: lib/checkout_op.tcl:478 ++#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "Сброс '%s' в '%s' приведет к потере следующих сохраненных состояний: " + - #: lib/checkout_op.tcl:500 ++#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "Восстановить потерянные сохраненные состояния будет сложно." + - #: lib/checkout_op.tcl:505 ++#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Сбросить '%s'?" + - #: lib/checkout_op.tcl:510 lib/merge.tcl:163 ++#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Наглядно" + - #: lib/checkout_op.tcl:578 ++#: lib/checkout_op.tcl:600 +#, 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:74 +msgid "Font Size" +msgstr "Размер шрифта" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Пример текста" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"Это пример текста.\n" +"Если Вам нравится этот текст, это может быть Ваш шрифт." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" - msgstr "" ++msgstr "Git Gui" + - #: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376 ++#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Создать новый репозиторий" + - #: lib/choose_repository.tcl:87 ++#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Новый..." + - #: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460 ++#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "Склонировать существующий репозиторий" + - #: lib/choose_repository.tcl:100 ++#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Склонировать..." + - #: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976 ++#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "Выбрать существующий репозиторий" + - #: lib/choose_repository.tcl:113 ++#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Открыть..." + - #: lib/choose_repository.tcl:126 ++#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "Недавние репозитории" + - #: lib/choose_repository.tcl:132 ++#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "Открыть последний репозиторий" + - #: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303 - #: lib/choose_repository.tcl:310 ++#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 ++#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Не удалось создать репозиторий %s:" + - #: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478 ++#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Каталог:" + - #: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537 - #: lib/choose_repository.tcl:1011 ++#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 ++#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Репозиторий" + - #: lib/choose_repository.tcl:437 ++#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "Каталог '%s' уже существует." + - #: lib/choose_repository.tcl:441 ++#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Файл '%s' уже существует." + - #: lib/choose_repository.tcl:455 ++#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Склонировать" + - #: lib/choose_repository.tcl:468 - msgid "URL:" - msgstr "Ссылка:" ++#: lib/choose_repository.tcl:473 ++msgid "Source Location:" ++msgstr "Исходное положение:" ++ ++#: lib/choose_repository.tcl:484 ++msgid "Target Directory:" ++msgstr "Каталог назначения:" + - #: lib/choose_repository.tcl:489 ++#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Тип клона:" + - #: lib/choose_repository.tcl:495 ++#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Стандартный (Быстрый, полуизбыточный, \"жесткие\" ссылки)" + - #: lib/choose_repository.tcl:501 ++#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Полная копия (Медленный, создает резервную копию)" + - #: lib/choose_repository.tcl:507 ++#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Общий (Самый быстрый, не рекомендуется, без резервной копии)" + - #: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590 - #: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806 - #: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025 ++#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 ++#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 ++#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Каталог не является репозиторием: %s" + - #: lib/choose_repository.tcl:579 ++#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "Стандартный клон возможен только для локального репозитория." + - #: lib/choose_repository.tcl:583 ++#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "Общий клон возможен только для локального репозитория." + - #: lib/choose_repository.tcl:604 ++#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "Путь '%s' уже существует." + - #: lib/choose_repository.tcl:615 ++#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "Не могу сконфигурировать исходный репозиторий." + - #: lib/choose_repository.tcl:627 ++#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Считаю объекты" + - #: lib/choose_repository.tcl:628 ++#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "" + - #: lib/choose_repository.tcl:652 ++#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Не могу скопировать objects/info/alternates: %s" + - #: lib/choose_repository.tcl:688 ++#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Нечего клонировать с %s." + - #: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904 - #: lib/choose_repository.tcl:916 ++#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 ++#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "Не инициализирована ветвь 'master'." + - #: lib/choose_repository.tcl:703 ++#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." - msgstr "\"Жесткие ссылки\" не доступны. Буду использовать копирование." ++msgstr "\"Жесткие ссылки\" недоступны. Будет использовано копирование." + - #: lib/choose_repository.tcl:715 ++#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Клонирование %s" + - #: lib/choose_repository.tcl:746 ++#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Копирование objects" + - #: lib/choose_repository.tcl:747 ++#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "КБ" + - #: lib/choose_repository.tcl:771 ++#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Не могу скопировать объект: %s" + - #: lib/choose_repository.tcl:781 ++#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Создание ссылок на objects" + - #: lib/choose_repository.tcl:782 ++#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "объекты" + - #: lib/choose_repository.tcl:790 ++#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Не могу \"жестко связать\" объект: %s" + - #: lib/choose_repository.tcl:845 ++#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "" +"Не могу получить ветви и объекты. Дополнительная информация на консоли." + - #: lib/choose_repository.tcl:856 ++#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "Не могу получить метки. Дополнительная информация на консоли." + - #: lib/choose_repository.tcl:880 ++#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "Не могу определить HEAD. Дополнительная информация на консоли." + - #: lib/choose_repository.tcl:889 ++#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Не могу очистить %s" + - #: lib/choose_repository.tcl:895 ++#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "Клонирование не удалось." + - #: lib/choose_repository.tcl:902 ++#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Не было получено ветви по умолчанию." + - #: lib/choose_repository.tcl:913 ++#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Не могу распознать %s как состояние." + - #: lib/choose_repository.tcl:925 ++#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Создаю рабочий каталог" + - #: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127 - #: lib/index.tcl:193 ++#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 ++#: lib/index.tcl:196 +msgid "files" +msgstr "файлов" + - #: lib/choose_repository.tcl:955 ++#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "Не удалось получить начальное состояние файлов репозитория." + - #: lib/choose_repository.tcl:971 ++#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Открыть" + - #: lib/choose_repository.tcl:981 ++#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Репозиторий:" + - #: lib/choose_repository.tcl:1031 ++#: lib/choose_repository.tcl:1037 +#, 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:538 +msgid "Tag" - msgstr "Таг" ++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:531 +msgid "Updated" +msgstr "Обновлено" + +#: lib/choose_rev.tcl:559 +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" - "Текущее объединение не завершено. Невозможно исправить предыдущее " - "сохраненное состояние не прерывая текущее объединение.\n" ++"Текущее слияние не завершено. Невозможно исправить предыдущее " ++"сохраненное состояние, не прерывая эту операцию.\n" + - #: lib/commit.tcl:49 ++#: lib/commit.tcl:48 +msgid "Error loading commit data for amend:" +msgstr "Ошибка при загрузке данных для исправления сохраненного состояния:" + - #: lib/commit.tcl:76 ++#: lib/commit.tcl:75 +msgid "Unable to obtain your identity:" +msgstr "Невозможно получить информацию об авторстве:" + - #: lib/commit.tcl:81 ++#: lib/commit.tcl:80 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "Неверный GIT_COMMITTER_IDENT:" + - #: lib/commit.tcl:133 ++#: lib/commit.tcl:132 +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 ++#: lib/commit.tcl:155 +#, 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" +"\n" - "Для файла %s возник конфликт объединения. Разрешите конфликт и добавьте к " ++"Для файла %s возник конфликт слияния. Разрешите конфликт и добавьте к " +"подготовленным файлам перед сохранением.\n" + - #: lib/commit.tcl:162 ++#: lib/commit.tcl:163 +#, 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 ++#: lib/commit.tcl:171 +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 ++#: lib/commit.tcl:186 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence 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:207 ++#: lib/commit.tcl:210 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "предупреждение: Tcl не поддерживает кодировку '%s'." + - #: lib/commit.tcl:221 ++#: lib/commit.tcl:226 +msgid "Calling pre-commit hook..." +msgstr "Вызов программы поддержки репозитория pre-commit..." + - #: lib/commit.tcl:236 ++#: lib/commit.tcl:241 +msgid "Commit declined by pre-commit hook." +msgstr "Сохранение прервано программой поддержки репозитория pre-commit" + - #: lib/commit.tcl:259 ++#: lib/commit.tcl:264 +msgid "Calling commit-msg hook..." +msgstr "Вызов программы поддержки репозитория commit-msg..." + - #: lib/commit.tcl:274 ++#: lib/commit.tcl:279 +msgid "Commit declined by commit-msg hook." +msgstr "Сохранение прервано программой поддержки репозитория commit-msg" + - #: lib/commit.tcl:287 ++#: lib/commit.tcl:292 +msgid "Committing changes..." +msgstr "Сохранение изменений..." + - #: lib/commit.tcl:303 ++#: lib/commit.tcl:308 +msgid "write-tree failed:" +msgstr "Программа write-tree завершилась с ошибкой:" + - #: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368 ++#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +msgid "Commit failed." +msgstr "Сохранить состояние не удалось." + - #: lib/commit.tcl:321 ++#: lib/commit.tcl:326 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "Состояние %s выглядит поврежденным" + - #: lib/commit.tcl:326 ++#: lib/commit.tcl:331 +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" +"Сейчас автоматически запустится перечитывание репозитория.\n" + - #: lib/commit.tcl:333 ++#: lib/commit.tcl:338 +msgid "No changes to commit." +msgstr "Отуствуют измения для сохранения." + - #: lib/commit.tcl:347 ++#: lib/commit.tcl:352 +msgid "commit-tree failed:" +msgstr "Программа commit-tree завершилась с ошибкой:" + - #: lib/commit.tcl:367 ++#: lib/commit.tcl:372 +msgid "update-ref failed:" +msgstr "Программа update-ref завершилась с ошибкой:" + - #: lib/commit.tcl:454 ++#: lib/commit.tcl:460 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Создано состояние %s: %s " + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "В процессе... пожалуйста, ждите..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Процесс успешно завершен" + +#: lib/console.tcl:200 +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 ++#: lib/diff.tcl:59 +#, 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 ++#: lib/diff.tcl:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "Загрузка изменений в %s..." + - #: lib/diff.tcl:114 lib/diff.tcl:184 ++#: lib/diff.tcl:120 ++msgid "" ++"LOCAL: deleted\n" ++"REMOTE:\n" ++msgstr "" ++"ЛОКАЛЬНО: удалён\n" ++"ВНЕШНИЙ:\n" ++ ++#: lib/diff.tcl:125 ++msgid "" ++"REMOTE: deleted\n" ++"LOCAL:\n" ++msgstr "" ++"ВНЕШНИЙ: удалён\n" ++"ЛОКАЛЬНО:\n" ++ ++#: lib/diff.tcl:132 ++msgid "LOCAL:\n" ++msgstr "ЛОКАЛЬНО:\n" ++ ++#: lib/diff.tcl:135 ++msgid "REMOTE:\n" ++msgstr "ВНЕШНИЙ:\n" ++ ++#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Не могу показать %s" + - #: lib/diff.tcl:115 ++#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Ошибка загрузки файла:" + - #: lib/diff.tcl:122 ++#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Репозиторий Git (подпроект)" + - #: lib/diff.tcl:134 ++#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* Двоичный файл (содержимое не показано)" + - #: lib/diff.tcl:185 - msgid "Error loading diff:" - msgstr "Ошибка загрузки diff:" ++#: lib/diff.tcl:222 ++#, tcl-format ++msgid "" ++"* Untracked file is %d bytes.\n" ++"* Showing only first %d bytes.\n" ++msgstr "" ++"* Размер неподготовленого файла %d байт.\n" ++"* Показано первых %d байт.\n" ++ ++#: lib/diff.tcl:228 ++#, tcl-format ++msgid "" ++"\n" ++"* Untracked file clipped here by %s.\n" ++"* To see the entire file, use an external editor.\n" ++msgstr "" ++"\n" ++"* Неподготовленый файл обрезан: %s.\n" ++"* Чтобы увидеть весь файл, используйте программу-редактор.\n" + - #: lib/diff.tcl:303 ++#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Не удалось исключить выбранную часть." + - #: lib/diff.tcl:310 ++#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Не удалось подготовить к сохранению выбранную часть." + ++#: lib/diff.tcl:509 ++msgid "Failed to unstage selected line." ++msgstr "Не удалось исключить выбранную строку." ++ ++#: lib/diff.tcl:517 ++msgid "Failed to stage selected line." ++msgstr "Не удалось подготовить к сохранению выбранную строку." ++ ++#: lib/encoding.tcl:443 ++msgid "Default" ++msgstr "По умолчанию" ++ ++#: lib/encoding.tcl:448 ++#, tcl-format ++msgid "System (%s)" ++msgstr "Системная (%s)" ++ ++#: lib/encoding.tcl:459 lib/encoding.tcl:465 ++msgid "Other" ++msgstr "Другая" ++ +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "ошибка" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "предупреждение" + +#: lib/error.tcl:94 +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 "Ошибка индекса" ++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 ++#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "Удаление %s из подготовленного" + - #: lib/index.tcl:313 ++#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Подготовлено для сохранения" + - #: lib/index.tcl:326 ++#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "Добавление %s..." + - #: lib/index.tcl:381 ++#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Отменить изменения в файле %s?" + - #: lib/index.tcl:383 ++#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Отменить изменения в %i файле(-ах)?" + - #: lib/index.tcl:391 ++#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "" +"Любые изменения, не подготовленные к сохранению, будут потеряны при данной " +"операции." + - #: lib/index.tcl:394 ++#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "Ничего не делать" + ++#: lib/index.tcl:427 ++msgid "Reverting selected files" ++msgstr "Удаление изменений в выбраных файлах" ++ ++#: lib/index.tcl:431 ++#, tcl-format ++msgid "Reverting %s" ++msgstr "Отмена изменений в %s" ++ +#: 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" +"Завершите исправление данного состояния перед выполнением операции " - "объединения.\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 ++#: lib/merge.tcl:45 +#, 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" +"\n" - "Для файла %s возник конфликт объединения.\n" ++"Для файла %s возник конфликт слияния.\n" +"\n" +"Разрешите конфликт, подготовьте файл и сохраните. Только после этого можно " - "начать следующее объединение.\n" ++"начать следующее слияние.\n" + - #: lib/merge.tcl:54 ++#: lib/merge.tcl:55 +#, 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" ++"Подготовьте и сохраните измения перед началом слияния. В случае " ++"необходимости это позволит прервать операцию слияния.\n" + - #: lib/merge.tcl:106 ++#: lib/merge.tcl:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s из %s" + - #: lib/merge.tcl:119 ++#: lib/merge.tcl:120 ++#, tcl-format +msgid "Merging %s and %s..." - msgstr "Объединение %s и %s..." ++msgstr "Слияние %s и %s..." + - #: lib/merge.tcl:130 ++#: lib/merge.tcl:131 +msgid "Merge completed successfully." - msgstr "Объединение успешно завершено." ++msgstr "Слияние успешно завершено." + - #: lib/merge.tcl:132 ++#: lib/merge.tcl:133 +msgid "Merge failed. Conflict resolution is required." - msgstr "Не удалось завершить объединение. Требуется разрешение конфликта." ++msgstr "Не удалось завершить слияние. Требуется разрешение конфликта." + - #: lib/merge.tcl:157 ++#: lib/merge.tcl:158 +#, tcl-format +msgid "Merge Into %s" - msgstr "Объединить с %s" ++msgstr "Слияние с %s" + - #: lib/merge.tcl:176 ++#: lib/merge.tcl:177 +msgid "Revision To Merge" - msgstr "Версия для объединения" ++msgstr "Версия, с которой провести слияние" + - #: lib/merge.tcl:211 ++#: 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:221 ++#: 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" ++"Прерывание этой операции приведет к потере *ВСЕХ* несохраненных изменений.\n" +"\n" +"Продолжить?" + - #: lib/merge.tcl:227 ++#: 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" ++"Прерывание этой операции приведет к потере *ВСЕХ* несохраненных изменений.\n" +"\n" +"Продолжить?" + - #: lib/merge.tcl:238 ++#: lib/merge.tcl:239 +msgid "Aborting" +msgstr "Прерываю" + - #: lib/merge.tcl:238 ++#: lib/merge.tcl:239 +msgid "files reset" +msgstr "изменения в файлах отменены" + - #: lib/merge.tcl:265 ++#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "Прервать не удалось." + - #: lib/merge.tcl:267 ++#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "Прервано." + - #: lib/option.tcl:95 ++#: lib/mergetool.tcl:8 ++msgid "Force resolution to the base version?" ++msgstr "Использовать базовую версию для разрешения конфликта?" ++ ++#: lib/mergetool.tcl:9 ++msgid "Force resolution to this branch?" ++msgstr "Использовать версию этой ветви для разрешения конфликта?" ++ ++#: lib/mergetool.tcl:10 ++msgid "Force resolution to the other branch?" ++msgstr "Использовать версию другой ветви для разрешения конфликта?" ++ ++#: lib/mergetool.tcl:14 ++#, tcl-format ++msgid "" ++"Note that the diff shows only conflicting changes.\n" ++"\n" ++"%s will be overwritten.\n" ++"\n" ++"This operation can be undone only by restarting the merge." ++msgstr "" ++"Внимание! Список изменений показывает только конфликтующие отличия.\n" ++"\n" ++"%s будет переписан.\n" ++"\n" ++"Это действие можно отменить только перезапуском операции слияния." ++ ++#: lib/mergetool.tcl:45 ++#, tcl-format ++msgid "File %s seems to have unresolved conflicts, still stage?" ++msgstr "" ++"Файл %s кажется содержит необработаные конфликты. " ++"Продолжить подготовку к сохранению?" ++ ++#: lib/mergetool.tcl:60 ++#, tcl-format ++msgid "Adding resolution for %s" ++msgstr "Добавляю результат разрешения для %s" ++ ++#: lib/mergetool.tcl:141 ++msgid "Cannot resolve deletion or link conflicts using a tool" ++msgstr "" ++"Программа слияния не обрабатывает конфликты с удалением или участием ссылок" ++ ++#: lib/mergetool.tcl:146 ++msgid "Conflict file does not exist" ++msgstr "Конфликтующий файл не существует" ++ ++#: lib/mergetool.tcl:264 ++#, tcl-format ++msgid "Not a GUI merge tool: '%s'" ++msgstr "'%s' не является программой слияния" ++ ++#: lib/mergetool.tcl:268 ++#, tcl-format ++msgid "Unsupported merge tool '%s'" ++msgstr "Неизвестная программа слияния '%s'" ++ ++#: lib/mergetool.tcl:303 ++msgid "Merge tool is already running, terminate it?" ++msgstr "Программа слияния уже работает. Прервать?" ++ ++#: lib/mergetool.tcl:323 ++#, tcl-format ++msgid "" ++"Error retrieving versions:\n" ++"%s" ++msgstr "" ++"Ошибка получения версий:\n" ++"%s" ++ ++#: lib/mergetool.tcl:343 ++#, tcl-format ++msgid "" ++"Could not start the merge tool:\n" ++"\n" ++"%s" ++msgstr "" ++"Ошибка запуска программы слияния:\n" ++"\n" ++"%s" ++ ++#: lib/mergetool.tcl:347 ++msgid "Running merge tool..." ++msgstr "Запуск программы слияния..." ++ ++#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 ++msgid "Merge tool failed." ++msgstr "Ошибка выполнения программы слияния." ++ ++#: lib/option.tcl:11 ++#, tcl-format ++msgid "Invalid global encoding '%s'" ++msgstr "Ошибка в глобальной установке кодировки '%s'" ++ ++#: lib/option.tcl:19 ++#, tcl-format ++msgid "Invalid repo encoding '%s'" ++msgstr "Неверная кодировка репозитория: '%s'" ++ ++#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Восстановить настройки по умолчанию" + - #: lib/option.tcl:99 ++#: lib/option.tcl:121 +msgid "Save" +msgstr "Сохранить" + - #: lib/option.tcl:109 ++#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" - msgstr "для репозитория %s" ++msgstr "Для репозитория %s" + - #: lib/option.tcl:110 ++#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Общие (для всех репозиториев)" + - #: lib/option.tcl:116 ++#: lib/option.tcl:138 +msgid "User Name" +msgstr "Имя пользователя" + - #: lib/option.tcl:117 ++#: lib/option.tcl:139 +msgid "Email Address" +msgstr "Адрес электронной почты" + - #: lib/option.tcl:119 ++#: lib/option.tcl:141 +msgid "Summarize Merge Commits" - msgstr "Суммарный комментарий при объединении" ++msgstr "Суммарный комментарий при слиянии" + - #: lib/option.tcl:120 ++#: lib/option.tcl:142 +msgid "Merge Verbosity" - msgstr "Уровень детальности сообщений при объединении" ++msgstr "Уровень детальности сообщений при слиянии" + - #: lib/option.tcl:121 ++#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" - msgstr "Показать отчет об изменениях после объединения" ++msgstr "Показать отчет об изменениях после слияния" ++ ++#: lib/option.tcl:144 ++msgid "Use Merge Tool" ++msgstr "Использовать для слияния программу" + - #: lib/option.tcl:123 ++#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "Доверять времени модификации файла" + - #: lib/option.tcl:124 ++#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "Чистка ветвей слежения при получении изменений" + - #: lib/option.tcl:125 ++#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "Имя новой ветви взять из имен ветвей слежения" + - #: lib/option.tcl:126 ++#: lib/option.tcl:149 ++msgid "Blame Copy Only On Changed Files" ++msgstr "Поиск копий только в изменённых файлах" ++ ++#: lib/option.tcl:150 ++msgid "Minimum Letters To Blame Copy On" ++msgstr "Минимальное количество символов для поиска копий" ++ ++#: lib/option.tcl:151 ++msgid "Blame History Context Radius (days)" ++msgstr "Радиус исторического контекста (в днях)" ++ ++#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "Число строк в контексте diff" + - #: lib/option.tcl:127 ++#: lib/option.tcl:153 +msgid "Commit Message Text Width" - msgstr "Ширина комментария к состоянию:" ++msgstr "Ширина текста комментария" + - #: lib/option.tcl:128 ++#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Шаблон для имени новой ветви" + - #: lib/option.tcl:192 ++#: lib/option.tcl:155 ++msgid "Default File Contents Encoding" ++msgstr "Кодировка содержания файла по умолчанию" ++ ++#: lib/option.tcl:203 ++msgid "Change" ++msgstr "Изменить" ++ ++#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Словарь для проверки правописания:" + - #: lib/option.tcl:216 ++#: lib/option.tcl:254 +msgid "Change Font" - msgstr "Изменить шрифт" ++msgstr "Изменить" + - #: lib/option.tcl:220 ++#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "Выберите %s" + +# carbon copy - #: lib/option.tcl:226 ++#: lib/option.tcl:264 +msgid "pt." - msgstr "" ++msgstr "pt." + - #: lib/option.tcl:240 ++#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Настройки" + - #: lib/option.tcl:275 ++#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "Не удалось полностью сохранить настройки:" + ++#: lib/remote.tcl:163 ++msgid "Remove Remote" ++msgstr "Удалить ссылку на внешний репозиторий" ++ ++#: lib/remote.tcl:168 ++msgid "Prune from" ++msgstr "Чистка" ++ ++#: lib/remote.tcl:173 ++msgid "Fetch from" ++msgstr "Получение из" ++ ++#: lib/remote.tcl:215 ++msgid "Push to" ++msgstr "Отправить" ++ ++#: lib/remote_add.tcl:19 ++msgid "Add Remote" ++msgstr "Зарегистрировать внешний репозиторий" ++ ++#: lib/remote_add.tcl:24 ++msgid "Add New Remote" ++msgstr "Добавить внешний репозиторий" ++ ++#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 ++msgid "Add" ++msgstr "" ++ ++#: lib/remote_add.tcl:37 ++msgid "Remote Details" ++msgstr "Информация о внешнем репозитории" ++ ++#: lib/remote_add.tcl:50 ++msgid "Location:" ++msgstr "Положение:" ++ ++#: lib/remote_add.tcl:62 ++msgid "Further Action" ++msgstr "Следующая операция" ++ ++#: lib/remote_add.tcl:65 ++msgid "Fetch Immediately" ++msgstr "Скачать сразу" ++ ++#: lib/remote_add.tcl:71 ++msgid "Initialize Remote Repository and Push" ++msgstr "Инициализировать внешний репозиторий и отправить" ++ ++#: lib/remote_add.tcl:77 ++msgid "Do Nothing Else Now" ++msgstr "Больше ничего не делать" ++ ++#: lib/remote_add.tcl:101 ++msgid "Please supply a remote name." ++msgstr "Укажите название внешнего репозитория." ++ ++#: lib/remote_add.tcl:114 ++#, tcl-format ++msgid "'%s' is not an acceptable remote name." ++msgstr "Недопустимое название внешнего репозитория '%s'." ++ ++#: lib/remote_add.tcl:125 ++#, tcl-format ++msgid "Failed to add remote '%s' of location '%s'." ++msgstr "Не удалось добавить '%s' из '%s'. " ++ ++#: lib/remote_add.tcl:133 lib/transport.tcl:6 ++#, tcl-format ++msgid "fetch %s" ++msgstr "получение %s" ++ ++#: lib/remote_add.tcl:134 ++#, tcl-format ++msgid "Fetching the %s" ++msgstr "Получение %s" ++ ++#: lib/remote_add.tcl:157 ++#, tcl-format ++msgid "Do not know how to initialize repository at location '%s'." ++msgstr "Невозможно инициалировать репозиторий в '%s'." ++ ++#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 ++#: lib/transport.tcl:81 ++#, tcl-format ++msgid "push %s" ++msgstr "отправить %s" ++ ++#: lib/remote_add.tcl:164 ++#, tcl-format ++msgid "Setting up the %s (at %s)" ++msgstr "Настройка %s (в %s)" ++ +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 - msgid "Delete Remote Branch" - msgstr "Удалить внешнюю ветвь" ++msgid "Delete Branch Remotely" ++msgstr "Удаление ветви во внешнем репозитории" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "Из репозитория" + - #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 ++#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 +msgid "Remote:" +msgstr "внешний:" + - #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 - msgid "Arbitrary URL:" - msgstr "по указанному URL:" ++#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 ++msgid "Arbitrary Location:" ++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 "Объединено с:" ++msgstr "Слияние с:" + +#: lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" - msgstr "Всегда (не выполнять проверку объединений)" ++msgstr "Всегда (не выполнять проверку на слияние)" + +#: lib/remote_branch_delete.tcl:152 +msgid "A branch is required for 'Merged Into'." - msgstr "Для опции 'Объединено с' требуется указать ветвь." ++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 при помощи операции слияния:\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/remote.tcl:165 - msgid "Prune from" - msgstr "Чистка" ++#: lib/search.tcl:21 ++msgid "Find:" ++msgstr "Поиск:" + - #: lib/remote.tcl:170 - msgid "Fetch from" - msgstr "Получение из" ++#: lib/search.tcl:23 ++msgid "Next" ++msgstr "Дальше" + - #: lib/remote.tcl:213 - msgid "Push to" - msgstr "Отправить" ++#: lib/search.tcl:24 ++msgid "Prev" ++msgstr "Обратно" ++ ++#: lib/search.tcl:25 ++msgid "Case-Sensitive" ++msgstr "Игн. большие/маленькие" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "Невозможно записать ссылку:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Невозможно записать значок:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Неподдерживаемая программа проверки правописания" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "Проверка правописания не доступна" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Неправильная конфигурация программы проверки правописания" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Словарь вернут к %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "Программа проверки правописания не смогла запустится" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Нераспознаная программа проверки правописания" + - #: lib/spellcheck.tcl:180 ++#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Исправлений не найдено" + - #: lib/spellcheck.tcl:381 ++#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "Программа проверки правописания прервала передачу данных" + - #: lib/spellcheck.tcl:385 ++#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "Ошибка проверки правописания" + ++#: lib/sshkey.tcl:31 ++msgid "No keys found." ++msgstr "Ключ не найден" ++ ++#: lib/sshkey.tcl:34 ++#, tcl-format ++msgid "Found a public key in: %s" ++msgstr "Публичный ключ из %s" ++ ++#: lib/sshkey.tcl:40 ++msgid "Generate Key" ++msgstr "Создать ключ" ++ ++#: lib/sshkey.tcl:56 ++msgid "Copy To Clipboard" ++msgstr "Скопировать в буфер обмена" ++ ++#: lib/sshkey.tcl:70 ++msgid "Your OpenSSH Public Key" ++msgstr "Ваш публичный ключ OpenSSH" ++ ++#: lib/sshkey.tcl:78 ++msgid "Generating..." ++msgstr "Создание..." ++ ++#: lib/sshkey.tcl:84 ++#, tcl-format ++msgid "" ++"Could not start ssh-keygen:\n" ++"\n" ++"%s" ++msgstr "" ++"Ошибка запуска ssh-keygen:\n" ++"\n" ++"%s" ++ ++#: lib/sshkey.tcl:111 ++msgid "Generation failed." ++msgstr "Ключ не создан." ++ ++#: lib/sshkey.tcl:118 ++msgid "Generation succeded, but no keys found." ++msgstr "Создание ключа завершилось, но результат не был найден" ++ ++#: lib/sshkey.tcl:121 ++#, tcl-format ++msgid "Your key is in: %s" ++msgstr "Ваш ключ находится в: %s" ++ +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i из %*i %s (%3i%%)" + - #: lib/transport.tcl:6 ++#: lib/tools.tcl:75 +#, tcl-format - msgid "fetch %s" - msgstr "получение %s" ++msgid "Running %s requires a selected file." ++msgstr "Запуск %s требует выбранного файла." ++ ++#: lib/tools.tcl:90 ++#, tcl-format ++msgid "Are you sure you want to run %s?" ++msgstr "Действительно запустить %s?" ++ ++#: lib/tools.tcl:110 ++#, tcl-format ++msgid "Tool: %s" ++msgstr "Вспомогательная операция: %s" ++ ++#: lib/tools.tcl:111 ++#, tcl-format ++msgid "Running: %s" ++msgstr "Выполнение: %s" ++ ++#: lib/tools.tcl:149 ++#, tcl-format ++msgid "Tool completed succesfully: %s" ++msgstr "Программа %s успешно завершилась." ++ ++#: lib/tools.tcl:151 ++#, tcl-format ++msgid "Tool failed: %s" ++msgstr "Ошибка выполнения программы: %s" ++ ++#: lib/tools_dlg.tcl:22 ++msgid "Add Tool" ++msgstr "Добавить вспомогательную операцию" ++ ++#: lib/tools_dlg.tcl:28 ++msgid "Add New Tool Command" ++msgstr "Новая вспомогательная операция" ++ ++#: lib/tools_dlg.tcl:33 ++msgid "Add globally" ++msgstr "Добавить для всех репозиториев" ++ ++#: lib/tools_dlg.tcl:45 ++msgid "Tool Details" ++msgstr "Описание вспомогательной операции" ++ ++#: lib/tools_dlg.tcl:48 ++msgid "Use '/' separators to create a submenu tree:" ++msgstr "Испольуйте '/' для создания подменю" ++ ++#: lib/tools_dlg.tcl:61 ++msgid "Command:" ++msgstr "Команда:" ++ ++#: lib/tools_dlg.tcl:74 ++msgid "Show a dialog before running" ++msgstr "Показать диалог перед запуском" ++ ++#: lib/tools_dlg.tcl:80 ++msgid "Ask the user to select a revision (sets $REVISION)" ++msgstr "Запрос на выбор версии (устанавливает $REVISION)" ++ ++#: lib/tools_dlg.tcl:85 ++msgid "Ask the user for additional arguments (sets $ARGS)" ++msgstr "Запрос дополнительных аргументов (устанавливает $ARGS)" ++ ++#: lib/tools_dlg.tcl:92 ++msgid "Don't show the command output window" ++msgstr "Не показывать окно вывода команды" ++ ++#: lib/tools_dlg.tcl:97 ++msgid "Run only if a diff is selected ($FILENAME not empty)" ++msgstr "Запуск только если показан список изменений ($FILENAME не пусто)" ++ ++#: lib/tools_dlg.tcl:121 ++msgid "Please supply a name for the tool." ++msgstr "Укажите название вспомогательной операции." ++ ++#: lib/tools_dlg.tcl:129 ++#, tcl-format ++msgid "Tool '%s' already exists." ++msgstr "Вспомогательная операция '%s' уже существует." ++ ++#: lib/tools_dlg.tcl:151 ++#, tcl-format ++msgid "" ++"Could not add tool:\n" ++"%s" ++msgstr "" ++"Ошибка добавления программы:\n" ++"%s" ++ ++#: lib/tools_dlg.tcl:190 ++msgid "Remove Tool" ++msgstr "Удалить программу" ++ ++#: lib/tools_dlg.tcl:196 ++msgid "Remove Tool Commands" ++msgstr "Удалить команды программы" ++ ++#: lib/tools_dlg.tcl:200 ++msgid "Remove" ++msgstr "Удалить" ++ ++#: lib/tools_dlg.tcl:236 ++msgid "(Blue denotes repository-local tools)" ++msgstr "(Синим выделены программы локальные репозиторию)" ++ ++#: lib/tools_dlg.tcl:297 ++#, tcl-format ++msgid "Run Command: %s" ++msgstr "Запуск команды: %s" ++ ++#: lib/tools_dlg.tcl:311 ++msgid "Arguments" ++msgstr "Аргументы" ++ ++#: lib/tools_dlg.tcl:348 ++msgid "OK" ++msgstr "OK" + +#: 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 ++#: lib/transport.tcl:64 ++#, tcl-format ++msgid "Mirroring to %s" ++msgstr "Точное копирование в %s" ++ ++#: lib/transport.tcl:82 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Отправка %s %s в %s" + - #: lib/transport.tcl:89 ++#: lib/transport.tcl:100 +msgid "Push Branches" +msgstr "Отправить изменения в ветвях" + - #: lib/transport.tcl:103 ++#: lib/transport.tcl:114 +msgid "Source Branches" +msgstr "Исходные ветви" + - #: lib/transport.tcl:120 ++#: lib/transport.tcl:131 +msgid "Destination Repository" +msgstr "Репозиторий назначения" + - #: lib/transport.tcl:158 ++#: lib/transport.tcl:169 +msgid "Transfer Options" +msgstr "Настройки отправки" + - #: lib/transport.tcl:160 ++#: lib/transport.tcl:171 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "Намеренно переписать существующую ветвь (возможна потеря изменений)" + - #: lib/transport.tcl:164 ++#: lib/transport.tcl:175 +msgid "Use thin pack (for slow network connections)" +msgstr "Использовать thin pack (для медленных сетевых подключений)" + - #: lib/transport.tcl:168 ++#: lib/transport.tcl:179 +msgid "Include tags" - msgstr "Передать таги" ++msgstr "Передать метки" + - #~ msgid "Next >" - #~ msgstr "Дальше >" diff --cc git-gui/po/sv.po index 167654c70,000000000..c1535f94e mode 100644,000000..100644 --- a/git-gui/po/sv.po +++ b/git-gui/po/sv.po @@@ -1,2577 -1,0 +1,2567 @@@ +# Swedish translation of git-gui. +# Copyright (C) 2007-2008 Shawn Pearce, et al. +# This file is distributed under the same license as the git-gui package. +# +# Peter Krefting , 2007-2008. +# Mikael Magnusson , 2008. +msgid "" +msgstr "" +"Project-Id-Version: sv\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"PO-Revision-Date: 2008-12-10 09:49+0100\n" +"Last-Translator: Peter Krefting \n" +"Language-Team: Swedish \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:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 +#: git-gui.sh:866 +msgid "git-gui: fatal error" +msgstr "git-gui: ödesdigert fel" + +#: git-gui.sh:689 +#, tcl-format +msgid "Invalid font specified in %s:" +msgstr "Ogiltigt teckensnitt angivet i %s:" + +#: git-gui.sh:723 +msgid "Main Font" +msgstr "Huvudteckensnitt" + +#: git-gui.sh:724 +msgid "Diff/Console Font" +msgstr "Diff/konsolteckensnitt" + +#: git-gui.sh:738 +msgid "Cannot find git in PATH." +msgstr "Hittar inte git i PATH." + +#: git-gui.sh:765 +msgid "Cannot parse Git version string:" +msgstr "Kan inte tolka versionssträng från Git:" + +#: git-gui.sh:783 +#, 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 "" +"Kan inte avgöra Gits version.\n" +"\n" +"%s säger att dess version är \"%s\".\n" +"\n" +"%s kräver minst Git 1.5.0 eller senare.\n" +"\n" +"Anta att \"%s\" är version 1.5.0?\n" + +#: git-gui.sh:1062 +msgid "Git directory not found:" +msgstr "Git-katalogen hittades inte:" + +#: git-gui.sh:1069 +msgid "Cannot move to top of working directory:" +msgstr "Kan inte gå till början på arbetskatalogen:" + +#: git-gui.sh:1076 +msgid "Cannot use funny .git directory:" +msgstr "Kan inte använda underlig .git-katalog:" + +#: git-gui.sh:1081 +msgid "No working directory" +msgstr "Ingen arbetskatalog" + +#: git-gui.sh:1247 lib/checkout_op.tcl:305 +msgid "Refreshing file status..." +msgstr "Uppdaterar filstatus..." + +#: git-gui.sh:1303 +msgid "Scanning for modified files ..." +msgstr "Söker efter ändrade filer..." + +#: git-gui.sh:1367 +msgid "Calling prepare-commit-msg hook..." +msgstr "" +"Anropar kroken för förberedelse av incheckningsmeddelande (prepare-commit-" +"msg)..." + +#: git-gui.sh:1384 +msgid "Commit declined by prepare-commit-msg hook." +msgstr "" +"Incheckningen avvisades av kroken för förberedelse av incheckningsmeddelande " +"(prepare-commit-msg)." + +#: git-gui.sh:1542 lib/browser.tcl:246 +msgid "Ready." +msgstr "Klar." + +#: git-gui.sh:1819 +msgid "Unmodified" +msgstr "Oförändrade" + +#: git-gui.sh:1821 +msgid "Modified, not staged" +msgstr "Förändrade, ej köade" + +#: git-gui.sh:1822 git-gui.sh:1830 +msgid "Staged for commit" +msgstr "Köade för incheckning" + +#: git-gui.sh:1823 git-gui.sh:1831 +msgid "Portions staged for commit" +msgstr "Delar köade för incheckning" + +#: git-gui.sh:1824 git-gui.sh:1832 +msgid "Staged for commit, missing" +msgstr "Köade för incheckning, saknade" + +#: git-gui.sh:1826 +msgid "File type changed, not staged" +msgstr "Filtyp ändrad, ej köade" + +#: git-gui.sh:1827 +msgid "File type changed, staged" +msgstr "Filtyp ändrad, köade" + +#: git-gui.sh:1829 +msgid "Untracked, not staged" +msgstr "Ej spårade, ej köade" + +#: git-gui.sh:1834 +msgid "Missing" +msgstr "Saknade" + +#: git-gui.sh:1835 +msgid "Staged for removal" +msgstr "Köade för borttagning" + +#: git-gui.sh:1836 +msgid "Staged for removal, still present" +msgstr "Köade för borttagning, fortfarande närvarande" + +#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 +#: git-gui.sh:1842 git-gui.sh:1843 +msgid "Requires merge resolution" +msgstr "Kräver konflikthantering efter sammanslagning" + +#: git-gui.sh:1878 +msgid "Starting gitk... please wait..." +msgstr "Startar gitk... vänta..." + +#: git-gui.sh:1887 +msgid "Couldn't find gitk in PATH" +msgstr "Hittar inte gitk i PATH." + +#: git-gui.sh:2280 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "Arkiv" + +#: git-gui.sh:2281 +msgid "Edit" +msgstr "Redigera" + +#: git-gui.sh:2283 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "Gren" + +#: git-gui.sh:2286 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "Incheckning" + +#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +msgid "Merge" +msgstr "Slå ihop" + +#: git-gui.sh:2290 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "Fjärrarkiv" + +#: git-gui.sh:2293 +msgid "Tools" +msgstr "Verktyg" + +#: git-gui.sh:2302 +msgid "Explore Working Copy" +msgstr "Utforska arbetskopia" + +#: git-gui.sh:2307 +msgid "Browse Current Branch's Files" +msgstr "Bläddra i grenens filer" + +#: git-gui.sh:2311 +msgid "Browse Branch Files..." +msgstr "Bläddra filer på gren..." + +#: git-gui.sh:2316 +msgid "Visualize Current Branch's History" +msgstr "Visualisera grenens historik" + +#: git-gui.sh:2320 +msgid "Visualize All Branch History" +msgstr "Visualisera alla grenars historik" + +#: git-gui.sh:2327 +#, tcl-format +msgid "Browse %s's Files" +msgstr "Bläddra i filer för %s" + +#: git-gui.sh:2329 +#, tcl-format +msgid "Visualize %s's History" +msgstr "Visualisera historik för %s" + +#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "Databasstatistik" + +#: git-gui.sh:2337 lib/database.tcl:34 +msgid "Compress Database" +msgstr "Komprimera databas" + +#: git-gui.sh:2340 +msgid "Verify Database" +msgstr "Verifiera databas" + +#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "Skapa skrivbordsikon" + +#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +msgid "Quit" +msgstr "Avsluta" + +#: git-gui.sh:2371 +msgid "Undo" +msgstr "Ångra" + +#: git-gui.sh:2374 +msgid "Redo" +msgstr "Gör om" + +#: git-gui.sh:2378 git-gui.sh:2937 +msgid "Cut" +msgstr "Klipp ut" + +#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "Kopiera" + +#: git-gui.sh:2384 git-gui.sh:2943 +msgid "Paste" +msgstr "Klistra in" + +#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "Ta bort" + +#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +msgid "Select All" +msgstr "Markera alla" + +#: git-gui.sh:2400 +msgid "Create..." +msgstr "Skapa..." + +#: git-gui.sh:2406 +msgid "Checkout..." +msgstr "Checka ut..." + +#: git-gui.sh:2412 +msgid "Rename..." +msgstr "Byt namn..." + +#: git-gui.sh:2417 +msgid "Delete..." +msgstr "Ta bort..." + +#: git-gui.sh:2422 +msgid "Reset..." +msgstr "Återställ..." + +#: git-gui.sh:2432 +msgid "Done" +msgstr "Färdig" + +#: git-gui.sh:2434 +msgid "Commit@@verb" +msgstr "Checka in" + +#: git-gui.sh:2443 git-gui.sh:2878 +msgid "New Commit" +msgstr "Ny incheckning" + +#: git-gui.sh:2451 git-gui.sh:2885 +msgid "Amend Last Commit" +msgstr "Lägg till föregående incheckning" + +#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "Sök på nytt" + +#: git-gui.sh:2467 +msgid "Stage To Commit" +msgstr "Köa för incheckning" + +#: git-gui.sh:2473 +msgid "Stage Changed Files To Commit" +msgstr "Köa ändrade filer för incheckning" + +#: git-gui.sh:2479 +msgid "Unstage From Commit" +msgstr "Ta bort från incheckningskö" + +#: git-gui.sh:2484 lib/index.tcl:410 +msgid "Revert Changes" +msgstr "Återställ ändringar" + +#: git-gui.sh:2491 git-gui.sh:3083 +msgid "Show Less Context" +msgstr "Visa mindre sammanhang" + +#: git-gui.sh:2495 git-gui.sh:3087 +msgid "Show More Context" +msgstr "Visa mer sammanhang" + +#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +msgid "Sign Off" +msgstr "Skriv under" + +#: git-gui.sh:2518 +msgid "Local Merge..." +msgstr "Lokal sammanslagning..." + +#: git-gui.sh:2523 +msgid "Abort Merge..." +msgstr "Avbryt sammanslagning..." + +#: git-gui.sh:2535 git-gui.sh:2575 +msgid "Add..." +msgstr "Lägg till..." + +#: git-gui.sh:2539 +msgid "Push..." +msgstr "Sänd..." + +#: git-gui.sh:2543 +msgid "Delete Branch..." +msgstr "Ta bort gren..." + +#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Om %s" + +#: git-gui.sh:2557 +msgid "Preferences..." +msgstr "Inställningar..." + +#: git-gui.sh:2565 git-gui.sh:3129 +msgid "Options..." +msgstr "Alternativ..." + +#: git-gui.sh:2576 +msgid "Remove..." +msgstr "Ta bort..." + +#: git-gui.sh:2585 lib/choose_repository.tcl:50 +msgid "Help" +msgstr "Hjälp" + +#: git-gui.sh:2611 +msgid "Online Documentation" +msgstr "Webbdokumentation" + +#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +msgid "Show SSH Key" +msgstr "Visa SSH-nyckel" + +#: git-gui.sh:2721 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "" +"ödesdigert: kunde inte ta status på sökvägen %s: Fil eller katalog saknas" + +#: git-gui.sh:2754 +msgid "Current Branch:" +msgstr "Aktuell gren:" + +#: git-gui.sh:2775 +msgid "Staged Changes (Will Commit)" +msgstr "Köade ändringar (kommer att checkas in)" + +#: git-gui.sh:2795 +msgid "Unstaged Changes" +msgstr "Oköade ändringar" + +#: git-gui.sh:2845 +msgid "Stage Changed" +msgstr "Köa ändrade" + +#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +msgid "Push" +msgstr "Sänd" + +#: git-gui.sh:2899 +msgid "Initial Commit Message:" +msgstr "Inledande incheckningsmeddelande:" + +#: git-gui.sh:2900 +msgid "Amended Commit Message:" +msgstr "Utökat incheckningsmeddelande:" + +#: git-gui.sh:2901 +msgid "Amended Initial Commit Message:" +msgstr "Utökat inledande incheckningsmeddelande:" + +#: git-gui.sh:2902 +msgid "Amended Merge Commit Message:" +msgstr "Utökat incheckningsmeddelande för sammanslagning:" + +#: git-gui.sh:2903 +msgid "Merge Commit Message:" +msgstr "Incheckningsmeddelande för sammanslagning:" + +#: git-gui.sh:2904 +msgid "Commit Message:" +msgstr "Incheckningsmeddelande:" + +#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +msgid "Copy All" +msgstr "Kopiera alla" + +#: git-gui.sh:2977 lib/blame.tcl:104 +msgid "File:" +msgstr "Fil:" + +#: git-gui.sh:3092 +msgid "Refresh" +msgstr "Uppdatera" + +#: git-gui.sh:3113 +msgid "Decrease Font Size" +msgstr "Minska teckensnittsstorlek" + +#: git-gui.sh:3117 +msgid "Increase Font Size" +msgstr "Öka teckensnittsstorlek" + +#: git-gui.sh:3125 lib/blame.tcl:281 +msgid "Encoding" +msgstr "Teckenkodning" + +#: git-gui.sh:3136 +msgid "Apply/Reverse Hunk" +msgstr "Använd/återställ del" + +#: git-gui.sh:3141 +msgid "Apply/Reverse Line" +msgstr "Använd/återställ rad" + +#: git-gui.sh:3151 +msgid "Run Merge Tool" +msgstr "Starta verktyg för sammanslagning" + +#: git-gui.sh:3156 +msgid "Use Remote Version" +msgstr "Använd versionen från fjärrarkivet" + +#: git-gui.sh:3160 +msgid "Use Local Version" +msgstr "Använd lokala versionen" + +#: git-gui.sh:3164 +msgid "Revert To Base" +msgstr "Återställ till basversionen" + +#: git-gui.sh:3183 +msgid "Unstage Hunk From Commit" +msgstr "Ta bort del ur incheckningskö" + +#: git-gui.sh:3184 +msgid "Unstage Line From Commit" +msgstr "Ta bort rad ur incheckningskö" + +#: git-gui.sh:3186 +msgid "Stage Hunk For Commit" +msgstr "Ställ del i incheckningskö" + +#: git-gui.sh:3187 +msgid "Stage Line For Commit" +msgstr "Ställ rad i incheckningskö" + +#: git-gui.sh:3210 +msgid "Initializing..." +msgstr "Initierar..." + +#: git-gui.sh:3315 +#, 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 "" +"Det finns möjliga problem med miljövariabler.\n" +"\n" +"Följande miljövariabler kommer troligen att\n" +"ignoreras av alla Git-underprocesser som körs\n" +"av %s:\n" +"\n" + +#: git-gui.sh:3345 +msgid "" +"\n" +"This is due to a known issue with the\n" +"Tcl binary distributed by Cygwin." +msgstr "" +"\n" +"Detta beror på ett känt problem med\n" +"Tcl-binären som följer med Cygwin." + +#: git-gui.sh:3350 +#, 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" +"Du kan ersätta %s\n" +"med att lägga in värden för inställningarna\n" +"user.name och user.email i din personliga\n" +"~/.gitconfig-fil.\n" + +#: lib/about.tcl:26 +msgid "git-gui - a graphical user interface for Git." +msgstr "git-gui - ett grafiskt användargränssnitt för Git." + +#: lib/blame.tcl:72 +msgid "File Viewer" +msgstr "Filvisare" + +#: lib/blame.tcl:78 +msgid "Commit:" +msgstr "Incheckning:" + +#: lib/blame.tcl:271 +msgid "Copy Commit" +msgstr "Kopiera incheckning" + +#: lib/blame.tcl:275 +msgid "Find Text..." +msgstr "Sök text..." + +#: lib/blame.tcl:284 +msgid "Do Full Copy Detection" +msgstr "Gör full kopieringsigenkänning" + +#: lib/blame.tcl:288 +msgid "Show History Context" +msgstr "Visa historiksammanhang" + +#: lib/blame.tcl:291 +msgid "Blame Parent Commit" +msgstr "Klandra föräldraincheckning" + +#: lib/blame.tcl:450 +#, tcl-format +msgid "Reading %s..." +msgstr "Läser %s..." + +#: lib/blame.tcl:557 +msgid "Loading copy/move tracking annotations..." +msgstr "Läser annoteringar för kopiering/flyttning..." + +#: lib/blame.tcl:577 +msgid "lines annotated" +msgstr "rader annoterade" + +#: lib/blame.tcl:769 +msgid "Loading original location annotations..." +msgstr "Läser in annotering av originalplacering..." + +#: lib/blame.tcl:772 +msgid "Annotation complete." +msgstr "Annotering fullbordad." + +#: lib/blame.tcl:802 +msgid "Busy" +msgstr "Upptagen" + +#: lib/blame.tcl:803 +msgid "Annotation process is already running." +msgstr "Annoteringsprocess körs redan." + +#: lib/blame.tcl:842 +msgid "Running thorough copy detection..." +msgstr "Kör grundlig kopieringsigenkänning..." + +#: lib/blame.tcl:910 +msgid "Loading annotation..." +msgstr "Läser in annotering..." + +#: lib/blame.tcl:963 +msgid "Author:" +msgstr "Författare:" + +#: lib/blame.tcl:967 +msgid "Committer:" +msgstr "Incheckare:" + +#: lib/blame.tcl:972 +msgid "Original File:" +msgstr "Ursprunglig fil:" + +#: lib/blame.tcl:1020 +msgid "Cannot find HEAD commit:" +msgstr "Hittar inte incheckning för HEAD:" + +#: lib/blame.tcl:1075 +msgid "Cannot find parent commit:" +msgstr "Hittar inte föräldraincheckning:" + +#: lib/blame.tcl:1090 +msgid "Unable to display parent" +msgstr "Kan inte visa förälder" + +#: lib/blame.tcl:1091 lib/diff.tcl:297 +msgid "Error loading diff:" +msgstr "Fel vid inläsning av differens:" + +#: lib/blame.tcl:1231 +msgid "Originally By:" +msgstr "Ursprungligen av:" + +#: lib/blame.tcl:1237 +msgid "In File:" +msgstr "I filen:" + +#: lib/blame.tcl:1242 +msgid "Copied Or Moved Here By:" +msgstr "Kopierad eller flyttad hit av:" + +#: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19 +msgid "Checkout Branch" +msgstr "Checka ut gren" + +#: lib/branch_checkout.tcl:23 +msgid "Checkout" +msgstr "Checka ut" + +#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 +#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 +#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:108 +msgid "Cancel" +msgstr "Avbryt" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 +msgid "Revision" +msgstr "Revision" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 +msgid "Options" +msgstr "Alternativ" + +#: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92 +msgid "Fetch Tracking Branch" +msgstr "Hämta spårande gren" + +#: lib/branch_checkout.tcl:44 +msgid "Detach From Local Branch" +msgstr "Koppla bort från lokal gren" + +#: lib/branch_create.tcl:22 +msgid "Create Branch" +msgstr "Skapa gren" + +#: lib/branch_create.tcl:27 +msgid "Create New Branch" +msgstr "Skapa ny gren" + +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +msgid "Create" +msgstr "Skapa" + +#: lib/branch_create.tcl:40 +msgid "Branch Name" +msgstr "Namn på gren" + +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 +msgid "Name:" +msgstr "Namn:" + +#: lib/branch_create.tcl:58 +msgid "Match Tracking Branch Name" +msgstr "Använd namn på spårad gren" + +#: lib/branch_create.tcl:66 +msgid "Starting Revision" +msgstr "Inledande revision" + +#: lib/branch_create.tcl:72 +msgid "Update Existing Branch:" +msgstr "Uppdatera befintlig gren:" + +#: lib/branch_create.tcl:75 +msgid "No" +msgstr "Nej" + +#: lib/branch_create.tcl:80 +msgid "Fast Forward Only" +msgstr "Endast snabbspolning" + +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +msgid "Reset" +msgstr "Återställ" + +#: lib/branch_create.tcl:97 +msgid "Checkout After Creation" +msgstr "Checka ut när skapad" + +#: lib/branch_create.tcl:131 +msgid "Please select a tracking branch." +msgstr "Välj en gren att spåra." + +#: lib/branch_create.tcl:140 +#, tcl-format +msgid "Tracking branch %s is not a branch in the remote repository." +msgstr "Den spårade grenen %s är inte en gren i fjärrarkivet." + +#: lib/branch_create.tcl:153 lib/branch_rename.tcl:86 +msgid "Please supply a branch name." +msgstr "Ange ett namn för grenen." + +#: lib/branch_create.tcl:164 lib/branch_rename.tcl:106 +#, tcl-format +msgid "'%s' is not an acceptable branch name." +msgstr "\"%s\" kan inte användas som namn på grenen." + +#: lib/branch_delete.tcl:15 +msgid "Delete Branch" +msgstr "Ta bort gren" + +#: lib/branch_delete.tcl:20 +msgid "Delete Local Branch" +msgstr "Ta bort lokal gren" + +#: lib/branch_delete.tcl:37 +msgid "Local Branches" +msgstr "Lokala grenar" + +#: lib/branch_delete.tcl:52 +msgid "Delete Only If Merged Into" +msgstr "Ta bara bort om sammanslagen med" + +#: lib/branch_delete.tcl:54 +msgid "Always (Do not perform merge test.)" +msgstr "Alltid (utför inte sammanslagningstest)." + +#: lib/branch_delete.tcl:103 +#, tcl-format +msgid "The following branches are not completely merged into %s:" +msgstr "Följande grenar är inte till fullo sammanslagna med %s:" + - #: lib/branch_delete.tcl:115 - msgid "" - "Recovering deleted branches is difficult. \n" - "\n" - " Delete the selected branches?" - msgstr "" - "Det är svårt att återställa borttagna grenar.\n" - "\n" - " Ta bort valda grenar?" - +#: lib/branch_delete.tcl:141 +#, tcl-format +msgid "" +"Failed to delete branches:\n" +"%s" +msgstr "" +"Kunde inte ta bort grenar:\n" +"%s" + +#: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22 +msgid "Rename Branch" +msgstr "Byt namn på gren" + +#: lib/branch_rename.tcl:26 +msgid "Rename" +msgstr "Byt namn" + +#: lib/branch_rename.tcl:36 +msgid "Branch:" +msgstr "Gren:" + +#: lib/branch_rename.tcl:39 +msgid "New Name:" +msgstr "Nytt namn:" + +#: lib/branch_rename.tcl:75 +msgid "Please select a branch to rename." +msgstr "Välj en gren att byta namn på." + +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#, tcl-format +msgid "Branch '%s' already exists." +msgstr "Grenen \"%s\" finns redan." + +#: lib/branch_rename.tcl:117 +#, tcl-format +msgid "Failed to rename '%s'." +msgstr "Kunde inte byta namn på \"%s\"." + +#: lib/browser.tcl:17 +msgid "Starting..." +msgstr "Startar..." + +#: lib/browser.tcl:26 +msgid "File Browser" +msgstr "Filbläddrare" + +#: lib/browser.tcl:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "Läser %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[Upp till förälder]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "Bläddra filer på grenen" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:394 +#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 +#: lib/choose_repository.tcl:995 +msgid "Browse" +msgstr "Bläddra" + +#: lib/checkout_op.tcl:84 +#, tcl-format +msgid "Fetching %s from %s" +msgstr "Hämtar %s från %s" + +#: lib/checkout_op.tcl:132 +#, tcl-format +msgid "fatal: Cannot resolve %s" +msgstr "ödesdigert: Kunde inte slå upp %s" + +#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 +msgid "Close" +msgstr "Stäng" + +#: lib/checkout_op.tcl:174 +#, tcl-format +msgid "Branch '%s' does not exist." +msgstr "Grenen \"%s\" finns inte." + +#: lib/checkout_op.tcl:193 +#, tcl-format +msgid "Failed to configure simplified git-pull for '%s'." +msgstr "Kunde inte konfigurera förenklad git-pull för '%s'." + +#: lib/checkout_op.tcl:228 +#, tcl-format +msgid "" +"Branch '%s' already exists.\n" +"\n" +"It cannot fast-forward to %s.\n" +"A merge is required." +msgstr "" +"Grenen \"%s\" finns redan.\n" +"\n" +"Den kan inte snabbspolas till %s.\n" +"En sammanslagning krävs." + +#: lib/checkout_op.tcl:242 +#, tcl-format +msgid "Merge strategy '%s' not supported." +msgstr "Sammanslagningsstrategin \"%s\" stöds inte." + +#: lib/checkout_op.tcl:261 +#, tcl-format +msgid "Failed to update '%s'." +msgstr "Misslyckades med att uppdatera \"%s\"." + +#: lib/checkout_op.tcl:273 +msgid "Staging area (index) is already locked." +msgstr "Köområdet (index) är redan låst." + +#: lib/checkout_op.tcl:288 +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 "" +"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n" +"\n" +"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste " +"utföra en ny sökning innan den aktuella grenen kan ändras.\n" +"\n" +"Sökningen kommer att startas automatiskt nu.\n" + +#: lib/checkout_op.tcl:344 +#, tcl-format +msgid "Updating working directory to '%s'..." +msgstr "Uppdaterar arbetskatalogen till \"%s\"..." + +#: lib/checkout_op.tcl:345 +msgid "files checked out" +msgstr "filer utcheckade" + +#: lib/checkout_op.tcl:375 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "Avbryter utcheckning av \"%s\" (sammanslagning på filnivå krävs)." + +#: lib/checkout_op.tcl:376 +msgid "File level merge required." +msgstr "Sammanslagning på filnivå krävs." + +#: lib/checkout_op.tcl:380 +#, tcl-format +msgid "Staying on branch '%s'." +msgstr "Stannar på grenen \"%s\"." + +#: lib/checkout_op.tcl:451 +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 "" +"Du är inte längre på en lokal gren.\n" +"\n" +"Om du ville vara på en gren skapar du en nu, baserad på \"Denna frånkopplade " +"utcheckning\"." + +#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#, tcl-format +msgid "Checked out '%s'." +msgstr "Checkade ut \"%s\"." + +#: lib/checkout_op.tcl:500 +#, tcl-format +msgid "Resetting '%s' to '%s' will lose the following commits:" +msgstr "" +"Om du återställer \"%s\" till \"%s\" går följande incheckningar förlorade:" + +#: lib/checkout_op.tcl:522 +msgid "Recovering lost commits may not be easy." +msgstr "Det kanske inte är så enkelt att återskapa förlorade incheckningar." + +#: lib/checkout_op.tcl:527 +#, tcl-format +msgid "Reset '%s'?" +msgstr "Återställa \"%s\"?" + +#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +msgid "Visualize" +msgstr "Visualisera" + +#: lib/checkout_op.tcl:600 +#, 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 "" +"Kunde inte ställa in aktuell gren.\n" +"\n" +"Arbetskatalogen har bara växlats delvis. Vi uppdaterade filerna utan " +"problem, men kunde inte uppdatera en intern fil i Git.\n" +"\n" +"Detta skulle inte ha hänt. %s kommer nu stängas och ge upp." + +#: lib/choose_font.tcl:39 +msgid "Select" +msgstr "Välj" + +#: lib/choose_font.tcl:53 +msgid "Font Family" +msgstr "Teckensnittsfamilj" + +#: lib/choose_font.tcl:74 +msgid "Font Size" +msgstr "Storlek" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "Exempel" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"Detta är en exempeltext.\n" +"Om du tycker om den här texten kan den vara ditt teckensnitt." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +msgid "Create New Repository" +msgstr "Skapa nytt arkiv" + +#: lib/choose_repository.tcl:93 +msgid "New..." +msgstr "Nytt..." + +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +msgid "Clone Existing Repository" +msgstr "Klona befintligt arkiv" + +#: lib/choose_repository.tcl:106 +msgid "Clone..." +msgstr "Klona..." + +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +msgid "Open Existing Repository" +msgstr "Öppna befintligt arkiv" + +#: lib/choose_repository.tcl:119 +msgid "Open..." +msgstr "Öppna..." + +#: lib/choose_repository.tcl:132 +msgid "Recent Repositories" +msgstr "Senaste arkiven" + +#: lib/choose_repository.tcl:138 +msgid "Open Recent Repository:" +msgstr "Öppna tidigare arkiv:" + +#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 +#: lib/choose_repository.tcl:316 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "Kunde inte skapa arkivet %s:" + +#: lib/choose_repository.tcl:387 +msgid "Directory:" +msgstr "Katalog:" + +#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 +#: lib/choose_repository.tcl:1017 +msgid "Git Repository" +msgstr "Gitarkiv" + +#: lib/choose_repository.tcl:442 +#, tcl-format +msgid "Directory %s already exists." +msgstr "Katalogen %s finns redan." + +#: lib/choose_repository.tcl:446 +#, tcl-format +msgid "File %s already exists." +msgstr "Filen %s finns redan." + +#: lib/choose_repository.tcl:460 +msgid "Clone" +msgstr "Klona" + +#: lib/choose_repository.tcl:473 +msgid "Source Location:" +msgstr "Plats för källkod:" + +#: lib/choose_repository.tcl:484 +msgid "Target Directory:" +msgstr "Målkatalog:" + +#: lib/choose_repository.tcl:496 +msgid "Clone Type:" +msgstr "Typ av klon:" + +#: lib/choose_repository.tcl:502 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "Standard (snabb, semiredundant, hårda länkar)" + +#: lib/choose_repository.tcl:508 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "Full kopia (långsammare, redundant säkerhetskopia)" + +#: lib/choose_repository.tcl:514 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "Delad (snabbast, rekommenderas ej, ingen säkerhetskopia)" + +#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 +#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 +#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "Inte ett Gitarkiv: %s" + +#: lib/choose_repository.tcl:586 +msgid "Standard only available for local repository." +msgstr "Standard är endast tillgängligt för lokala arkiv." + +#: lib/choose_repository.tcl:590 +msgid "Shared only available for local repository." +msgstr "Delat är endast tillgängligt för lokala arkiv." + +#: lib/choose_repository.tcl:611 +#, tcl-format +msgid "Location %s already exists." +msgstr "Platsen %s finns redan." + +#: lib/choose_repository.tcl:622 +msgid "Failed to configure origin" +msgstr "Kunde inte konfigurera ursprung" + +#: lib/choose_repository.tcl:634 +msgid "Counting objects" +msgstr "Räknar objekt" + +#: lib/choose_repository.tcl:635 +msgid "buckets" +msgstr "hinkar" + +#: lib/choose_repository.tcl:659 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "Kunde inte kopiera objekt/info/alternativ: %s" + +#: lib/choose_repository.tcl:695 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "Ingenting att klona från %s." + +#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 +#: lib/choose_repository.tcl:923 +msgid "The 'master' branch has not been initialized." +msgstr "Grenen \"master\" har inte initierats." + +#: lib/choose_repository.tcl:710 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "Hårda länkar är inte tillgängliga. Faller tillbaka på kopiering." + +#: lib/choose_repository.tcl:722 +#, tcl-format +msgid "Cloning from %s" +msgstr "Klonar från %s" + +#: lib/choose_repository.tcl:753 +msgid "Copying objects" +msgstr "Kopierar objekt" + +#: lib/choose_repository.tcl:754 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:778 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "Kunde inte kopiera objekt: %s" + +#: lib/choose_repository.tcl:788 +msgid "Linking objects" +msgstr "Länkar objekt" + +#: lib/choose_repository.tcl:789 +msgid "objects" +msgstr "objekt" + +#: lib/choose_repository.tcl:797 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "Kunde inte hårdlänka objekt: %s" + +#: lib/choose_repository.tcl:852 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "Kunde inte hämta grenar och objekt. Se konsolutdata för detaljer." + +#: lib/choose_repository.tcl:863 +msgid "Cannot fetch tags. See console output for details." +msgstr "Kunde inte hämta taggar. Se konsolutdata för detaljer." + +#: lib/choose_repository.tcl:887 +msgid "Cannot determine HEAD. See console output for details." +msgstr "Kunde inte avgöra HEAD. Se konsolutdata för detaljer." + +#: lib/choose_repository.tcl:896 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "Kunde inte städa upp %s" + +#: lib/choose_repository.tcl:902 +msgid "Clone failed." +msgstr "Kloning misslyckades." + +#: lib/choose_repository.tcl:909 +msgid "No default branch obtained." +msgstr "Hämtade ingen standardgren." + +#: lib/choose_repository.tcl:920 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "Kunde inte slå upp %s till någon incheckning." + +#: lib/choose_repository.tcl:932 +msgid "Creating working directory" +msgstr "Skapar arbetskatalog" + +#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 +#: lib/index.tcl:196 +msgid "files" +msgstr "filer" + +#: lib/choose_repository.tcl:962 +msgid "Initial file checkout failed." +msgstr "Inledande filutcheckning misslyckades." + +#: lib/choose_repository.tcl:978 +msgid "Open" +msgstr "Öppna" + +#: lib/choose_repository.tcl:988 +msgid "Repository:" +msgstr "Arkiv:" + +#: lib/choose_repository.tcl:1037 +#, tcl-format +msgid "Failed to open repository %s:" +msgstr "Kunde inte öppna arkivet %s:" + +#: lib/choose_rev.tcl:53 +msgid "This Detached Checkout" +msgstr "Denna frånkopplade utcheckning" + +#: lib/choose_rev.tcl:60 +msgid "Revision Expression:" +msgstr "Revisionsuttryck:" + +#: lib/choose_rev.tcl:74 +msgid "Local Branch" +msgstr "Lokal gren" + +#: lib/choose_rev.tcl:79 +msgid "Tracking Branch" +msgstr "Spårande gren" + +#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538 +msgid "Tag" +msgstr "Tagg" + +#: lib/choose_rev.tcl:317 +#, tcl-format +msgid "Invalid revision: %s" +msgstr "Ogiltig revision: %s" + +#: lib/choose_rev.tcl:338 +msgid "No revision selected." +msgstr "Ingen revision vald." + +#: lib/choose_rev.tcl:346 +msgid "Revision expression is empty." +msgstr "Revisionsuttrycket är tomt." + +#: lib/choose_rev.tcl:531 +msgid "Updated" +msgstr "Uppdaterad" + +#: lib/choose_rev.tcl:559 +msgid "URL" +msgstr "Webbadress" + +#: 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 "" +"Det finns ingenting att utöka.\n" +"\n" +"Du håller på att skapa den inledande incheckningen. Det finns ingen tidigare " +"incheckning att utöka.\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 "" +"Kan inte utöka vid sammanslagning.\n" +"\n" +"Du är i mitten av en sammanslagning som inte är fullbordad. Du kan inte " +"utöka tidigare incheckningar om du inte först avbryter den pågående " +"sammanslagningen.\n" + +#: lib/commit.tcl:48 +msgid "Error loading commit data for amend:" +msgstr "Fel vid inläsning av incheckningsdata för utökning:" + +#: lib/commit.tcl:75 +msgid "Unable to obtain your identity:" +msgstr "Kunde inte hämta din identitet:" + +#: lib/commit.tcl:80 +msgid "Invalid GIT_COMMITTER_IDENT:" +msgstr "Felaktig GIT_COMMITTER_IDENT:" + +#: lib/commit.tcl:132 +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 "" +"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n" +"\n" +"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste " +"utföra en ny sökning innan du kan göra en ny incheckning.\n" +"\n" +"Sökningen kommer att startas automatiskt nu.\n" + +#: lib/commit.tcl:155 +#, 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 "" +"Osammanslagna filer kan inte checkas in.\n" +"\n" +"Filen %s har sammanslagningskonflikter. Du måste lösa dem och köa filen " +"innan du checkar in den.\n" + +#: lib/commit.tcl:163 +#, tcl-format +msgid "" +"Unknown file state %s detected.\n" +"\n" +"File %s cannot be committed by this program.\n" +msgstr "" +"Okänd filstatus %s upptäckt.\n" +"\n" +"Filen %s kan inte checkas in av programmet.\n" + +#: lib/commit.tcl:171 +msgid "" +"No changes to commit.\n" +"\n" +"You must stage at least 1 file before you can commit.\n" +msgstr "" +"Inga ändringar att checka in.\n" +"\n" +"Du måste köa åtminstone en fil innan du kan checka in.\n" + +#: lib/commit.tcl:186 +msgid "" +"Please supply a commit message.\n" +"\n" +"A good commit message has the following format:\n" +"\n" +"- First line: Describe in one sentence what you did.\n" +"- Second line: Blank\n" +"- Remaining lines: Describe why this change is good.\n" +msgstr "" +"Ange ett incheckningsmeddelande.\n" +"\n" +"Ett bra incheckningsmeddelande har följande format:\n" +"\n" +"- Första raden: Beskriv i en mening vad du gjorde.\n" +"- Andra raden: Tom\n" +"- Följande rader: Beskriv varför det här är en bra ändring.\n" + +#: lib/commit.tcl:210 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "varning: Tcl stöder inte teckenkodningen \"%s\"." + +#: lib/commit.tcl:226 +msgid "Calling pre-commit hook..." +msgstr "Anropar kroken före incheckning (pre-commit)..." + +#: lib/commit.tcl:241 +msgid "Commit declined by pre-commit hook." +msgstr "Incheckningen avvisades av kroken före incheckning (pre-commit)." + +#: lib/commit.tcl:264 +msgid "Calling commit-msg hook..." +msgstr "Anropar kroken för incheckningsmeddelande (commit-msg)..." + +#: lib/commit.tcl:279 +msgid "Commit declined by commit-msg hook." +msgstr "Incheckning avvisad av kroken för incheckningsmeddelande (commit-msg)." + +#: lib/commit.tcl:292 +msgid "Committing changes..." +msgstr "Checkar in ändringar..." + +#: lib/commit.tcl:308 +msgid "write-tree failed:" +msgstr "write-tree misslyckades:" + +#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +msgid "Commit failed." +msgstr "Incheckningen misslyckades." + +#: lib/commit.tcl:326 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "Incheckningen %s verkar vara trasig" + +#: lib/commit.tcl:331 +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 "" +"Inga ändringar att checka in.\n" +"\n" +"Inga filer ändrades av incheckningen och det var inte en sammanslagning.\n" +"\n" +"En sökning kommer att startas automatiskt nu.\n" + +#: lib/commit.tcl:338 +msgid "No changes to commit." +msgstr "Inga ändringar att checka in." + +#: lib/commit.tcl:352 +msgid "commit-tree failed:" +msgstr "commit-tree misslyckades:" + +#: lib/commit.tcl:372 +msgid "update-ref failed:" +msgstr "update-ref misslyckades:" + +#: lib/commit.tcl:460 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "Skapade incheckningen %s: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "Arbetar... vänta..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "Lyckades" + +#: lib/console.tcl:200 +msgid "Error: Command Failed" +msgstr "Fel: Kommando misslyckades" + +#: lib/database.tcl:43 +msgid "Number of loose objects" +msgstr "Antal lösa objekt" + +#: lib/database.tcl:44 +msgid "Disk space used by loose objects" +msgstr "Diskutrymme använt av lösa objekt" + +#: lib/database.tcl:45 +msgid "Number of packed objects" +msgstr "Antal packade objekt" + +#: lib/database.tcl:46 +msgid "Number of packs" +msgstr "Antal paket" + +#: lib/database.tcl:47 +msgid "Disk space used by packed objects" +msgstr "Diskutrymme använt av packade objekt" + +#: lib/database.tcl:48 +msgid "Packed objects waiting for pruning" +msgstr "Packade objekt som väntar på städning" + +#: lib/database.tcl:49 +msgid "Garbage files" +msgstr "Skräpfiler" + +#: lib/database.tcl:72 +msgid "Compressing the object database" +msgstr "Komprimerar objektdatabasen" + +#: lib/database.tcl:83 +msgid "Verifying the object database with fsck-objects" +msgstr "Verifierar objektdatabasen med 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 "" +"Arkivet har för närvarande omkring %i lösa objekt.\n" +"\n" +"För att bibehålla optimal prestanda rekommenderas det å det bestämdaste att " +"du komprimerar databasen när den innehåller mer än %i lösa objekt.\n" +"\n" +"Komprimera databasen nu?" + +#: lib/date.tcl:25 +#, tcl-format +msgid "Invalid date from Git: %s" +msgstr "Ogiltigt datum från Git: %s" + +#: lib/diff.tcl:59 +#, 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 "" +"Hittade inga skillnader.\n" +"\n" +"%s innehåller inga ändringar.\n" +"\n" +"Modifieringsdatum för filen uppdaterades av ett annat program, men " +"innehållet i filen har inte ändrats.\n" +"\n" +"En sökning kommer automatiskt att startas för att hitta andra filer som kan " +"vara i samma tillstånd." + +#: lib/diff.tcl:99 +#, tcl-format +msgid "Loading diff of %s..." +msgstr "Läser differens för %s..." + +#: lib/diff.tcl:120 +msgid "" +"LOCAL: deleted\n" +"REMOTE:\n" +msgstr "" +"LOKAL: borttagen\n" +"FJÄRR:\n" + +#: lib/diff.tcl:125 +msgid "" +"REMOTE: deleted\n" +"LOCAL:\n" +msgstr "" +"FJÄRR: borttagen\n" +"LOKAL:\n" + +#: lib/diff.tcl:132 +msgid "LOCAL:\n" +msgstr "LOKAL:\n" + +#: lib/diff.tcl:135 +msgid "REMOTE:\n" +msgstr "FJÄRR:\n" + +#: lib/diff.tcl:197 lib/diff.tcl:296 +#, tcl-format +msgid "Unable to display %s" +msgstr "Kan inte visa %s" + +#: lib/diff.tcl:198 +msgid "Error loading file:" +msgstr "Fel vid läsning av fil:" + +#: lib/diff.tcl:205 +msgid "Git Repository (subproject)" +msgstr "Gitarkiv (underprojekt)" + +#: lib/diff.tcl:217 +msgid "* Binary file (not showing content)." +msgstr "* Binärfil (visar inte innehållet)." + +#: lib/diff.tcl:222 +#, tcl-format +msgid "" +"* Untracked file is %d bytes.\n" +"* Showing only first %d bytes.\n" +msgstr "" +"* Den ospårade filen är %d byte.\n" +"* Visar endast inledande %d byte.\n" + +#: lib/diff.tcl:228 +#, tcl-format +msgid "" +"\n" +"* Untracked file clipped here by %s.\n" +"* To see the entire file, use an external editor.\n" +msgstr "" +"\n" +"* Den ospårade filen klipptes här av %s.\n" +"* För att se hela filen, använd ett externt redigeringsprogram.\n" + +#: lib/diff.tcl:436 +msgid "Failed to unstage selected hunk." +msgstr "Kunde inte ta bort den valda delen från kön." + +#: lib/diff.tcl:443 +msgid "Failed to stage selected hunk." +msgstr "Kunde inte lägga till den valda delen till kön." + +#: lib/diff.tcl:509 +msgid "Failed to unstage selected line." +msgstr "Kunde inte ta bort den valda raden från kön." + +#: lib/diff.tcl:517 +msgid "Failed to stage selected line." +msgstr "Kunde inte lägga till den valda raden till kön." + +#: lib/encoding.tcl:443 +msgid "Default" +msgstr "Standard" + +#: lib/encoding.tcl:448 +#, tcl-format +msgid "System (%s)" +msgstr "Systemets (%s)" + +#: lib/encoding.tcl:459 lib/encoding.tcl:465 +msgid "Other" +msgstr "Annan" + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "fel" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "varning" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "Du måste rätta till felen ovan innan du checkar in." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." +msgstr "Kunde inte låsa upp indexet." + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "Indexfel" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "" +"Misslyckades med att uppdatera Gitindexet. En omsökning kommer att startas " +"automatiskt för att synkronisera om git-gui." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "Forstätt" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "Lås upp index" + +#: lib/index.tcl:287 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "Tar bort %s för incheckningskön" + +#: lib/index.tcl:326 +msgid "Ready to commit." +msgstr "Redo att checka in." + +#: lib/index.tcl:339 +#, tcl-format +msgid "Adding %s" +msgstr "Lägger till %s" + +#: lib/index.tcl:396 +#, tcl-format +msgid "Revert changes in file %s?" +msgstr "Återställ ändringarna i filen %s?" + +#: lib/index.tcl:398 +#, tcl-format +msgid "Revert changes in these %i files?" +msgstr "Återställ ändringarna i dessa %i filer?" + +#: lib/index.tcl:406 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "" +"Alla oköade ändringar kommer permanent gå förlorade vid återställningen." + +#: lib/index.tcl:409 +msgid "Do Nothing" +msgstr "Gör ingenting" + +#: lib/index.tcl:427 +msgid "Reverting selected files" +msgstr "Återställer valda filer" + +#: lib/index.tcl:431 +#, tcl-format +msgid "Reverting %s" +msgstr "Återställer %s" + +#: 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 "" +"Kan inte slå ihop vid utökning.\n" +"\n" +"Du måste göra färdig utökningen av incheckningen innan du påbörjar någon " +"slags sammanslagning.\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 "" +"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n" +"\n" +"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste " +"utföra en ny sökning innan du kan utföra en sammanslagning.\n" +"\n" +"Sökningen kommer att startas automatiskt nu.\n" + +#: lib/merge.tcl:45 +#, 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 "" +"Du är mitt i en sammanslagning med konflikter.\n" +"\n" +"Filen %s har sammanslagningskonflikter.\n" +"\n" +"Du måste lösa dem, köa filen och checka in för att fullborda den aktuella " +"sammanslagningen. När du gjort det kan du påbörja en ny sammanslagning.\n" + +#: lib/merge.tcl:55 +#, 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 "" +"Du är mitt i en ändring.\n" +"\n" +"Filen %s har ändringar.\n" +"\n" +"Du bör fullborda den aktuella incheckningen innan du påbörjar en " +"sammanslagning. Om du gör det blir det enklare att avbryta en misslyckad " +"sammanslagning, om det skulle vara nödvändigt.\n" + +#: lib/merge.tcl:107 +#, tcl-format +msgid "%s of %s" +msgstr "%s av %s" + +#: lib/merge.tcl:120 +#, tcl-format +msgid "Merging %s and %s..." +msgstr "Slår ihop %s och %s..." + +#: lib/merge.tcl:131 +msgid "Merge completed successfully." +msgstr "Sammanslagningen avslutades framgångsrikt." + +#: lib/merge.tcl:133 +msgid "Merge failed. Conflict resolution is required." +msgstr "Sammanslagningen misslyckades. Du måste lösa konflikterna." + +#: lib/merge.tcl:158 +#, tcl-format +msgid "Merge Into %s" +msgstr "Slå ihop i %s" + +#: lib/merge.tcl:177 +msgid "Revision To Merge" +msgstr "Revisioner att slå ihop" + +#: lib/merge.tcl:212 +msgid "" +"Cannot abort while amending.\n" +"\n" +"You must finish amending this commit.\n" +msgstr "" +"Kan inte avbryta vid utökning.\n" +"\n" +"Du måste göra dig färdig med att utöka incheckningen.\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 "" +"Avbryt sammanslagning?\n" +"\n" +"Om du avbryter sammanslagningen kommer *ALLA* ej incheckade ändringar att gå " +"förlorade.\n" +"\n" +"Gå vidare med att avbryta den aktuella sammanslagningen?" + +#: 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 "" +"Återställ ändringar?\n" +"\n" +"Om du återställer ändringarna kommer *ALLA* ej incheckade ändringar att gå " +"förlorade.\n" +"\n" +"Gå vidare med att återställa de aktuella ändringarna?" + +#: lib/merge.tcl:239 +msgid "Aborting" +msgstr "Avbryter" + +#: lib/merge.tcl:239 +msgid "files reset" +msgstr "filer återställda" + +#: lib/merge.tcl:267 +msgid "Abort failed." +msgstr "Misslyckades avbryta." + +#: lib/merge.tcl:269 +msgid "Abort completed. Ready." +msgstr "Avbrytning fullbordad. Redo." + +#: lib/mergetool.tcl:8 +msgid "Force resolution to the base version?" +msgstr "Tvinga lösning att använda basversionen?" + +#: lib/mergetool.tcl:9 +msgid "Force resolution to this branch?" +msgstr "Tvinga lösning att använda den aktuella grenen?" + +#: lib/mergetool.tcl:10 +msgid "Force resolution to the other branch?" +msgstr "Tvinga lösning att använda den andra grenen?" + +#: lib/mergetool.tcl:14 +#, tcl-format +msgid "" +"Note that the diff shows only conflicting changes.\n" +"\n" +"%s will be overwritten.\n" +"\n" +"This operation can be undone only by restarting the merge." +msgstr "" +"Observera att diffen endast visar de ändringar som står i konflikt.\n" +"\n" +"%s kommer att skrivas över.\n" +"\n" +"Du måste starta om sammanslagningen för att göra den här operationen ogjord." + +#: lib/mergetool.tcl:45 +#, tcl-format +msgid "File %s seems to have unresolved conflicts, still stage?" +msgstr "Filen %s verkar innehålla olösta konflikter. Vill du köa ändå?" + +#: lib/mergetool.tcl:60 +#, tcl-format +msgid "Adding resolution for %s" +msgstr "Lägger till lösning för %s" + +#: lib/mergetool.tcl:141 +msgid "Cannot resolve deletion or link conflicts using a tool" +msgstr "Kan inte lösa borttagnings- eller länkkonflikter med ett verktyg" + +#: lib/mergetool.tcl:146 +msgid "Conflict file does not exist" +msgstr "Konfliktfil existerar inte" + +#: lib/mergetool.tcl:264 +#, tcl-format +msgid "Not a GUI merge tool: '%s'" +msgstr "Inte ett grafiskt verktyg för sammanslagning: %s" + +#: lib/mergetool.tcl:268 +#, tcl-format +msgid "Unsupported merge tool '%s'" +msgstr "Verktyget \"%s\" för sammanslagning stöds inte" + +#: lib/mergetool.tcl:303 +msgid "Merge tool is already running, terminate it?" +msgstr "Verktyget för sammanslagning körs redan. Vill du avsluta det?" + +#: lib/mergetool.tcl:323 +#, tcl-format +msgid "" +"Error retrieving versions:\n" +"%s" +msgstr "" +"Fel vid hämtning av versioner:\n" +"%s" + +#: lib/mergetool.tcl:343 +#, tcl-format +msgid "" +"Could not start the merge tool:\n" +"\n" +"%s" +msgstr "" +"Kunde inte starta verktyg för sammanslagning:\n" +"\n" +"%s" + +#: lib/mergetool.tcl:347 +msgid "Running merge tool..." +msgstr "Kör verktyg för sammanslagning..." + +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 +msgid "Merge tool failed." +msgstr "Verktyget för sammanslagning misslyckades." + +#: lib/option.tcl:11 +#, tcl-format +msgid "Invalid global encoding '%s'" +msgstr "Den globala teckenkodningen \"%s\" är ogiltig" + +#: lib/option.tcl:19 +#, tcl-format +msgid "Invalid repo encoding '%s'" +msgstr "Arkivets teckenkodning \"%s\" är ogiltig" + +#: lib/option.tcl:117 +msgid "Restore Defaults" +msgstr "Återställ standardvärden" + +#: lib/option.tcl:121 +msgid "Save" +msgstr "Spara" + +#: lib/option.tcl:131 +#, tcl-format +msgid "%s Repository" +msgstr "Arkivet %s" + +#: lib/option.tcl:132 +msgid "Global (All Repositories)" +msgstr "Globalt (alla arkiv)" + +#: lib/option.tcl:138 +msgid "User Name" +msgstr "Användarnamn" + +#: lib/option.tcl:139 +msgid "Email Address" +msgstr "E-postadress" + +#: lib/option.tcl:141 +msgid "Summarize Merge Commits" +msgstr "Summera sammanslagningsincheckningar" + +#: lib/option.tcl:142 +msgid "Merge Verbosity" +msgstr "Pratsamhet för sammanslagningar" + +#: lib/option.tcl:143 +msgid "Show Diffstat After Merge" +msgstr "Visa diffstatistik efter sammanslagning" + +#: lib/option.tcl:144 +msgid "Use Merge Tool" +msgstr "Använd verktyg för sammanslagning" + +#: lib/option.tcl:146 +msgid "Trust File Modification Timestamps" +msgstr "Lita på filändringstidsstämplar" + +#: lib/option.tcl:147 +msgid "Prune Tracking Branches During Fetch" +msgstr "Städa spårade grenar vid hämtning" + +#: lib/option.tcl:148 +msgid "Match Tracking Branches" +msgstr "Matcha spårade grenar" + +#: lib/option.tcl:149 +msgid "Blame Copy Only On Changed Files" +msgstr "Klandra kopiering bara i ändrade filer" + +#: lib/option.tcl:150 +msgid "Minimum Letters To Blame Copy On" +msgstr "Minsta antal tecken att klandra kopiering för" + +#: lib/option.tcl:151 +msgid "Blame History Context Radius (days)" +msgstr "Historikradie för klandring (dagar)" + +#: lib/option.tcl:152 +msgid "Number of Diff Context Lines" +msgstr "Antal rader sammanhang i differenser" + +#: lib/option.tcl:153 +msgid "Commit Message Text Width" +msgstr "Textbredd för incheckningsmeddelande" + +#: lib/option.tcl:154 +msgid "New Branch Name Template" +msgstr "Mall för namn på nya grenar" + +#: lib/option.tcl:155 +msgid "Default File Contents Encoding" +msgstr "Standardteckenkodning för filinnehåll" + +#: lib/option.tcl:203 +msgid "Change" +msgstr "Ändra" + +#: lib/option.tcl:230 +msgid "Spelling Dictionary:" +msgstr "Stavningsordlista:" + +#: lib/option.tcl:254 +msgid "Change Font" +msgstr "Byt teckensnitt" + +#: lib/option.tcl:258 +#, tcl-format +msgid "Choose %s" +msgstr "Välj %s" + +#: lib/option.tcl:264 +msgid "pt." +msgstr "p." + +#: lib/option.tcl:278 +msgid "Preferences" +msgstr "Inställningar" + +#: lib/option.tcl:314 +msgid "Failed to completely save options:" +msgstr "Misslyckades med att helt spara alternativ:" + +#: lib/remote.tcl:163 +msgid "Remove Remote" +msgstr "Ta bort fjärrarkiv" + +#: lib/remote.tcl:168 +msgid "Prune from" +msgstr "Ta bort från" + +#: lib/remote.tcl:173 +msgid "Fetch from" +msgstr "Hämta från" + +#: lib/remote.tcl:215 +msgid "Push to" +msgstr "Sänd till" + +#: lib/remote_add.tcl:19 +msgid "Add Remote" +msgstr "Lägg till fjärrarkiv" + +#: lib/remote_add.tcl:24 +msgid "Add New Remote" +msgstr "Lägg till nytt fjärrarkiv" + +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 +msgid "Add" +msgstr "Lägg till" + +#: lib/remote_add.tcl:37 +msgid "Remote Details" +msgstr "Detaljer för fjärrarkiv" + +#: lib/remote_add.tcl:50 +msgid "Location:" +msgstr "Plats:" + +#: lib/remote_add.tcl:62 +msgid "Further Action" +msgstr "Ytterligare åtgärd" + +#: lib/remote_add.tcl:65 +msgid "Fetch Immediately" +msgstr "Hämta omedelbart" + +#: lib/remote_add.tcl:71 +msgid "Initialize Remote Repository and Push" +msgstr "Initiera fjärrarkiv och sänd till" + +#: lib/remote_add.tcl:77 +msgid "Do Nothing Else Now" +msgstr "Gör ingent mer nu" + +#: lib/remote_add.tcl:101 +msgid "Please supply a remote name." +msgstr "Ange ett namn för fjärrarkivet." + +#: lib/remote_add.tcl:114 +#, tcl-format +msgid "'%s' is not an acceptable remote name." +msgstr "\"%s\" kan inte användas som namn på fjärrarkivet." + +#: lib/remote_add.tcl:125 +#, tcl-format +msgid "Failed to add remote '%s' of location '%s'." +msgstr "Kunde inte lägga till fjärrarkivet \"%s\" på platsen \"%s\"." + +#: lib/remote_add.tcl:133 lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "hämta %s" + +#: lib/remote_add.tcl:134 +#, tcl-format +msgid "Fetching the %s" +msgstr "Hämtar %s" + +#: lib/remote_add.tcl:157 +#, tcl-format +msgid "Do not know how to initialize repository at location '%s'." +msgstr "Vet inte hur arkivet på platsen \"%s\" skall initieras." + +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 +#, tcl-format +msgid "push %s" +msgstr "sänd %s" + +#: lib/remote_add.tcl:164 +#, tcl-format +msgid "Setting up the %s (at %s)" +msgstr "Konfigurerar %s (på %s)" + +#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 +msgid "Delete Branch Remotely" +msgstr "Ta bort gren från fjärrarkiv" + +#: lib/remote_branch_delete.tcl:47 +msgid "From Repository" +msgstr "Från arkiv" + +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 +msgid "Remote:" +msgstr "Fjärrarkiv:" + +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 +msgid "Arbitrary Location:" +msgstr "Godtycklig plats:" + +#: lib/remote_branch_delete.tcl:84 +msgid "Branches" +msgstr "Grenar" + +#: lib/remote_branch_delete.tcl:109 +msgid "Delete Only If" +msgstr "Ta endast bort om" + +#: lib/remote_branch_delete.tcl:111 +msgid "Merged Into:" +msgstr "Sammanslagen i:" + +#: lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Alltid (utför inte sammanslagningstest)" + +#: lib/remote_branch_delete.tcl:152 +msgid "A branch is required for 'Merged Into'." +msgstr "En gren krävs för \"Sammanslagen i\"." + +#: lib/remote_branch_delete.tcl:184 +#, tcl-format +msgid "" +"The following branches are not completely merged into %s:\n" +"\n" +" - %s" +msgstr "" +"Följande grenar har inte helt slagits samman i %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 "" +"En eller flera av sammanslagningstesterna misslyckades eftersom du inte har " +"hämtat de nödvändiga incheckningarna. Försök hämta från %s först." + +#: lib/remote_branch_delete.tcl:207 +msgid "Please select one or more branches to delete." +msgstr "Välj en eller flera grenar att ta bort." + +#: lib/remote_branch_delete.tcl:216 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Det kan vara svårt att återställa borttagna grenar.\n" +"\n" +"Ta bort de valda grenarna?" + +#: lib/remote_branch_delete.tcl:226 +#, tcl-format +msgid "Deleting branches from %s" +msgstr "Tar bort grenar från %s" + +#: lib/remote_branch_delete.tcl:286 +msgid "No repository selected." +msgstr "Inget arkiv markerat." + +#: lib/remote_branch_delete.tcl:291 +#, tcl-format +msgid "Scanning %s..." +msgstr "Söker %s..." + +#: lib/search.tcl:21 +msgid "Find:" +msgstr "Sök:" + +#: lib/search.tcl:23 +msgid "Next" +msgstr "Nästa" + +#: lib/search.tcl:24 +msgid "Prev" +msgstr "Föreg" + +#: lib/search.tcl:25 +msgid "Case-Sensitive" +msgstr "Skilj på VERSALER/gemener" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "Kan inte skriva genväg:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "Kan inte skriva ikon:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "Stavningskontrollprogrammet stöds inte" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "Stavningskontroll är ej tillgänglig" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "Ogiltig inställning för stavningskontroll" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "Återställer ordlistan till %s." + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "Stavningskontroll misslyckades tyst vid start" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "Stavningskontrollprogrammet känns inte igen" + +#: lib/spellcheck.tcl:186 +msgid "No Suggestions" +msgstr "Inga förslag" + +#: lib/spellcheck.tcl:388 +msgid "Unexpected EOF from spell checker" +msgstr "Oväntat filslut från stavningskontroll" + +#: lib/spellcheck.tcl:392 +msgid "Spell Checker Failed" +msgstr "Stavningskontroll misslyckades" + +#: lib/sshkey.tcl:31 +msgid "No keys found." +msgstr "Inga nycklar hittades." + +#: lib/sshkey.tcl:34 +#, tcl-format +msgid "Found a public key in: %s" +msgstr "Hittade öppen nyckel i: %s" + +#: lib/sshkey.tcl:40 +msgid "Generate Key" +msgstr "Skapa nyckel" + +#: lib/sshkey.tcl:56 +msgid "Copy To Clipboard" +msgstr "Kopiera till Urklipp" + +#: lib/sshkey.tcl:70 +msgid "Your OpenSSH Public Key" +msgstr "Din öppna OpenSSH-nyckel" + +#: lib/sshkey.tcl:78 +msgid "Generating..." +msgstr "Skapar..." + +#: lib/sshkey.tcl:84 +#, tcl-format +msgid "" +"Could not start ssh-keygen:\n" +"\n" +"%s" +msgstr "" +"Kunde inte starta ssh-keygen:\n" +"\n" +"%s" + +#: lib/sshkey.tcl:111 +msgid "Generation failed." +msgstr "Misslyckades med att skapa." + +#: lib/sshkey.tcl:118 +msgid "Generation succeded, but no keys found." +msgstr "Lyckades skapa nyckeln, men hittar inte någon nyckel." + +#: lib/sshkey.tcl:121 +#, tcl-format +msgid "Your key is in: %s" +msgstr "Din nyckel finns i: %s" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s... %*i av %*i %s (%3i%%)" + +#: lib/tools.tcl:75 +#, tcl-format +msgid "Running %s requires a selected file." +msgstr "För att starta %s måste du välja en fil." + +#: lib/tools.tcl:90 +#, tcl-format +msgid "Are you sure you want to run %s?" +msgstr "Är du säker på att du vill starta %s?" + +#: lib/tools.tcl:110 +#, tcl-format +msgid "Tool: %s" +msgstr "Verktyg: %s" + +#: lib/tools.tcl:111 +#, tcl-format +msgid "Running: %s" +msgstr "Exekverar: %s" + +#: lib/tools.tcl:149 +#, tcl-format - msgid "Tool completed succesfully: %s" ++msgid "Tool completed successfully: %s" +msgstr "Verktyget avslutades framgångsrikt: %s" + +#: lib/tools.tcl:151 +#, tcl-format +msgid "Tool failed: %s" +msgstr "Verktyget misslyckades: %s" + +#: lib/tools_dlg.tcl:22 +msgid "Add Tool" +msgstr "Lägg till verktyg" + +#: lib/tools_dlg.tcl:28 +msgid "Add New Tool Command" +msgstr "Lägg till nytt verktygskommando" + +#: lib/tools_dlg.tcl:33 +msgid "Add globally" +msgstr "Lägg till globalt" + +#: lib/tools_dlg.tcl:45 +msgid "Tool Details" +msgstr "Detaljer för verktyg" + +#: lib/tools_dlg.tcl:48 +msgid "Use '/' separators to create a submenu tree:" +msgstr "Använd \"/\"-avdelare för att skapa ett undermenyträd:" + +#: lib/tools_dlg.tcl:61 +msgid "Command:" +msgstr "Kommando:" + +#: lib/tools_dlg.tcl:74 +msgid "Show a dialog before running" +msgstr "Visa dialog innan programmet startas" + +#: lib/tools_dlg.tcl:80 +msgid "Ask the user to select a revision (sets $REVISION)" +msgstr "Be användaren välja en version (sätter $REVISION)" + +#: lib/tools_dlg.tcl:85 +msgid "Ask the user for additional arguments (sets $ARGS)" +msgstr "Be användaren om ytterligare parametrar (sätter $ARGS)" + +#: lib/tools_dlg.tcl:92 +msgid "Don't show the command output window" +msgstr "Visa inte kommandots utdatafönster" + +#: lib/tools_dlg.tcl:97 +msgid "Run only if a diff is selected ($FILENAME not empty)" +msgstr "Kör endast om en diff har markerats ($FILENAME är inte tomt)" + +#: lib/tools_dlg.tcl:121 +msgid "Please supply a name for the tool." +msgstr "Ange ett namn för verktyget." + +#: lib/tools_dlg.tcl:129 +#, tcl-format +msgid "Tool '%s' already exists." +msgstr "Verktyget \"%s\" finns redan." + +#: lib/tools_dlg.tcl:151 +#, tcl-format +msgid "" +"Could not add tool:\n" +"%s" +msgstr "" +"Kunde inte lägga till verktyget:\n" +"%s" + +#: lib/tools_dlg.tcl:190 +msgid "Remove Tool" +msgstr "Ta bort verktyg" + +#: lib/tools_dlg.tcl:196 +msgid "Remove Tool Commands" +msgstr "Ta bort verktygskommandon" + +#: lib/tools_dlg.tcl:200 +msgid "Remove" +msgstr "Ta bort" + +#: lib/tools_dlg.tcl:236 +msgid "(Blue denotes repository-local tools)" +msgstr "(Blått anger verktyg lokala för arkivet)" + +#: lib/tools_dlg.tcl:297 +#, tcl-format +msgid "Run Command: %s" +msgstr "Kör kommandot: %s" + +#: lib/tools_dlg.tcl:311 +msgid "Arguments" +msgstr "Argument" + +#: lib/tools_dlg.tcl:348 +msgid "OK" +msgstr "OK" + +#: lib/transport.tcl:7 +#, tcl-format +msgid "Fetching new changes from %s" +msgstr "Hämtar nya ändringar från %s" + +#: lib/transport.tcl:18 +#, tcl-format +msgid "remote prune %s" +msgstr "fjärrborttagning %s" + +#: lib/transport.tcl:19 +#, tcl-format +msgid "Pruning tracking branches deleted from %s" +msgstr "Tar bort spårande grenar som tagits bort från %s" + +#: lib/transport.tcl:26 +#, tcl-format +msgid "Pushing changes to %s" +msgstr "Sänder ändringar till %s" + +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "Speglar till %s" + +#: lib/transport.tcl:82 +#, tcl-format +msgid "Pushing %s %s to %s" +msgstr "Sänder %s %s till %s" + +#: lib/transport.tcl:100 +msgid "Push Branches" +msgstr "Sänd grenar" + +#: lib/transport.tcl:114 +msgid "Source Branches" +msgstr "Källgrenar" + +#: lib/transport.tcl:131 +msgid "Destination Repository" +msgstr "Destinationsarkiv" + +#: lib/transport.tcl:169 +msgid "Transfer Options" +msgstr "Överföringsalternativ" + +#: lib/transport.tcl:171 +msgid "Force overwrite existing branch (may discard changes)" +msgstr "Tvinga överskrivning av befintlig gren (kan kasta bort ändringar)" + +#: lib/transport.tcl:175 +msgid "Use thin pack (for slow network connections)" +msgstr "Använd tunt paket (för långsamma nätverksanslutningar)" + +#: lib/transport.tcl:179 +msgid "Include tags" +msgstr "Ta med taggar" + +#~ msgid "URL:" +#~ msgstr "Webbadress:" + +#~ msgid "Delete Remote Branch" +#~ msgstr "Ta bort fjärrgren" + +#~ msgid "" +#~ "Unable to start gitk:\n" +#~ "\n" +#~ "%s does not exist" +#~ msgstr "" +#~ "Kan inte starta gitk:\n" +#~ "\n" +#~ "%s finns inte" + +#~ msgid "Apple" +#~ msgstr "Äpple" + +#~ msgid "Not connected to aspell" +#~ msgstr "Inte ansluten till aspell" diff --cc git-gui/po/zh_cn.po index d2c686667,000000000..91c1be23c mode 100644,000000..100644 --- a/git-gui/po/zh_cn.po +++ b/git-gui/po/zh_cn.po @@@ -1,1977 -1,0 +1,1967 @@@ +# 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 , 2007. +# +# Please use the following translation throughout the file for consistence: +# +# repository 版本库 +# commit 提交 +# revision 版本 +# branch 分支 +# tag 标签 +# annotation 标注 +# merge 合并 +# fast forward 快速合并(??) +# stage 缓存 (译自 index/cache) +# amend 修正 +# reset 复位 +# +# 2008-01-06 Eric Miao +# FIXME: checkout 的标准翻译 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: git-gui\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-03-14 07:18+0100\n" +"PO-Revision-Date: 2007-07-21 01:23-0700\n" +"Last-Translator: Eric Miao \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: 致命错误" + +#: git-gui.sh:593 +#, 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:918 +msgid "Git directory not found:" +msgstr "Git 目录无法找到:" + +#: git-gui.sh:925 +msgid "Cannot move to top of working directory:" +msgstr "无法移动到工作根目录:" + +#: git-gui.sh:932 +msgid "Cannot use funny .git directory:" +msgstr "无法使用 .git 目录:" + +#: git-gui.sh:937 +msgid "No working directory" +msgstr "没有工作目录" + +#: git-gui.sh:1084 lib/checkout_op.tcl:283 +msgid "Refreshing file status..." +msgstr "更新文件状态..." + +#: git-gui.sh:1149 +msgid "Scanning for modified files ..." +msgstr "扫描修改过的文件 ..." + +#: git-gui.sh:1324 lib/browser.tcl:246 +msgid "Ready." +msgstr "就绪" + +#: git-gui.sh:1590 +msgid "Unmodified" +msgstr "未修改" + +#: git-gui.sh:1592 +msgid "Modified, not staged" +msgstr "修改但未缓存" + +#: git-gui.sh:1593 git-gui.sh:1598 +msgid "Staged for commit" +msgstr "缓存为提交" + +#: git-gui.sh:1594 git-gui.sh:1599 +msgid "Portions staged for commit" +msgstr "部分缓存为提交" + +#: git-gui.sh:1595 git-gui.sh:1600 +msgid "Staged for commit, missing" +msgstr "缓存为提交, 不存在" + +#: git-gui.sh:1597 +msgid "Untracked, not staged" +msgstr "未跟踪, 未缓存" + +#: git-gui.sh:1602 +msgid "Missing" +msgstr "不存在" + +#: git-gui.sh:1603 +msgid "Staged for removal" +msgstr "缓存为删除" + +#: git-gui.sh:1604 +msgid "Staged for removal, still present" +msgstr "缓存为删除, 但仍存在" + +#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609 +msgid "Requires merge resolution" +msgstr "需要解决合并冲突" + +#: git-gui.sh:1644 +msgid "Starting gitk... please wait..." +msgstr "启动 gitk... 请等待..." + +#: git-gui.sh:1653 +#, tcl-format +msgid "" +"Unable to start gitk:\n" +"\n" +"%s does not exist" +msgstr "" +"无法启动 gitk:\n" +"\n" +"%s 不存在" + +#: git-gui.sh:1860 lib/choose_repository.tcl:36 +msgid "Repository" +msgstr "版本库(repository)" + +#: git-gui.sh:1861 +msgid "Edit" +msgstr "编辑" + +#: git-gui.sh:1863 lib/choose_rev.tcl:561 +msgid "Branch" +msgstr "分支(branch)" + +#: git-gui.sh:1866 lib/choose_rev.tcl:548 +msgid "Commit@@noun" +msgstr "提交(commit)" + +#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167 +msgid "Merge" +msgstr "合并(merge)" + +#: git-gui.sh:1870 lib/choose_rev.tcl:557 +msgid "Remote" +msgstr "远端(remote)" + +#: git-gui.sh:1879 +msgid "Browse Current Branch's Files" +msgstr "浏览当前分支上的文件" + +#: git-gui.sh:1883 +msgid "Browse Branch Files..." +msgstr "浏览分支上的文件..." + +#: git-gui.sh:1888 +msgid "Visualize Current Branch's History" +msgstr "图示当前分支的历史" + +#: git-gui.sh:1892 +msgid "Visualize All Branch History" +msgstr "图示所有分支的历史" + +#: git-gui.sh:1899 +#, tcl-format +msgid "Browse %s's Files" +msgstr "浏览 %s 上的文件" + +#: git-gui.sh:1901 +#, tcl-format +msgid "Visualize %s's History" +msgstr "图示 %s 分支的历史" + +#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67 +msgid "Database Statistics" +msgstr "数据库统计信息" + +#: git-gui.sh:1909 lib/database.tcl:34 +msgid "Compress Database" +msgstr "压缩数据库" + +#: git-gui.sh:1912 +msgid "Verify Database" +msgstr "验证数据库" + +#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7 +#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +msgid "Create Desktop Icon" +msgstr "创建桌面图标" + +#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185 +msgid "Quit" +msgstr "退出" + +#: git-gui.sh:1939 +msgid "Undo" +msgstr "撤销" + +#: git-gui.sh:1942 +msgid "Redo" +msgstr "重做" + +#: git-gui.sh:1946 git-gui.sh:2443 +msgid "Cut" +msgstr "剪切" + +#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614 +#: lib/console.tcl:69 +msgid "Copy" +msgstr "复制" + +#: git-gui.sh:1952 git-gui.sh:2449 +msgid "Paste" +msgstr "粘贴" + +#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26 +#: lib/remote_branch_delete.tcl:38 +msgid "Delete" +msgstr "删除" + +#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71 +msgid "Select All" +msgstr "全选" + +#: git-gui.sh:1968 +msgid "Create..." +msgstr "新建..." + +#: git-gui.sh:1974 +msgid "Checkout..." +msgstr "Checkout..." + +#: git-gui.sh:1980 +msgid "Rename..." +msgstr "更名..." + +#: git-gui.sh:1985 git-gui.sh:2085 +msgid "Delete..." +msgstr "删除..." + +#: git-gui.sh:1990 +msgid "Reset..." +msgstr "复位(Reset)..." + +#: git-gui.sh:2002 git-gui.sh:2389 +msgid "New Commit" +msgstr "新建提交" + +#: git-gui.sh:2010 git-gui.sh:2396 +msgid "Amend Last Commit" +msgstr "修正上次提交" + +#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99 +msgid "Rescan" +msgstr "重新扫描" + +#: git-gui.sh:2025 +msgid "Stage To Commit" +msgstr "缓存为提交" + +#: git-gui.sh:2031 +msgid "Stage Changed Files To Commit" +msgstr "缓存修改的文件为提交" + +#: git-gui.sh:2037 +msgid "Unstage From Commit" +msgstr "从本次提交撤除" + +#: git-gui.sh:2042 lib/index.tcl:395 +msgid "Revert Changes" +msgstr "撤销修改" + +#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467 +msgid "Sign Off" +msgstr "签名(Sign Off)" + +#: git-gui.sh:2053 git-gui.sh:2372 +msgid "Commit@@verb" +msgstr "提交" + +#: git-gui.sh:2064 +msgid "Local Merge..." +msgstr "本地合并..." + +#: git-gui.sh:2069 +msgid "Abort Merge..." +msgstr "中止合并..." + +#: git-gui.sh:2081 +msgid "Push..." +msgstr "上传..." + +#: git-gui.sh:2092 lib/choose_repository.tcl:41 +msgid "Apple" +msgstr "苹果" + +#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50 +#, tcl-format +msgid "About %s" +msgstr "关于 %s" + +#: git-gui.sh:2099 +msgid "Preferences..." +msgstr "首选项..." + +#: git-gui.sh:2107 git-gui.sh:2639 +msgid "Options..." +msgstr "选项..." + +#: git-gui.sh:2113 lib/choose_repository.tcl:47 +msgid "Help" +msgstr "帮助" + +#: git-gui.sh:2154 +msgid "Online Documentation" +msgstr "在线文档" + +#: git-gui.sh:2238 +#, tcl-format +msgid "fatal: cannot stat path %s: No such file or directory" +msgstr "致命错误: 无法获取路径 %s 的信息: 该文件或目录不存在" + +#: git-gui.sh:2271 +msgid "Current Branch:" +msgstr "当前分支:" + +#: git-gui.sh:2292 +msgid "Staged Changes (Will Commit)" +msgstr "已缓存的改动 (将被提交)" + +#: git-gui.sh:2312 +msgid "Unstaged Changes" +msgstr "未缓存的改动" + +#: git-gui.sh:2362 +msgid "Stage Changed" +msgstr "缓存改动" + +#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182 +msgid "Push" +msgstr "上传" + +#: git-gui.sh:2408 +msgid "Initial Commit Message:" +msgstr "初始的提交描述:" + +#: git-gui.sh:2409 +msgid "Amended Commit Message:" +msgstr "修正的提交描述:" + +#: git-gui.sh:2410 +msgid "Amended Initial Commit Message:" +msgstr "修正的初始提交描述:" + +#: git-gui.sh:2411 +msgid "Amended Merge Commit Message:" +msgstr "修正的合并提交描述:" + +#: git-gui.sh:2412 +msgid "Merge Commit Message:" +msgstr "合并提交描述:" + +#: git-gui.sh:2413 +msgid "Commit Message:" +msgstr "提交描述:" + +#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73 +msgid "Copy All" +msgstr "全部复制" + +#: git-gui.sh:2483 lib/blame.tcl:107 +msgid "File:" +msgstr "文件:" + +#: git-gui.sh:2589 +msgid "Apply/Reverse Hunk" +msgstr "应用/撤消此修改块" + +#: git-gui.sh:2595 +msgid "Show Less Context" +msgstr "显示更少上下文" + +#: git-gui.sh:2602 +msgid "Show More Context" +msgstr "显示更多上下文" + +#: git-gui.sh:2610 +msgid "Refresh" +msgstr "刷新" + +#: git-gui.sh:2631 +msgid "Decrease Font Size" +msgstr "缩小字体" + +#: git-gui.sh:2635 +msgid "Increase Font Size" +msgstr "放大字体" + +#: git-gui.sh:2646 +msgid "Unstage Hunk From Commit" +msgstr "从提交中撤除修改块" + +#: git-gui.sh:2648 +msgid "Stage Hunk For Commit" +msgstr "缓存修改块为提交" + +#: git-gui.sh:2667 +msgid "Initializing..." +msgstr "初始化..." + +#: git-gui.sh:2762 +#, 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:2792 +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:2797 +#, 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 的一个很好的替代方案是将 user.name 以及\n" +"user.email 设置放在你的个人 ~/.gitconfig 文件中.\n" + +#: lib/about.tcl:26 +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:264 +msgid "Copy Commit" +msgstr "复制提交" + +#: lib/blame.tcl:384 +#, tcl-format +msgid "Reading %s..." +msgstr "读取 %s..." + +#: lib/blame.tcl:488 +msgid "Loading copy/move tracking annotations..." +msgstr "装载复制/移动跟踪标注..." + +#: lib/blame.tcl:508 +msgid "lines annotated" +msgstr "标注行" + +#: lib/blame.tcl:689 +msgid "Loading original location annotations..." +msgstr "装载原始位置标注..." + +#: lib/blame.tcl:692 +msgid "Annotation complete." +msgstr "标注完成." + +#: lib/blame.tcl:746 +msgid "Loading annotation..." +msgstr "裝載标注..." + +#: lib/blame.tcl:802 +msgid "Author:" +msgstr "作者:" + +#: lib/blame.tcl:806 +msgid "Committer:" +msgstr "提交者:" + +#: lib/blame.tcl:811 +msgid "Original File:" +msgstr "原始文件:" + +#: lib/blame.tcl:925 +msgid "Originally By:" +msgstr "最初由:" + +#: lib/blame.tcl:931 +msgid "In File:" +msgstr "在文件:" + +#: lib/blame.tcl:936 +msgid "Copied Or Moved Here By:" +msgstr "由复制或移动至此:" + +#: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19 +msgid "Checkout Branch" +msgstr "Checkout 分支" + +#: 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:282 +#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171 +#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97 +msgid "Cancel" +msgstr "取消" + +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 +msgid "Revision" +msgstr "版本" + +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242 +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:371 +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 "在创建后Checkout" + +#: 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:126 lib/browser.tcl:143 +#, tcl-format +msgid "Loading %s..." +msgstr "装载 %s..." + +#: lib/browser.tcl:187 +msgid "[Up To Parent]" +msgstr "[上层目录]" + +#: lib/browser.tcl:267 lib/browser.tcl:273 +msgid "Browse Branch Files" +msgstr "浏览分支文件" + +#: lib/browser.tcl:278 lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:987 +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:81 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 "缓存区域 (index) 已被锁定." + +#: 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:323 +msgid "files checked out" +msgstr "" + +#: lib/checkout_op.tcl:353 +#, tcl-format +msgid "Aborted checkout of '%s' (file level merging is required)." +msgstr "中止 '%s' 的 checkout 操作 (需要做文件级合并)." + +#: 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" +"如果你想位于某分支上, 从当前脱节的Checkout中创建一个新分支." + +#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450 +#, tcl-format +msgid "Checked out '%s'." +msgstr "'%s' 已被 checkout" + +#: 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:163 +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:74 +msgid "Font Size" +msgstr "字体大小" + +#: lib/choose_font.tcl:91 +msgid "Font Example" +msgstr "字体样例" + +#: lib/choose_font.tcl:103 +msgid "" +"This is example text.\n" +"If you like this text, it can be your font." +msgstr "" +"这是样例文本.\n" +"如果你喜欢, 你可以设置该字体." + +#: lib/choose_repository.tcl:28 +msgid "Git Gui" +msgstr "Git Gui" + +#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376 +msgid "Create New Repository" +msgstr "创建新的版本库" + +#: lib/choose_repository.tcl:87 +msgid "New..." +msgstr "新建..." + +#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460 +msgid "Clone Existing Repository" +msgstr "克隆已有版本库" + +#: lib/choose_repository.tcl:100 +msgid "Clone..." +msgstr "克隆..." + +#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976 +msgid "Open Existing Repository" +msgstr "打开已有版本库" + +#: lib/choose_repository.tcl:113 +msgid "Open..." +msgstr "打开..." + +#: lib/choose_repository.tcl:126 +msgid "Recent Repositories" +msgstr "最近版本库" + +#: lib/choose_repository.tcl:132 +msgid "Open Recent Repository:" +msgstr "打开最近版本库" + +#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303 +#: lib/choose_repository.tcl:310 +#, tcl-format +msgid "Failed to create repository %s:" +msgstr "无法创建版本库 %s:" + +#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478 +msgid "Directory:" +msgstr "目录:" + +#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537 +#: lib/choose_repository.tcl:1011 +msgid "Git Repository" +msgstr "Git 版本库" + +#: lib/choose_repository.tcl:437 +#, tcl-format +msgid "Directory %s already exists." +msgstr "目录 %s 已经存在." + +#: lib/choose_repository.tcl:441 +#, tcl-format +msgid "File %s already exists." +msgstr "文件 %s 已经存在." + +#: lib/choose_repository.tcl:455 +msgid "Clone" +msgstr "克隆" + +#: lib/choose_repository.tcl:468 +msgid "URL:" +msgstr "URL:" + +#: lib/choose_repository.tcl:489 +msgid "Clone Type:" +msgstr "克隆类型:" + +#: lib/choose_repository.tcl:495 +msgid "Standard (Fast, Semi-Redundant, Hardlinks)" +msgstr "标准方式 (快速, 部分备份, 作硬连接)" + +#: lib/choose_repository.tcl:501 +msgid "Full Copy (Slower, Redundant Backup)" +msgstr "全部复制 (较慢, 做备份)" + +#: lib/choose_repository.tcl:507 +msgid "Shared (Fastest, Not Recommended, No Backup)" +msgstr "共享方式 (最快, 不推荐, 不做备份)" + +#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806 +#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025 +#, tcl-format +msgid "Not a Git repository: %s" +msgstr "不是一个 Git 版本库: %s" + +#: lib/choose_repository.tcl:579 +msgid "Standard only available for local repository." +msgstr "标准方式仅当是本地版本库时有效." + +#: lib/choose_repository.tcl:583 +msgid "Shared only available for local repository." +msgstr "共享方式仅当是本地版本库时有效." + +#: lib/choose_repository.tcl:604 +#, tcl-format +msgid "Location %s already exists." +msgstr "位置 %s 已经存在." + +#: lib/choose_repository.tcl:615 +msgid "Failed to configure origin" +msgstr "无法配置 origin" + +#: lib/choose_repository.tcl:627 +msgid "Counting objects" +msgstr "清点对象" + +#: lib/choose_repository.tcl:628 +#, fuzzy +msgid "buckets" +msgstr "水桶??" + +#: lib/choose_repository.tcl:652 +#, tcl-format +msgid "Unable to copy objects/info/alternates: %s" +msgstr "无法复制 objects/info/alternates: %s" + +#: lib/choose_repository.tcl:688 +#, tcl-format +msgid "Nothing to clone from %s." +msgstr "没有东西可从 %s 克隆." + +#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904 +#: lib/choose_repository.tcl:916 +msgid "The 'master' branch has not been initialized." +msgstr "'master'分支尚未初始化." + +#: lib/choose_repository.tcl:703 +msgid "Hardlinks are unavailable. Falling back to copying." +msgstr "硬连接不可用. 使用复制." + +#: lib/choose_repository.tcl:715 +#, tcl-format +msgid "Cloning from %s" +msgstr "从 %s 克隆" + +#: lib/choose_repository.tcl:746 +msgid "Copying objects" +msgstr "复制 objects" + +#: lib/choose_repository.tcl:747 +msgid "KiB" +msgstr "KiB" + +#: lib/choose_repository.tcl:771 +#, tcl-format +msgid "Unable to copy object: %s" +msgstr "无法复制 object: %s" + +#: lib/choose_repository.tcl:781 +msgid "Linking objects" +msgstr "链接 objects" + +#: lib/choose_repository.tcl:782 +msgid "objects" +msgstr "objects" + +#: lib/choose_repository.tcl:790 +#, tcl-format +msgid "Unable to hardlink object: %s" +msgstr "无法硬链接 object: %s" + +#: lib/choose_repository.tcl:845 +msgid "Cannot fetch branches and objects. See console output for details." +msgstr "无法获取分支和对象. 请查看控制终端的输出." + +#: lib/choose_repository.tcl:856 +msgid "Cannot fetch tags. See console output for details." +msgstr "无法获取标签. 请查看控制终端的输出." + +#: lib/choose_repository.tcl:880 +msgid "Cannot determine HEAD. See console output for details." +msgstr "无法确定 HEAD. 请查看控制终端的输出." + +#: lib/choose_repository.tcl:889 +#, tcl-format +msgid "Unable to cleanup %s" +msgstr "无法清理 %s" + +#: lib/choose_repository.tcl:895 +msgid "Clone failed." +msgstr "克隆失败." + +#: lib/choose_repository.tcl:902 +msgid "No default branch obtained." +msgstr "没有获取缺省分支" + +#: lib/choose_repository.tcl:913 +#, tcl-format +msgid "Cannot resolve %s as a commit." +msgstr "无法解析 %s 为提交." + +#: lib/choose_repository.tcl:925 +msgid "Creating working directory" +msgstr "创建工作目录" + +#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127 +#: lib/index.tcl:193 +msgid "files" +msgstr "文件" + +#: lib/choose_repository.tcl:955 +msgid "Initial file checkout failed." +msgstr "初始的文件checkout失败" + +#: lib/choose_repository.tcl:971 +msgid "Open" +msgstr "打开" + +#: lib/choose_repository.tcl:981 +msgid "Repository:" +msgstr "版本库" + +#: lib/choose_repository.tcl:1031 +#, tcl-format +msgid "Failed to open repository %s:" +msgstr "无法打开版本库 %s:" + +#: lib/choose_rev.tcl:53 +msgid "This Detached Checkout" +msgstr "该脱节的Checkout" + +#: 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:538 +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:531 +msgid "Updated" +msgstr "已更新" + +#: lib/choose_rev.tcl:559 +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" +"否则无法修正之前的提交.\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 sentence 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:207 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "警告: Tcl 不支持编码方式 '%s'." + +#: lib/commit.tcl:221 +msgid "Calling pre-commit hook..." +msgstr "" + +#: lib/commit.tcl:236 +msgid "Commit declined by pre-commit hook." +msgstr "" + +#: lib/commit.tcl:259 +msgid "Calling commit-msg hook..." +msgstr "" + +#: lib/commit.tcl:274 +msgid "Commit declined by commit-msg hook." +msgstr "" + +#: lib/commit.tcl:287 +msgid "Committing changes..." +msgstr "" + +#: lib/commit.tcl:303 +msgid "write-tree failed:" +msgstr "write-tree 失败:" + +#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368 +#, fuzzy +msgid "Commit failed." +msgstr "克隆失败." + +#: lib/commit.tcl:321 +#, tcl-format +msgid "Commit %s appears to be corrupt" +msgstr "提交 %s 似乎已损坏" + +#: lib/commit.tcl:326 +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:333 +msgid "No changes to commit." +msgstr "没有改动要提交." + +#: lib/commit.tcl:347 +msgid "commit-tree failed:" +msgstr "commit-tree 失败:" + +#: lib/commit.tcl:367 +msgid "update-ref failed:" +msgstr "update-ref 失败:" + +#: lib/commit.tcl:454 +#, tcl-format +msgid "Created commit %s: %s" +msgstr "创建了 commit %s: %s" + +#: lib/console.tcl:59 +msgid "Working... please wait..." +msgstr "工作中... 请等待..." + +#: lib/console.tcl:186 +msgid "Success" +msgstr "成功" + +#: lib/console.tcl:200 +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 "无效的日期: %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" +"该文件的修改日期被另一个程序所更新, 但其内容并没有变化.\n" +"\n" +"对于类似情况的其他文件的重新扫描将自动开始." + +#: lib/diff.tcl:81 +#, fuzzy, tcl-format +msgid "Loading diff of %s..." +msgstr "装载 %s 的 diff ..." + +#: 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:303 +msgid "Failed to unstage selected hunk." +msgstr "无法将选择的代码段从缓存中删除." + +#: lib/diff.tcl:310 +msgid "Failed to stage selected hunk." +msgstr "无法缓存所选代码段." + +#: lib/error.tcl:20 lib/error.tcl:114 +msgid "error" +msgstr "错误" + +#: lib/error.tcl:36 +msgid "warning" +msgstr "警告" + +#: lib/error.tcl:94 +msgid "You must correct the above errors before committing." +msgstr "你必须在提交前修正上述错误." + +#: lib/index.tcl:6 +msgid "Unable to unlock the index." +msgstr "无法解锁缓存 (index)" + +#: lib/index.tcl:15 +msgid "Index Error" +msgstr "缓存(Index)错误" + +#: lib/index.tcl:21 +msgid "" +"Updating the Git index failed. A rescan will be automatically started to " +"resynchronize git-gui." +msgstr "更新 Git 缓存(Index)失败, 重新扫描将自动开始以重新同步 git-gui." + +#: lib/index.tcl:27 +msgid "Continue" +msgstr "继续" + +#: lib/index.tcl:31 +msgid "Unlock Index" +msgstr "解锁 Index" + +#: lib/index.tcl:282 +#, tcl-format +msgid "Unstaging %s from commit" +msgstr "从提交缓存中删除 %s" + +#: lib/index.tcl:313 +#, fuzzy +msgid "Ready to commit." +msgstr "缓存为提交" + +#: 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:391 +msgid "Any unstaged changes will be permanently lost by the revert." +msgstr "任何未缓存的改动将在这次撤销中永久丢失." + +#: lib/index.tcl:394 +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 "" + +#: lib/merge.tcl:119 +#, fuzzy, tcl-format +msgid "Merging %s and %s..." +msgstr "合并 %s 和 %s" + +#: lib/merge.tcl:130 +msgid "Merge completed successfully." +msgstr "合并成功完成." + +#: lib/merge.tcl:132 +msgid "Merge failed. Conflict resolution is required." +msgstr "合并失败. 需要解决冲突." + +#: lib/merge.tcl:157 +#, tcl-format +msgid "Merge Into %s" +msgstr "合并到 %s" + +#: lib/merge.tcl:176 +msgid "Revision To Merge" +msgstr "要合并的版本" + +#: lib/merge.tcl:211 +msgid "" +"Cannot abort while amending.\n" +"\n" +"You must finish amending this commit.\n" +msgstr "" +"修正操作中无法中止.\n" +"\n" +"你必须先完成本次修正操作.\n" + +#: lib/merge.tcl:221 +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:227 +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:238 +msgid "Aborting" +msgstr "中止" + +#: lib/merge.tcl:238 +#, fuzzy +msgid "files reset" +msgstr "文件" + +#: lib/merge.tcl:265 +msgid "Abort failed." +msgstr "中止失败" + +#: lib/merge.tcl:267 +msgid "Abort completed. Ready." +msgstr "中止完成. 就绪." + +#: lib/option.tcl:95 +msgid "Restore Defaults" +msgstr "恢复默认值" + +#: lib/option.tcl:99 +msgid "Save" +msgstr "保存" + +#: lib/option.tcl:109 +#, tcl-format +msgid "%s Repository" +msgstr "%s 版本库" + +#: lib/option.tcl:110 +msgid "Global (All Repositories)" +msgstr "全局 (所有版本库)" + +#: lib/option.tcl:116 +msgid "User Name" +msgstr "用户名" + +#: lib/option.tcl:117 +msgid "Email Address" +msgstr "Email 地址" + +#: lib/option.tcl:119 +msgid "Summarize Merge Commits" +msgstr "概述合并提交:" + +#: lib/option.tcl:120 +msgid "Merge Verbosity" +msgstr "合并冗余度" + +#: lib/option.tcl:121 +msgid "Show Diffstat After Merge" +msgstr "在合并后显示 Diffstat" + +#: lib/option.tcl:123 +msgid "Trust File Modification Timestamps" +msgstr "相信文件的改动时间" + +#: lib/option.tcl:124 +msgid "Prune Tracking Branches During Fetch" +msgstr "获取时清除跟踪分支" + +#: lib/option.tcl:125 +msgid "Match Tracking Branches" +msgstr "匹配跟踪分支" + +#: lib/option.tcl:126 +msgid "Number of Diff Context Lines" +msgstr "Diff 上下文行数" + +#: lib/option.tcl:127 +#, fuzzy +msgid "Commit Message Text Width" +msgstr "提交描述:" + +#: lib/option.tcl:128 +msgid "New Branch Name Template" +msgstr "新建分支命名模板" + +#: lib/option.tcl:192 +msgid "Spelling Dictionary:" +msgstr "" + +#: lib/option.tcl:216 +msgid "Change Font" +msgstr "更改字体" + +#: lib/option.tcl:220 +#, tcl-format +msgid "Choose %s" +msgstr "选择 %s" + +#: lib/option.tcl:226 +msgid "pt." +msgstr "磅" + +#: lib/option.tcl:240 +msgid "Preferences" +msgstr "首选项" + +#: lib/option.tcl:275 +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 "Remote:" + +#: 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/remote.tcl:165 +msgid "Prune from" +msgstr "从..清除(prune)" + +#: lib/remote.tcl:170 +msgid "Fetch from" +msgstr "从..获取(fetch)" + +#: lib/remote.tcl:213 +msgid "Push to" +msgstr "上传到(push)" + +#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +msgid "Cannot write shortcut:" +msgstr "无法修改快捷方式:" + +#: lib/shortcut.tcl:136 +msgid "Cannot write icon:" +msgstr "无法修改图标:" + +#: lib/spellcheck.tcl:57 +msgid "Unsupported spell checker" +msgstr "" + +#: lib/spellcheck.tcl:65 +msgid "Spell checking is unavailable" +msgstr "" + +#: lib/spellcheck.tcl:68 +msgid "Invalid spell checking configuration" +msgstr "" + +#: lib/spellcheck.tcl:70 +#, tcl-format +msgid "Reverting dictionary to %s." +msgstr "" + +#: lib/spellcheck.tcl:73 +msgid "Spell checker silently failed on startup" +msgstr "" + +#: lib/spellcheck.tcl:80 +msgid "Unrecognized spell checker" +msgstr "" + +#: lib/spellcheck.tcl:180 +msgid "No Suggestions" +msgstr "" + +#: lib/spellcheck.tcl:381 +msgid "Unexpected EOF from spell checker" +msgstr "" + +#: lib/spellcheck.tcl:385 +msgid "Spell Checker Failed" +msgstr "" + +#: lib/status_bar.tcl:83 +#, tcl-format +msgid "%s ... %*i of %*i %s (%3i%%)" +msgstr "%s ... %*i of %*i %s (%3i%%)" + +#: lib/transport.tcl:6 +#, tcl-format +msgid "fetch %s" +msgstr "获取(fetch)" + +#: 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 "清除" + +#: 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 "包含标签" diff --cc git-gui/windows/git-gui.sh index 53c3a9468,000000000..66bbb2f8f mode 100644,000000..100644 --- a/git-gui/windows/git-gui.sh +++ b/git-gui/windows/git-gui.sh @@@ -1,19 -1,0 +1,24 @@@ +#!/bin/sh +# Tcl ignores the next line -*- tcl -*- \ +exec wish "$0" -- "$@" + +if { $argc >=2 && [lindex $argv 0] == "--working-dir" } { - cd [lindex $argv 1] ++ set workdir [lindex $argv 1] ++ cd $workdir ++ if {[lindex [file split $workdir] end] eq {.git}} { ++ # Workaround for Explorer right click "Git GUI Here" on .git/ ++ cd .. ++ } + set argv [lrange $argv 2 end] + incr argc -2 +} + +set bindir [file dirname \ + [file dirname \ + [file dirname [info script]]]] +set bindir [file join $bindir bin] +regsub -all ";" $bindir "\\;" bindir +set env(PATH) "$bindir;$env(PATH)" +unset bindir + +source [file join [file dirname [info script]] git-gui.tcl]