1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-05-13 22:17:05 +02:00

Ask to force push if server rejected the update, if remote not stored locally

This broke with 81b497d186 (#3387). In that PR I claimed that we never want to
ask for force-pushing if the server rejected the update, on the assumption that
this can only happen because the remote tracking branch is not up to date, and
users should just fetch in this case. However, I didn't realize it's even
possible to have a branch whose upstream branch is not stored locally; in this
case we can't tell ahead of time whether a force push is going to be necessary,
so we _have_ to rely on the server response to find out. But we only want to do
that in this specific case, so this is not quite an exact revert of 81b497d186.
This commit is contained in:
Stefan Haller 2024-05-30 16:25:39 +02:00
parent 993d66a8ff
commit aac2535104
7 changed files with 1381 additions and 1350 deletions

View File

@ -89,7 +89,7 @@ func (self *SyncController) branchCheckedOut(f func(*models.Branch) error) func(
func (self *SyncController) push(currentBranch *models.Branch) error { func (self *SyncController) push(currentBranch *models.Branch) error {
// if we are behind our upstream branch we'll ask if the user wants to force push // if we are behind our upstream branch we'll ask if the user wants to force push
if currentBranch.IsTrackingRemote() { if currentBranch.IsTrackingRemote() {
opts := pushOpts{} opts := pushOpts{remoteBranchStoredLocally: currentBranch.RemoteBranchStoredLocally()}
if currentBranch.IsBehindForPush() { if currentBranch.IsBehindForPush() {
return self.requestToForcePush(currentBranch, opts) return self.requestToForcePush(currentBranch, opts)
} else { } else {
@ -183,6 +183,12 @@ type pushOpts struct {
upstreamRemote string upstreamRemote string
upstreamBranch string upstreamBranch string
setUpstream bool setUpstream bool
// If this is false, we can't tell ahead of time whether a force-push will
// be necessary, so we start with a normal push and offer to force-push if
// the server rejected. If this is true, we don't offer to force-push if the
// server rejected, but rather ask the user to fetch.
remoteBranchStoredLocally bool
} }
func (self *SyncController) pushAux(currentBranch *models.Branch, opts pushOpts) error { func (self *SyncController) pushAux(currentBranch *models.Branch, opts pushOpts) error {
@ -197,8 +203,26 @@ func (self *SyncController) pushAux(currentBranch *models.Branch, opts pushOpts)
SetUpstream: opts.setUpstream, SetUpstream: opts.setUpstream,
}) })
if err != nil { if err != nil {
if strings.Contains(err.Error(), "Updates were rejected") { if !opts.force && strings.Contains(err.Error(), "Updates were rejected") {
return errors.New(self.c.Tr.UpdatesRejected) if opts.remoteBranchStoredLocally {
return errors.New(self.c.Tr.UpdatesRejected)
}
forcePushDisabled := self.c.UserConfig.Git.DisableForcePushing
if forcePushDisabled {
return errors.New(self.c.Tr.UpdatesRejectedAndForcePushDisabled)
}
_ = self.c.Confirm(types.ConfirmOpts{
Title: self.c.Tr.ForcePush,
Prompt: self.forcePushPrompt(),
HandleConfirm: func() error {
newOpts := opts
newOpts.force = true
return self.pushAux(currentBranch, newOpts)
},
})
return nil
} }
return err return err
} }

View File

@ -35,323 +35,324 @@ const chineseIntroPopupMessage = `
// exporting this so we can use it in tests // exporting this so we can use it in tests
func chineseTranslationSet() TranslationSet { func chineseTranslationSet() TranslationSet {
return TranslationSet{ return TranslationSet{
NotEnoughSpace: "没有足够的空间来渲染面板", NotEnoughSpace: "没有足够的空间来渲染面板",
DiffTitle: "差异", DiffTitle: "差异",
FilesTitle: "文件", FilesTitle: "文件",
BranchesTitle: "分支", BranchesTitle: "分支",
CommitsTitle: "提交", CommitsTitle: "提交",
StashTitle: "贮藏", StashTitle: "贮藏",
UnstagedChanges: `未暂存更改`, UnstagedChanges: `未暂存更改`,
StagedChanges: `已暂存更改`, StagedChanges: `已暂存更改`,
MainTitle: "主要", MainTitle: "主要",
StagingTitle: "正在暂存", StagingTitle: "正在暂存",
MergingTitle: "正在合并", MergingTitle: "正在合并",
NormalTitle: "正常", NormalTitle: "正常",
CommitSummary: "提交信息", CommitSummary: "提交信息",
CredentialsUsername: "用户名", CredentialsUsername: "用户名",
CredentialsPassword: "密码", CredentialsPassword: "密码",
CredentialsPassphrase: "输入 SSH 密钥的密码", CredentialsPassphrase: "输入 SSH 密钥的密码",
PassUnameWrong: "密码 和/或 用户名错误", PassUnameWrong: "密码 和/或 用户名错误",
Commit: "提交更改", Commit: "提交更改",
AmendLastCommit: "修补最后一次提交", AmendLastCommit: "修补最后一次提交",
AmendLastCommitTitle: "修补最后一次提交", AmendLastCommitTitle: "修补最后一次提交",
SureToAmend: "您确定要修补上一次提交吗?之后您可以从提交面板更改提交消息。", SureToAmend: "您确定要修补上一次提交吗?之后您可以从提交面板更改提交消息。",
NoCommitToAmend: "没有需要提交的修补。", NoCommitToAmend: "没有需要提交的修补。",
CommitChangesWithEditor: "提交更改(使用编辑器编辑提交信息)", CommitChangesWithEditor: "提交更改(使用编辑器编辑提交信息)",
StatusTitle: "状态", StatusTitle: "状态",
Menu: "菜单", Menu: "菜单",
Execute: "执行", Execute: "执行",
Stage: "切换暂存状态", Stage: "切换暂存状态",
ToggleStagedAll: "切换所有文件的暂存状态", ToggleStagedAll: "切换所有文件的暂存状态",
ToggleTreeView: "切换文件树视图", ToggleTreeView: "切换文件树视图",
OpenMergeTool: "打开外部合并工具 (git mergetool)", OpenMergeTool: "打开外部合并工具 (git mergetool)",
Refresh: "刷新", Refresh: "刷新",
Push: "推送", Push: "推送",
Pull: "拉取", Pull: "拉取",
Scroll: "滚动", Scroll: "滚动",
MergeConflictsTitle: "合并冲突", MergeConflictsTitle: "合并冲突",
Checkout: "检出", Checkout: "检出",
NoChangedFiles: "没有更改过文件", NoChangedFiles: "没有更改过文件",
SoftReset: "软重置", SoftReset: "软重置",
AlreadyCheckedOutBranch: "您已经检出至此分支", AlreadyCheckedOutBranch: "您已经检出至此分支",
SureForceCheckout: "您确定要强制检出吗?您将丢失所有本地更改", SureForceCheckout: "您确定要强制检出吗?您将丢失所有本地更改",
ForceCheckoutBranch: "强制检出分支", ForceCheckoutBranch: "强制检出分支",
BranchName: "分支名称", BranchName: "分支名称",
NewBranchNameBranchOff: "新分支名称(基于 {{.branchName}})", NewBranchNameBranchOff: "新分支名称(基于 {{.branchName}})",
CantDeleteCheckOutBranch: "您不能删除已检出的分支!", CantDeleteCheckOutBranch: "您不能删除已检出的分支!",
ForceDeleteBranchMessage: "{{.selectedBranchName}} 还没有被完全合并。您确定要删除它吗?", ForceDeleteBranchMessage: "{{.selectedBranchName}} 还没有被完全合并。您确定要删除它吗?",
RebaseBranch: "将已检出的分支变基到该分支", RebaseBranch: "将已检出的分支变基到该分支",
CantRebaseOntoSelf: "您不能将分支变基到其自身", CantRebaseOntoSelf: "您不能将分支变基到其自身",
CantMergeBranchIntoItself: "您不能将分支合并到其自身", CantMergeBranchIntoItself: "您不能将分支合并到其自身",
ForceCheckout: "强制检出", ForceCheckout: "强制检出",
CheckoutByName: "按名称检出", CheckoutByName: "按名称检出",
NewBranch: "新分支", NewBranch: "新分支",
NoBranchesThisRepo: "此仓库中没有分支", NoBranchesThisRepo: "此仓库中没有分支",
CommitWithoutMessageErr: "您必须编写提交消息才能进行提交", CommitWithoutMessageErr: "您必须编写提交消息才能进行提交",
CloseCancel: "关闭", CloseCancel: "关闭",
Confirm: "确认", Confirm: "确认",
Close: "关闭", Close: "关闭",
Quit: "退出", Quit: "退出",
NoCommitsThisBranch: "该分支没有提交", NoCommitsThisBranch: "该分支没有提交",
CannotSquashOrFixupFirstCommit: "There's no commit below to squash into", CannotSquashOrFixupFirstCommit: "There's no commit below to squash into",
Fixup: "修正(fixup)", Fixup: "修正(fixup)",
SureFixupThisCommit: "您确定要“修正”此提交吗?它将合并到下面的提交中", SureFixupThisCommit: "您确定要“修正”此提交吗?它将合并到下面的提交中",
SureSquashThisCommit: "您确定要将这个提交压缩到下面的提交中吗?", SureSquashThisCommit: "您确定要将这个提交压缩到下面的提交中吗?",
Squash: "压缩", Squash: "压缩",
PickCommitTooltip: "选择提交(变基过程中)", PickCommitTooltip: "选择提交(变基过程中)",
RevertCommit: "还原提交", RevertCommit: "还原提交",
Reword: "改写提交", Reword: "改写提交",
DropCommit: "删除提交", DropCommit: "删除提交",
MoveDownCommit: "下移提交", MoveDownCommit: "下移提交",
MoveUpCommit: "上移提交", MoveUpCommit: "上移提交",
EditCommitTooltip: "编辑提交", EditCommitTooltip: "编辑提交",
AmendCommitTooltip: "用已暂存的更改来修补提交", AmendCommitTooltip: "用已暂存的更改来修补提交",
RewordCommitEditor: "使用编辑器重命名提交", RewordCommitEditor: "使用编辑器重命名提交",
Error: "错误", Error: "错误",
PickHunk: "选中区块", PickHunk: "选中区块",
PickAllHunks: "选中所有区块", PickAllHunks: "选中所有区块",
Undo: "撤销", Undo: "撤销",
UndoReflog: "(通过 reflog)撤销「实验功能」", UndoReflog: "(通过 reflog)撤销「实验功能」",
RedoReflog: "(通过 reflog)重做「实验功能」", RedoReflog: "(通过 reflog)重做「实验功能」",
Pop: "应用并删除", Pop: "应用并删除",
Drop: "删除", Drop: "删除",
Apply: "应用", Apply: "应用",
NoStashEntries: "没有贮藏条目", NoStashEntries: "没有贮藏条目",
StashDrop: "删除贮藏", StashDrop: "删除贮藏",
SureDropStashEntry: "您确定要删除此贮藏条目吗?", SureDropStashEntry: "您确定要删除此贮藏条目吗?",
StashPop: "应用并删除贮藏", StashPop: "应用并删除贮藏",
SurePopStashEntry: "您确定要应用并删除此贮藏条目吗?", SurePopStashEntry: "您确定要应用并删除此贮藏条目吗?",
StashApply: "应用贮藏", StashApply: "应用贮藏",
SureApplyStashEntry: "您确定要应用此贮藏条目?", SureApplyStashEntry: "您确定要应用此贮藏条目?",
NoTrackedStagedFilesStash: "没有可以贮藏的已跟踪/暂存文件", NoTrackedStagedFilesStash: "没有可以贮藏的已跟踪/暂存文件",
StashChanges: "贮藏更改", StashChanges: "贮藏更改",
RenameStash: "Rename stash", RenameStash: "Rename stash",
RenameStashPrompt: "Rename stash: {{.stashName}}", RenameStashPrompt: "Rename stash: {{.stashName}}",
OpenConfig: "打开配置文件", OpenConfig: "打开配置文件",
EditConfig: "编辑配置文件", EditConfig: "编辑配置文件",
ForcePush: "强制推送", ForcePush: "强制推送",
ForcePushPrompt: "您的分支已与远程分支不同。按‘esc’取消,或‘enter’强制推送.", ForcePushPrompt: "您的分支已与远程分支不同。按‘esc’取消,或‘enter’强制推送.",
ForcePushDisabled: "您的分支已与远程分支不同, 并且您已经禁用了强行推送", ForcePushDisabled: "您的分支已与远程分支不同, 并且您已经禁用了强行推送",
CheckForUpdate: "检查更新", UpdatesRejectedAndForcePushDisabled: "更新被拒绝,您已禁用强制推送",
CheckingForUpdates: "正在检查更新…", CheckForUpdate: "检查更新",
OnLatestVersionErr: "已是最新版本", CheckingForUpdates: "正在检查更新…",
MajorVersionErr: "新版本 ({{.newVersion}}) 与当前版本 ({{.currentVersion}}) 相比,具有非向后兼容的更改", OnLatestVersionErr: "已是最新版本",
CouldNotFindBinaryErr: "在 {{.url}} 处找不到任何二进制文件", MajorVersionErr: "新版本 ({{.newVersion}}) 与当前版本 ({{.currentVersion}}) 相比,具有非向后兼容的更改",
MergeToolTitle: "合并工具", CouldNotFindBinaryErr: "在 {{.url}} 处找不到任何二进制文件",
MergeToolPrompt: "确定要打开 `git mergetool` 吗?", MergeToolTitle: "合并工具",
IntroPopupMessage: chineseIntroPopupMessage, MergeToolPrompt: "确定要打开 `git mergetool` 吗?",
GitconfigParseErr: `由于存在未加引号的'\'字符,因此 Gogit 无法解析您的 gitconfig 文件。删除它们应该可以解决问题。`, IntroPopupMessage: chineseIntroPopupMessage,
EditFile: `编辑文件`, GitconfigParseErr: `由于存在未加引号的'\'字符,因此 Gogit 无法解析您的 gitconfig 文件。删除它们应该可以解决问题。`,
OpenFile: `打开文件`, EditFile: `编辑文件`,
IgnoreFile: `添加到 .gitignore`, OpenFile: `打开文件`,
RefreshFiles: `刷新文件`, IgnoreFile: `添加到 .gitignore`,
Merge: `合并到当前检出的分支`, RefreshFiles: `刷新文件`,
ConfirmQuit: `您确定要退出吗?`, Merge: `合并到当前检出的分支`,
SwitchRepo: `切换到最近的仓库`, ConfirmQuit: `您确定要退出吗?`,
AllBranchesLogGraph: `显示所有分支的日志`, SwitchRepo: `切换到最近的仓库`,
UnsupportedGitService: `不支持的 git 服务`, AllBranchesLogGraph: `显示所有分支的日志`,
CreatePullRequest: `创建抓取请求`, UnsupportedGitService: `不支持的 git 服务`,
CopyPullRequestURL: `将抓取请求 URL 复制到剪贴板`, CreatePullRequest: `创建抓取请求`,
NoBranchOnRemote: `该分支在远程上不存在. 您需要先将其推送到远程.`, CopyPullRequestURL: `将抓取请求 URL 复制到剪贴板`,
Fetch: `抓取`, NoBranchOnRemote: `该分支在远程上不存在. 您需要先将其推送到远程.`,
NoAutomaticGitFetchTitle: `无法自动进行 "git fetch"`, Fetch: `抓取`,
NoAutomaticGitFetchBody: `Lazygit 不能在私人仓库中使用 "git fetch"; 请在文件面板中使用 'f' 手动运行 "git fetch"`, NoAutomaticGitFetchTitle: `无法自动进行 "git fetch"`,
FileEnter: `暂存单个 块/行 用于文件, 或 折叠/展开 目录`, NoAutomaticGitFetchBody: `Lazygit 不能在私人仓库中使用 "git fetch"; 请在文件面板中使用 'f' 手动运行 "git fetch"`,
FileStagingRequirements: `只能暂存跟踪文件的单独行`, FileEnter: `暂存单个 块/行 用于文件, 或 折叠/展开 目录`,
StageSelectionTooltip: `切换行暂存状态`, FileStagingRequirements: `只能暂存跟踪文件的单独行`,
DiscardSelection: `取消变更 (git reset)`, StageSelectionTooltip: `切换行暂存状态`,
ToggleRangeSelect: `切换拖动选择`, DiscardSelection: `取消变更 (git reset)`,
ToggleSelectHunk: `切换选择区块`, ToggleRangeSelect: `切换拖动选择`,
ToggleSelectionForPatch: `添加/移除 行到补丁`, ToggleSelectHunk: `切换选择区块`,
ToggleStagingView: `切换到其他面板`, ToggleSelectionForPatch: `添加/移除 行到补丁`,
ReturnToFilesPanel: `返回文件面板`, ToggleStagingView: `切换到其他面板`,
FastForward: `从上游快进此分支`, ReturnToFilesPanel: `返回文件面板`,
FastForwarding: "抓取并快进", FastForward: `从上游快进此分支`,
FoundConflictsTitle: "自动合并失败", FastForwarding: "抓取并快进",
ViewMergeRebaseOptions: "查看 合并/变基 选项", FoundConflictsTitle: "自动合并失败",
NotMergingOrRebasing: "您目前既不进行变基也不进行合并", ViewMergeRebaseOptions: "查看 合并/变基 选项",
RecentRepos: "最近的仓库", NotMergingOrRebasing: "您目前既不进行变基也不进行合并",
MergeOptionsTitle: "合并选项", RecentRepos: "最近的仓库",
RebaseOptionsTitle: "变基选项", MergeOptionsTitle: "合并选项",
CommitSummaryTitle: "提交讯息", RebaseOptionsTitle: "变基选项",
LocalBranchesTitle: "分支页面", CommitSummaryTitle: "提交讯息",
SearchTitle: "搜索", LocalBranchesTitle: "分支页面",
TagsTitle: "标签页面", SearchTitle: "搜索",
MenuTitle: "菜单", TagsTitle: "标签页面",
RemotesTitle: "远程页面", MenuTitle: "菜单",
RemoteBranchesTitle: "远程分支", RemotesTitle: "远程页面",
PatchBuildingTitle: "构建补丁中", RemoteBranchesTitle: "远程分支",
InformationTitle: "信息", PatchBuildingTitle: "构建补丁中",
SecondaryTitle: "次要", InformationTitle: "信息",
ReflogCommitsTitle: "Reflog 页面", SecondaryTitle: "次要",
GlobalTitle: "全局键绑定", ReflogCommitsTitle: "Reflog 页面",
ConflictsResolved: "已解决所有冲突。是否继续?", GlobalTitle: "全局键绑定",
ConfirmMerge: "您确定要将分支 {{.selectedBranch}} 合并到 {{.checkedOutBranch}} 吗?", ConflictsResolved: "已解决所有冲突。是否继续?",
FwdNoUpstream: "此分支没有上游,无法快进", ConfirmMerge: "您确定要将分支 {{.selectedBranch}} 合并到 {{.checkedOutBranch}} 吗?",
FwdNoLocalUpstream: "此分支的远程未在本地注册,无法快进", FwdNoUpstream: "此分支没有上游,无法快进",
FwdCommitsToPush: "此分支带有尚未推送的提交,无法快进", FwdNoLocalUpstream: "此分支的远程未在本地注册,无法快进",
ErrorOccurred: "发生错误!请在以下位置创建 issue", FwdCommitsToPush: "此分支带有尚未推送的提交,无法快进",
NoRoom: "空间不足", ErrorOccurred: "发生错误!请在以下位置创建 issue",
YouAreHere: "您在这里", NoRoom: "空间不足",
RewordNotSupported: "当前不支持交互式重新基准化时的重新措词提交", YouAreHere: "您在这里",
CherryPickCopy: "复制提交(拣选)", RewordNotSupported: "当前不支持交互式重新基准化时的重新措词提交",
PasteCommits: "粘贴提交(拣选)", CherryPickCopy: "复制提交(拣选)",
SureCherryPick: "您确定要将选中的提交进行拣选到这个分支吗?", PasteCommits: "粘贴提交(拣选)",
CherryPick: "拣选 (Cherry-Pick)", SureCherryPick: "您确定要将选中的提交进行拣选到这个分支吗?",
Donate: "捐助", CherryPick: "拣选 (Cherry-Pick)",
AskQuestion: "提问咨询", Donate: "捐助",
PrevLine: "选择上一行", AskQuestion: "提问咨询",
NextLine: "选择下一行", PrevLine: "选择上一行",
PrevHunk: "选择上一个区块", NextLine: "选择下一行",
NextHunk: "选择下一个区块", PrevHunk: "选择上一个区块",
PrevConflict: "选择上一个冲突", NextHunk: "选择下一个区块",
NextConflict: "选择下一个冲突", PrevConflict: "选择上一个冲突",
SelectPrevHunk: "选择顶部块", NextConflict: "选择下一个冲突",
SelectNextHunk: "选择底部块", SelectPrevHunk: "选择顶部块",
ScrollDown: "向下滚动", SelectNextHunk: "选择底部块",
ScrollUp: "向上滚动", ScrollDown: "向下滚动",
ScrollUpMainWindow: "向上滚动主面板", ScrollUp: "向上滚动",
ScrollDownMainWindow: "向下滚动主面板", ScrollUpMainWindow: "向上滚动主面板",
AmendCommitTitle: "修改提交", ScrollDownMainWindow: "向下滚动主面板",
AmendCommitPrompt: "您确定要使用暂存文件来修改此提交吗?", AmendCommitTitle: "修改提交",
DropCommitTitle: "删除提交", AmendCommitPrompt: "您确定要使用暂存文件来修改此提交吗?",
DropCommitPrompt: "您确定要删除此提交吗?", DropCommitTitle: "删除提交",
PullingStatus: "正在拉取", DropCommitPrompt: "您确定要删除此提交吗?",
PushingStatus: "正在推送", PullingStatus: "正在拉取",
FetchingStatus: "正在抓取", PushingStatus: "正在推送",
SquashingStatus: "正在压缩", FetchingStatus: "正在抓取",
FixingStatus: "正在修正", SquashingStatus: "正在压缩",
DeletingStatus: "正在删除", FixingStatus: "正在修正",
MovingStatus: "正在移动", DeletingStatus: "正在删除",
RebasingStatus: "正在变基", MovingStatus: "正在移动",
AmendingStatus: "正在修改", RebasingStatus: "正在变基",
CherryPickingStatus: "正在拣选", AmendingStatus: "正在修改",
UndoingStatus: "正在撤销", CherryPickingStatus: "正在拣选",
RedoingStatus: "正在重做", UndoingStatus: "正在撤销",
CheckingOutStatus: "长子检出", RedoingStatus: "正在重做",
CommittingStatus: "正在提交", CheckingOutStatus: "长子检出",
CommitFiles: "提交文件", CommittingStatus: "正在提交",
ViewItemFiles: "查看提交的文件", CommitFiles: "提交文件",
CommitFilesTitle: "提交文件", ViewItemFiles: "查看提交的文件",
CheckoutCommitFileTooltip: "检出文件", CommitFilesTitle: "提交文件",
DiscardOldFileChangeTooltip: "放弃对此文件的提交更改", CheckoutCommitFileTooltip: "检出文件",
DiscardFileChangesTitle: "放弃文件更改", DiscardOldFileChangeTooltip: "放弃对此文件的提交更改",
DiscardFileChangesPrompt: "您确定要舍弃此提交对该文件的更改吗?如果此文件是在此提交中创建的,它将被删除", DiscardFileChangesTitle: "放弃文件更改",
DisabledForGPG: "该功能不适用于使用 GPG 的用户", DiscardFileChangesPrompt: "您确定要舍弃此提交对该文件的更改吗?如果此文件是在此提交中创建的,它将被删除",
CreateRepo: "当前目录不在 git 仓库中。是否在此目录创建一个新的 git 仓库?(y/n): ", DisabledForGPG: "该功能不适用于使用 GPG 的用户",
AutoStashTitle: "自动存储?", CreateRepo: "当前目录不在 git 仓库中。是否在此目录创建一个新的 git 仓库?(y/n): ",
AutoStashPrompt: "您必须隐藏并弹出更改以使更改生效。自动执行?(enter/esc)", AutoStashTitle: "自动存储?",
StashPrefix: "自动隐藏更改 ", AutoStashPrompt: "您必须隐藏并弹出更改以使更改生效。自动执行?(enter/esc)",
Discard: "查看'放弃更改'选项", StashPrefix: "自动隐藏更改 ",
Cancel: "取消", Discard: "查看'放弃更改'选项",
DiscardAllChanges: "放弃所有更改", Cancel: "取消",
DiscardUnstagedChanges: "放弃未暂存的变更", DiscardAllChanges: "放弃所有更改",
DiscardAllChangesToAllFiles: "清空工作区", DiscardUnstagedChanges: "放弃未暂存的变更",
DiscardAnyUnstagedChanges: "丢弃未暂存的变更", DiscardAllChangesToAllFiles: "清空工作区",
DiscardUntrackedFiles: "丢弃未跟踪的文件", DiscardAnyUnstagedChanges: "丢弃未暂存的变更",
HardReset: "硬重置", DiscardUntrackedFiles: "丢弃未跟踪的文件",
ViewResetOptions: `查看重置选项`, HardReset: "硬重置",
CreateFixupCommit: `为此提交创建修正`, ViewResetOptions: `查看重置选项`,
SquashAboveCommitsTooltip: `压缩在所选提交之上的所有“fixup!”提交(自动压缩)`, CreateFixupCommit: `为此提交创建修正`,
CreateFixupCommitTooltip: `创建修正提交`, SquashAboveCommitsTooltip: `压缩在所选提交之上的所有“fixup!”提交(自动压缩)`,
ExecuteCustomCommand: "执行自定义命令", CreateFixupCommitTooltip: `创建修正提交`,
CustomCommand: "自定义命令:", ExecuteCustomCommand: "执行自定义命令",
CommitChangesWithoutHook: "提交更改而无需预先提交钩子", CustomCommand: "自定义命令:",
SkipHookPrefixNotConfigured: "您尚未配置用于跳过钩子的提交消息前缀。请在您的配置中设置 `git.skipHookPrefix ='WIP'`", CommitChangesWithoutHook: "提交更改而无需预先提交钩子",
ResetTo: `重置为`, SkipHookPrefixNotConfigured: "您尚未配置用于跳过钩子的提交消息前缀。请在您的配置中设置 `git.skipHookPrefix ='WIP'`",
PressEnterToReturn: "按下 Enter 键返回 lazygit", ResetTo: `重置为`,
ViewStashOptions: "查看贮藏选项", PressEnterToReturn: "按下 Enter 键返回 lazygit",
StashAllChanges: "将所有更改加入贮藏", ViewStashOptions: "查看贮藏选项",
StashAllChangesKeepIndex: "将已暂存的更改加入贮藏", StashAllChanges: "将所有更改加入贮藏",
StashOptions: "贮藏选项", StashAllChangesKeepIndex: "将已暂存的更改加入贮藏",
NotARepository: "错误:必须在 git 仓库中运行", StashOptions: "贮藏选项",
Jump: "跳到面板", NotARepository: "错误:必须在 git 仓库中运行",
ScrollLeftRight: "左右滚动", Jump: "跳到面板",
ScrollLeft: "向左滚动", ScrollLeftRight: "左右滚动",
ScrollRight: "向右滚动", ScrollLeft: "向左滚动",
DiscardPatch: "丢弃补丁", ScrollRight: "向右滚动",
DiscardPatchConfirm: "您一次只能通过一个提交或贮藏条目构建补丁。需要放弃当前补丁吗?", DiscardPatch: "丢弃补丁",
CantPatchWhileRebasingError: "处于合并或变基状态时,您无法构建修补程序或运行修补程序命令", DiscardPatchConfirm: "您一次只能通过一个提交或贮藏条目构建补丁。需要放弃当前补丁吗?",
ToggleAddToPatch: "补丁中包含的切换文件", CantPatchWhileRebasingError: "处于合并或变基状态时,您无法构建修补程序或运行修补程序命令",
ViewPatchOptions: "查看自定义补丁选项", ToggleAddToPatch: "补丁中包含的切换文件",
PatchOptionsTitle: "补丁选项", ViewPatchOptions: "查看自定义补丁选项",
NoPatchError: "尚未创建补丁。你可以在提交中的文件上按下“空格”或使用“回车”添加其中的特定行以开始构建补丁", PatchOptionsTitle: "补丁选项",
EnterCommitFile: "输入文件以将所选行添加到补丁中(或切换目录折叠)", NoPatchError: "尚未创建补丁。你可以在提交中的文件上按下“空格”或使用“回车”添加其中的特定行以开始构建补丁",
ExitCustomPatchBuilder: `退出逐行模式`, EnterCommitFile: "输入文件以将所选行添加到补丁中(或切换目录折叠)",
EnterUpstream: `以这种格式输入上游:'<远程仓库> <分支名称>'`, ExitCustomPatchBuilder: `退出逐行模式`,
InvalidUpstream: "上游格式无效,格式应当为:'<remote> <branchname>'", EnterUpstream: `以这种格式输入上游:'<远程仓库> <分支名称>'`,
ReturnToRemotesList: `返回远程仓库列表`, InvalidUpstream: "上游格式无效,格式应当为:'<remote> <branchname>'",
NewRemote: `添加新的远程仓库`, ReturnToRemotesList: `返回远程仓库列表`,
NewRemoteName: `新远程仓库名称:`, NewRemote: `添加新的远程仓库`,
NewRemoteUrl: `新远程仓库 URL:`, NewRemoteName: `新远程仓库名称:`,
EditRemoteName: `输入远程仓库 {{.remoteName}} 的新名称:`, NewRemoteUrl: `新远程仓库 URL:`,
EditRemoteUrl: `输入远程仓库 {{.remoteName}} 的新 URL:`, EditRemoteName: `输入远程仓库 {{.remoteName}} 的新名称:`,
RemoveRemote: `删除远程`, EditRemoteUrl: `输入远程仓库 {{.remoteName}} 的新 URL:`,
RemoveRemotePrompt: "您确定要删除远程仓库吗?", RemoveRemote: `删除远程`,
DeleteRemoteBranch: "删除远程分支", RemoveRemotePrompt: "您确定要删除远程仓库吗?",
DeleteRemoteBranchMessage: "您确定要删除远程分支吗?", DeleteRemoteBranch: "删除远程分支",
SetUpstream: "设置为检出分支的上游", DeleteRemoteBranchMessage: "您确定要删除远程分支吗?",
SetAsUpstreamTooltip: "设置为检出分支的上游", SetUpstream: "设置为检出分支的上游",
SetUpstreamTitle: "设置上游分支", SetAsUpstreamTooltip: "设置为检出分支的上游",
SetUpstreamMessage: "您确定要将 {{.checkedOut}} 的上游分支设置为 {{.selected}} 吗?", SetUpstreamTitle: "设置上游分支",
EditRemoteTooltip: "编辑远程仓库", SetUpstreamMessage: "您确定要将 {{.checkedOut}} 的上游分支设置为 {{.selected}} 吗?",
TagCommit: "标签提交", EditRemoteTooltip: "编辑远程仓库",
TagMenuTitle: "创建标签", TagCommit: "标签提交",
TagNameTitle: "标签名称", TagMenuTitle: "创建标签",
TagMessageTitle: "标签消息", TagNameTitle: "标签名称",
AnnotatedTag: "附注标签", TagMessageTitle: "标签消息",
LightweightTag: "轻量标签", AnnotatedTag: "附注标签",
PushTagTitle: "将 {{.tagName}} 推送到远程仓库:", LightweightTag: "轻量标签",
PushTag: "推送标签", PushTagTitle: "将 {{.tagName}} 推送到远程仓库:",
NewTag: "创建标签", PushTag: "推送标签",
FetchRemoteTooltip: "抓取远程仓库", NewTag: "创建标签",
FetchingRemoteStatus: "抓取远程仓库中", FetchRemoteTooltip: "抓取远程仓库",
CheckoutCommit: "检出提交", FetchingRemoteStatus: "抓取远程仓库中",
SureCheckoutThisCommit: "您确定要检出此提交吗?", CheckoutCommit: "检出提交",
GitFlowOptions: "显示 git-flow 选项", SureCheckoutThisCommit: "您确定要检出此提交吗?",
NotAGitFlowBranch: "这似乎不是 git flow 分支", GitFlowOptions: "显示 git-flow 选项",
NewGitFlowBranchPrompt: "新的 {{.branchType}} 名称:", NotAGitFlowBranch: "这似乎不是 git flow 分支",
IgnoreTracked: "忽略跟踪文件", NewGitFlowBranchPrompt: "新的 {{.branchType}} 名称:",
IgnoreTrackedPrompt: "您确定要忽略已跟踪的文件吗?", IgnoreTracked: "忽略跟踪文件",
ViewResetToUpstreamOptions: "查看上游重置选项", IgnoreTrackedPrompt: "您确定要忽略已跟踪的文件吗?",
NextScreenMode: "下一屏模式(正常/半屏/全屏)", ViewResetToUpstreamOptions: "查看上游重置选项",
PrevScreenMode: "上一屏模式", NextScreenMode: "下一屏模式(正常/半屏/全屏)",
StartSearch: "开始搜索", PrevScreenMode: "上一屏模式",
Panel: "面板", StartSearch: "开始搜索",
Keybindings: "按键绑定", Panel: "面板",
RenameBranch: "重命名分支", Keybindings: "按键绑定",
NewBranchNamePrompt: "输入分支的新名称", RenameBranch: "重命名分支",
RenameBranchWarning: "该分支正在跟踪远程仓库。此操作将仅会重命名本地分支名称,而不会重命名远程分支的名称。确定继续?", NewBranchNamePrompt: "输入分支的新名称",
OpenKeybindingsMenu: "打开菜单", RenameBranchWarning: "该分支正在跟踪远程仓库。此操作将仅会重命名本地分支名称,而不会重命名远程分支的名称。确定继续?",
ResetCherryPick: "重置已拣选(复制)的提交", OpenKeybindingsMenu: "打开菜单",
NextTab: "下一个标签", ResetCherryPick: "重置已拣选(复制)的提交",
PrevTab: "上一个标签", NextTab: "下一个标签",
CantUndoWhileRebasing: "进行基础调整时无法撤消", PrevTab: "上一个标签",
CantRedoWhileRebasing: "变基时无法重做", CantUndoWhileRebasing: "进行基础调整时无法撤消",
MustStashWarning: "将补丁拉出到索引中需要存储和取消存储所做的更改。如果出现问题,您将可以从存储中访问文件。继续?", CantRedoWhileRebasing: "变基时无法重做",
MustStashTitle: "必须保存进度", MustStashWarning: "将补丁拉出到索引中需要存储和取消存储所做的更改。如果出现问题,您将可以从存储中访问文件。继续?",
ConfirmationTitle: "确认面板", MustStashTitle: "必须保存进度",
PrevPage: "上一页", ConfirmationTitle: "确认面板",
NextPage: "下一页", PrevPage: "上一页",
GotoTop: "滚动到顶部", NextPage: "下一页",
GotoBottom: "滚动到底部", GotoTop: "滚动到顶部",
FilteringBy: "过滤依据", GotoBottom: "滚动到底部",
ResetInParentheses: "(重置)", FilteringBy: "过滤依据",
OpenFilteringMenu: "查看按路径过滤选项", ResetInParentheses: "(重置)",
FilterBy: "过滤", OpenFilteringMenu: "查看按路径过滤选项",
ExitFilterMode: "停止按路径过滤", FilterBy: "过滤",
FilterPathOption: "输入要过滤的路径", ExitFilterMode: "停止按路径过滤",
EnterFileName: "输入路径:", FilterPathOption: "输入要过滤的路径",
FilteringMenuTitle: "正在过滤", EnterFileName: "输入路径:",
MustExitFilterModeTitle: "命令不可用", FilteringMenuTitle: "正在过滤",
MustExitFilterModePrompt: "命令在过滤模式下不可用。退出过滤模式?", MustExitFilterModeTitle: "命令不可用",
Diff: "差异", MustExitFilterModePrompt: "命令在过滤模式下不可用。退出过滤模式?",
EnterRefToDiff: "输入 ref 以 diff", Diff: "差异",
EnterRefName: "输入 ref:", EnterRefToDiff: "输入 ref 以 diff",
ExitDiffMode: "退出差异模式", EnterRefName: "输入 ref:",
DiffingMenuTitle: "正在 diff", ExitDiffMode: "退出差异模式",
SwapDiff: "反向 diff", DiffingMenuTitle: "正在 diff",
ViewDiffingOptions: "打开 diff 菜单", SwapDiff: "反向 diff",
ViewDiffingOptions: "打开 diff 菜单",
// 实际视图 (actual view) 是附加视图 (extras view),未来,我打算为附加视图提供更多选项卡,但现在,上面的文本只需要提及“命令日志”这个部分 // 实际视图 (actual view) 是附加视图 (extras view),未来,我打算为附加视图提供更多选项卡,但现在,上面的文本只需要提及“命令日志”这个部分
OpenCommandLogMenu: "打开命令日志菜单", OpenCommandLogMenu: "打开命令日志菜单",
ShowingGitDiff: "显示输出:", ShowingGitDiff: "显示输出:",

View File

@ -198,6 +198,7 @@ type TranslationSet struct {
ForcePushPrompt string ForcePushPrompt string
ForcePushDisabled string ForcePushDisabled string
UpdatesRejected string UpdatesRejected string
UpdatesRejectedAndForcePushDisabled string
CheckForUpdate string CheckForUpdate string
CheckingForUpdates string CheckingForUpdates string
UpdateAvailableTitle string UpdateAvailableTitle string
@ -1160,6 +1161,7 @@ func EnglishTranslationSet() TranslationSet {
ForcePushPrompt: "Your branch has diverged from the remote branch. Press {{.cancelKey}} to cancel, or {{.confirmKey}} to force push.", ForcePushPrompt: "Your branch has diverged from the remote branch. Press {{.cancelKey}} to cancel, or {{.confirmKey}} to force push.",
ForcePushDisabled: "Your branch has diverged from the remote branch and you've disabled force pushing", ForcePushDisabled: "Your branch has diverged from the remote branch and you've disabled force pushing",
UpdatesRejected: "Updates were rejected. Please fetch and examine the remote changes before pushing again.", UpdatesRejected: "Updates were rejected. Please fetch and examine the remote changes before pushing again.",
UpdatesRejectedAndForcePushDisabled: "Updates were rejected and you have disabled force pushing",
CheckForUpdate: "Check for update", CheckForUpdate: "Check for update",
CheckingForUpdates: "Checking for updates...", CheckingForUpdates: "Checking for updates...",
UpdateAvailableTitle: "Update available!", UpdateAvailableTitle: "Update available!",

View File

@ -19,270 +19,271 @@ lazygit!를 이용해주셔서 감사합니다. Seriously you rock. Three things
// exporting this so we can use it in tests // exporting this so we can use it in tests
func koreanTranslationSet() TranslationSet { func koreanTranslationSet() TranslationSet {
return TranslationSet{ return TranslationSet{
NotEnoughSpace: "패널을 렌더링 할 공간이 부족합니다.", NotEnoughSpace: "패널을 렌더링 할 공간이 부족합니다.",
DiffTitle: "Diff", DiffTitle: "Diff",
FilesTitle: "파일", FilesTitle: "파일",
BranchesTitle: "브랜치", BranchesTitle: "브랜치",
CommitsTitle: "커밋", CommitsTitle: "커밋",
StashTitle: "Stash", StashTitle: "Stash",
UnstagedChanges: `Staged되지 않은 변경 내용`, UnstagedChanges: `Staged되지 않은 변경 내용`,
StagedChanges: `Staged된 변경 내용`, StagedChanges: `Staged된 변경 내용`,
MainTitle: "메인", MainTitle: "메인",
MergeConfirmTitle: "병합", MergeConfirmTitle: "병합",
StagingTitle: "메인 패널 (Staging)", StagingTitle: "메인 패널 (Staging)",
MergingTitle: "메인 패널 (Merging)", MergingTitle: "메인 패널 (Merging)",
NormalTitle: "메인 패널 (Normal)", NormalTitle: "메인 패널 (Normal)",
LogTitle: "로그", LogTitle: "로그",
CommitSummary: "커밋 메시지", CommitSummary: "커밋 메시지",
CredentialsUsername: "사용자 이름", CredentialsUsername: "사용자 이름",
CredentialsPassword: "패스워드", CredentialsPassword: "패스워드",
CredentialsPassphrase: "SSH키의 passphrase 입력", CredentialsPassphrase: "SSH키의 passphrase 입력",
PassUnameWrong: "패스워드, passphrase 또는 사용자 이름이 잘못되었습니다.", PassUnameWrong: "패스워드, passphrase 또는 사용자 이름이 잘못되었습니다.",
Commit: "커밋 변경내용", Commit: "커밋 변경내용",
AmendLastCommit: "마지맛 커밋 수정", AmendLastCommit: "마지맛 커밋 수정",
AmendLastCommitTitle: "마지막 커밋 수정", AmendLastCommitTitle: "마지막 커밋 수정",
SureToAmend: "마지막 커밋을 수정하시겠습니까? 그런 다음 커밋 패널에서 커밋 메시지를 변경할 수 있습니다.", SureToAmend: "마지막 커밋을 수정하시겠습니까? 그런 다음 커밋 패널에서 커밋 메시지를 변경할 수 있습니다.",
NoCommitToAmend: "Amend 가능한 커밋이 없습니다.", NoCommitToAmend: "Amend 가능한 커밋이 없습니다.",
CommitChangesWithEditor: "Git 편집기를 사용하여 변경 내용을 커밋합니다.", CommitChangesWithEditor: "Git 편집기를 사용하여 변경 내용을 커밋합니다.",
StatusTitle: "상태", StatusTitle: "상태",
Menu: "메뉴", Menu: "메뉴",
Execute: "실행", Execute: "실행",
Stage: "Staged 전환", Stage: "Staged 전환",
ToggleStagedAll: "모든 변경을 Staged/unstaged으로 전환", ToggleStagedAll: "모든 변경을 Staged/unstaged으로 전환",
ToggleTreeView: "파일 트리뷰로 전환", ToggleTreeView: "파일 트리뷰로 전환",
OpenMergeTool: "Git mergetool를 열기", OpenMergeTool: "Git mergetool를 열기",
Refresh: "새로고침", Refresh: "새로고침",
Push: "푸시", Push: "푸시",
Pull: "업데이트", Pull: "업데이트",
Scroll: "스크롤", Scroll: "스크롤",
MergeConflictsTitle: "병합 충돌 내용", MergeConflictsTitle: "병합 충돌 내용",
Checkout: "체크아웃", Checkout: "체크아웃",
FileFilter: "파일을 필터하기 (Staged/unstaged)", FileFilter: "파일을 필터하기 (Staged/unstaged)",
FilterStagedFiles: "Staged된 파일만 표시", FilterStagedFiles: "Staged된 파일만 표시",
FilterUnstagedFiles: "Stage되지 않은 파일만 표시", FilterUnstagedFiles: "Stage되지 않은 파일만 표시",
ResetFilter: "필터 리셋", ResetFilter: "필터 리셋",
NoChangedFiles: "변경된 파일이 없습니다.", NoChangedFiles: "변경된 파일이 없습니다.",
SoftReset: "소프트 리셋", SoftReset: "소프트 리셋",
AlreadyCheckedOutBranch: "브랜치가 이미 체크아웃 되었습니다", AlreadyCheckedOutBranch: "브랜치가 이미 체크아웃 되었습니다",
SureForceCheckout: "강제로 체크아웃하시겠습니까? 모든 로컬 변경 사항을 잃게 됩니다.", SureForceCheckout: "강제로 체크아웃하시겠습니까? 모든 로컬 변경 사항을 잃게 됩니다.",
ForceCheckoutBranch: "브랜치 강제 체크아웃", ForceCheckoutBranch: "브랜치 강제 체크아웃",
BranchName: "브랜치 이름", BranchName: "브랜치 이름",
NewBranchNameBranchOff: "새 브랜치 이름 (branch is off of '{{.branchName}}')", NewBranchNameBranchOff: "새 브랜치 이름 (branch is off of '{{.branchName}}')",
CantDeleteCheckOutBranch: "체크아웃하는 브랜치는 삭제할 수 없습니다!", CantDeleteCheckOutBranch: "체크아웃하는 브랜치는 삭제할 수 없습니다!",
ForceDeleteBranchMessage: "'{{.selectedBranchName}}'는 완전히 병합되지 않았습니다. 정말 삭제하시겠습니까?", ForceDeleteBranchMessage: "'{{.selectedBranchName}}'는 완전히 병합되지 않았습니다. 정말 삭제하시겠습니까?",
RebaseBranch: "체크아웃된 브랜치를 이 브랜치에 리베이스", RebaseBranch: "체크아웃된 브랜치를 이 브랜치에 리베이스",
CantRebaseOntoSelf: "브랜치를 자기 자신에게 리베이스할 수는 없습니다.", CantRebaseOntoSelf: "브랜치를 자기 자신에게 리베이스할 수는 없습니다.",
CantMergeBranchIntoItself: "브랜치를 자기 자신에게 병합할 수는 없습니다.", CantMergeBranchIntoItself: "브랜치를 자기 자신에게 병합할 수는 없습니다.",
ForceCheckout: "강제 체크아웃", ForceCheckout: "강제 체크아웃",
CheckoutByName: "이름으로 체크아웃", CheckoutByName: "이름으로 체크아웃",
NewBranch: "새 브랜치 생성", NewBranch: "새 브랜치 생성",
NoBranchesThisRepo: "저장소에 브랜치가 존재하지 않습니다.", NoBranchesThisRepo: "저장소에 브랜치가 존재하지 않습니다.",
CommitWithoutMessageErr: "커밋 메시지를 입력하세요.", CommitWithoutMessageErr: "커밋 메시지를 입력하세요.",
CloseCancel: "닫기/취소", CloseCancel: "닫기/취소",
Confirm: "확인", Confirm: "확인",
Close: "닫기", Close: "닫기",
Quit: "종료", Quit: "종료",
NoCommitsThisBranch: "이 브랜치에 커밋이 없습니다.", NoCommitsThisBranch: "이 브랜치에 커밋이 없습니다.",
CannotSquashOrFixupFirstCommit: "There's no commit below to squash into", CannotSquashOrFixupFirstCommit: "There's no commit below to squash into",
Fixup: "Fixup", Fixup: "Fixup",
SureFixupThisCommit: "Are you sure you want to 'fixup' this commit? It will be merged into the commit below", SureFixupThisCommit: "Are you sure you want to 'fixup' this commit? It will be merged into the commit below",
SureSquashThisCommit: "Are you sure you want to squash this commit into the commit below?", SureSquashThisCommit: "Are you sure you want to squash this commit into the commit below?",
Squash: "Squash", Squash: "Squash",
PickCommitTooltip: "Pick commit (when mid-rebase)", PickCommitTooltip: "Pick commit (when mid-rebase)",
RevertCommit: "커밋 되돌리기", RevertCommit: "커밋 되돌리기",
Reword: "커밋메시지 변경", Reword: "커밋메시지 변경",
DropCommit: "커밋 삭제", DropCommit: "커밋 삭제",
MoveDownCommit: "커밋을 1개 아래로 이동", MoveDownCommit: "커밋을 1개 아래로 이동",
MoveUpCommit: "커밋을 1개 위로 이동", MoveUpCommit: "커밋을 1개 위로 이동",
EditCommitTooltip: "커밋을 편집", EditCommitTooltip: "커밋을 편집",
AmendCommitTooltip: "Amend commit with staged changes", AmendCommitTooltip: "Amend commit with staged changes",
ResetAuthor: "Reset commit author", ResetAuthor: "Reset commit author",
SureResetCommitAuthor: "The author field of this commit will be updated to match the configured user. This also renews the author timestamp. Continue?", SureResetCommitAuthor: "The author field of this commit will be updated to match the configured user. This also renews the author timestamp. Continue?",
RewordCommitEditor: "에디터에서 커밋메시지 수정", RewordCommitEditor: "에디터에서 커밋메시지 수정",
Error: "오류", Error: "오류",
PickHunk: "Pick hunk", PickHunk: "Pick hunk",
PickAllHunks: "Pick all hunks", PickAllHunks: "Pick all hunks",
Undo: "되돌리기", Undo: "되돌리기",
UndoReflog: "되돌리기 (reflog) (실험적)", UndoReflog: "되돌리기 (reflog) (실험적)",
RedoReflog: "다시 실행 (reflog) (실험적)", RedoReflog: "다시 실행 (reflog) (실험적)",
Pop: "Pop", Pop: "Pop",
Drop: "Drop", Drop: "Drop",
Apply: "적용", Apply: "적용",
NoStashEntries: "Stash가 존재하지 않습니다.", NoStashEntries: "Stash가 존재하지 않습니다.",
StashDrop: "Stash를 삭제", StashDrop: "Stash를 삭제",
SureDropStashEntry: "정말로 Stash를 삭제하시겠습니까?", SureDropStashEntry: "정말로 Stash를 삭제하시겠습니까?",
StashPop: "Stash를 pop", StashPop: "Stash를 pop",
SurePopStashEntry: "정말로 Stash를 pop하시겠습니까?", SurePopStashEntry: "정말로 Stash를 pop하시겠습니까?",
StashApply: "Stash 적용", StashApply: "Stash 적용",
SureApplyStashEntry: "정말로 Stash를 적용하시겠습니까?", SureApplyStashEntry: "정말로 Stash를 적용하시겠습니까?",
NoTrackedStagedFilesStash: "You have no tracked/staged files to stash", NoTrackedStagedFilesStash: "You have no tracked/staged files to stash",
StashChanges: "변경을 Stash", StashChanges: "변경을 Stash",
RenameStash: "Rename stash", RenameStash: "Rename stash",
RenameStashPrompt: "Rename stash: {{.stashName}}", RenameStashPrompt: "Rename stash: {{.stashName}}",
OpenConfig: "설정 파일 열기", OpenConfig: "설정 파일 열기",
EditConfig: "설정 파일 수정", EditConfig: "설정 파일 수정",
ForcePush: "강제 푸시", ForcePush: "강제 푸시",
ForcePushPrompt: "브랜치가 원격 브랜치에서 분기하고 있습니다. 'esc'를 눌러 취소하거나, 'enter'를 눌러 강제로 푸시하세요.", ForcePushPrompt: "브랜치가 원격 브랜치에서 분기하고 있습니다. 'esc'를 눌러 취소하거나, 'enter'를 눌러 강제로 푸시하세요.",
ForcePushDisabled: "브랜치가 원격 브랜치에서 분기하고 있습니다. force push가 비활성화 되었습니다.", ForcePushDisabled: "브랜치가 원격 브랜치에서 분기하고 있습니다. force push가 비활성화 되었습니다.",
CheckForUpdate: "업데이트 확인", UpdatesRejectedAndForcePushDisabled: "업데이트가 거부되었으며 강제 푸시를 비활성화했습니다.",
CheckingForUpdates: "업데이트 확인 중...", CheckForUpdate: "업데이트 확인",
UpdateAvailableTitle: "새로운 업데이트 사용가능!", CheckingForUpdates: "업데이트 확인 중...",
UpdateAvailable: "버전 {{.newVersion}} 을(를) 설치하시겠습니까?", UpdateAvailableTitle: "새로운 업데이트 사용가능!",
UpdateInProgressWaitingStatus: "업데이트 중", UpdateAvailable: "버전 {{.newVersion}} 을(를) 설치하시겠습니까?",
UpdateCompletedTitle: "업데이트 완료!", UpdateInProgressWaitingStatus: "업데이트 중",
UpdateCompleted: "업데이트 설치에 성공했습니다. lazygit를 재시작해주세요.", UpdateCompletedTitle: "업데이트 완료!",
FailedToRetrieveLatestVersionErr: "버전 정보를 받아오는데 실패했습니다.", UpdateCompleted: "업데이트 설치에 성공했습니다. lazygit를 재시작해주세요.",
OnLatestVersionErr: "이미 최신 버전을 사용하고 있습니다.", FailedToRetrieveLatestVersionErr: "버전 정보를 받아오는데 실패했습니다.",
MajorVersionErr: "새 버전 ({{.newVersion}}) 에 현재 버전({{.currentVersion}}) 과 비교할 때 호환되지 않는 변경 사항이 있습니다.", OnLatestVersionErr: "이미 최신 버전을 사용하고 있습니다.",
CouldNotFindBinaryErr: "{{.url}} 에서 바이너리를 찾을 수 없습니다.", MajorVersionErr: "새 버전 ({{.newVersion}}) 에 현재 버전({{.currentVersion}}) 과 비교할 때 호환되지 않는 변경 사항이 있습니다.",
UpdateFailedErr: "업데이트 실패: {{.errMessage}}", CouldNotFindBinaryErr: "{{.url}} 에서 바이너리를 찾을 수 없습니다.",
ConfirmQuitDuringUpdateTitle: "현재 업데이트 중입니다.", UpdateFailedErr: "업데이트 실패: {{.errMessage}}",
ConfirmQuitDuringUpdate: "현재 업데이트를 진행 중입니다.종료하시겠습니까?", ConfirmQuitDuringUpdateTitle: "현재 업데이트 중입니다.",
MergeToolTitle: "병합 도구", ConfirmQuitDuringUpdate: "현재 업데이트를 진행 중입니다.종료하시겠습니까?",
MergeToolPrompt: "정말로 `git mergetool`을 여시겠습니까?", MergeToolTitle: "병합 도구",
IntroPopupMessage: koreanIntroPopupMessage, MergeToolPrompt: "정말로 `git mergetool`을 여시겠습니까?",
GitconfigParseErr: `따옴표로 묶이지 않은 '\' 문자가 있어서 Gogit이 gitconfig 파일을 분석하지 못했습니다. 이를 제거하면 문제가 해결됩니다.`, IntroPopupMessage: koreanIntroPopupMessage,
EditFile: `파일 편집`, GitconfigParseErr: `따옴표로 묶이지 않은 '\' 문자가 있어서 Gogit이 gitconfig 파일을 분석하지 못했습니다. 이를 제거하면 문제가 해결됩니다.`,
OpenFile: `파일 닫기`, EditFile: `파일 편집`,
IgnoreFile: `.gitignore에 추가`, OpenFile: `파일 닫기`,
RefreshFiles: `파일 새로고침`, IgnoreFile: `.gitignore에 추가`,
Merge: `현재 브랜치에 병합`, RefreshFiles: `파일 새로고침`,
ConfirmQuit: `정말로 종료하시겠습니까?`, Merge: `현재 브랜치에 병합`,
SwitchRepo: `최근에 사용한 저장소로 전환`, ConfirmQuit: `정말로 종료하시겠습니까?`,
AllBranchesLogGraph: `모든 브랜치 로그 표시`, SwitchRepo: `최근에 사용한 저장소로 전환`,
UnsupportedGitService: `지원되지 않는 Git 서비스입니다.`, AllBranchesLogGraph: `모든 브랜치 로그 표시`,
CreatePullRequest: `풀 리퀘스트 생성`, UnsupportedGitService: `지원되지 않는 Git 서비스입니다.`,
CopyPullRequestURL: `풀 리퀘스트 URL을 클립보드에 복사`, CreatePullRequest: `풀 리퀘스트 생성`,
NoBranchOnRemote: `브랜치가 원격에 없습니다. 원격에 먼저 푸시해야합니다.`, CopyPullRequestURL: `풀 리퀘스트 URL을 클립보드에 복사`,
Fetch: `Fetch`, NoBranchOnRemote: `브랜치가 원격에 없습니다. 원격에 먼저 푸시해야합니다.`,
NoAutomaticGitFetchTitle: `자동 git 업데이트) 없음`, Fetch: `Fetch`,
NoAutomaticGitFetchBody: `Lazygit은 private 저장소에서 "git fetch"를 사용할 수 없습니다. 파일 패널에서 'f'를 사용하여 "git fetch"를 수동으로 실행하세요.`, NoAutomaticGitFetchTitle: `자동 git 업데이트) 없음`,
FileEnter: `Stage individual hunks/lines for file, or collapse/expand for directory`, NoAutomaticGitFetchBody: `Lazygit은 private 저장소에서 "git fetch"를 사용할 수 없습니다. 파일 패널에서 'f'를 사용하여 "git fetch"를 수동으로 실행하세요.`,
FileStagingRequirements: `추적된 파일에 대해 개별 라인만 stage할 수 있습니다.`, FileEnter: `Stage individual hunks/lines for file, or collapse/expand for directory`,
StageSelectionTooltip: `선택한 행을 staged / unstaged`, FileStagingRequirements: `추적된 파일에 대해 개별 라인만 stage할 수 있습니다.`,
DiscardSelection: `변경을 삭제 (git reset)`, StageSelectionTooltip: `선택한 행을 staged / unstaged`,
ToggleRangeSelect: `드래그 선택 전환`, DiscardSelection: `변경을 삭제 (git reset)`,
ToggleSelectHunk: `Toggle select hunk`, ToggleRangeSelect: `드래그 선택 전환`,
ToggleSelectionForPatch: `Line(s)을 패치에 추가/삭제`, ToggleSelectHunk: `Toggle select hunk`,
ToggleStagingView: `패널 전환`, ToggleSelectionForPatch: `Line(s)을 패치에 추가/삭제`,
ReturnToFilesPanel: `파일 목록으로 돌아가기`, ToggleStagingView: `패널 전환`,
FastForward: `Fast-forward this branch from its upstream`, ReturnToFilesPanel: `파일 목록으로 돌아가기`,
FastForwarding: "Fast-forwarding", FastForward: `Fast-forward this branch from its upstream`,
FoundConflictsTitle: "Auto-merge failed", FastForwarding: "Fast-forwarding",
ViewMergeRebaseOptions: "View merge/rebase options", FoundConflictsTitle: "Auto-merge failed",
NotMergingOrRebasing: "You are currently neither rebasing nor merging", ViewMergeRebaseOptions: "View merge/rebase options",
RecentRepos: "최근에 사용한 저장소", NotMergingOrRebasing: "You are currently neither rebasing nor merging",
MergeOptionsTitle: "Merge options", RecentRepos: "최근에 사용한 저장소",
RebaseOptionsTitle: "Rebase options", MergeOptionsTitle: "Merge options",
CommitSummaryTitle: "커밋메시지", RebaseOptionsTitle: "Rebase options",
LocalBranchesTitle: "브랜치", CommitSummaryTitle: "커밋메시지",
SearchTitle: "검색", LocalBranchesTitle: "브랜치",
TagsTitle: "태그", SearchTitle: "검색",
MenuTitle: "메뉴", TagsTitle: "태그",
RemotesTitle: "원격", MenuTitle: "메뉴",
RemoteBranchesTitle: "원격 브랜치", RemotesTitle: "원격",
PatchBuildingTitle: "메인 패널 (Patch Building)", RemoteBranchesTitle: "원격 브랜치",
InformationTitle: "정보", PatchBuildingTitle: "메인 패널 (Patch Building)",
SecondaryTitle: "Secondary", InformationTitle: "정보",
ReflogCommitsTitle: "Reflog", SecondaryTitle: "Secondary",
GlobalTitle: "글로벌 키 바인딩", ReflogCommitsTitle: "Reflog",
ConflictsResolved: "모든 병합 충돌이 해결되었습니다. 계속 할까요?", GlobalTitle: "글로벌 키 바인딩",
ConfirmMerge: "정말로 '{{.selectedBranch}}' 을(를) '{{.checkedOutBranch}}'에 병합하시겠습니까?", ConflictsResolved: "모든 병합 충돌이 해결되었습니다. 계속 할까요?",
FwdNoUpstream: "Cannot fast-forward a branch with no upstream", ConfirmMerge: "정말로 '{{.selectedBranch}}' 을(를) '{{.checkedOutBranch}}'에 병합하시겠습니까?",
FwdNoLocalUpstream: "Cannot fast-forward a branch whose remote is not registered locally", FwdNoUpstream: "Cannot fast-forward a branch with no upstream",
FwdCommitsToPush: "Cannot fast-forward a branch with commits to push", FwdNoLocalUpstream: "Cannot fast-forward a branch whose remote is not registered locally",
ErrorOccurred: "오류가 발생했습니다! issue를 작성해 주세요: ", FwdCommitsToPush: "Cannot fast-forward a branch with commits to push",
NoRoom: "Not enough room", ErrorOccurred: "오류가 발생했습니다! issue를 작성해 주세요: ",
YouAreHere: "현재 위치", NoRoom: "Not enough room",
RewordNotSupported: "Rewording commits while interactively rebasing is not currently supported", YouAreHere: "현재 위치",
CherryPickCopy: "커밋을 복사 (cherry-pick)", RewordNotSupported: "Rewording commits while interactively rebasing is not currently supported",
PasteCommits: "커밋을 붙여넣기 (cherry-pick)", CherryPickCopy: "커밋을 복사 (cherry-pick)",
SureCherryPick: "정말로 복사한 커밋을 이 브랜치에 체리픽하시겠습니까?", PasteCommits: "커밋을 붙여넣기 (cherry-pick)",
CherryPick: "체리픽", SureCherryPick: "정말로 복사한 커밋을 이 브랜치에 체리픽하시겠습니까?",
Donate: "후원", CherryPick: "체리픽",
AskQuestion: "질문하기", Donate: "후원",
PrevLine: "이전 줄 선택", AskQuestion: "질문하기",
NextLine: "다음 줄 선택", PrevLine: "이전 줄 선택",
PrevHunk: "이전 hunk를 선택", NextLine: "다음 줄 선택",
NextHunk: "다음 hunk를 선택", PrevHunk: "이전 hunk를 선택",
PrevConflict: "이전 충돌을 선택", NextHunk: "다음 hunk를 선택",
NextConflict: "다음 충돌을 선택", PrevConflict: "이전 충돌을 선택",
SelectPrevHunk: "이전 hunk를 선택", NextConflict: "다음 충돌을 선택",
SelectNextHunk: "다음 hunk를 선택", SelectPrevHunk: "이전 hunk를 선택",
ScrollDown: "아래로 스크롤", SelectNextHunk: "다음 hunk를 선택",
ScrollUp: "위로 스크롤", ScrollDown: "아래로 스크롤",
ScrollUpMainWindow: "메인 패널을 위로 스크롤", ScrollUp: "위로 스크롤",
ScrollDownMainWindow: "메인 패널을 아래로로 스크롤", ScrollUpMainWindow: "메인 패널을 위로 스크롤",
AmendCommitTitle: "Amend commit", ScrollDownMainWindow: "메인 패널을 아래로로 스크롤",
AmendCommitPrompt: "Are you sure you want to amend this commit with your staged files?", AmendCommitTitle: "Amend commit",
DropCommitTitle: "커밋 삭제", AmendCommitPrompt: "Are you sure you want to amend this commit with your staged files?",
DropCommitPrompt: "정말로 선택한 커밋을 삭제하시겠습니까?", DropCommitTitle: "커밋 삭제",
PullingStatus: "업데이트 중", DropCommitPrompt: "정말로 선택한 커밋을 삭제하시겠습니까?",
PushingStatus: "푸시 중", PullingStatus: "업데이트 중",
FetchingStatus: "패치 중", PushingStatus: "푸시 중",
SquashingStatus: "Squashing", FetchingStatus: "패치 중",
FixingStatus: "Fixing up", SquashingStatus: "Squashing",
DeletingStatus: "Deleting", FixingStatus: "Fixing up",
MovingStatus: "Moving", DeletingStatus: "Deleting",
RebasingStatus: "Rebasing", MovingStatus: "Moving",
AmendingStatus: "Amending", RebasingStatus: "Rebasing",
CherryPickingStatus: "Cherry-picking", AmendingStatus: "Amending",
UndoingStatus: "Undoing", CherryPickingStatus: "Cherry-picking",
RedoingStatus: "Redoing", UndoingStatus: "Undoing",
CheckingOutStatus: "Checking out", RedoingStatus: "Redoing",
CommittingStatus: "Committing", CheckingOutStatus: "Checking out",
CommitFiles: "Commit files", CommittingStatus: "Committing",
SubCommitsDynamicTitle: "커밋 (%s)", CommitFiles: "Commit files",
CommitFilesDynamicTitle: "Diff files (%s)", SubCommitsDynamicTitle: "커밋 (%s)",
RemoteBranchesDynamicTitle: "원격브랜치 (%s)", CommitFilesDynamicTitle: "Diff files (%s)",
ViewItemFiles: "View selected item's files", RemoteBranchesDynamicTitle: "원격브랜치 (%s)",
CommitFilesTitle: "커밋 파일", ViewItemFiles: "View selected item's files",
CheckoutCommitFileTooltip: "Checkout file", CommitFilesTitle: "커밋 파일",
DiscardOldFileChangeTooltip: "Discard this commit's changes to this file", CheckoutCommitFileTooltip: "Checkout file",
DiscardFileChangesTitle: "파일 변경 사항 버리기", DiscardOldFileChangeTooltip: "Discard this commit's changes to this file",
DiscardFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file? If this file was created in this commit, it will be deleted", DiscardFileChangesTitle: "파일 변경 사항 버리기",
DisabledForGPG: "Feature not available for users using GPG", DiscardFileChangesPrompt: "Are you sure you want to discard this commit's changes to this file? If this file was created in this commit, it will be deleted",
CreateRepo: "Git 저장소가 아닙니다. 저장소를 생성하시겠습니까? (y/n): ", DisabledForGPG: "Feature not available for users using GPG",
AutoStashTitle: "Autostash?", CreateRepo: "Git 저장소가 아닙니다. 저장소를 생성하시겠습니까? (y/n): ",
AutoStashPrompt: "You must stash and pop your changes to bring them across. Do this automatically? (enter/esc)", AutoStashTitle: "Autostash?",
StashPrefix: "Auto-stashing changes for ", AutoStashPrompt: "You must stash and pop your changes to bring them across. Do this automatically? (enter/esc)",
Discard: "View 'discard changes' options", StashPrefix: "Auto-stashing changes for ",
Cancel: "취소", Discard: "View 'discard changes' options",
DiscardAllChanges: "모든 변경사항 버리기", Cancel: "취소",
DiscardUnstagedChanges: "Discard unstaged changes", DiscardAllChanges: "모든 변경사항 버리기",
DiscardAllChangesToAllFiles: "Nuke working tree", DiscardUnstagedChanges: "Discard unstaged changes",
DiscardAnyUnstagedChanges: "Discard unstaged changes", DiscardAllChangesToAllFiles: "Nuke working tree",
DiscardUntrackedFiles: "Discard untracked files", DiscardAnyUnstagedChanges: "Discard unstaged changes",
HardReset: "Hard reset", DiscardUntrackedFiles: "Discard untracked files",
ViewResetOptions: `View reset options`, HardReset: "Hard reset",
CreateFixupCommitTooltip: `Create fixup commit for this commit`, ViewResetOptions: `View reset options`,
SquashAboveCommitsTooltip: `Squash all 'fixup!' commits above selected commit (autosquash)`, CreateFixupCommitTooltip: `Create fixup commit for this commit`,
CreateFixupCommit: `Create fixup commit`, SquashAboveCommitsTooltip: `Squash all 'fixup!' commits above selected commit (autosquash)`,
ExecuteCustomCommand: "Execute custom command", CreateFixupCommit: `Create fixup commit`,
CustomCommand: "Custom command:", ExecuteCustomCommand: "Execute custom command",
CommitChangesWithoutHook: "Commit changes without pre-commit hook", CustomCommand: "Custom command:",
SkipHookPrefixNotConfigured: "You have not configured a commit message prefix for skipping hooks. Set `git.skipHookPrefix = 'WIP'` in your config", CommitChangesWithoutHook: "Commit changes without pre-commit hook",
ResetTo: `Reset to`, SkipHookPrefixNotConfigured: "You have not configured a commit message prefix for skipping hooks. Set `git.skipHookPrefix = 'WIP'` in your config",
PressEnterToReturn: "엔터를 눌러 lazygit으로 돌아갑니다.", ResetTo: `Reset to`,
ViewStashOptions: "Stash 옵션 보기", PressEnterToReturn: "엔터를 눌러 lazygit으로 돌아갑니다.",
StashAllChanges: "변경사항을 Stash", ViewStashOptions: "Stash 옵션 보기",
StashStagedChanges: "Stash staged changes", StashAllChanges: "변경사항을 Stash",
StashOptions: "Stash 옵션", StashStagedChanges: "Stash staged changes",
NotARepository: "Error: must be run inside a git repository", StashOptions: "Stash 옵션",
Jump: "패널로 이동", NotARepository: "Error: must be run inside a git repository",
ScrollLeftRight: "좌우로 스크롤", Jump: "패널로 이동",
ScrollLeft: "우 스크롤", ScrollLeftRight: "좌우로 스크롤",
ScrollRight: "좌 스크롤", ScrollLeft: "우 스크롤",
DiscardPatch: "Patch 버리기", ScrollRight: "좌 스크롤",
DiscardPatchConfirm: "You can only build a patch from one commit/stash-entry at a time. Discard current patch?", DiscardPatch: "Patch 버리기",
CantPatchWhileRebasingError: "You cannot build a patch or run patch commands while in a merging or rebasing state", DiscardPatchConfirm: "You can only build a patch from one commit/stash-entry at a time. Discard current patch?",
ToggleAddToPatch: "Toggle file included in patch", CantPatchWhileRebasingError: "You cannot build a patch or run patch commands while in a merging or rebasing state",
ToggleAllInPatch: "Toggle all files included in patch", ToggleAddToPatch: "Toggle file included in patch",
UpdatingPatch: "Updating patch", ToggleAllInPatch: "Toggle all files included in patch",
ViewPatchOptions: "커스텀 Patch 옵션 보기", UpdatingPatch: "Updating patch",
PatchOptionsTitle: "Patch 옵션", ViewPatchOptions: "커스텀 Patch 옵션 보기",
NoPatchError: "No patch created yet. To start building a patch, use 'space' on a commit file or enter to add specific lines", PatchOptionsTitle: "Patch 옵션",
EnterCommitFile: "Enter file to add selected lines to the patch (or toggle directory collapsed)", NoPatchError: "No patch created yet. To start building a patch, use 'space' on a commit file or enter to add specific lines",
EnterCommitFile: "Enter file to add selected lines to the patch (or toggle directory collapsed)",
// ExitCustomPatchBuilder: ``, // ExitCustomPatchBuilder: ``,
EnterUpstream: `'<remote> <branchname>'와 같은 형식으로 입력하세요.`, EnterUpstream: `'<remote> <branchname>'와 같은 형식으로 입력하세요.`,
InvalidUpstream: "Upstream의 형식이 잘못되었습니다.'<remote> <branchname>' 와 같은 형식으로 입력하세요.", InvalidUpstream: "Upstream의 형식이 잘못되었습니다.'<remote> <branchname>' 와 같은 형식으로 입력하세요.",

View File

@ -183,6 +183,7 @@ func polishTranslationSet() TranslationSet {
ForcePush: "Wymuś wysłanie", ForcePush: "Wymuś wysłanie",
ForcePushPrompt: "Twoja gałąź rozbiegła się z gałęzią zdalną. Naciśnij {{.cancelKey}}, aby anulować, lub {{.confirmKey}}, aby wymusić wysłanie.", ForcePushPrompt: "Twoja gałąź rozbiegła się z gałęzią zdalną. Naciśnij {{.cancelKey}}, aby anulować, lub {{.confirmKey}}, aby wymusić wysłanie.",
ForcePushDisabled: "Twoja gałąź rozbiegła się z gałęzią zdalną i masz wyłączone wymuszanie wysyłania", ForcePushDisabled: "Twoja gałąź rozbiegła się z gałęzią zdalną i masz wyłączone wymuszanie wysyłania",
UpdatesRejectedAndForcePushDisabled: "Aktualizacje zostały odrzucone i wyłączyłeś wymuszenie wysłania",
CheckForUpdate: "Sprawdź aktualizacje", CheckForUpdate: "Sprawdź aktualizacje",
CheckingForUpdates: "Sprawdzanie aktualizacji...", CheckingForUpdates: "Sprawdzanie aktualizacji...",
UpdateAvailableTitle: "Dostępna aktualizacja!", UpdateAvailableTitle: "Dostępna aktualizacja!",

View File

@ -35,389 +35,390 @@ const russianDeprecatedEditConfigWarning = `
// exporting this so we can use it in tests // exporting this so we can use it in tests
func RussianTranslationSet() TranslationSet { func RussianTranslationSet() TranslationSet {
return TranslationSet{ return TranslationSet{
NotEnoughSpace: "Недостаточно места для отрисовки панелей", NotEnoughSpace: "Недостаточно места для отрисовки панелей",
DiffTitle: "Сравнения", DiffTitle: "Сравнения",
FilesTitle: "Файлы", FilesTitle: "Файлы",
BranchesTitle: "Ветки", BranchesTitle: "Ветки",
CommitsTitle: "Коммиты", CommitsTitle: "Коммиты",
StashTitle: "Хранилище", StashTitle: "Хранилище",
SnakeTitle: "Змейка", SnakeTitle: "Змейка",
EasterEgg: "Пасхалка", EasterEgg: "Пасхалка",
UnstagedChanges: `Непроиндексированные Изменения`, UnstagedChanges: `Непроиндексированные Изменения`,
StagedChanges: `Проиндексированные Изменения`, StagedChanges: `Проиндексированные Изменения`,
MainTitle: "Главная", MainTitle: "Главная",
MergeConfirmTitle: "Слияние", MergeConfirmTitle: "Слияние",
StagingTitle: "Главная панель (Индексирование)", StagingTitle: "Главная панель (Индексирование)",
MergingTitle: "Главная панель (Слияние)", MergingTitle: "Главная панель (Слияние)",
NormalTitle: "Главная панель (Обычный)", NormalTitle: "Главная панель (Обычный)",
LogTitle: "Журнал", LogTitle: "Журнал",
CommitSummary: "Сводка коммита", CommitSummary: "Сводка коммита",
CredentialsUsername: "Имя пользователя", CredentialsUsername: "Имя пользователя",
CredentialsPassword: "Пароль", CredentialsPassword: "Пароль",
CredentialsPassphrase: "Введите пароль для SSH ключа", CredentialsPassphrase: "Введите пароль для SSH ключа",
CredentialsPIN: "Введите PIN-код для SSH ключа", CredentialsPIN: "Введите PIN-код для SSH ключа",
PassUnameWrong: "Неверный пароль, кодовая фраза и/или имя пользователя", PassUnameWrong: "Неверный пароль, кодовая фраза и/или имя пользователя",
Commit: "Сохранить изменения", Commit: "Сохранить изменения",
AmendLastCommit: "Правка последнего коммита", AmendLastCommit: "Правка последнего коммита",
AmendLastCommitTitle: "Правка Последнего Коммита", AmendLastCommitTitle: "Правка Последнего Коммита",
SureToAmend: "Вы уверены, что хотите править последний коммит? Впоследствии можно изменить сообщение коммита на панели коммитов.", SureToAmend: "Вы уверены, что хотите править последний коммит? Впоследствии можно изменить сообщение коммита на панели коммитов.",
NoCommitToAmend: "Не найден коммит для внесения поправок.", NoCommitToAmend: "Не найден коммит для внесения поправок.",
CommitChangesWithEditor: "Сохранить изменения с помощью редактора git", CommitChangesWithEditor: "Сохранить изменения с помощью редактора git",
StatusTitle: "Статус", StatusTitle: "Статус",
Menu: "Меню", Menu: "Меню",
Execute: "Выполнить", Execute: "Выполнить",
Stage: "Переключить индекс", Stage: "Переключить индекс",
ToggleStagedAll: "Все проиндексированные/непроиндексированные", ToggleStagedAll: "Все проиндексированные/непроиндексированные",
ToggleTreeView: "Переключить вид дерева файлов", ToggleTreeView: "Переключить вид дерева файлов",
OpenMergeTool: "Открыть внешний инструмент слияния (git mergetool)", OpenMergeTool: "Открыть внешний инструмент слияния (git mergetool)",
Refresh: "Обновить", Refresh: "Обновить",
Push: "Отправить изменения", Push: "Отправить изменения",
Pull: "Получить и слить изменения", Pull: "Получить и слить изменения",
Scroll: "Прокрутить", Scroll: "Прокрутить",
MergeConflictsTitle: "Конфликты Слияния", MergeConflictsTitle: "Конфликты Слияния",
Checkout: "Переключить", Checkout: "Переключить",
FileFilter: "Фильтровать файлы (проиндексированные/непроиндексированные)", FileFilter: "Фильтровать файлы (проиндексированные/непроиндексированные)",
FilterStagedFiles: "Показывать только проиндексированные файлы", FilterStagedFiles: "Показывать только проиндексированные файлы",
FilterUnstagedFiles: "Показывать только непроиндексированные файлы", FilterUnstagedFiles: "Показывать только непроиндексированные файлы",
ResetFilter: "Сбросить фильтр", ResetFilter: "Сбросить фильтр",
NoChangedFiles: "Нет изменённых файлов", NoChangedFiles: "Нет изменённых файлов",
SoftReset: "Мягкий сброс", SoftReset: "Мягкий сброс",
AlreadyCheckedOutBranch: "Вы уже переключились в эту ветку", AlreadyCheckedOutBranch: "Вы уже переключились в эту ветку",
SureForceCheckout: "Вы уверены, что хотите принудительная переключить? Вы потеряете все локальные изменения", SureForceCheckout: "Вы уверены, что хотите принудительная переключить? Вы потеряете все локальные изменения",
ForceCheckoutBranch: "Принудительное Переключение Ветки", ForceCheckoutBranch: "Принудительное Переключение Ветки",
BranchName: "Название ветки", BranchName: "Название ветки",
NewBranchNameBranchOff: "Название новой ветки (Ветка с '{{.branchName}}')", NewBranchNameBranchOff: "Название новой ветки (Ветка с '{{.branchName}}')",
CantDeleteCheckOutBranch: "Невозможно удалить переключённую ветку!", CantDeleteCheckOutBranch: "Невозможно удалить переключённую ветку!",
ForceDeleteBranchMessage: "'{{.selectedBranchName}}' не полностью слилась. Вы уверены, что хотите удалить его?", ForceDeleteBranchMessage: "'{{.selectedBranchName}}' не полностью слилась. Вы уверены, что хотите удалить его?",
RebaseBranch: "Перебазировать переключённую ветку на эту ветку", RebaseBranch: "Перебазировать переключённую ветку на эту ветку",
CantRebaseOntoSelf: "Невозможно перебазировать ветку на себя", CantRebaseOntoSelf: "Невозможно перебазировать ветку на себя",
CantMergeBranchIntoItself: "Невозможно объединить ветку в себя", CantMergeBranchIntoItself: "Невозможно объединить ветку в себя",
ForceCheckout: "Принудительное переключение", ForceCheckout: "Принудительное переключение",
CheckoutByName: "Переключить по названию", CheckoutByName: "Переключить по названию",
NewBranch: "Новая ветка", NewBranch: "Новая ветка",
NoBranchesThisRepo: "Нет веток для этого репозитория", NoBranchesThisRepo: "Нет веток для этого репозитория",
CommitWithoutMessageErr: "Вы не можете сохранить изменения без сообщения коммита", CommitWithoutMessageErr: "Вы не можете сохранить изменения без сообщения коммита",
Close: "Закрыть", Close: "Закрыть",
CloseCancel: "Закрыть/отменить", CloseCancel: "Закрыть/отменить",
Confirm: "Подтвердить", Confirm: "Подтвердить",
Quit: "Выйти", Quit: "Выйти",
NoCommitsThisBranch: "Нет коммитов для этой ветки", NoCommitsThisBranch: "Нет коммитов для этой ветки",
UpdateRefHere: "Обновить ветку '{{.ref}}' здесь", UpdateRefHere: "Обновить ветку '{{.ref}}' здесь",
CannotSquashOrFixupFirstCommit: "Ниже нет коммита, который можно было бы объединить", CannotSquashOrFixupFirstCommit: "Ниже нет коммита, который можно было бы объединить",
Fixup: "Объединить несколько коммитов в один отбросив сообщение коммита (Fixup) ", Fixup: "Объединить несколько коммитов в один отбросив сообщение коммита (Fixup) ",
SureFixupThisCommit: "Вы уверены, что хотите объединить несколько коммитов, отбросив сообщение коммита? Он будет объединён с коммитом ниже", SureFixupThisCommit: "Вы уверены, что хотите объединить несколько коммитов, отбросив сообщение коммита? Он будет объединён с коммитом ниже",
SureSquashThisCommit: "Вы уверены, что хотите объединить несколько коммитов в нижний коммит?", SureSquashThisCommit: "Вы уверены, что хотите объединить несколько коммитов в нижний коммит?",
Squash: "Объединить коммиты (Squash)", Squash: "Объединить коммиты (Squash)",
PickCommitTooltip: "Выбрать коммит (в середине перебазирования)", PickCommitTooltip: "Выбрать коммит (в середине перебазирования)",
RevertCommit: "Отменить коммит", RevertCommit: "Отменить коммит",
Reword: "Перефразировать коммит", Reword: "Перефразировать коммит",
DropCommit: "Удалить коммит", DropCommit: "Удалить коммит",
MoveDownCommit: "Переместить коммит вниз на один", MoveDownCommit: "Переместить коммит вниз на один",
MoveUpCommit: "Переместить коммит вверх на один", MoveUpCommit: "Переместить коммит вверх на один",
EditCommitTooltip: "Изменить коммит", EditCommitTooltip: "Изменить коммит",
AmendCommitTooltip: "Править последний коммит с проиндексированными изменениями", AmendCommitTooltip: "Править последний коммит с проиндексированными изменениями",
ResetAuthor: "Сброс автора коммита", ResetAuthor: "Сброс автора коммита",
SetAuthor: "Установить автора", SetAuthor: "Установить автора",
AmendCommitAttribute: "Установить/убрать автора коммита", AmendCommitAttribute: "Установить/убрать автора коммита",
SetAuthorPromptTitle: "Установить автора (должно выглядеть как «Имя <Email>»)", SetAuthorPromptTitle: "Установить автора (должно выглядеть как «Имя <Email>»)",
SureResetCommitAuthor: "Поле автора этого автора будет обновлено в соответствии с настроенным пользователем. Это также обновляет временную метку автора. Продолжить?", SureResetCommitAuthor: "Поле автора этого автора будет обновлено в соответствии с настроенным пользователем. Это также обновляет временную метку автора. Продолжить?",
RewordCommitEditor: "Переписать коммит с помощью редактора", RewordCommitEditor: "Переписать коммит с помощью редактора",
Error: "Ошибка", Error: "Ошибка",
PickHunk: "Выбрать эту часть", PickHunk: "Выбрать эту часть",
PickAllHunks: "Выбрать все части", PickAllHunks: "Выбрать все части",
Undo: "Отменить", Undo: "Отменить",
UndoReflog: "Отменить (через reflog) (экспериментальный)", UndoReflog: "Отменить (через reflog) (экспериментальный)",
RedoReflog: "Повторить (через reflog) (экспериментальный)", RedoReflog: "Повторить (через reflog) (экспериментальный)",
UndoTooltip: "Журнал ссылок (reflog) будет использоваться для определения того, какую команду git запустить, чтобы отменить последнюю команду git. Сюда не входят изменения в рабочем дереве; учитываются только коммиты.", UndoTooltip: "Журнал ссылок (reflog) будет использоваться для определения того, какую команду git запустить, чтобы отменить последнюю команду git. Сюда не входят изменения в рабочем дереве; учитываются только коммиты.",
RedoTooltip: "Журнал ссылок (reflog) будет использоваться для определения того, какую команду git нужно запустить, чтобы повторить последнюю команду git. Сюда не входят изменения в рабочем дереве; учитываются только коммиты.", RedoTooltip: "Журнал ссылок (reflog) будет использоваться для определения того, какую команду git нужно запустить, чтобы повторить последнюю команду git. Сюда не входят изменения в рабочем дереве; учитываются только коммиты.",
DiscardAllTooltip: "Отменить проиндексированные и непроиндексированные изменения в '{{.path}}'.", DiscardAllTooltip: "Отменить проиндексированные и непроиндексированные изменения в '{{.path}}'.",
DiscardUnstagedTooltip: "Отменить непроиндексированные изменения в '{{.path}}'.", DiscardUnstagedTooltip: "Отменить непроиндексированные изменения в '{{.path}}'.",
Pop: "Применить припрятанные изменения и тут же удалить их из хранилища", Pop: "Применить припрятанные изменения и тут же удалить их из хранилища",
Drop: "Удалить припрятанные изменения из хранилища", Drop: "Удалить припрятанные изменения из хранилища",
Apply: "Применить припрятанные изменения", Apply: "Применить припрятанные изменения",
NoStashEntries: "Нет записей в хранилище", NoStashEntries: "Нет записей в хранилище",
StashDrop: "Сбросить хранилище", StashDrop: "Сбросить хранилище",
SureDropStashEntry: "Вы уверены, что хотите удалить эту запись хранилища?", SureDropStashEntry: "Вы уверены, что хотите удалить эту запись хранилища?",
StashPop: "Применить припрятанные изменения и тут же удалить их из хранилища", StashPop: "Применить припрятанные изменения и тут же удалить их из хранилища",
SurePopStashEntry: "Вы уверены, что хотите применить эти припрятанные изменения и тут же удалить их из хранилища?", SurePopStashEntry: "Вы уверены, что хотите применить эти припрятанные изменения и тут же удалить их из хранилища?",
StashApply: "Применить припрятанные изменения", StashApply: "Применить припрятанные изменения",
SureApplyStashEntry: "Вы уверены, что хотите применить эти припрятанные изменения?", SureApplyStashEntry: "Вы уверены, что хотите применить эти припрятанные изменения?",
NoTrackedStagedFilesStash: "У вас нет отслеженных/проиндексированных файлов для хранения", NoTrackedStagedFilesStash: "У вас нет отслеженных/проиндексированных файлов для хранения",
NoFilesToStash: "У вас нет файлов для хранения", NoFilesToStash: "У вас нет файлов для хранения",
StashChanges: "Припрятать изменения", StashChanges: "Припрятать изменения",
RenameStash: "Переименовать хранилище", RenameStash: "Переименовать хранилище",
RenameStashPrompt: "Переименовать хранилище: {{.stashName}}", RenameStashPrompt: "Переименовать хранилище: {{.stashName}}",
OpenConfig: "Открыть файл конфигурации", OpenConfig: "Открыть файл конфигурации",
EditConfig: "Редактировать файл конфигурации", EditConfig: "Редактировать файл конфигурации",
ForcePush: "Принудительная отправка изменении", ForcePush: "Принудительная отправка изменении",
ForcePushPrompt: "Ветка отклонилась от удалённой ветки. Нажмите «esc», чтобы отменить, или «enter», чтобы начать принудительную отправку изменении.", ForcePushPrompt: "Ветка отклонилась от удалённой ветки. Нажмите «esc», чтобы отменить, или «enter», чтобы начать принудительную отправку изменении.",
ForcePushDisabled: "Ветка отклонилась от удалённой ветки. Принудительная отправка изменении была отключена", ForcePushDisabled: "Ветка отклонилась от удалённой ветки. Принудительная отправка изменении была отключена",
CheckForUpdate: "Проверить обновления", UpdatesRejectedAndForcePushDisabled: "Обновления были отклонены. Принудительная отправка изменении была отключена",
CheckingForUpdates: "Проверка обновлений...", CheckForUpdate: "Проверить обновления",
UpdateAvailableTitle: "Доступно обновление!", CheckingForUpdates: "Проверка обновлений...",
UpdateAvailable: "Скачать и установить версию {{.newVersion}}?", UpdateAvailableTitle: "Доступно обновление!",
UpdateInProgressWaitingStatus: "Обновление", UpdateAvailable: "Скачать и установить версию {{.newVersion}}?",
UpdateCompletedTitle: "Обновление завершено!", UpdateInProgressWaitingStatus: "Обновление",
UpdateCompleted: "Обновление успешно установлено. Перезапустите lazygit, чтобы обновление вступило в силу.", UpdateCompletedTitle: "Обновление завершено!",
FailedToRetrieveLatestVersionErr: "Не удалось получить информацию о версии", UpdateCompleted: "Обновление успешно установлено. Перезапустите lazygit, чтобы обновление вступило в силу.",
OnLatestVersionErr: "Установлена последняя версия", FailedToRetrieveLatestVersionErr: "Не удалось получить информацию о версии",
MajorVersionErr: "Новая версия ({{.newVersion}}) содержит несовместимые с предыдущими версии изменения по сравнению с текущей версией ({{.currentVersion}})", OnLatestVersionErr: "Установлена последняя версия",
CouldNotFindBinaryErr: "Не удалось найти бинарный файл на {{.url}}", MajorVersionErr: "Новая версия ({{.newVersion}}) содержит несовместимые с предыдущими версии изменения по сравнению с текущей версией ({{.currentVersion}})",
UpdateFailedErr: "Не удалось обновить: {{.errMessage}}", CouldNotFindBinaryErr: "Не удалось найти бинарный файл на {{.url}}",
ConfirmQuitDuringUpdateTitle: "Идёт Обновление", UpdateFailedErr: "Не удалось обновить: {{.errMessage}}",
ConfirmQuitDuringUpdate: "Выполняется обновление. Вы уверены, что хотите выйти?", ConfirmQuitDuringUpdateTitle: "Идёт Обновление",
MergeToolTitle: "Инструмент слияния", ConfirmQuitDuringUpdate: "Выполняется обновление. Вы уверены, что хотите выйти?",
MergeToolPrompt: "Вы уверены, что хотите открыть `git mergetool`?", MergeToolTitle: "Инструмент слияния",
IntroPopupMessage: russianIntroPopupMessage, MergeToolPrompt: "Вы уверены, что хотите открыть `git mergetool`?",
DeprecatedEditConfigWarning: russianDeprecatedEditConfigWarning, IntroPopupMessage: russianIntroPopupMessage,
GitconfigParseErr: `Gogit не удалось проанализировать ваш файл gitconfig из-за наличия символов «\» без кавычек. Их удаление должно решить проблему.`, DeprecatedEditConfigWarning: russianDeprecatedEditConfigWarning,
EditFile: `Редактировать файл`, GitconfigParseErr: `Gogit не удалось проанализировать ваш файл gitconfig из-за наличия символов «\» без кавычек. Их удаление должно решить проблему.`,
OpenFile: `Открыть файл`, EditFile: `Редактировать файл`,
IgnoreFile: `Добавить в .gitignore`, OpenFile: `Открыть файл`,
ExcludeFile: `Добавить в .git/info/exclude`, IgnoreFile: `Добавить в .gitignore`,
RefreshFiles: `Обновить файлы`, ExcludeFile: `Добавить в .git/info/exclude`,
Merge: `Слияние с текущей переключённой веткой`, RefreshFiles: `Обновить файлы`,
ConfirmQuit: `Вы уверены, что хотите выйти?`, Merge: `Слияние с текущей переключённой веткой`,
SwitchRepo: `Переключиться на последний репозиторий`, ConfirmQuit: `Вы уверены, что хотите выйти?`,
AllBranchesLogGraph: `Показать все логи ветки`, SwitchRepo: `Переключиться на последний репозиторий`,
UnsupportedGitService: `Неподдерживаемая служба git`, AllBranchesLogGraph: `Показать все логи ветки`,
CreatePullRequest: `Создать запрос на принятие изменений`, UnsupportedGitService: `Неподдерживаемая служба git`,
CopyPullRequestURL: `Скопировать URL запроса на принятие изменений в буфер обмена`, CreatePullRequest: `Создать запрос на принятие изменений`,
NoBranchOnRemote: `Этой ветки не существует в удалённом репозитории. Сначала вам нужно его отправить в удалённый репозитории.`, CopyPullRequestURL: `Скопировать URL запроса на принятие изменений в буфер обмена`,
Fetch: `Получить изменения`, NoBranchOnRemote: `Этой ветки не существует в удалённом репозитории. Сначала вам нужно его отправить в удалённый репозитории.`,
NoAutomaticGitFetchTitle: `Нет автоматического получения изменении`, Fetch: `Получить изменения`,
NoAutomaticGitFetchBody: `Lazygit не может использовать «git fetch» в приватном репозитории; используйте «f» на панели файлов, чтобы запустить «git fetch» вручную`, NoAutomaticGitFetchTitle: `Нет автоматического получения изменении`,
FileEnter: `Проиндексировать отдельные части/строки для файла или свернуть/развернуть для каталога`, NoAutomaticGitFetchBody: `Lazygit не может использовать «git fetch» в приватном репозитории; используйте «f» на панели файлов, чтобы запустить «git fetch» вручную`,
FileStagingRequirements: `Можно проиндексировать только отдельные строки для отслеживаемых файлов`, FileEnter: `Проиндексировать отдельные части/строки для файла или свернуть/развернуть для каталога`,
StageSelectionTooltip: `Переключить строку в проиндексированные / непроиндексированные`, FileStagingRequirements: `Можно проиндексировать только отдельные строки для отслеживаемых файлов`,
DiscardSelection: `Отменить изменение (git reset)`, StageSelectionTooltip: `Переключить строку в проиндексированные / непроиндексированные`,
ToggleRangeSelect: `Переключить выборку перетаскивания`, DiscardSelection: `Отменить изменение (git reset)`,
ToggleSelectHunk: `Переключить выборку частей`, ToggleRangeSelect: `Переключить выборку перетаскивания`,
ToggleSelectionForPatch: `Добавить/удалить строку(и) для патча`, ToggleSelectHunk: `Переключить выборку частей`,
EditHunk: `Изменить эту часть`, ToggleSelectionForPatch: `Добавить/удалить строку(и) для патча`,
ToggleStagingView: `Переключиться на другую панель (проиндексированные/непроиндексированные изменения)`, EditHunk: `Изменить эту часть`,
ReturnToFilesPanel: `Вернуться к панели файлов`, ToggleStagingView: `Переключиться на другую панель (проиндексированные/непроиндексированные изменения)`,
FastForward: `Перемотать эту ветку вперёд из её upstream-ветки`, ReturnToFilesPanel: `Вернуться к панели файлов`,
FastForwarding: "Получить изменения и перемотать вперёд", FastForward: `Перемотать эту ветку вперёд из её upstream-ветки`,
FoundConflictsTitle: "Конфликты!", FastForwarding: "Получить изменения и перемотать вперёд",
ViewConflictsMenuItem: "Просмотр конфликтов", FoundConflictsTitle: "Конфликты!",
AbortMenuItem: "Прервать %s", ViewConflictsMenuItem: "Просмотр конфликтов",
ViewMergeRebaseOptions: "Просмотреть параметры слияния/перебазирования", AbortMenuItem: "Прервать %s",
NotMergingOrRebasing: "В данный момент вы не выполняете ни перебазирования, ни слияние", ViewMergeRebaseOptions: "Просмотреть параметры слияния/перебазирования",
AlreadyRebasing: "Невозможно выполнить это действие во время перебазирования", NotMergingOrRebasing: "В данный момент вы не выполняете ни перебазирования, ни слияние",
RecentRepos: "Последние репозитории", AlreadyRebasing: "Невозможно выполнить это действие во время перебазирования",
MergeOptionsTitle: "Параметры слияния", RecentRepos: "Последние репозитории",
RebaseOptionsTitle: "Параметры перебазирования", MergeOptionsTitle: "Параметры слияния",
CommitSummaryTitle: "Сводка коммита", RebaseOptionsTitle: "Параметры перебазирования",
CommitDescriptionTitle: "Описание коммита", CommitSummaryTitle: "Сводка коммита",
CommitDescriptionSubTitle: "Нажмите вкладку, чтобы переключить фокус", CommitDescriptionTitle: "Описание коммита",
LocalBranchesTitle: "Локальные Ветки", CommitDescriptionSubTitle: "Нажмите вкладку, чтобы переключить фокус",
SearchTitle: "Поиск", LocalBranchesTitle: "Локальные Ветки",
TagsTitle: "Теги", SearchTitle: "Поиск",
MenuTitle: "Меню", TagsTitle: "Теги",
RemotesTitle: "Удалённые репозитории", MenuTitle: "Меню",
RemoteBranchesTitle: "Удалённые ветки", RemotesTitle: "Удалённые репозитории",
PatchBuildingTitle: "Главная панель (сборка патчей)", RemoteBranchesTitle: "Удалённые ветки",
InformationTitle: "Информация", PatchBuildingTitle: "Главная панель (сборка патчей)",
SecondaryTitle: "Вторичный", InformationTitle: "Информация",
ReflogCommitsTitle: "Журнал ссылок (Reflog)", SecondaryTitle: "Вторичный",
GlobalTitle: "Глобальные сочетания клавиш", ReflogCommitsTitle: "Журнал ссылок (Reflog)",
ConflictsResolved: "Все конфликты слияния разрешены. Продолжить?", GlobalTitle: "Глобальные сочетания клавиш",
Continue: "Продолжить", ConflictsResolved: "Все конфликты слияния разрешены. Продолжить?",
Keybindings: "Связки клавиш", Continue: "Продолжить",
RebasingTitle: "Перебазировать '{{.checkedOutBranch}}' на '{{.ref}}'", Keybindings: "Связки клавиш",
SimpleRebase: "Простая перебазировка", RebasingTitle: "Перебазировать '{{.checkedOutBranch}}' на '{{.ref}}'",
InteractiveRebase: "Интерактивная перебазировка", SimpleRebase: "Простая перебазировка",
InteractiveRebaseTooltip: "Начать интерактивную перебазировку с перерыва в начале, чтобы можно было обновить TODO коммиты, прежде чем продолжить.", InteractiveRebase: "Интерактивная перебазировка",
ConfirmMerge: "Вы уверены, что хотите to merge '{{.selectedBranch}}' into '{{.checkedOutBranch}}'?", InteractiveRebaseTooltip: "Начать интерактивную перебазировку с перерыва в начале, чтобы можно было обновить TODO коммиты, прежде чем продолжить.",
FwdNoUpstream: "Невозможно перемотать ветку без upstream-ветки", ConfirmMerge: "Вы уверены, что хотите to merge '{{.selectedBranch}}' into '{{.checkedOutBranch}}'?",
FwdNoLocalUpstream: "Невозможно перемотать ветку. Удалённый репозитории не зарегистрирован локально", FwdNoUpstream: "Невозможно перемотать ветку без upstream-ветки",
FwdCommitsToPush: "Невозможно перемотать ветку с коммитами для отправки", FwdNoLocalUpstream: "Невозможно перемотать ветку. Удалённый репозитории не зарегистрирован локально",
ErrorOccurred: "Произошла ошибка! Пожалуйста, заявите о проблеме на", FwdCommitsToPush: "Невозможно перемотать ветку с коммитами для отправки",
NoRoom: "Недостаточно места", ErrorOccurred: "Произошла ошибка! Пожалуйста, заявите о проблеме на",
YouAreHere: "ВЫ ЗДЕСЬ", NoRoom: "Недостаточно места",
YouDied: "ТЫ УМЕР!", YouAreHere: "ВЫ ЗДЕСЬ",
RewordNotSupported: "Переформулировка коммитов при интерактивном перебазировании в настоящее время не поддерживается", YouDied: "ТЫ УМЕР!",
ChangingThisActionIsNotAllowed: "Изменение этого типа записи todo перебазирования не допускается", RewordNotSupported: "Переформулировка коммитов при интерактивном перебазировании в настоящее время не поддерживается",
CherryPickCopy: "Скопировать отобранные коммит (cherry-pick)", ChangingThisActionIsNotAllowed: "Изменение этого типа записи todo перебазирования не допускается",
PasteCommits: "Вставить отобранные коммиты (cherry-pick)", CherryPickCopy: "Скопировать отобранные коммит (cherry-pick)",
SureCherryPick: "Вы уверены, что хотите выборочно применить (cherry-picked) отобранные коммиты в эту ветку?", PasteCommits: "Вставить отобранные коммиты (cherry-pick)",
CherryPick: "Выборочная отборка (Cherry-Pick)", SureCherryPick: "Вы уверены, что хотите выборочно применить (cherry-picked) отобранные коммиты в эту ветку?",
Donate: "Пожертвовать", CherryPick: "Выборочная отборка (Cherry-Pick)",
AskQuestion: "Задать вопрос", Donate: "Пожертвовать",
PrevLine: "Выбрать предыдущую строку", AskQuestion: "Задать вопрос",
NextLine: "Выбрать следующую строку", PrevLine: "Выбрать предыдущую строку",
PrevHunk: "Выбрать предыдущую часть", NextLine: "Выбрать следующую строку",
NextHunk: "Выбрать следующую часть", PrevHunk: "Выбрать предыдущую часть",
PrevConflict: "Выбрать предыдущий конфликт", NextHunk: "Выбрать следующую часть",
NextConflict: "Выбрать следующий конфликт", PrevConflict: "Выбрать предыдущий конфликт",
SelectPrevHunk: "Выбрать предыдущую часть", NextConflict: "Выбрать следующий конфликт",
SelectNextHunk: "Выбрать следующую часть", SelectPrevHunk: "Выбрать предыдущую часть",
ScrollDown: "Прокрутить вниз", SelectNextHunk: "Выбрать следующую часть",
ScrollUp: "Прокрутить вверх", ScrollDown: "Прокрутить вниз",
ScrollUpMainWindow: "Прокрутить вверх главную панель", ScrollUp: "Прокрутить вверх",
ScrollDownMainWindow: "Прокрутить вниз главную панель", ScrollUpMainWindow: "Прокрутить вверх главную панель",
AmendCommitTitle: "Править коммит (amend)", ScrollDownMainWindow: "Прокрутить вниз главную панель",
AmendCommitPrompt: "Вы уверены, что хотите править этот коммит проиндексированными файлами?", AmendCommitTitle: "Править коммит (amend)",
DropCommitTitle: "Удалить коммит", AmendCommitPrompt: "Вы уверены, что хотите править этот коммит проиндексированными файлами?",
DropCommitPrompt: "Вы уверены, что хотите удалить этот коммит?", DropCommitTitle: "Удалить коммит",
PullingStatus: "Получение и слияние изменении", DropCommitPrompt: "Вы уверены, что хотите удалить этот коммит?",
PushingStatus: "Отправка изменении", PullingStatus: "Получение и слияние изменении",
FetchingStatus: "Получение изменении", PushingStatus: "Отправка изменении",
SquashingStatus: "Объединение коммитов", FetchingStatus: "Получение изменении",
FixingStatus: "Объединение коммитов, отбросив сообщение коммита", SquashingStatus: "Объединение коммитов",
DeletingStatus: "Удаление", FixingStatus: "Объединение коммитов, отбросив сообщение коммита",
MovingStatus: "Перемещение", DeletingStatus: "Удаление",
RebasingStatus: "Перебазирование", MovingStatus: "Перемещение",
MergingStatus: "Слияние", RebasingStatus: "Перебазирование",
LowercaseRebasingStatus: "перебазировка", // lowercase because it shows up in parentheses MergingStatus: "Слияние",
LowercaseMergingStatus: "слияние", // lowercase because it shows up in parentheses LowercaseRebasingStatus: "перебазировка", // lowercase because it shows up in parentheses
AmendingStatus: "Правка коммита", LowercaseMergingStatus: "слияние", // lowercase because it shows up in parentheses
CherryPickingStatus: "Выборочная отборка (cherry-picking)", AmendingStatus: "Правка коммита",
UndoingStatus: "Отмена последней команды", CherryPickingStatus: "Выборочная отборка (cherry-picking)",
RedoingStatus: "Выполнение последней команды", UndoingStatus: "Отмена последней команды",
CheckingOutStatus: "Переключение", RedoingStatus: "Выполнение последней команды",
CommittingStatus: "Сохранение изменении", CheckingOutStatus: "Переключение",
CommitFiles: "Сохранить изменения файлов", CommittingStatus: "Сохранение изменении",
SubCommitsDynamicTitle: "Коммиты (%s)", CommitFiles: "Сохранить изменения файлов",
CommitFilesDynamicTitle: "Различия файлов (%s)", SubCommitsDynamicTitle: "Коммиты (%s)",
RemoteBranchesDynamicTitle: "Удалённые ветки (%s)", CommitFilesDynamicTitle: "Различия файлов (%s)",
ViewItemFiles: "Просмотреть файлы выбранного элемента", RemoteBranchesDynamicTitle: "Удалённые ветки (%s)",
CommitFilesTitle: "Сохранить Изменения Файлов", ViewItemFiles: "Просмотреть файлы выбранного элемента",
CheckoutCommitFileTooltip: "Переключить файл", CommitFilesTitle: "Сохранить Изменения Файлов",
CanOnlyDiscardFromLocalCommits: "Изменения можно отменить только из локальных коммитов.", CheckoutCommitFileTooltip: "Переключить файл",
DiscardOldFileChangeTooltip: "Отменить изменения коммита в этом файле", CanOnlyDiscardFromLocalCommits: "Изменения можно отменить только из локальных коммитов.",
DiscardFileChangesTitle: "Отменить изменения файла", DiscardOldFileChangeTooltip: "Отменить изменения коммита в этом файле",
DiscardFileChangesPrompt: "Вы уверены, что хотите удалить изменения в выбранных файлах из этого коммита?\n\nЭто действие запустит перебазирование и отменит изменения в этих файлах. Обратите внимание, что если последующие коммиты зависят от этих изменений, вам, возможно, придется разрешить конфликты.\nПримечание: это также сбросит все активные пользовательские патчи.", DiscardFileChangesTitle: "Отменить изменения файла",
DisabledForGPG: "Функция недоступна для пользователей, использующих GPG", DiscardFileChangesPrompt: "Вы уверены, что хотите удалить изменения в выбранных файлах из этого коммита?\n\nЭто действие запустит перебазирование и отменит изменения в этих файлах. Обратите внимание, что если последующие коммиты зависят от этих изменений, вам, возможно, придется разрешить конфликты.\nПримечание: это также сбросит все активные пользовательские патчи.",
CreateRepo: "Не в git репозитории. Создать новый git репозиторий? (y/n):", DisabledForGPG: "Функция недоступна для пользователей, использующих GPG",
BareRepo: "Вы пытались открыть Lazygit в пустом репозитории, но Lazygit ещё не поддерживает пустые репозитории. Открыть последний репозиторий? (y/n)", CreateRepo: "Не в git репозитории. Создать новый git репозиторий? (y/n):",
InitialBranch: "Название ветки? (оставьте пустым для git по умолчанию):", BareRepo: "Вы пытались открыть Lazygit в пустом репозитории, но Lazygit ещё не поддерживает пустые репозитории. Открыть последний репозиторий? (y/n)",
NoRecentRepositories: "Необходимо открыть lazygit в git репозитории. Нет валидных последних репозиториев. Выход.", InitialBranch: "Название ветки? (оставьте пустым для git по умолчанию):",
IncorrectNotARepository: "Неверное значение 'notARepository'. Это должно быть одним из 'prompt', 'create', 'skip', или 'quit'.", NoRecentRepositories: "Необходимо открыть lazygit в git репозитории. Нет валидных последних репозиториев. Выход.",
AutoStashTitle: "Автосохранить изменения?", IncorrectNotARepository: "Неверное значение 'notARepository'. Это должно быть одним из 'prompt', 'create', 'skip', или 'quit'.",
AutoStashPrompt: "Чтобы перенести изменения, их нужно сохранить и вынуть. Сделать это автоматически? (enter/esc)", AutoStashTitle: "Автосохранить изменения?",
StashPrefix: "Автосохранение изменений для", AutoStashPrompt: "Чтобы перенести изменения, их нужно сохранить и вынуть. Сделать это автоматически? (enter/esc)",
Discard: "Просмотреть параметры «отмены изменении»", StashPrefix: "Автосохранение изменений для",
Cancel: "Отменить", Discard: "Просмотреть параметры «отмены изменении»",
DiscardAllChanges: "Отменить все изменения", Cancel: "Отменить",
DiscardUnstagedChanges: "Отменить непроиндексированные изменения", DiscardAllChanges: "Отменить все изменения",
DiscardAllChangesToAllFiles: "Разбомбить рабочее дерево?", DiscardUnstagedChanges: "Отменить непроиндексированные изменения",
DiscardAnyUnstagedChanges: "Отменить непроиндексированные изменения", DiscardAllChangesToAllFiles: "Разбомбить рабочее дерево?",
DiscardUntrackedFiles: "Удалить неотслеживаемые файлы", DiscardAnyUnstagedChanges: "Отменить непроиндексированные изменения",
DiscardStagedChanges: "Отменить проиндексированные изменения", DiscardUntrackedFiles: "Удалить неотслеживаемые файлы",
HardReset: "Жёсткий сброс", DiscardStagedChanges: "Отменить проиндексированные изменения",
ViewResetOptions: `Просмотреть параметры сброса`, HardReset: "Жёсткий сброс",
CreateFixupCommitTooltip: `Создать fixup коммит для этого коммита`, ViewResetOptions: `Просмотреть параметры сброса`,
SquashAboveCommitsTooltip: `Объединить все 'fixup!' коммиты выше в выбранный коммит (автосохранение)`, CreateFixupCommitTooltip: `Создать fixup коммит для этого коммита`,
CreateFixupCommit: `Создать fixup коммит`, SquashAboveCommitsTooltip: `Объединить все 'fixup!' коммиты выше в выбранный коммит (автосохранение)`,
ExecuteCustomCommand: "Выполнить пользовательскую команду", CreateFixupCommit: `Создать fixup коммит`,
CustomCommand: "Пользовательская Команда:", ExecuteCustomCommand: "Выполнить пользовательскую команду",
CommitChangesWithoutHook: "Закоммитить изменения без предварительного хука коммита", CustomCommand: "Пользовательская Команда:",
SkipHookPrefixNotConfigured: "Вы не настроили префикс сообщения коммита для пропуска хуков. Установите `git.skipHookPrefix = 'WIP'` в вашей конфигурации", CommitChangesWithoutHook: "Закоммитить изменения без предварительного хука коммита",
ResetTo: `Сбросить на`, SkipHookPrefixNotConfigured: "Вы не настроили префикс сообщения коммита для пропуска хуков. Установите `git.skipHookPrefix = 'WIP'` в вашей конфигурации",
PressEnterToReturn: "Нажмите Enter, чтобы вернуться в lazygit", ResetTo: `Сбросить на`,
ViewStashOptions: "Просмотреть параметры хранилища", PressEnterToReturn: "Нажмите Enter, чтобы вернуться в lazygit",
StashAllChanges: "Припрятать все изменения", ViewStashOptions: "Просмотреть параметры хранилища",
StashStagedChanges: "Припрятать проиндексированные изменения", StashAllChanges: "Припрятать все изменения",
StashAllChangesKeepIndex: "Припрятать все изменения и сохранить индекс", StashStagedChanges: "Припрятать проиндексированные изменения",
StashUnstagedChanges: "Припрятать непроиндексированные изменения", StashAllChangesKeepIndex: "Припрятать все изменения и сохранить индекс",
StashIncludeUntrackedChanges: "Припрятать все изменения, включая неотслеживаемые файлы", StashUnstagedChanges: "Припрятать непроиндексированные изменения",
StashOptions: "Параметры хранилища", StashIncludeUntrackedChanges: "Припрятать все изменения, включая неотслеживаемые файлы",
NotARepository: "Ошибка: необходимо запустить внутри git репозитория", StashOptions: "Параметры хранилища",
Jump: "Перейти к панели", NotARepository: "Ошибка: необходимо запустить внутри git репозитория",
ScrollLeftRight: "Прокрутить влево/вправо", Jump: "Перейти к панели",
ScrollLeft: "Прокрутить влево", ScrollLeftRight: "Прокрутить влево/вправо",
ScrollRight: "Прокрутить вправо", ScrollLeft: "Прокрутить влево",
DiscardPatch: "Отменить патч", ScrollRight: "Прокрутить вправо",
DiscardPatchConfirm: "Вы можете собрать патч только из одной записи коммита/хранилища за раз. Отменить текущий патч?", DiscardPatch: "Отменить патч",
CantPatchWhileRebasingError: "Вы не можете создавать патчи или запускать команды патча, находясь в состоянии слияния или перемещения.", DiscardPatchConfirm: "Вы можете собрать патч только из одной записи коммита/хранилища за раз. Отменить текущий патч?",
ToggleAddToPatch: "Переключить файлы включённые в патч", CantPatchWhileRebasingError: "Вы не можете создавать патчи или запускать команды патча, находясь в состоянии слияния или перемещения.",
ToggleAllInPatch: "Переключить все файлы, включённые в патч", ToggleAddToPatch: "Переключить файлы включённые в патч",
UpdatingPatch: "Обновление патча", ToggleAllInPatch: "Переключить все файлы, включённые в патч",
ViewPatchOptions: "Просмотреть пользовательские параметры патча", UpdatingPatch: "Обновление патча",
PatchOptionsTitle: "Параметры патча", ViewPatchOptions: "Просмотреть пользовательские параметры патча",
NoPatchError: "Патч ещё не создан. Чтобы начать сборку патча, используйте «пробел» в файле коммита или введите, чтобы добавить определённые строки.", PatchOptionsTitle: "Параметры патча",
EnterCommitFile: "Введите файл, чтобы добавить выбранные строки в патч (или свернуть каталог переключения)", NoPatchError: "Патч ещё не создан. Чтобы начать сборку патча, используйте «пробел» в файле коммита или введите, чтобы добавить определённые строки.",
ExitCustomPatchBuilder: `Выйти из сборщика пользовательских патчей`, EnterCommitFile: "Введите файл, чтобы добавить выбранные строки в патч (или свернуть каталог переключения)",
EnterUpstream: `Введите upstream как '<remote> <branchname>'`, ExitCustomPatchBuilder: `Выйти из сборщика пользовательских патчей`,
InvalidUpstream: "Недействительный upstream. Должен быть в формате '<remote> <branchname>'", EnterUpstream: `Введите upstream как '<remote> <branchname>'`,
ReturnToRemotesList: `Вернуться к списку удалённых репозитории`, InvalidUpstream: "Недействительный upstream. Должен быть в формате '<remote> <branchname>'",
NewRemote: `Добавить новую удалённую ветку`, ReturnToRemotesList: `Вернуться к списку удалённых репозитории`,
NewRemoteName: `Название новой удалённой ветки`, NewRemote: `Добавить новую удалённую ветку`,
NewRemoteUrl: `Ссылка новой удалённой ветки`, NewRemoteName: `Название новой удалённой ветки`,
EditRemoteName: `Введите новое название для удалённое ветки {{.remoteName}}:`, NewRemoteUrl: `Ссылка новой удалённой ветки`,
EditRemoteUrl: `Введите новую ссылку для удалённое ветки {{.remoteName}}:`, EditRemoteName: `Введите новое название для удалённое ветки {{.remoteName}}:`,
RemoveRemote: `Удалить удалённую ветку`, EditRemoteUrl: `Введите новую ссылку для удалённое ветки {{.remoteName}}:`,
RemoveRemotePrompt: "Вы уверены, что хотите удалить удалённую ветку?", RemoveRemote: `Удалить удалённую ветку`,
DeleteRemoteBranch: "Удалить Удалённую Ветку", RemoveRemotePrompt: "Вы уверены, что хотите удалить удалённую ветку?",
DeleteRemoteBranchMessage: "Вы уверены, что хотите удалить удалённую ветку", DeleteRemoteBranch: "Удалить Удалённую Ветку",
SetAsUpstreamTooltip: "Установить как upstream-ветку переключённую ветку", DeleteRemoteBranchMessage: "Вы уверены, что хотите удалить удалённую ветку",
SetUpstream: "Установить upstream-ветку из выбранной ветки", SetAsUpstreamTooltip: "Установить как upstream-ветку переключённую ветку",
UnsetUpstream: "Убрать upstream-ветку из выбранной ветки", SetUpstream: "Установить upstream-ветку из выбранной ветки",
SetUpstreamTitle: "Установить upstream-ветку", UnsetUpstream: "Убрать upstream-ветку из выбранной ветки",
SetUpstreamMessage: "Вы уверены, что хотите установить upstream-ветвь '{{.checkedOut}}' на '{{.selected}}'", SetUpstreamTitle: "Установить upstream-ветку",
EditRemoteTooltip: "Редактировать удалённый репозитории", SetUpstreamMessage: "Вы уверены, что хотите установить upstream-ветвь '{{.checkedOut}}' на '{{.selected}}'",
TagCommit: "Пометить коммит тегом", EditRemoteTooltip: "Редактировать удалённый репозитории",
TagMenuTitle: "Создать тег", TagCommit: "Пометить коммит тегом",
TagNameTitle: "Название тега", TagMenuTitle: "Создать тег",
TagMessageTitle: "Сообщения тега", TagNameTitle: "Название тега",
AnnotatedTag: "Аннотированный тег", TagMessageTitle: "Сообщения тега",
LightweightTag: "Легковесный тег", AnnotatedTag: "Аннотированный тег",
DeleteTagTitle: "Удалить тег", LightweightTag: "Легковесный тег",
PushTagTitle: "Удалённый репозитории для отправки тега '{{.tagName}}' в:", DeleteTagTitle: "Удалить тег",
PushTag: "Отправить тег", PushTagTitle: "Удалённый репозитории для отправки тега '{{.tagName}}' в:",
NewTag: "Создать тег", PushTag: "Отправить тег",
FetchRemoteTooltip: "Получение изменения из удалённого репозитория", NewTag: "Создать тег",
FetchingRemoteStatus: "Получение статуса удалённого репозитория", FetchRemoteTooltip: "Получение изменения из удалённого репозитория",
CheckoutCommit: "Переключить коммит", FetchingRemoteStatus: "Получение статуса удалённого репозитория",
SureCheckoutThisCommit: "Вы уверены, что хотите переключить коммит?", CheckoutCommit: "Переключить коммит",
GitFlowOptions: "Показать параметры git-flow", SureCheckoutThisCommit: "Вы уверены, что хотите переключить коммит?",
NotAGitFlowBranch: "Это не похоже на ветку git-flow", GitFlowOptions: "Показать параметры git-flow",
NewGitFlowBranchPrompt: "Новое {{.branchType}} название:", NotAGitFlowBranch: "Это не похоже на ветку git-flow",
IgnoreTracked: "Игнорировать отслеживаемый файл", NewGitFlowBranchPrompt: "Новое {{.branchType}} название:",
IgnoreTrackedPrompt: "Вы уверены, что хотите игнорировать отслеживаемый файл?", IgnoreTracked: "Игнорировать отслеживаемый файл",
ExcludeTracked: "Исключить отслеживаемый файл", IgnoreTrackedPrompt: "Вы уверены, что хотите игнорировать отслеживаемый файл?",
ExcludeTrackedPrompt: "Вы уверены, что хотите исключить отслеживаемый файл?", ExcludeTracked: "Исключить отслеживаемый файл",
ViewResetToUpstreamOptions: "Просмотреть параметры сброса upstream-ветки", ExcludeTrackedPrompt: "Вы уверены, что хотите исключить отслеживаемый файл?",
NextScreenMode: "Следующий режим экрана (нормальный/полуэкранный/полноэкранный)", ViewResetToUpstreamOptions: "Просмотреть параметры сброса upstream-ветки",
PrevScreenMode: "Предыдущий режим экрана", NextScreenMode: "Следующий режим экрана (нормальный/полуэкранный/полноэкранный)",
StartSearch: "Найти", PrevScreenMode: "Предыдущий режим экрана",
Panel: "Панель", StartSearch: "Найти",
KeybindingsLegend: "Связки клавиш", Panel: "Панель",
RenameBranch: "Переименовать ветку", KeybindingsLegend: "Связки клавиш",
NewBranchNamePrompt: "Введите новое название ветки", RenameBranch: "Переименовать ветку",
RenameBranchWarning: "Эта ветвь отслеживает удалённый репозитории. Это действие переименует только имя локальной ветки, а не имя удалённой ветки. Продолжать?", NewBranchNamePrompt: "Введите новое название ветки",
OpenKeybindingsMenu: "Открыть меню", RenameBranchWarning: "Эта ветвь отслеживает удалённый репозитории. Это действие переименует только имя локальной ветки, а не имя удалённой ветки. Продолжать?",
ResetCherryPick: "Сбросить отобранную (скопированную | cherry-picked) выборку коммитов", OpenKeybindingsMenu: "Открыть меню",
NextTab: "Следующая вкладка", ResetCherryPick: "Сбросить отобранную (скопированную | cherry-picked) выборку коммитов",
PrevTab: "Предыдущая вкладка", NextTab: "Следующая вкладка",
CantUndoWhileRebasing: "Невозможно отменить во время перебазирования", PrevTab: "Предыдущая вкладка",
CantRedoWhileRebasing: "Невозможно повторить при перебазировании", CantUndoWhileRebasing: "Невозможно отменить во время перебазирования",
MustStashWarning: "Вытаскивание исправления в индекс требует сохранения и распаковки ваших изменений. Если что-то пойдёт не так, можно получить доступ к файлам из хранилища. Продолжить?", CantRedoWhileRebasing: "Невозможно повторить при перебазировании",
MustStashTitle: "Необходимо припрятать", MustStashWarning: "Вытаскивание исправления в индекс требует сохранения и распаковки ваших изменений. Если что-то пойдёт не так, можно получить доступ к файлам из хранилища. Продолжить?",
ConfirmationTitle: "Панель Подтверждения", MustStashTitle: "Необходимо припрятать",
PrevPage: "Предыдущая страница", ConfirmationTitle: "Панель Подтверждения",
NextPage: "Следующая страница", PrevPage: "Предыдущая страница",
GotoTop: "Пролистать наверх", NextPage: "Следующая страница",
GotoBottom: "Прокрутить вниз", GotoTop: "Пролистать наверх",
FilteringBy: "Фильтрация по", GotoBottom: "Прокрутить вниз",
ResetInParentheses: "(сбросить)", FilteringBy: "Фильтрация по",
OpenFilteringMenu: "Просмотреть параметры фильтрации по пути", ResetInParentheses: "(сбросить)",
FilterBy: "Фильтровать по", OpenFilteringMenu: "Просмотреть параметры фильтрации по пути",
ExitFilterMode: "Прекратить фильтрацию по пути", FilterBy: "Фильтровать по",
FilterPathOption: "Введите путь для фильтрации", ExitFilterMode: "Прекратить фильтрацию по пути",
EnterFileName: "Введите путь:", FilterPathOption: "Введите путь для фильтрации",
FilteringMenuTitle: "Фильтрация", EnterFileName: "Введите путь:",
MustExitFilterModeTitle: "Команда недоступна", FilteringMenuTitle: "Фильтрация",
MustExitFilterModePrompt: "Команда недоступна в режиме фильтрации. Выйти из режима фильтрации?", MustExitFilterModeTitle: "Команда недоступна",
Diff: "Разница", MustExitFilterModePrompt: "Команда недоступна в режиме фильтрации. Выйти из режима фильтрации?",
EnterRefToDiff: "Введите ссылку для сравнения", Diff: "Разница",
EnterRefName: "Введите ссылку:", EnterRefToDiff: "Введите ссылку для сравнения",
ExitDiffMode: "Выйти из режима сравнения", EnterRefName: "Введите ссылку:",
DiffingMenuTitle: "Сравнение", ExitDiffMode: "Выйти из режима сравнения",
SwapDiff: "Обратное направление сравнении", DiffingMenuTitle: "Сравнение",
ViewDiffingOptions: "Открыть меню сравнении", SwapDiff: "Обратное направление сравнении",
ViewDiffingOptions: "Открыть меню сравнении",
// the actual view is the extras view which I intend to give more tabs in future but for now we'll only mention the command log part // the actual view is the extras view which I intend to give more tabs in future but for now we'll only mention the command log part
OpenCommandLogMenu: "Открыть меню журнала команд", OpenCommandLogMenu: "Открыть меню журнала команд",
ShowingGitDiff: "Показывает вывод для:", ShowingGitDiff: "Показывает вывод для:",

View File

@ -67,389 +67,390 @@ const traditionalChineseDeprecatedEditConfigWarning = `
// exporting this so we can use it in tests // exporting this so we can use it in tests
func traditionalChineseTranslationSet() TranslationSet { func traditionalChineseTranslationSet() TranslationSet {
return TranslationSet{ return TranslationSet{
NotEnoughSpace: "無足夠空間顯示面板", NotEnoughSpace: "無足夠空間顯示面板",
DiffTitle: "差異", DiffTitle: "差異",
FilesTitle: "檔案", FilesTitle: "檔案",
BranchesTitle: "分支", BranchesTitle: "分支",
CommitsTitle: "提交", CommitsTitle: "提交",
StashTitle: "收藏 (Stash)", StashTitle: "收藏 (Stash)",
SnakeTitle: "貪食蛇", SnakeTitle: "貪食蛇",
EasterEgg: "彩蛋", EasterEgg: "彩蛋",
UnstagedChanges: "未預存變更", UnstagedChanges: "未預存變更",
StagedChanges: "已預存變更", StagedChanges: "已預存變更",
MainTitle: "主要", MainTitle: "主要",
MergeConfirmTitle: "合併", MergeConfirmTitle: "合併",
StagingTitle: "主面板(預存)", StagingTitle: "主面板(預存)",
MergingTitle: "主面板(合併)", MergingTitle: "主面板(合併)",
NormalTitle: "主面板(一般)", NormalTitle: "主面板(一般)",
LogTitle: "版本記錄", LogTitle: "版本記錄",
CommitSummary: "提交摘要", CommitSummary: "提交摘要",
CredentialsUsername: "使用者名稱", CredentialsUsername: "使用者名稱",
CredentialsPassword: "密碼", CredentialsPassword: "密碼",
CredentialsPassphrase: "SSH 金鑰密語", CredentialsPassphrase: "SSH 金鑰密語",
CredentialsPIN: "SSH 金鑰 PIN 碼", CredentialsPIN: "SSH 金鑰 PIN 碼",
PassUnameWrong: "密碼、密語或使用者名稱錯誤", PassUnameWrong: "密碼、密語或使用者名稱錯誤",
Commit: "提交變更", Commit: "提交變更",
AmendLastCommit: "修改上次提交", AmendLastCommit: "修改上次提交",
AmendLastCommitTitle: "修改上次提交", AmendLastCommitTitle: "修改上次提交",
SureToAmend: "是否確定要修改上次提交?之後你可以從提交面板中再次更改此次提交的訊息。", SureToAmend: "是否確定要修改上次提交?之後你可以從提交面板中再次更改此次提交的訊息。",
NoCommitToAmend: "沒有可以修改的提交。", NoCommitToAmend: "沒有可以修改的提交。",
CommitChangesWithEditor: "使用 git 編輯器提交變更", CommitChangesWithEditor: "使用 git 編輯器提交變更",
StatusTitle: "狀態", StatusTitle: "狀態",
Menu: "選單", Menu: "選單",
Execute: "執行", Execute: "執行",
Stage: "切換預存", Stage: "切換預存",
ToggleStagedAll: "全部預存/取消預存", ToggleStagedAll: "全部預存/取消預存",
ToggleTreeView: "顯示檔案樹狀視圖", ToggleTreeView: "顯示檔案樹狀視圖",
OpenMergeTool: "開啟外部合併工具 (git mergetool)", OpenMergeTool: "開啟外部合併工具 (git mergetool)",
Refresh: "重新整理", Refresh: "重新整理",
Push: "推送", Push: "推送",
Pull: "拉取", Pull: "拉取",
Scroll: "捲動", Scroll: "捲動",
MergeConflictsTitle: "合併衝突", MergeConflictsTitle: "合併衝突",
Checkout: "檢出", Checkout: "檢出",
FileFilter: "篩選檔案 (預存/未預存)", FileFilter: "篩選檔案 (預存/未預存)",
FilterStagedFiles: "僅顯示預存的檔案", FilterStagedFiles: "僅顯示預存的檔案",
FilterUnstagedFiles: "僅顯示未預存的檔案", FilterUnstagedFiles: "僅顯示未預存的檔案",
ResetFilter: "重設篩選", ResetFilter: "重設篩選",
NoChangedFiles: "沒有變更的檔案", NoChangedFiles: "沒有變更的檔案",
SoftReset: "軟重設", SoftReset: "軟重設",
AlreadyCheckedOutBranch: "你已經檢出這個分支了", AlreadyCheckedOutBranch: "你已經檢出這個分支了",
SureForceCheckout: "是否強制檢出?這將會使你失去本地的所有更改", SureForceCheckout: "是否強制檢出?這將會使你失去本地的所有更改",
ForceCheckoutBranch: "強制檢出分支", ForceCheckoutBranch: "強制檢出分支",
BranchName: "分支名稱", BranchName: "分支名稱",
NewBranchNameBranchOff: "新的分支名稱 (根據 '{{.branchName}}' 分支創建)", NewBranchNameBranchOff: "新的分支名稱 (根據 '{{.branchName}}' 分支創建)",
CantDeleteCheckOutBranch: "無法刪除已檢出的分支!", CantDeleteCheckOutBranch: "無法刪除已檢出的分支!",
ForceDeleteBranchMessage: "'{{.selectedBranchName}}' 分支尚未完全合併。是否刪除?", ForceDeleteBranchMessage: "'{{.selectedBranchName}}' 分支尚未完全合併。是否刪除?",
RebaseBranch: "將已檢出的分支變基至此分支", RebaseBranch: "將已檢出的分支變基至此分支",
CantRebaseOntoSelf: "無法將分支變基至自己", CantRebaseOntoSelf: "無法將分支變基至自己",
CantMergeBranchIntoItself: "無法將一個分支合併至自己", CantMergeBranchIntoItself: "無法將一個分支合併至自己",
ForceCheckout: "強制檢出", ForceCheckout: "強制檢出",
CheckoutByName: "根據名稱檢出", CheckoutByName: "根據名稱檢出",
NewBranch: "新分支", NewBranch: "新分支",
NoBranchesThisRepo: "這個版本庫中沒有分支", NoBranchesThisRepo: "這個版本庫中沒有分支",
CommitWithoutMessageErr: "沒有提交訊息,無法提交", CommitWithoutMessageErr: "沒有提交訊息,無法提交",
Close: "關閉", Close: "關閉",
CloseCancel: "關閉/取消", CloseCancel: "關閉/取消",
Confirm: "確認", Confirm: "確認",
Quit: "結束", Quit: "結束",
NoCommitsThisBranch: "這個分支沒有提交", NoCommitsThisBranch: "這個分支沒有提交",
UpdateRefHere: "在這裡更新 '{{.ref}}' 分支", UpdateRefHere: "在這裡更新 '{{.ref}}' 分支",
CannotSquashOrFixupFirstCommit: "沒有可以壓縮的提交", CannotSquashOrFixupFirstCommit: "沒有可以壓縮的提交",
Fixup: "修復 (Fixup)", Fixup: "修復 (Fixup)",
SureFixupThisCommit: "是否對此提交進行 '修復' ? 其將被合併於以下之提交中", SureFixupThisCommit: "是否對此提交進行 '修復' ? 其將被合併於以下之提交中",
SureSquashThisCommit: "是否要把這個提交壓縮到下面的提交中?", SureSquashThisCommit: "是否要把這個提交壓縮到下面的提交中?",
Squash: "壓縮 (Squash)", Squash: "壓縮 (Squash)",
PickCommitTooltip: "挑選提交 (於變基過程中)", PickCommitTooltip: "挑選提交 (於變基過程中)",
RevertCommit: "還原提交", RevertCommit: "還原提交",
Reword: "改寫提交", Reword: "改寫提交",
DropCommit: "刪除提交", DropCommit: "刪除提交",
MoveDownCommit: "向下移動提交", MoveDownCommit: "向下移動提交",
MoveUpCommit: "向上移動提交", MoveUpCommit: "向上移動提交",
EditCommitTooltip: "編輯提交", EditCommitTooltip: "編輯提交",
AmendCommitTooltip: "使用已預存的更改修正提交", AmendCommitTooltip: "使用已預存的更改修正提交",
ResetAuthor: "重設作者", ResetAuthor: "重設作者",
SetAuthor: "設定作者", SetAuthor: "設定作者",
AmendCommitAttribute: "設定/重設提交作者", AmendCommitAttribute: "設定/重設提交作者",
SetAuthorPromptTitle: "設定作者(格式:「姓名 <電子郵件>」)", SetAuthorPromptTitle: "設定作者(格式:「姓名 <電子郵件>」)",
SureResetCommitAuthor: "為了符合已配置的使用者,此作者的提交欄位以及時間戳將被更新。是否繼續?", SureResetCommitAuthor: "為了符合已配置的使用者,此作者的提交欄位以及時間戳將被更新。是否繼續?",
RewordCommitEditor: "使用編輯器改寫提交", RewordCommitEditor: "使用編輯器改寫提交",
Error: "錯誤", Error: "錯誤",
PickHunk: "挑選程式碼片段", PickHunk: "挑選程式碼片段",
PickAllHunks: "挑選所有程式碼片段", PickAllHunks: "挑選所有程式碼片段",
Undo: "復原", Undo: "復原",
UndoReflog: "復原", UndoReflog: "復原",
RedoReflog: "取消復原", RedoReflog: "取消復原",
UndoTooltip: "將使用 reflog 確任 git 指令以復原。這不包括工作區更改;只考慮提交。", UndoTooltip: "將使用 reflog 確任 git 指令以復原。這不包括工作區更改;只考慮提交。",
RedoTooltip: "將使用 reflog 確任 git 指令以重作。這不包括工作區更改;只考慮提交。", RedoTooltip: "將使用 reflog 確任 git 指令以重作。這不包括工作區更改;只考慮提交。",
DiscardAllTooltip: "捨棄 '{{.path}}' 預存/未預存更改。", DiscardAllTooltip: "捨棄 '{{.path}}' 預存/未預存更改。",
DiscardUnstagedTooltip: "捨棄 '{{.path}}' 未預存更改。", DiscardUnstagedTooltip: "捨棄 '{{.path}}' 未預存更改。",
Pop: "還原", Pop: "還原",
Drop: "捨棄", Drop: "捨棄",
Apply: "套用", Apply: "套用",
NoStashEntries: "沒有收藏記錄", NoStashEntries: "沒有收藏記錄",
StashDrop: "放棄收藏記錄", StashDrop: "放棄收藏記錄",
SureDropStashEntry: "是否捨棄這條收藏記錄?", SureDropStashEntry: "是否捨棄這條收藏記錄?",
StashPop: "還原收藏記錄", StashPop: "還原收藏記錄",
SurePopStashEntry: "是否從收藏中還原這個記錄?", SurePopStashEntry: "是否從收藏中還原這個記錄?",
StashApply: "套用收藏記錄", StashApply: "套用收藏記錄",
SureApplyStashEntry: "是否套用這個收藏記錄?", SureApplyStashEntry: "是否套用這個收藏記錄?",
NoTrackedStagedFilesStash: "你沒有被追蹤的、預存的檔案可進行收藏", NoTrackedStagedFilesStash: "你沒有被追蹤的、預存的檔案可進行收藏",
NoFilesToStash: "沒有檔案可以進行收藏", NoFilesToStash: "沒有檔案可以進行收藏",
StashChanges: "安置現有變更到收藏中", StashChanges: "安置現有變更到收藏中",
RenameStash: "重新命名收藏", RenameStash: "重新命名收藏",
RenameStashPrompt: "重新命名收藏:{{.stashName}}", RenameStashPrompt: "重新命名收藏:{{.stashName}}",
OpenConfig: "開啟設定檔案", OpenConfig: "開啟設定檔案",
EditConfig: "編輯設定檔案", EditConfig: "編輯設定檔案",
ForcePush: "強制推送", ForcePush: "強制推送",
ForcePushPrompt: "你的分支與遠端分支分岔。按 'ESC' 取消,或按 'Enter' 強制推送。", ForcePushPrompt: "你的分支與遠端分支分岔。按 'ESC' 取消,或按 'Enter' 強制推送。",
ForcePushDisabled: "你的分支與遠端分支分岔,你已禁用強制推送", ForcePushDisabled: "你的分支與遠端分支分岔,你已禁用強制推送",
CheckForUpdate: "檢查更新", UpdatesRejectedAndForcePushDisabled: "更新被拒絕,你已禁用強制推送",
CheckingForUpdates: "正在檢查更新...", CheckForUpdate: "檢查更新",
UpdateAvailableTitle: "有可用的更新!", CheckingForUpdates: "正在檢查更新...",
UpdateAvailable: "下載並安裝版本 {{.newVersion}}?", UpdateAvailableTitle: "有可用的更新!",
UpdateInProgressWaitingStatus: "更新中", UpdateAvailable: "下載並安裝版本 {{.newVersion}}?",
UpdateCompletedTitle: "更新已完成!", UpdateInProgressWaitingStatus: "更新中",
UpdateCompleted: "更新已成功安裝。為了使其生效,請重新啟動 lazygit。", UpdateCompletedTitle: "更新已完成!",
FailedToRetrieveLatestVersionErr: "無法取得版本資訊", UpdateCompleted: "更新已成功安裝。為了使其生效,請重新啟動 lazygit。",
OnLatestVersionErr: "已更新至最新版本", FailedToRetrieveLatestVersionErr: "無法取得版本資訊",
MajorVersionErr: "新版本({{.newVersion}})不支援當前版本({{.currentVersion}})更改", OnLatestVersionErr: "已更新至最新版本",
CouldNotFindBinaryErr: "找不到 {{.url}} 執行檔", MajorVersionErr: "新版本({{.newVersion}})不支援當前版本({{.currentVersion}})更改",
UpdateFailedErr: "更新失敗:{{.errMessage}}", CouldNotFindBinaryErr: "找不到 {{.url}} 執行檔",
ConfirmQuitDuringUpdateTitle: "正在更新中", UpdateFailedErr: "更新失敗:{{.errMessage}}",
ConfirmQuitDuringUpdate: "正在進行更新,是否結束?", ConfirmQuitDuringUpdateTitle: "正在更新中",
MergeToolTitle: "合併工具", ConfirmQuitDuringUpdate: "正在進行更新,是否結束?",
MergeToolPrompt: "是否開啟 'git mergetool'?", MergeToolTitle: "合併工具",
IntroPopupMessage: traditionalChineseIntroPopupMessage, MergeToolPrompt: "是否開啟 'git mergetool'?",
DeprecatedEditConfigWarning: traditionalChineseDeprecatedEditConfigWarning, IntroPopupMessage: traditionalChineseIntroPopupMessage,
GitconfigParseErr: `Gogit 無法解析你的 gitconfig 檔案,因為存在未引用的 '\' 字符,刪除它們應該可以解決這個問題。`, DeprecatedEditConfigWarning: traditionalChineseDeprecatedEditConfigWarning,
EditFile: `編輯檔案`, GitconfigParseErr: `Gogit 無法解析你的 gitconfig 檔案,因為存在未引用的 '\' 字符,刪除它們應該可以解決這個問題。`,
OpenFile: `開啟檔案`, EditFile: `編輯檔案`,
IgnoreFile: `添加到 .gitignore`, OpenFile: `開啟檔案`,
ExcludeFile: `添加到 .git/info/exclude`, IgnoreFile: `添加到 .gitignore`,
RefreshFiles: `重新整理檔案`, ExcludeFile: `添加到 .git/info/exclude`,
Merge: `合併到當前檢出的分支`, RefreshFiles: `重新整理檔案`,
ConfirmQuit: `是否結束?`, Merge: `合併到當前檢出的分支`,
SwitchRepo: `切換到最近使用的版本庫`, ConfirmQuit: `是否結束?`,
AllBranchesLogGraph: `顯示所有分支日誌`, SwitchRepo: `切換到最近使用的版本庫`,
UnsupportedGitService: `不支援的 git 服務`, AllBranchesLogGraph: `顯示所有分支日誌`,
CreatePullRequest: `建立拉取請求`, UnsupportedGitService: `不支援的 git 服務`,
CopyPullRequestURL: `複製拉取請求的 URL 到剪貼板`, CreatePullRequest: `建立拉取請求`,
NoBranchOnRemote: `這個分支在遠端不存在。需要先將其推送至遠端。`, CopyPullRequestURL: `複製拉取請求的 URL 到剪貼板`,
Fetch: `擷取`, NoBranchOnRemote: `這個分支在遠端不存在。需要先將其推送至遠端。`,
NoAutomaticGitFetchTitle: `手動 git 擷取`, Fetch: `擷取`,
NoAutomaticGitFetchBody: `lazygit 無法在私有庫使用 "git 擷取";在檔案面板中使用 'f' 手動執行 "git 擷取"`, NoAutomaticGitFetchTitle: `手動 git 擷取`,
FileEnter: `選擇檔案中的單個程式碼塊/行,或展開/折疊目錄`, NoAutomaticGitFetchBody: `lazygit 無法在私有庫使用 "git 擷取";在檔案面板中使用 'f' 手動執行 "git 擷取"`,
FileStagingRequirements: `只能選擇跟踪檔案中的單個行`, FileEnter: `選擇檔案中的單個程式碼塊/行,或展開/折疊目錄`,
StageSelectionTooltip: `切換現有行的狀態 (已預存/未預存)`, FileStagingRequirements: `只能選擇跟踪檔案中的單個行`,
DiscardSelection: `刪除變更 (git reset)`, StageSelectionTooltip: `切換現有行的狀態 (已預存/未預存)`,
ToggleRangeSelect: `切換拖曳選擇`, DiscardSelection: `刪除變更 (git reset)`,
ToggleSelectHunk: `切換選擇程式碼塊`, ToggleRangeSelect: `切換拖曳選擇`,
ToggleSelectionForPatch: `向 (或從) 補丁中添加/刪除行`, ToggleSelectHunk: `切換選擇程式碼塊`,
EditHunk: `編輯程式碼塊`, ToggleSelectionForPatch: `向 (或從) 補丁中添加/刪除行`,
ToggleStagingView: `切換至另一個面板 (已預存/未預存更改)`, EditHunk: `編輯程式碼塊`,
ReturnToFilesPanel: `返回檔案面板`, ToggleStagingView: `切換至另一個面板 (已預存/未預存更改)`,
FastForward: `從上游快進此分支`, ReturnToFilesPanel: `返回檔案面板`,
FastForwarding: "的擷取和快進中", FastForward: `從上游快進此分支`,
FoundConflictsTitle: "自動合併失敗", FastForwarding: "的擷取和快進中",
ViewMergeRebaseOptions: "查看合併/變基選項", FoundConflictsTitle: "自動合併失敗",
NotMergingOrRebasing: "你當前既不在變基也不在合併中", ViewMergeRebaseOptions: "查看合併/變基選項",
AlreadyRebasing: "無法在變基期間執行此操作", NotMergingOrRebasing: "你當前既不在變基也不在合併中",
RecentRepos: "最近的版本庫", AlreadyRebasing: "無法在變基期間執行此操作",
MergeOptionsTitle: "合併選項", RecentRepos: "最近的版本庫",
RebaseOptionsTitle: "變基選項", MergeOptionsTitle: "合併選項",
CommitSummaryTitle: "提交摘要", RebaseOptionsTitle: "變基選項",
CommitDescriptionTitle: "提交描述", CommitSummaryTitle: "提交摘要",
CommitDescriptionSubTitle: "按 tab 鍵聚焦", CommitDescriptionTitle: "提交描述",
LocalBranchesTitle: "本地分支", CommitDescriptionSubTitle: "按 tab 鍵聚焦",
SearchTitle: "搜尋", LocalBranchesTitle: "本地分支",
TagsTitle: "標籤", SearchTitle: "搜尋",
MenuTitle: "功能表", TagsTitle: "標籤",
RemotesTitle: "遠端", MenuTitle: "功能表",
RemoteBranchesTitle: "遠端分支", RemotesTitle: "遠端",
PatchBuildingTitle: "主面板 (補丁生成)", RemoteBranchesTitle: "遠端分支",
InformationTitle: "資訊", PatchBuildingTitle: "主面板 (補丁生成)",
SecondaryTitle: "次要", InformationTitle: "資訊",
ReflogCommitsTitle: "日誌", SecondaryTitle: "次要",
GlobalTitle: "全域快捷鍵", ReflogCommitsTitle: "日誌",
ConflictsResolved: "所有合併衝突都已解決。是否繼續?", GlobalTitle: "全域快捷鍵",
Continue: "確認", ConflictsResolved: "所有合併衝突都已解決。是否繼續?",
Keybindings: "鍵盤快捷鍵", Continue: "確認",
RebasingTitle: "將 '{{.checkedOutBranch}}' 變基至 '{{.ref}}'", Keybindings: "鍵盤快捷鍵",
SimpleRebase: "簡單變基", RebasingTitle: "將 '{{.checkedOutBranch}}' 變基至 '{{.ref}}'",
InteractiveRebase: "互動變基", SimpleRebase: "簡單變基",
InteractiveRebaseTooltip: "開始一個互動變基,以中斷開始,這樣你可以在繼續之前更新TODO提交", InteractiveRebase: "互動變基",
ConfirmMerge: "是否將 '{{.selectedBranch}}' 合併至 '{{.checkedOutBranch}}' ?", InteractiveRebaseTooltip: "開始一個互動變基,以中斷開始,這樣你可以在繼續之前更新TODO提交",
FwdNoUpstream: "無法快進無上游分支", ConfirmMerge: "是否將 '{{.selectedBranch}}' 合併至 '{{.checkedOutBranch}}' ?",
FwdNoLocalUpstream: "無法快進尚未在本地註冊的遠端分支", FwdNoUpstream: "無法快進無上游分支",
FwdCommitsToPush: "無法快進帶有尚未推送的提交的分支", FwdNoLocalUpstream: "無法快進尚未在本地註冊的遠端分支",
ErrorOccurred: "發生錯誤!請在此詢問錯誤:", FwdCommitsToPush: "無法快進帶有尚未推送的提交的分支",
NoRoom: "無足夠的空間", ErrorOccurred: "發生錯誤!請在此詢問錯誤:",
YouAreHere: "你在這", NoRoom: "無足夠的空間",
YouDied: "你死了!", YouAreHere: "你在這",
RewordNotSupported: "在互動變基期間改寫提交目前不支援", YouDied: "你死了!",
ChangingThisActionIsNotAllowed: "不允許更改此類變基待辦事項", RewordNotSupported: "在互動變基期間改寫提交目前不支援",
CherryPickCopy: "複製提交 (揀選)", ChangingThisActionIsNotAllowed: "不允許更改此類變基待辦事項",
PasteCommits: "貼上提交 (揀選)", CherryPickCopy: "複製提交 (揀選)",
SureCherryPick: "是否將複製的提交揀選到此分支?", PasteCommits: "貼上提交 (揀選)",
CherryPick: "揀選 (Cherry-pick)", SureCherryPick: "是否將複製的提交揀選到此分支?",
Donate: "贊助", CherryPick: "揀選 (Cherry-pick)",
AskQuestion: "諮詢", Donate: "贊助",
PrevLine: "選擇上一行", AskQuestion: "諮詢",
NextLine: "選擇下一行", PrevLine: "選擇上一行",
PrevHunk: "選擇上一段", NextLine: "選擇下一行",
NextHunk: "選擇下一段", PrevHunk: "選擇上一段",
PrevConflict: "選擇上一個衝突", NextHunk: "選擇下一段",
NextConflict: "選擇下一個衝突", PrevConflict: "選擇上一個衝突",
SelectPrevHunk: "選擇上一段", NextConflict: "選擇下一個衝突",
SelectNextHunk: "選擇下一段", SelectPrevHunk: "選擇上一段",
ScrollDown: "向下捲動", SelectNextHunk: "選擇下一段",
ScrollUp: "向上捲動", ScrollDown: "向下捲動",
ScrollUpMainWindow: "向上捲動主面板", ScrollUp: "向上捲動",
ScrollDownMainWindow: "向下捲動主面板", ScrollUpMainWindow: "向上捲動主面板",
AmendCommitTitle: "修改提交", ScrollDownMainWindow: "向下捲動主面板",
AmendCommitPrompt: "是否使用預存檔案修改提交?", AmendCommitTitle: "修改提交",
DropCommitTitle: "刪除提交", AmendCommitPrompt: "是否使用預存檔案修改提交?",
DropCommitPrompt: "是否刪除此提交?", DropCommitTitle: "刪除提交",
PullingStatus: "拉取", DropCommitPrompt: "是否刪除此提交?",
PushingStatus: "推送", PullingStatus: "拉取",
FetchingStatus: "擷取", PushingStatus: "推送",
SquashingStatus: "壓縮中", FetchingStatus: "擷取",
FixingStatus: "修復中", SquashingStatus: "壓縮中",
DeletingStatus: "刪除中", FixingStatus: "修復中",
MovingStatus: "移動中", DeletingStatus: "刪除中",
RebasingStatus: "變基中", MovingStatus: "移動中",
MergingStatus: "合併中", RebasingStatus: "變基中",
LowercaseRebasingStatus: "變基", // lowercase because it shows up in parentheses MergingStatus: "合併中",
LowercaseMergingStatus: "合併", // lowercase because it shows up in parentheses LowercaseRebasingStatus: "變基", // lowercase because it shows up in parentheses
AmendingStatus: "修改中", LowercaseMergingStatus: "合併", // lowercase because it shows up in parentheses
CherryPickingStatus: "揀選中", AmendingStatus: "修改中",
UndoingStatus: "復原中", CherryPickingStatus: "揀選中",
RedoingStatus: "重做中", UndoingStatus: "復原中",
CheckingOutStatus: "檢出中", RedoingStatus: "重做中",
CommittingStatus: "提交中", CheckingOutStatus: "檢出中",
RevertingStatus: "還原中", CommittingStatus: "提交中",
CommitFiles: "提交檔案", RevertingStatus: "還原中",
SubCommitsDynamicTitle: "提交 (共 %s項)", CommitFiles: "提交檔案",
CommitFilesDynamicTitle: "差異檔案 (共 %s項)", SubCommitsDynamicTitle: "提交 (共 %s項)",
RemoteBranchesDynamicTitle: "遠端分支 (共 %s項)", CommitFilesDynamicTitle: "差異檔案 (共 %s項)",
ViewItemFiles: "檢視所選項目的檔案", RemoteBranchesDynamicTitle: "遠端分支 (共 %s項)",
CommitFilesTitle: "提交檔案", ViewItemFiles: "檢視所選項目的檔案",
CheckoutCommitFileTooltip: "檢出檔案", CommitFilesTitle: "提交檔案",
DiscardFileChangesTitle: "捨棄檔案更改", CheckoutCommitFileTooltip: "檢出檔案",
DiscardFileChangesPrompt: "是否捨棄此提交?如果這個檔案是在此提交中創建的,它將被刪除", DiscardFileChangesTitle: "捨棄檔案更改",
DisabledForGPG: "此功能不適用於 GPG 加密", DiscardFileChangesPrompt: "是否捨棄此提交?如果這個檔案是在此提交中創建的,它將被刪除",
CreateRepo: "未在 git 版本庫中。是否建立新版本庫? (y/n): ", DisabledForGPG: "此功能不適用於 GPG 加密",
BareRepo: "你嘗試在裸版本庫中開啟 Lazygit,但 Lazygit 尚未支援裸版本庫。是否開啟最新版本庫? (y/n) ", CreateRepo: "未在 git 版本庫中。是否建立新版本庫? (y/n): ",
InitialBranch: "分支名稱?(留空使用 git 的預設值):", BareRepo: "你嘗試在裸版本庫中開啟 Lazygit,但 Lazygit 尚未支援裸版本庫。是否開啟最新版本庫? (y/n) ",
NoRecentRepositories: "必須在 git 版本庫中開啟 lazygit。沒有有效的最近版本庫。退出。", InitialBranch: "分支名稱?(留空使用 git 的預設值):",
IncorrectNotARepository: "無效 `notARepository` 輸入。輸入應為「prompt」、「create」、「skip」、或「quit」。", NoRecentRepositories: "必須在 git 版本庫中開啟 lazygit。沒有有效的最近版本庫。退出。",
AutoStashTitle: "是否自動收藏?", IncorrectNotARepository: "無效 `notARepository` 輸入。輸入應為「prompt」、「create」、「skip」、或「quit」。",
AutoStashPrompt: "必須收藏並拾起變更才得以繼續操作。是否自動執行?(Enter/Esc)", AutoStashTitle: "是否自動收藏?",
StashPrefix: "自動收藏 ", AutoStashPrompt: "必須收藏並拾起變更才得以繼續操作。是否自動執行?(Enter/Esc)",
Cancel: "取消", StashPrefix: "自動收藏 ",
DiscardAllChanges: "刪除所有變更", Cancel: "取消",
DiscardUnstagedChanges: "刪除未預存變更", DiscardAllChanges: "刪除所有變更",
DiscardAllChangesToAllFiles: "刪除工作目錄", DiscardUnstagedChanges: "刪除未預存變更",
DiscardAnyUnstagedChanges: "刪除未預存變更", DiscardAllChangesToAllFiles: "刪除工作目錄",
DiscardUntrackedFiles: "刪除未追蹤檔案", DiscardAnyUnstagedChanges: "刪除未預存變更",
DiscardStagedChanges: "刪除已預存變更", DiscardUntrackedFiles: "刪除未追蹤檔案",
HardReset: "強制重設", DiscardStagedChanges: "刪除已預存變更",
ViewResetOptions: "檢視重設選項", HardReset: "強制重設",
CreateFixupCommitTooltip: "為此提交建立修復提交", ViewResetOptions: "檢視重設選項",
SquashAboveCommits: "壓縮上方所有「fixup」提交(自動壓縮)", CreateFixupCommitTooltip: "為此提交建立修復提交",
SquashAboveCommitsTooltip: "是否壓縮上方 {{.commit}} 所有「fixup」提交?", SquashAboveCommits: "壓縮上方所有「fixup」提交(自動壓縮)",
CreateFixupCommit: "建立修復提交", SquashAboveCommitsTooltip: "是否壓縮上方 {{.commit}} 所有「fixup」提交?",
ExecuteCustomCommand: "執行自訂命令", CreateFixupCommit: "建立修復提交",
CustomCommand: "自訂命令:", ExecuteCustomCommand: "執行自訂命令",
CommitChangesWithoutHook: "沒有預提交 hook 就提交更改", CustomCommand: "自訂命令:",
SkipHookPrefixNotConfigured: "你尚未配置略過 hook 的提交訊息前綴,請在設定中設置 `git.skipHookPrefix = 'WIP'`", CommitChangesWithoutHook: "沒有預提交 hook 就提交更改",
ResetTo: `重設至`, SkipHookPrefixNotConfigured: "你尚未配置略過 hook 的提交訊息前綴,請在設定中設置 `git.skipHookPrefix = 'WIP'`",
PressEnterToReturn: "按 Enter 返回到 lazygit", ResetTo: `重設至`,
ViewStashOptions: "檢視收藏選項", PressEnterToReturn: "按 Enter 返回到 lazygit",
StashAllChanges: "收藏所有變更", ViewStashOptions: "檢視收藏選項",
StashStagedChanges: "收藏已預存變更", StashAllChanges: "收藏所有變更",
StashAllChangesKeepIndex: "收藏所有變更並保留預存區", StashStagedChanges: "收藏已預存變更",
StashUnstagedChanges: "收藏未預存變更", StashAllChangesKeepIndex: "收藏所有變更並保留預存區",
StashIncludeUntrackedChanges: "收藏所有變更,包括未追蹤檔案", StashUnstagedChanges: "收藏未預存變更",
StashOptions: "收藏選項", StashIncludeUntrackedChanges: "收藏所有變更,包括未追蹤檔案",
NotARepository: "錯誤:必須在 git 版本庫中執行", StashOptions: "收藏選項",
Jump: "跳轉至面板", NotARepository: "錯誤:必須在 git 版本庫中執行",
ScrollLeftRight: "左右捲動", Jump: "跳轉至面板",
ScrollLeft: "向左捲動", ScrollLeftRight: "左右捲動",
ScrollRight: "向右捲動", ScrollLeft: "向左捲動",
DiscardPatch: "捨棄補丁", ScrollRight: "向右捲動",
DiscardPatchConfirm: "你只能從單一提交或收藏項目建立一個補丁。是否捨棄當前補丁?", DiscardPatch: "捨棄補丁",
CantPatchWhileRebasingError: "在合併或變基狀態下,你不能建立或運行補丁命令", DiscardPatchConfirm: "你只能從單一提交或收藏項目建立一個補丁。是否捨棄當前補丁?",
ToggleAddToPatch: "切換檔案是否包含在補丁中", CantPatchWhileRebasingError: "在合併或變基狀態下,你不能建立或運行補丁命令",
ToggleAllInPatch: "切換所有檔案是否包含在補丁中", ToggleAddToPatch: "切換檔案是否包含在補丁中",
UpdatingPatch: "正在更新補丁", ToggleAllInPatch: "切換所有檔案是否包含在補丁中",
ViewPatchOptions: "檢視自訂補丁選項", UpdatingPatch: "正在更新補丁",
PatchOptionsTitle: "補丁選項", ViewPatchOptions: "檢視自訂補丁選項",
NoPatchError: "尚未建立補丁。要開始建立補丁,請在提交檔案上使用空格或輸入以添加特定行", PatchOptionsTitle: "補丁選項",
EnterCommitFile: "輸入檔案以將選定的行添加至補丁(或切換目錄折疊)", NoPatchError: "尚未建立補丁。要開始建立補丁,請在提交檔案上使用空格或輸入以添加特定行",
ExitCustomPatchBuilder: `退出自訂補丁建立器`, EnterCommitFile: "輸入檔案以將選定的行添加至補丁(或切換目錄折疊)",
EnterUpstream: `輸入上游為 '<remote> <branchname>'`, ExitCustomPatchBuilder: `退出自訂補丁建立器`,
InvalidUpstream: "無效的上游。必須符合 '<remote> <branchname>' 的格式", EnterUpstream: `輸入上游為 '<remote> <branchname>'`,
ReturnToRemotesList: `返回遠端列表`, InvalidUpstream: "無效的上游。必須符合 '<remote> <branchname>' 的格式",
NewRemote: `新增遠端`, ReturnToRemotesList: `返回遠端列表`,
NewRemoteName: `新遠端名稱:`, NewRemote: `新增遠端`,
NewRemoteUrl: `新遠端 URL:`, NewRemoteName: `新遠端名稱:`,
EditRemoteName: `輸入更新 {{.remoteName}} 遠端名稱:`, NewRemoteUrl: `新遠端 URL:`,
EditRemoteUrl: `輸入更新 {{.remoteName}} 遠端 URL:`, EditRemoteName: `輸入更新 {{.remoteName}} 遠端名稱:`,
RemoveRemote: `移除遠端`, EditRemoteUrl: `輸入更新 {{.remoteName}} 遠端 URL:`,
RemoveRemotePrompt: "你確定要移除遠端?", RemoveRemote: `移除遠端`,
DeleteRemoteBranch: "刪除遠端分支", RemoveRemotePrompt: "你確定要移除遠端?",
DeleteRemoteBranchMessage: "你確定要刪除遠端分支?", DeleteRemoteBranch: "刪除遠端分支",
SetAsUpstreamTooltip: "將此分支設為當前分支之上游", DeleteRemoteBranchMessage: "你確定要刪除遠端分支?",
SetUpstream: "設定所選分支之上游", SetAsUpstreamTooltip: "將此分支設為當前分支之上游",
UnsetUpstream: "取消設定選定分支之上游", SetUpstream: "設定所選分支之上游",
SetUpstreamTitle: "設定上游分支", UnsetUpstream: "取消設定選定分支之上游",
SetUpstreamMessage: "你確定要將 '{{. selected}}' 設為 '{{.checkedOut}}' 的上游分支?", SetUpstreamTitle: "設定上游分支",
EditRemoteTooltip: "編輯遠端", SetUpstreamMessage: "你確定要將 '{{. selected}}' 設為 '{{.checkedOut}}' 的上游分支?",
TagCommit: "打標籤到提交", EditRemoteTooltip: "編輯遠端",
TagMenuTitle: "建立標籤", TagCommit: "打標籤到提交",
TagNameTitle: "標籤名稱", TagMenuTitle: "建立標籤",
TagMessageTitle: "標籤訊息", TagNameTitle: "標籤名稱",
AnnotatedTag: "附註標籤", TagMessageTitle: "標籤訊息",
LightweightTag: "輕量標籤", AnnotatedTag: "附註標籤",
PushTagTitle: "推送標籤 '{{.tagName}}' 至遠端:", LightweightTag: "輕量標籤",
PushTag: "推送標籤", PushTagTitle: "推送標籤 '{{.tagName}}' 至遠端:",
NewTag: "建立標籤", PushTag: "推送標籤",
FetchRemoteTooltip: "擷取遠端", NewTag: "建立標籤",
FetchingRemoteStatus: "正在擷取遠端", FetchRemoteTooltip: "擷取遠端",
CheckoutCommit: "檢出提交", FetchingRemoteStatus: "正在擷取遠端",
SureCheckoutThisCommit: "你確定要檢出這個提交?", CheckoutCommit: "檢出提交",
GitFlowOptions: "顯示 git-flow 選項", SureCheckoutThisCommit: "你確定要檢出這個提交?",
NotAGitFlowBranch: "這似乎不是一個 git flow 分支", GitFlowOptions: "顯示 git-flow 選項",
NewGitFlowBranchPrompt: "{{.branchType}} 名稱:", NotAGitFlowBranch: "這似乎不是一個 git flow 分支",
IgnoreTracked: "忽略已追蹤檔案", NewGitFlowBranchPrompt: "{{.branchType}} 名稱:",
IgnoreTrackedPrompt: "你確定要忽略一個已追蹤的檔案?", IgnoreTracked: "忽略已追蹤檔案",
ExcludeTracked: "排除已追蹤檔案", IgnoreTrackedPrompt: "你確定要忽略一個已追蹤的檔案?",
ViewResetToUpstreamOptions: "檢視上游重設選項", ExcludeTracked: "排除已追蹤檔案",
NextScreenMode: "下一個螢幕模式(常規/半螢幕/全螢幕)", ViewResetToUpstreamOptions: "檢視上游重設選項",
PrevScreenMode: "上一個螢幕模式", NextScreenMode: "下一個螢幕模式(常規/半螢幕/全螢幕)",
StartSearch: "搜尋", PrevScreenMode: "上一個螢幕模式",
StartFilter: "搜尋", StartSearch: "搜尋",
Panel: "面板", StartFilter: "搜尋",
KeybindingsLegend: "說明:`<c-b>` 表示 Ctrl+B、`<a-b>` 表示 Alt+B,`B`表示 Shift+B", Panel: "面板",
RenameBranch: "重新命名分支", KeybindingsLegend: "說明:`<c-b>` 表示 Ctrl+B、`<a-b>` 表示 Alt+B,`B`表示 Shift+B",
BranchUpstreamOptionsTitle: "上游分支設定", RenameBranch: "重新命名分支",
ViewBranchUpstreamOptionsTooltip: "檢視有關上游分支的設定(例如重設至上游)", BranchUpstreamOptionsTitle: "上游分支設定",
UpstreamNotSetError: "目標分支沒有上游分支(或其上游分支未儲存於本地)", ViewBranchUpstreamOptionsTooltip: "檢視有關上游分支的設定(例如重設至上游)",
ViewBranchUpstreamOptions: "檢視上游設定", UpstreamNotSetError: "目標分支沒有上游分支(或其上游分支未儲存於本地)",
NewBranchNamePrompt: "為分支輸入新名稱", ViewBranchUpstreamOptions: "檢視上游設定",
RenameBranchWarning: "此分支正在追蹤遠端分支。此操作僅會重新命名本地分支名稱,而不是遠端分支的名稱。是否繼續?", NewBranchNamePrompt: "為分支輸入新名稱",
OpenKeybindingsMenu: "開啟選單", RenameBranchWarning: "此分支正在追蹤遠端分支。此操作僅會重新命名本地分支名稱,而不是遠端分支的名稱。是否繼續?",
ResetCherryPick: "重設選定的揀選 (複製) 提交", OpenKeybindingsMenu: "開啟選單",
NextTab: "下一個索引標籤", ResetCherryPick: "重設選定的揀選 (複製) 提交",
PrevTab: "上一個索引標籤", NextTab: "下一個索引標籤",
CantUndoWhileRebasing: "在變基時無法復原", PrevTab: "上一個索引標籤",
CantRedoWhileRebasing: "在變基時無法取消復原", CantUndoWhileRebasing: "在變基時無法復原",
MustStashWarning: "將補丁提取到索引中需要收藏並取消收藏你的變更。如果出現問題,你可以從收藏中訪問你的檔案。是否繼續?", CantRedoWhileRebasing: "在變基時無法取消復原",
MustStashTitle: "必須收藏", MustStashWarning: "將補丁提取到索引中需要收藏並取消收藏你的變更。如果出現問題,你可以從收藏中訪問你的檔案。是否繼續?",
ConfirmationTitle: "確認面板", MustStashTitle: "必須收藏",
PrevPage: "上一頁", ConfirmationTitle: "確認面板",
NextPage: "下一頁", PrevPage: "上一頁",
GotoTop: "捲動到頂部", NextPage: "下一頁",
GotoBottom: "捲動到底部", GotoTop: "捲動到頂部",
FilteringBy: "篩選方式", GotoBottom: "捲動到底部",
ResetInParentheses: "(已重設)", FilteringBy: "篩選方式",
OpenFilteringMenu: "檢視篩選路徑選項", ResetInParentheses: "(已重設)",
FilterBy: "篩選路徑", OpenFilteringMenu: "檢視篩選路徑選項",
ExitFilterMode: "停止按路徑篩選", FilterBy: "篩選路徑",
FilterPathOption: "輸入要依路徑篩選的路徑", ExitFilterMode: "停止按路徑篩選",
EnterFileName: "輸入路徑:", FilterPathOption: "輸入要依路徑篩選的路徑",
FilteringMenuTitle: "篩選", EnterFileName: "輸入路徑:",
MustExitFilterModeTitle: "命令不可用", FilteringMenuTitle: "篩選",
MustExitFilterModePrompt: "在按路徑篩選的模式下,該命令不可用。是否退出按路徑篩選的模式?", MustExitFilterModeTitle: "命令不可用",
Diff: "差異", MustExitFilterModePrompt: "在按路徑篩選的模式下,該命令不可用。是否退出按路徑篩選的模式?",
EnterRefToDiff: "輸入欲比較之 Ref", Diff: "差異",
EnterRefName: "輸入 Ref:", EnterRefToDiff: "輸入欲比較之 Ref",
ExitDiffMode: "退出差異模式", EnterRefName: "輸入 Ref:",
DiffingMenuTitle: "差異比較", ExitDiffMode: "退出差異模式",
SwapDiff: "反轉差異方向", DiffingMenuTitle: "差異比較",
ViewDiffingOptions: "開啟差異比較選單", SwapDiff: "反轉差異方向",
ViewDiffingOptions: "開啟差異比較選單",
// the actual view is the extras view which I intend to give more tabs in future but for now we'll only mention the command log part // the actual view is the extras view which I intend to give more tabs in future but for now we'll only mention the command log part
OpenCommandLogMenu: "開啟命令記錄選單", OpenCommandLogMenu: "開啟命令記錄選單",
ShowingGitDiff: "顯示輸出:", ShowingGitDiff: "顯示輸出:",