1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-04-23 12:18:51 +02:00

add spans to i18n

This commit is contained in:
Jesse Duffield 2021-04-11 19:35:42 +10:00
parent 0bebfe454e
commit adee0b8ccb
22 changed files with 252 additions and 89 deletions

View File

@ -87,7 +87,7 @@ func (gui *Gui) handleBranchPress() error {
return gui.createErrorPanel(gui.Tr.AlreadyCheckedOutBranch) return gui.createErrorPanel(gui.Tr.AlreadyCheckedOutBranch)
} }
branch := gui.getSelectedBranch() branch := gui.getSelectedBranch()
return gui.handleCheckoutRef(branch.Name, handleCheckoutRefOptions{span: "Checkout branch"}) return gui.handleCheckoutRef(branch.Name, handleCheckoutRefOptions{span: gui.Tr.Spans.CheckoutBranch})
} }
func (gui *Gui) handleCreatePullRequestPress() error { func (gui *Gui) handleCreatePullRequestPress() error {
@ -139,7 +139,7 @@ func (gui *Gui) handleForceCheckout() error {
title: title, title: title,
prompt: message, prompt: message,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Force checkout branch").Checkout(branch.Name, commands.CheckoutOptions{Force: true}); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.ForceCheckoutBranch).Checkout(branch.Name, commands.CheckoutOptions{Force: true}); err != nil {
_ = gui.surfaceError(err) _ = gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{mode: ASYNC}) return gui.refreshSidePanels(refreshOptions{mode: ASYNC})
@ -294,7 +294,7 @@ func (gui *Gui) deleteNamedBranch(selectedBranch *models.Branch, force bool) err
title: title, title: title,
prompt: message, prompt: message,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Delete branch").DeleteBranch(selectedBranch.Name, force); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DeleteBranch).DeleteBranch(selectedBranch.Name, force); err != nil {
errMessage := err.Error() errMessage := err.Error()
if !force && strings.Contains(errMessage, "is not fully merged") { if !force && strings.Contains(errMessage, "is not fully merged") {
return gui.deleteNamedBranch(selectedBranch, true) return gui.deleteNamedBranch(selectedBranch, true)
@ -330,7 +330,7 @@ func (gui *Gui) mergeBranchIntoCheckedOutBranch(branchName string) error {
title: gui.Tr.MergingTitle, title: gui.Tr.MergingTitle,
prompt: prompt, prompt: prompt,
handleConfirm: func() error { handleConfirm: func() error {
err := gui.GitCommand.WithSpan("Merge").Merge(branchName, commands.MergeOpts{}) err := gui.GitCommand.WithSpan(gui.Tr.Spans.Merge).Merge(branchName, commands.MergeOpts{})
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}, },
}) })
@ -371,7 +371,7 @@ func (gui *Gui) handleRebaseOntoBranch(selectedBranchName string) error {
title: gui.Tr.RebasingTitle, title: gui.Tr.RebasingTitle,
prompt: prompt, prompt: prompt,
handleConfirm: func() error { handleConfirm: func() error {
err := gui.GitCommand.WithSpan("Rebase branch").RebaseBranch(selectedBranchName) err := gui.GitCommand.WithSpan(gui.Tr.Spans.RebaseBranch).RebaseBranch(selectedBranchName)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}, },
}) })
@ -397,7 +397,7 @@ func (gui *Gui) handleFastForward() error {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
span := "Fast forward branch" span := gui.Tr.Spans.FastForwardBranch
split := strings.Split(upstream, "/") split := strings.Split(upstream, "/")
remoteName := split[0] remoteName := split[0]
@ -444,7 +444,7 @@ func (gui *Gui) handleRenameBranch() error {
title: gui.Tr.NewBranchNamePrompt + " " + branch.Name + ":", title: gui.Tr.NewBranchNamePrompt + " " + branch.Name + ":",
initialContent: branch.Name, initialContent: branch.Name,
handleConfirm: func(newBranchName string) error { handleConfirm: func(newBranchName string) error {
if err := gui.GitCommand.WithSpan("Rename branch").RenameBranch(branch.Name, newBranchName); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RenameBranch).RenameBranch(branch.Name, newBranchName); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -513,7 +513,7 @@ func (gui *Gui) handleNewBranchOffCurrentItem() error {
title: message, title: message,
initialContent: prefilledName, initialContent: prefilledName,
handleConfirm: func(response string) error { handleConfirm: func(response string) error {
if err := gui.GitCommand.WithSpan("Create branch").NewBranch(sanitizedBranchName(response), item.ID()); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.CreateBranch).NewBranch(sanitizedBranchName(response), item.ID()); err != nil {
return err return err
} }

View File

@ -148,7 +148,7 @@ func (gui *Gui) HandlePasteCommits() error {
prompt: gui.Tr.SureCherryPick, prompt: gui.Tr.SureCherryPick,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.CherryPickingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.CherryPickingStatus, func() error {
err := gui.GitCommand.WithSpan("(Cherry-pick) Paste commits").CherryPickCommits(gui.State.Modes.CherryPicking.CherryPickedCommits) err := gui.GitCommand.WithSpan(gui.Tr.Spans.CherryPick).CherryPickCommits(gui.State.Modes.CherryPicking.CherryPickedCommits)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },

View File

@ -62,7 +62,7 @@ func (gui *Gui) handleCheckoutCommitFile() error {
return nil return nil
} }
if err := gui.GitCommand.WithSpan("Checkout file").CheckoutFile(gui.State.CommitFileManager.GetParent(), node.GetPath()); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.CheckoutFile).CheckoutFile(gui.State.CommitFileManager.GetParent(), node.GetPath()); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -81,7 +81,7 @@ func (gui *Gui) handleDiscardOldFileChange() error {
prompt: gui.Tr.DiscardFileChangesPrompt, prompt: gui.Tr.DiscardFileChangesPrompt,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
if err := gui.GitCommand.WithSpan("Discard old file change").DiscardOldFileChanges(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, fileName); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardOldFileChange).DiscardOldFileChanges(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, fileName); err != nil {
if err := gui.handleGenericMergeCommandResult(err); err != nil { if err := gui.handleGenericMergeCommandResult(err); err != nil {
return err return err
} }

View File

@ -21,7 +21,7 @@ func (gui *Gui) handleCommitConfirm() error {
} }
cmdStr := gui.GitCommand.CommitCmdStr(message, flags) cmdStr := gui.GitCommand.CommitCmdStr(message, flags)
gui.OnRunCommand(oscommands.NewCmdLogEntry(cmdStr, "Commit", true)) gui.OnRunCommand(oscommands.NewCmdLogEntry(cmdStr, gui.Tr.Spans.Commit, true))
return gui.withGpgHandling(cmdStr, gui.Tr.CommittingStatus, func() error { return gui.withGpgHandling(cmdStr, gui.Tr.CommittingStatus, func() error {
_ = gui.returnFromContext() _ = gui.returnFromContext()
gui.clearEditorView(gui.Views.CommitMessage) gui.clearEditorView(gui.Views.CommitMessage)

View File

@ -171,7 +171,7 @@ func (gui *Gui) handleCommitSquashDown() error {
prompt: gui.Tr.SureSquashThisCommit, prompt: gui.Tr.SureSquashThisCommit,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.SquashingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.SquashingStatus, func() error {
err := gui.GitCommand.WithSpan("Squash commit down").InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "squash") err := gui.GitCommand.WithSpan(gui.Tr.Spans.SquashCommitDown).InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "squash")
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },
@ -200,7 +200,7 @@ func (gui *Gui) handleCommitFixup() error {
prompt: gui.Tr.SureFixupThisCommit, prompt: gui.Tr.SureFixupThisCommit,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.FixingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.FixingStatus, func() error {
err := gui.GitCommand.WithSpan("Fixup commit").InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "fixup") err := gui.GitCommand.WithSpan(gui.Tr.Spans.FixupCommit).InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "fixup")
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },
@ -238,7 +238,7 @@ func (gui *Gui) handleRenameCommit() error {
title: gui.Tr.LcRenameCommit, title: gui.Tr.LcRenameCommit,
initialContent: message, initialContent: message,
handleConfirm: func(response string) error { handleConfirm: func(response string) error {
if err := gui.GitCommand.WithSpan("Reword commit").RenameCommit(response); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RewordCommit).RenameCommit(response); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -260,7 +260,7 @@ func (gui *Gui) handleRenameCommitEditor() error {
return nil return nil
} }
subProcess, err := gui.GitCommand.WithSpan("Reword commit").RewordCommit(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx) subProcess, err := gui.GitCommand.WithSpan(gui.Tr.Spans.RewordCommit).RewordCommit(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx)
if err != nil { if err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -319,7 +319,7 @@ func (gui *Gui) handleCommitDelete() error {
prompt: gui.Tr.DeleteCommitPrompt, prompt: gui.Tr.DeleteCommitPrompt,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.DeletingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.DeletingStatus, func() error {
err := gui.GitCommand.WithSpan("Drop commit").InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "drop") err := gui.GitCommand.WithSpan(gui.Tr.Spans.DropCommit).InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "drop")
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },
@ -331,7 +331,7 @@ func (gui *Gui) handleCommitMoveDown() error {
return err return err
} }
span := "Move commit down" span := gui.Tr.Spans.MoveCommitDown
index := gui.State.Panels.Commits.SelectedLineIdx index := gui.State.Panels.Commits.SelectedLineIdx
selectedCommit := gui.State.Commits[index] selectedCommit := gui.State.Commits[index]
@ -374,7 +374,7 @@ func (gui *Gui) handleCommitMoveUp() error {
return nil return nil
} }
span := "Move commit up" span := gui.Tr.Spans.MoveCommitUp
selectedCommit := gui.State.Commits[index] selectedCommit := gui.State.Commits[index]
if selectedCommit.Status == "rebasing" { if selectedCommit.Status == "rebasing" {
@ -416,7 +416,7 @@ func (gui *Gui) handleCommitEdit() error {
} }
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
err = gui.GitCommand.WithSpan("Edit commit").InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "edit") err = gui.GitCommand.WithSpan(gui.Tr.Spans.EditCommit).InteractiveRebase(gui.State.Commits, gui.State.Panels.Commits.SelectedLineIdx, "edit")
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
} }
@ -431,7 +431,7 @@ func (gui *Gui) handleCommitAmendTo() error {
prompt: gui.Tr.AmendCommitPrompt, prompt: gui.Tr.AmendCommitPrompt,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.AmendingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.AmendingStatus, func() error {
err := gui.GitCommand.WithSpan("Amend commit").AmendTo(gui.State.Commits[gui.State.Panels.Commits.SelectedLineIdx].Sha) err := gui.GitCommand.WithSpan(gui.Tr.Spans.AmendCommit).AmendTo(gui.State.Commits[gui.State.Panels.Commits.SelectedLineIdx].Sha)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },
@ -461,7 +461,7 @@ func (gui *Gui) handleCommitRevert() error {
return err return err
} }
if err := gui.GitCommand.WithSpan("Revert commit").Revert(gui.State.Commits[gui.State.Panels.Commits.SelectedLineIdx].Sha); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RevertCommit).Revert(gui.State.Commits[gui.State.Panels.Commits.SelectedLineIdx].Sha); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
gui.State.Panels.Commits.SelectedLineIdx++ gui.State.Panels.Commits.SelectedLineIdx++
@ -498,7 +498,7 @@ func (gui *Gui) handleCreateFixupCommit() error {
title: gui.Tr.CreateFixupCommit, title: gui.Tr.CreateFixupCommit,
prompt: prompt, prompt: prompt,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Create fixup commit").CreateFixupCommit(commit.Sha); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.CreateFixupCommit).CreateFixupCommit(commit.Sha); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -529,7 +529,7 @@ func (gui *Gui) handleSquashAllAboveFixupCommits() error {
prompt: prompt, prompt: prompt,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.SquashingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.SquashingStatus, func() error {
err := gui.GitCommand.WithSpan("Squash all above fixup commits").SquashAllAboveFixupCommits(commit.Sha) err := gui.GitCommand.WithSpan(gui.Tr.Spans.SquashAllAboveFixupCommits).SquashAllAboveFixupCommits(commit.Sha)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
}, },
@ -552,7 +552,7 @@ func (gui *Gui) handleCreateLightweightTag(commitSha string) error {
return gui.prompt(promptOpts{ return gui.prompt(promptOpts{
title: gui.Tr.TagNameTitle, title: gui.Tr.TagNameTitle,
handleConfirm: func(response string) error { handleConfirm: func(response string) error {
if err := gui.GitCommand.WithSpan("Create lightweight tag").CreateLightweightTag(response, commitSha); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.CreateLightweightTag).CreateLightweightTag(response, commitSha); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{COMMITS, TAGS}}) return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{COMMITS, TAGS}})
@ -570,7 +570,7 @@ func (gui *Gui) handleCheckoutCommit() error {
title: gui.Tr.LcCheckoutCommit, title: gui.Tr.LcCheckoutCommit,
prompt: gui.Tr.SureCheckoutThisCommit, prompt: gui.Tr.SureCheckoutThisCommit,
handleConfirm: func() error { handleConfirm: func() error {
return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: "Checkout commit"}) return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: gui.Tr.Spans.CheckoutCommit})
}, },
}) })
} }
@ -625,7 +625,7 @@ func (gui *Gui) handleCopySelectedCommitMessageToClipboard() error {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
if err := gui.OSCommand.WithSpan("Copy commit message to clipboard").CopyToClipboard(message); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.CopyCommitMessageToClipboard).CopyToClipboard(message); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }

View File

@ -68,7 +68,7 @@ func (gui *Gui) handleCustomCommandKeybinding(customCommand config.CustomCommand
loadingText = gui.Tr.LcRunningCustomCommandStatus loadingText = gui.Tr.LcRunningCustomCommandStatus
} }
return gui.WithWaitingStatus(loadingText, func() error { return gui.WithWaitingStatus(loadingText, func() error {
if err := gui.OSCommand.WithSpan("Custom command").RunShellCommand(cmdStr); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.CustomCommand).RunShellCommand(cmdStr); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{}) return gui.refreshSidePanels(refreshOptions{})

View File

@ -12,7 +12,7 @@ func (gui *Gui) handleCreateDiscardMenu() error {
{ {
displayString: gui.Tr.LcDiscardAllChanges, displayString: gui.Tr.LcDiscardAllChanges,
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Discard all changes in directory").DiscardAllDirChanges(node); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardAllChangesInDirectory).DiscardAllDirChanges(node); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{FILES}}) return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{FILES}})
@ -24,7 +24,7 @@ func (gui *Gui) handleCreateDiscardMenu() error {
menuItems = append(menuItems, &menuItem{ menuItems = append(menuItems, &menuItem{
displayString: gui.Tr.LcDiscardUnstagedChanges, displayString: gui.Tr.LcDiscardUnstagedChanges,
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Discard unstaged changes in directory").DiscardUnstagedDirChanges(node); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardUnstagedChangesInDirectory).DiscardUnstagedDirChanges(node); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -53,7 +53,7 @@ func (gui *Gui) handleCreateDiscardMenu() error {
displayString: gui.Tr.LcDiscardAllChanges, displayString: gui.Tr.LcDiscardAllChanges,
onPress: func() error { onPress: func() error {
gui.Log.Warn("HA?") gui.Log.Warn("HA?")
if err := gui.GitCommand.WithSpan("Discard all changes in file").DiscardAllFileChanges(file); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardAllChangesInFile).DiscardAllFileChanges(file); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{FILES}}) return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{FILES}})
@ -65,7 +65,7 @@ func (gui *Gui) handleCreateDiscardMenu() error {
menuItems = append(menuItems, &menuItem{ menuItems = append(menuItems, &menuItem{
displayString: gui.Tr.LcDiscardUnstagedChanges, displayString: gui.Tr.LcDiscardUnstagedChanges,
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Discard all unstaged changes in file").DiscardUnstagedFileChanges(file); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardAllUnstagedChangesInFile).DiscardUnstagedFileChanges(file); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }

View File

@ -219,11 +219,11 @@ func (gui *Gui) handleFilePress() error {
} }
if file.HasUnstagedChanges { if file.HasUnstagedChanges {
if err := gui.GitCommand.WithSpan("Stage file").StageFile(file.Name); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.StageFile).StageFile(file.Name); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
} else { } else {
if err := gui.GitCommand.WithSpan("Unstage file").UnStageFile(file.Names(), file.Tracked); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.UnstageFile).UnStageFile(file.Names(), file.Tracked); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
} }
@ -235,12 +235,12 @@ func (gui *Gui) handleFilePress() error {
} }
if node.GetHasUnstagedChanges() { if node.GetHasUnstagedChanges() {
if err := gui.GitCommand.WithSpan("Stage file").StageFile(node.Path); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.StageFile).StageFile(node.Path); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
} else { } else {
// pretty sure it doesn't matter that we're always passing true here // pretty sure it doesn't matter that we're always passing true here
if err := gui.GitCommand.WithSpan("Unstage file").UnStageFile([]string{node.Path}, true); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.UnstageFile).UnStageFile([]string{node.Path}, true); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
} }
@ -269,9 +269,9 @@ func (gui *Gui) focusAndSelectFile() error {
func (gui *Gui) handleStageAll() error { func (gui *Gui) handleStageAll() error {
var err error var err error
if gui.allFilesStaged() { if gui.allFilesStaged() {
err = gui.GitCommand.WithSpan("Unstage all files").UnstageAll() err = gui.GitCommand.WithSpan(gui.Tr.Spans.UnstageAllFiles).UnstageAll()
} else { } else {
err = gui.GitCommand.WithSpan("Stage all files").StageAll() err = gui.GitCommand.WithSpan(gui.Tr.Spans.StageAllFiles).StageAll()
} }
if err != nil { if err != nil {
_ = gui.surfaceError(err) _ = gui.surfaceError(err)
@ -294,7 +294,7 @@ func (gui *Gui) handleIgnoreFile() error {
return gui.createErrorPanel("Cannot ignore .gitignore") return gui.createErrorPanel("Cannot ignore .gitignore")
} }
gitCommand := gui.GitCommand.WithSpan("Ignore file") gitCommand := gui.GitCommand.WithSpan(gui.Tr.Spans.IgnoreFile)
unstageFiles := func() error { unstageFiles := func() error {
return node.ForEachFile(func(file *models.File) error { return node.ForEachFile(func(file *models.File) error {
@ -367,7 +367,7 @@ func (gui *Gui) commitPrefixConfigForRepo() *config.CommitPrefixConfig {
func (gui *Gui) prepareFilesForCommit() error { func (gui *Gui) prepareFilesForCommit() error {
noStagedFiles := len(gui.stagedFiles()) == 0 noStagedFiles := len(gui.stagedFiles()) == 0
if noStagedFiles && gui.Config.GetUserConfig().Gui.SkipNoStagedFilesWarning { if noStagedFiles && gui.Config.GetUserConfig().Gui.SkipNoStagedFilesWarning {
err := gui.GitCommand.WithSpan("Stage all files").StageAll() err := gui.GitCommand.WithSpan(gui.Tr.Spans.StageAllFiles).StageAll()
if err != nil { if err != nil {
return err return err
} }
@ -422,7 +422,7 @@ func (gui *Gui) promptToStageAllAndRetry(retry func() error) error {
title: gui.Tr.NoFilesStagedTitle, title: gui.Tr.NoFilesStagedTitle,
prompt: gui.Tr.NoFilesStagedPrompt, prompt: gui.Tr.NoFilesStagedPrompt,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Stage all files").StageAll(); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.StageAllFiles).StageAll(); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
if err := gui.refreshFilesAndSubmodules(); err != nil { if err := gui.refreshFilesAndSubmodules(); err != nil {
@ -452,7 +452,7 @@ func (gui *Gui) handleAmendCommitPress() error {
prompt: gui.Tr.SureToAmend, prompt: gui.Tr.SureToAmend,
handleConfirm: func() error { handleConfirm: func() error {
cmdStr := gui.GitCommand.AmendHeadCmdStr() cmdStr := gui.GitCommand.AmendHeadCmdStr()
gui.OnRunCommand(oscommands.NewCmdLogEntry(cmdStr, "Amend commit", true)) gui.OnRunCommand(oscommands.NewCmdLogEntry(cmdStr, gui.Tr.Spans.AmendCommit, true))
return gui.withGpgHandling(cmdStr, gui.Tr.AmendingStatus, nil) return gui.withGpgHandling(cmdStr, gui.Tr.AmendingStatus, nil)
}, },
}) })
@ -470,7 +470,7 @@ func (gui *Gui) handleCommitEditorPress() error {
} }
return gui.runSubprocessWithSuspenseAndRefresh( return gui.runSubprocessWithSuspenseAndRefresh(
gui.OSCommand.WithSpan("Commit").PrepareSubProcess("git", "commit"), gui.OSCommand.WithSpan(gui.Tr.Spans.Commit).PrepareSubProcess("git", "commit"),
) )
} }
@ -481,7 +481,7 @@ func (gui *Gui) editFile(filename string) error {
} }
return gui.runSubprocessWithSuspenseAndRefresh( return gui.runSubprocessWithSuspenseAndRefresh(
gui.OSCommand.WithSpan("Edit file").PrepareShellSubProcess(cmdStr), gui.OSCommand.WithSpan(gui.Tr.Spans.EditFile).PrepareShellSubProcess(cmdStr),
) )
} }
@ -609,7 +609,7 @@ func (gui *Gui) handlePullFiles() error {
return nil return nil
} }
span := "Pull" span := gui.Tr.Spans.Pull
currentBranch := gui.currentBranch() currentBranch := gui.currentBranch()
if currentBranch == nil { if currentBranch == nil {
@ -707,7 +707,7 @@ func (gui *Gui) pushWithForceFlag(force bool, upstream string, args string) erro
} }
go utils.Safe(func() { go utils.Safe(func() {
branchName := gui.getCheckedOutBranch().Name branchName := gui.getCheckedOutBranch().Name
err := gui.GitCommand.WithSpan("Push").Push(branchName, force, upstream, args, gui.promptUserForCredential) err := gui.GitCommand.WithSpan(gui.Tr.Spans.Push).Push(branchName, force, upstream, args, gui.promptUserForCredential)
if err != nil && !force && strings.Contains(err.Error(), "Updates were rejected") { if err != nil && !force && strings.Contains(err.Error(), "Updates were rejected") {
forcePushDisabled := gui.Config.GetUserConfig().Git.DisableForcePushing forcePushDisabled := gui.Config.GetUserConfig().Git.DisableForcePushing
if forcePushDisabled { if forcePushDisabled {
@ -796,7 +796,7 @@ func (gui *Gui) handleSwitchToMerge() error {
} }
func (gui *Gui) openFile(filename string) error { func (gui *Gui) openFile(filename string) error {
if err := gui.OSCommand.WithSpan("Open file").OpenFile(filename); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.OpenFile).OpenFile(filename); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return nil return nil
@ -815,7 +815,7 @@ func (gui *Gui) handleCustomCommand() error {
return gui.prompt(promptOpts{ return gui.prompt(promptOpts{
title: gui.Tr.CustomCommand, title: gui.Tr.CustomCommand,
handleConfirm: func(command string) error { handleConfirm: func(command string) error {
gui.OnRunCommand(oscommands.NewCmdLogEntry(command, "Custom command", true)) gui.OnRunCommand(oscommands.NewCmdLogEntry(command, gui.Tr.Spans.CustomCommand, true))
return gui.runSubprocessWithSuspenseAndRefresh( return gui.runSubprocessWithSuspenseAndRefresh(
gui.OSCommand.PrepareShellSubProcess(command), gui.OSCommand.PrepareShellSubProcess(command),
) )
@ -828,13 +828,13 @@ func (gui *Gui) handleCreateStashMenu() error {
{ {
displayString: gui.Tr.LcStashAllChanges, displayString: gui.Tr.LcStashAllChanges,
onPress: func() error { onPress: func() error {
return gui.handleStashSave(gui.GitCommand.WithSpan("Stash all changes").StashSave) return gui.handleStashSave(gui.GitCommand.WithSpan(gui.Tr.Spans.StashAllChanges).StashSave)
}, },
}, },
{ {
displayString: gui.Tr.LcStashStagedChanges, displayString: gui.Tr.LcStashStagedChanges,
onPress: func() error { onPress: func() error {
return gui.handleStashSave(gui.GitCommand.WithSpan("Stash staged changes").StashSaveStagedChanges) return gui.handleStashSave(gui.GitCommand.WithSpan(gui.Tr.Spans.StashStagedChanges).StashSaveStagedChanges)
}, },
}, },
} }

View File

@ -32,7 +32,7 @@ func (gui *Gui) gitFlowFinishBranch(gitFlowConfig string, branchName string) err
} }
return gui.runSubprocessWithSuspenseAndRefresh( return gui.runSubprocessWithSuspenseAndRefresh(
gui.OSCommand.WithSpan("Git flow finish").PrepareSubProcess("git", "flow", branchType, "finish", suffix), gui.OSCommand.WithSpan(gui.Tr.Spans.GitFlowFinish).PrepareSubProcess("git", "flow", branchType, "finish", suffix),
) )
} }
@ -56,7 +56,7 @@ func (gui *Gui) handleCreateGitFlowMenu() error {
title: title, title: title,
handleConfirm: func(name string) error { handleConfirm: func(name string) error {
return gui.runSubprocessWithSuspenseAndRefresh( return gui.runSubprocessWithSuspenseAndRefresh(
gui.OSCommand.WithSpan("Git Flow start").PrepareSubProcess("git", "flow", branchType, "start", name), gui.OSCommand.WithSpan(gui.Tr.Spans.GitFlowStart).PrepareSubProcess("git", "flow", branchType, "start", name),
) )
}, },
}) })

View File

@ -215,7 +215,7 @@ func (gui *Gui) handleCopySelectedSideContextItemToClipboard() error {
return nil return nil
} }
if err := gui.OSCommand.WithSpan("Copy to clipboard").CopyToClipboard(itemId); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.CopyToClipboard).CopyToClipboard(itemId); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }

View File

@ -98,7 +98,7 @@ func (gui *Gui) handleDeletePatchFromCommit() error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex() commitIndex := gui.getPatchCommitIndex()
err := gui.GitCommand.WithSpan("Remove patch from commit").DeletePatchesFromCommit(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager) err := gui.GitCommand.WithSpan(gui.Tr.Spans.RemovePatchFromCommit).DeletePatchesFromCommit(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
} }
@ -114,7 +114,7 @@ func (gui *Gui) handleMovePatchToSelectedCommit() error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex() commitIndex := gui.getPatchCommitIndex()
err := gui.GitCommand.WithSpan("Move patch to selected commit").MovePatchToSelectedCommit(gui.State.Commits, commitIndex, gui.State.Panels.Commits.SelectedLineIdx, gui.GitCommand.PatchManager) err := gui.GitCommand.WithSpan(gui.Tr.Spans.MovePatchToSelectedCommit).MovePatchToSelectedCommit(gui.State.Commits, commitIndex, gui.State.Panels.Commits.SelectedLineIdx, gui.GitCommand.PatchManager)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
} }
@ -131,7 +131,7 @@ func (gui *Gui) handleMovePatchIntoWorkingTree() error {
pull := func(stash bool) error { pull := func(stash bool) error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex() commitIndex := gui.getPatchCommitIndex()
err := gui.GitCommand.WithSpan("Move patch into index").MovePatchIntoIndex(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager, stash) err := gui.GitCommand.WithSpan(gui.Tr.Spans.MovePatchIntoIndex).MovePatchIntoIndex(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager, stash)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
} }
@ -160,7 +160,7 @@ func (gui *Gui) handlePullPatchIntoNewCommit() error {
return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RebasingStatus, func() error {
commitIndex := gui.getPatchCommitIndex() commitIndex := gui.getPatchCommitIndex()
err := gui.GitCommand.WithSpan("Move patch into new commit").PullPatchIntoNewCommit(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager) err := gui.GitCommand.WithSpan(gui.Tr.Spans.MovePatchIntoNewCommit).PullPatchIntoNewCommit(gui.State.Commits, commitIndex, gui.GitCommand.PatchManager)
return gui.handleGenericMergeCommandResult(err) return gui.handleGenericMergeCommandResult(err)
}) })
} }
@ -170,7 +170,7 @@ func (gui *Gui) handleApplyPatch(reverse bool) error {
return err return err
} }
span := "Apply patch" span := gui.Tr.Spans.ApplyPatch
if reverse { if reverse {
span = "Apply patch in reverse" span = "Apply patch in reverse"
} }

View File

@ -92,7 +92,7 @@ func (gui *Gui) handleCheckoutReflogCommit() error {
title: gui.Tr.LcCheckoutCommit, title: gui.Tr.LcCheckoutCommit,
prompt: gui.Tr.SureCheckoutThisCommit, prompt: gui.Tr.SureCheckoutThisCommit,
handleConfirm: func() error { handleConfirm: func() error {
return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: "Checkout reflog commit"}) return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: gui.Tr.Spans.CheckoutReflogCommit})
}, },
}) })
if err != nil { if err != nil {

View File

@ -59,7 +59,7 @@ func (gui *Gui) handleDeleteRemoteBranch() error {
prompt: message, prompt: message,
handleConfirm: func() error { handleConfirm: func() error {
return gui.WithWaitingStatus(gui.Tr.DeletingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.DeletingStatus, func() error {
err := gui.GitCommand.WithSpan("Delete remote branch").DeleteRemoteBranch(remoteBranch.RemoteName, remoteBranch.Name, gui.promptUserForCredential) err := gui.GitCommand.WithSpan(gui.Tr.Spans.DeleteRemoteBranch).DeleteRemoteBranch(remoteBranch.RemoteName, remoteBranch.Name, gui.promptUserForCredential)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{BRANCHES, REMOTES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{BRANCHES, REMOTES}})
@ -89,7 +89,7 @@ func (gui *Gui) handleSetBranchUpstream() error {
title: gui.Tr.SetUpstreamTitle, title: gui.Tr.SetUpstreamTitle,
prompt: message, prompt: message,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Set branch upstream").SetBranchUpstream(selectedBranch.RemoteName, selectedBranch.Name, checkedOutBranch.Name); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.SetBranchUpstream).SetBranchUpstream(selectedBranch.RemoteName, selectedBranch.Name, checkedOutBranch.Name); err != nil {
return err return err
} }

View File

@ -85,7 +85,7 @@ func (gui *Gui) handleAddRemote() error {
return gui.prompt(promptOpts{ return gui.prompt(promptOpts{
title: gui.Tr.LcNewRemoteUrl, title: gui.Tr.LcNewRemoteUrl,
handleConfirm: func(remoteUrl string) error { handleConfirm: func(remoteUrl string) error {
if err := gui.GitCommand.WithSpan("Add remote").AddRemote(remoteName, remoteUrl); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.AddRemote).AddRemote(remoteName, remoteUrl); err != nil {
return err return err
} }
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{REMOTES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{REMOTES}})
@ -106,7 +106,7 @@ func (gui *Gui) handleRemoveRemote() error {
title: gui.Tr.LcRemoveRemote, title: gui.Tr.LcRemoveRemote,
prompt: gui.Tr.LcRemoveRemotePrompt + " '" + remote.Name + "'?", prompt: gui.Tr.LcRemoveRemotePrompt + " '" + remote.Name + "'?",
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Remove remote").RemoveRemote(remote.Name); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RemoveRemote).RemoveRemote(remote.Name); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -128,7 +128,7 @@ func (gui *Gui) handleEditRemote() error {
}, },
) )
gitCommand := gui.GitCommand.WithSpan("Update remote") gitCommand := gui.GitCommand.WithSpan(gui.Tr.Spans.UpdateRemote)
return gui.prompt(promptOpts{ return gui.prompt(promptOpts{
title: editNameMessage, title: editNameMessage,

View File

@ -142,7 +142,7 @@ func (gui *Gui) applySelection(reverse bool, state *lBlPanelState) error {
if !reverse || state.SecondaryFocused { if !reverse || state.SecondaryFocused {
applyFlags = append(applyFlags, "cached") applyFlags = append(applyFlags, "cached")
} }
err := gui.GitCommand.WithSpan("Apply patch").ApplyPatch(patch, applyFlags...) err := gui.GitCommand.WithSpan(gui.Tr.Spans.ApplyPatch).ApplyPatch(patch, applyFlags...)
if err != nil { if err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }

View File

@ -106,7 +106,7 @@ func (gui *Gui) stashDo(method string) error {
return gui.createErrorPanel(errorMessage) return gui.createErrorPanel(errorMessage)
} }
if err := gui.GitCommand.WithSpan("Stash").StashDo(stashEntry.Index, method); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.Stash).StashDo(stashEntry.Index, method); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{STASH, FILES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{STASH, FILES}})

View File

@ -48,7 +48,7 @@ func (gui *Gui) handleCheckoutSubCommit() error {
title: gui.Tr.LcCheckoutCommit, title: gui.Tr.LcCheckoutCommit,
prompt: gui.Tr.SureCheckoutThisCommit, prompt: gui.Tr.SureCheckoutThisCommit,
handleConfirm: func() error { handleConfirm: func() error {
return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: "Checkout commit"}) return gui.handleCheckoutRef(commit.Sha, handleCheckoutRefOptions{span: gui.Tr.Spans.CheckoutCommit})
}, },
}) })
if err != nil { if err != nil {

View File

@ -81,7 +81,7 @@ func (gui *Gui) removeSubmodule(submodule *models.SubmoduleConfig) error {
title: gui.Tr.RemoveSubmodule, title: gui.Tr.RemoveSubmodule,
prompt: fmt.Sprintf(gui.Tr.RemoveSubmodulePrompt, submodule.Name), prompt: fmt.Sprintf(gui.Tr.RemoveSubmodulePrompt, submodule.Name),
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Remove submodule").SubmoduleDelete(submodule); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RemoveSubmodule).SubmoduleDelete(submodule); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -107,7 +107,7 @@ func (gui *Gui) fileForSubmodule(submodule *models.SubmoduleConfig) *models.File
} }
func (gui *Gui) resetSubmodule(submodule *models.SubmoduleConfig) error { func (gui *Gui) resetSubmodule(submodule *models.SubmoduleConfig) error {
gitCommand := gui.GitCommand.WithSpan("Reset submodule") gitCommand := gui.GitCommand.WithSpan(gui.Tr.Spans.ResetSubmodule)
file := gui.fileForSubmodule(submodule) file := gui.fileForSubmodule(submodule)
if file != nil { if file != nil {
@ -142,7 +142,7 @@ func (gui *Gui) handleAddSubmodule() error {
initialContent: submoduleName, initialContent: submoduleName,
handleConfirm: func(submodulePath string) error { handleConfirm: func(submodulePath string) error {
return gui.WithWaitingStatus(gui.Tr.LcAddingSubmoduleStatus, func() error { return gui.WithWaitingStatus(gui.Tr.LcAddingSubmoduleStatus, func() error {
err := gui.GitCommand.WithSpan("Add submodule").SubmoduleAdd(submoduleName, submodulePath, submoduleUrl) err := gui.GitCommand.WithSpan(gui.Tr.Spans.AddSubmodule).SubmoduleAdd(submoduleName, submodulePath, submoduleUrl)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}})
@ -162,7 +162,7 @@ func (gui *Gui) handleEditSubmoduleUrl(submodule *models.SubmoduleConfig) error
initialContent: submodule.Url, initialContent: submodule.Url,
handleConfirm: func(newUrl string) error { handleConfirm: func(newUrl string) error {
return gui.WithWaitingStatus(gui.Tr.LcUpdatingSubmoduleUrlStatus, func() error { return gui.WithWaitingStatus(gui.Tr.LcUpdatingSubmoduleUrlStatus, func() error {
err := gui.GitCommand.WithSpan("Update submodule URL").SubmoduleUpdateUrl(submodule.Name, submodule.Path, newUrl) err := gui.GitCommand.WithSpan(gui.Tr.Spans.UpdateSubmoduleUrl).SubmoduleUpdateUrl(submodule.Name, submodule.Path, newUrl)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}})
@ -173,7 +173,7 @@ func (gui *Gui) handleEditSubmoduleUrl(submodule *models.SubmoduleConfig) error
func (gui *Gui) handleSubmoduleInit(submodule *models.SubmoduleConfig) error { func (gui *Gui) handleSubmoduleInit(submodule *models.SubmoduleConfig) error {
return gui.WithWaitingStatus(gui.Tr.LcInitializingSubmoduleStatus, func() error { return gui.WithWaitingStatus(gui.Tr.LcInitializingSubmoduleStatus, func() error {
err := gui.GitCommand.WithSpan("Initialise submodule").SubmoduleInit(submodule.Path) err := gui.GitCommand.WithSpan(gui.Tr.Spans.InitialiseSubmodule).SubmoduleInit(submodule.Path)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}})
@ -216,7 +216,7 @@ func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
displayStrings: []string{gui.Tr.LcBulkInitSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkInitCmdStr(), color.FgGreen)}, displayStrings: []string{gui.Tr.LcBulkInitSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkInitCmdStr(), color.FgGreen)},
onPress: func() error { onPress: func() error {
return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error { return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error {
if err := gui.OSCommand.WithSpan("Bulk initialise submodules").RunCommand(gui.GitCommand.SubmoduleBulkInitCmdStr()); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.BulkInitialiseSubmodules).RunCommand(gui.GitCommand.SubmoduleBulkInitCmdStr()); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -228,7 +228,7 @@ func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
displayStrings: []string{gui.Tr.LcBulkUpdateSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkUpdateCmdStr(), color.FgYellow)}, displayStrings: []string{gui.Tr.LcBulkUpdateSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkUpdateCmdStr(), color.FgYellow)},
onPress: func() error { onPress: func() error {
return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error { return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error {
if err := gui.OSCommand.WithSpan("Bulk update submodules").RunCommand(gui.GitCommand.SubmoduleBulkUpdateCmdStr()); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.BulkUpdateSubmodules).RunCommand(gui.GitCommand.SubmoduleBulkUpdateCmdStr()); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -240,7 +240,7 @@ func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
displayStrings: []string{gui.Tr.LcSubmoduleStashAndReset, utils.ColoredString(fmt.Sprintf("git stash in each submodule && %s", gui.GitCommand.SubmoduleForceBulkUpdateCmdStr()), color.FgRed)}, displayStrings: []string{gui.Tr.LcSubmoduleStashAndReset, utils.ColoredString(fmt.Sprintf("git stash in each submodule && %s", gui.GitCommand.SubmoduleForceBulkUpdateCmdStr()), color.FgRed)},
onPress: func() error { onPress: func() error {
return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error { return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error {
if err := gui.GitCommand.WithSpan("Bulk stash and reset submodules").ResetSubmodules(gui.State.Submodules); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.BulkStashAndResetSubmodules).ResetSubmodules(gui.State.Submodules); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -252,7 +252,7 @@ func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
displayStrings: []string{gui.Tr.LcBulkDeinitSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkDeinitCmdStr(), color.FgRed)}, displayStrings: []string{gui.Tr.LcBulkDeinitSubmodules, utils.ColoredString(gui.GitCommand.SubmoduleBulkDeinitCmdStr(), color.FgRed)},
onPress: func() error { onPress: func() error {
return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error { return gui.WithWaitingStatus(gui.Tr.LcRunningCommand, func() error {
if err := gui.OSCommand.WithSpan("Bulk deinitialise submodules").RunCommand(gui.GitCommand.SubmoduleBulkDeinitCmdStr()); err != nil { if err := gui.OSCommand.WithSpan(gui.Tr.Spans.BulkDeinitialiseSubmodules).RunCommand(gui.GitCommand.SubmoduleBulkDeinitCmdStr()); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -267,7 +267,7 @@ func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
func (gui *Gui) handleUpdateSubmodule(submodule *models.SubmoduleConfig) error { func (gui *Gui) handleUpdateSubmodule(submodule *models.SubmoduleConfig) error {
return gui.WithWaitingStatus(gui.Tr.LcUpdatingSubmoduleStatus, func() error { return gui.WithWaitingStatus(gui.Tr.LcUpdatingSubmoduleStatus, func() error {
err := gui.GitCommand.WithSpan("Update submodule").SubmoduleUpdate(submodule.Path) err := gui.GitCommand.WithSpan(gui.Tr.Spans.UpdateSubmodule).SubmoduleUpdate(submodule.Path)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}}) return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{SUBMODULES}})

View File

@ -19,7 +19,7 @@ func (gui *Gui) handleCreateTag() error {
title: gui.Tr.CreateTagTitle, title: gui.Tr.CreateTagTitle,
handleConfirm: func(tagName string) error { handleConfirm: func(tagName string) error {
// leaving commit SHA blank so that we're just creating the tag for the current commit // leaving commit SHA blank so that we're just creating the tag for the current commit
if err := gui.GitCommand.WithSpan("Create lightweight tag").CreateLightweightTag(tagName, ""); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.CreateLightweightTag).CreateLightweightTag(tagName, ""); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{COMMITS, TAGS}, then: func() { return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{COMMITS, TAGS}, then: func() {
@ -86,7 +86,7 @@ func (gui *Gui) withSelectedTag(f func(tag *models.Tag) error) func() error {
} }
func (gui *Gui) handleCheckoutTag(tag *models.Tag) error { func (gui *Gui) handleCheckoutTag(tag *models.Tag) error {
if err := gui.handleCheckoutRef(tag.Name, handleCheckoutRefOptions{span: "Checkout tag"}); err != nil { if err := gui.handleCheckoutRef(tag.Name, handleCheckoutRefOptions{span: gui.Tr.Spans.CheckoutTag}); err != nil {
return err return err
} }
return gui.pushContext(gui.State.Contexts.Branches) return gui.pushContext(gui.State.Contexts.Branches)
@ -104,7 +104,7 @@ func (gui *Gui) handleDeleteTag(tag *models.Tag) error {
title: gui.Tr.DeleteTagTitle, title: gui.Tr.DeleteTagTitle,
prompt: prompt, prompt: prompt,
handleConfirm: func() error { handleConfirm: func() error {
if err := gui.GitCommand.WithSpan("Delete tag").DeleteTag(tag.Name); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DeleteTag).DeleteTag(tag.Name); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{COMMITS, TAGS}}) return gui.refreshSidePanels(refreshOptions{mode: ASYNC, scope: []RefreshableView{COMMITS, TAGS}})
@ -125,7 +125,7 @@ func (gui *Gui) handlePushTag(tag *models.Tag) error {
initialContent: "origin", initialContent: "origin",
handleConfirm: func(response string) error { handleConfirm: func(response string) error {
return gui.WithWaitingStatus(gui.Tr.PushingTagStatus, func() error { return gui.WithWaitingStatus(gui.Tr.PushingTagStatus, func() error {
err := gui.GitCommand.WithSpan("Push tag").PushTag(response, tag.Name, gui.promptUserForCredential) err := gui.GitCommand.WithSpan(gui.Tr.Spans.PushTag).PushTag(response, tag.Name, gui.promptUserForCredential)
gui.handleCredentialsPopup(err) gui.handleCredentialsPopup(err)
return nil return nil

View File

@ -93,7 +93,7 @@ func (gui *Gui) reflogUndo() error {
return gui.createErrorPanel(gui.Tr.LcCantUndoWhileRebasing) return gui.createErrorPanel(gui.Tr.LcCantUndoWhileRebasing)
} }
span := "Undo" span := gui.Tr.Spans.Undo
return gui.parseReflogForActions(func(counter int, action reflogAction) (bool, error) { return gui.parseReflogForActions(func(counter int, action reflogAction) (bool, error) {
if counter != 0 { if counter != 0 {
@ -128,7 +128,7 @@ func (gui *Gui) reflogRedo() error {
return gui.createErrorPanel(gui.Tr.LcCantRedoWhileRebasing) return gui.createErrorPanel(gui.Tr.LcCantRedoWhileRebasing)
} }
span := "Redo" span := gui.Tr.Spans.Redo
return gui.parseReflogForActions(func(counter int, action reflogAction) (bool, error) { return gui.parseReflogForActions(func(counter int, action reflogAction) (bool, error) {
// if we're redoing and the counter is zero, we just return // if we're redoing and the counter is zero, we just return

View File

@ -21,7 +21,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint(nukeStr), red.Sprint(nukeStr),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Nuke working tree").ResetAndClean(); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.NukeWorkingTree).ResetAndClean(); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -34,7 +34,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint("git checkout -- ."), red.Sprint("git checkout -- ."),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Discard unstaged file changes").DiscardAnyUnstagedFileChanges(); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.DiscardUnstagedFileChanges).DiscardAnyUnstagedFileChanges(); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -47,7 +47,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint("git clean -fd"), red.Sprint("git clean -fd"),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Remove untracked files").RemoveUntrackedFiles(); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.RemoveUntrackedFiles).RemoveUntrackedFiles(); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -60,7 +60,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint("git reset --soft HEAD"), red.Sprint("git reset --soft HEAD"),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Soft reset").ResetSoft("HEAD"); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.SoftReset).ResetSoft("HEAD"); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -73,7 +73,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint("git reset --mixed HEAD"), red.Sprint("git reset --mixed HEAD"),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Mixed reset").ResetMixed("HEAD"); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.MixedReset).ResetMixed("HEAD"); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }
@ -86,7 +86,7 @@ func (gui *Gui) handleCreateResetMenu() error {
red.Sprint("git reset --hard HEAD"), red.Sprint("git reset --hard HEAD"),
}, },
onPress: func() error { onPress: func() error {
if err := gui.GitCommand.WithSpan("Hard reset").ResetHard("HEAD"); err != nil { if err := gui.GitCommand.WithSpan(gui.Tr.Spans.HardReset).ResetHard("HEAD"); err != nil {
return gui.surfaceError(err) return gui.surfaceError(err)
} }

View File

@ -448,6 +448,88 @@ type TranslationSet struct {
CommandLog string CommandLog string
ToggleShowCommandLog string ToggleShowCommandLog string
FocusCommandLog string FocusCommandLog string
Spans Spans
}
type Spans struct {
CheckoutCommit string
CheckoutReflogCommit string
CheckoutTag string
CheckoutBranch string
ForceCheckoutBranch string
DeleteBranch string
Merge string
RebaseBranch string
RenameBranch string
CreateBranch string
FastForwardBranch string
CherryPick string
CheckoutFile string
DiscardOldFileChange string
SquashCommitDown string
FixupCommit string
RewordCommit string
DropCommit string
EditCommit string
AmendCommit string
RevertCommit string
CreateFixupCommit string
SquashAllAboveFixupCommits string
MoveCommitUp string
MoveCommitDown string
CopyCommitMessageToClipboard string
CustomCommand string
DiscardAllChangesInDirectory string
DiscardUnstagedChangesInDirectory string
DiscardAllChangesInFile string
DiscardAllUnstagedChangesInFile string
StageFile string
UnstageFile string
UnstageAllFiles string
StageAllFiles string
IgnoreFile string
Commit string
EditFile string
Push string
Pull string
OpenFile string
StashAllChanges string
StashStagedChanges string
GitFlowFinish string
GitFlowStart string
CopyToClipboard string
RemovePatchFromCommit string
MovePatchToSelectedCommit string
MovePatchIntoIndex string
MovePatchIntoNewCommit string
DeleteRemoteBranch string
SetBranchUpstream string
AddRemote string
RemoveRemote string
UpdateRemote string
ApplyPatch string
Stash string
RemoveSubmodule string
ResetSubmodule string
AddSubmodule string
UpdateSubmoduleUrl string
InitialiseSubmodule string
BulkInitialiseSubmodules string
BulkUpdateSubmodules string
BulkStashAndResetSubmodules string
BulkDeinitialiseSubmodules string
UpdateSubmodule string
CreateLightweightTag string
DeleteTag string
PushTag string
NukeWorkingTree string
DiscardUnstagedFileChanges string
RemoveUntrackedFiles string
SoftReset string
MixedReset string
HardReset string
Undo string
Redo string
} }
const englishReleaseNotes = `lazygit 0.27.1-0.27.4 Release notes const englishReleaseNotes = `lazygit 0.27.1-0.27.4 Release notes
@ -1105,5 +1187,86 @@ func englishTranslationSet() TranslationSet {
CommandLog: "Command Log", CommandLog: "Command Log",
ToggleShowCommandLog: "Toggle show/hide command log", ToggleShowCommandLog: "Toggle show/hide command log",
FocusCommandLog: "Focus command log", FocusCommandLog: "Focus command log",
Spans: Spans{
// TODO: combine this with the original keybinding descriptions (those are all in lowercase atm)
CheckoutCommit: "Checkout commit",
CheckoutReflogCommit: "Checkout reflog commit",
CheckoutTag: "Checkout tag",
CheckoutBranch: "Checkout branch",
ForceCheckoutBranch: "Force checkout branch",
DeleteBranch: "Delete branch",
Merge: "Merge",
RebaseBranch: "Rebase branch",
RenameBranch: "Rename branch",
CreateBranch: "Create branch",
CherryPick: "(Cherry-pick) Paste commits",
CheckoutFile: "Checkout file",
DiscardOldFileChange: "Discard old file change",
SquashCommitDown: "Squash commit down",
FixupCommit: "Fixup commit",
RewordCommit: "Reword commit",
DropCommit: "Drop commit",
EditCommit: "Edit commit",
AmendCommit: "Amend commit",
RevertCommit: "Revert commit",
CreateFixupCommit: "Create fixup commit",
SquashAllAboveFixupCommits: "Squash all above fixup commits",
CreateLightweightTag: "Create lightweight tag",
CopyCommitMessageToClipboard: "Copy commit message to clipboard",
MoveCommitUp: "Move commit up",
MoveCommitDown: "Move commit down",
CustomCommand: "Custom command",
DiscardAllChangesInDirectory: "Discard all changes in directory",
DiscardUnstagedChangesInDirectory: "Discard unstaged changes in directory",
DiscardAllChangesInFile: "Discard all changes in file",
DiscardAllUnstagedChangesInFile: "Discard all unstaged changes in file",
StageFile: "Stage file",
UnstageFile: "Unstage file",
UnstageAllFiles: "Unstage all files",
StageAllFiles: "Stage all files",
IgnoreFile: "Ignore file",
Commit: "Commit",
EditFile: "Edit file",
Push: "Push",
Pull: "Pull",
OpenFile: "Open file",
StashAllChanges: "Stash all changes",
StashStagedChanges: "Stash staged changes",
GitFlowFinish: "Git flow finish",
GitFlowStart: "Git Flow start",
CopyToClipboard: "Copy to clipboard",
RemovePatchFromCommit: "Remove patch from commit",
MovePatchToSelectedCommit: "Move patch to selected commit",
MovePatchIntoIndex: "Move patch into index",
MovePatchIntoNewCommit: "Move patch into new commit",
DeleteRemoteBranch: "Delete remote branch",
SetBranchUpstream: "Set branch upstream",
AddRemote: "Add remote",
RemoveRemote: "Remove remote",
UpdateRemote: "Update remote",
ApplyPatch: "Apply patch",
Stash: "Stash",
RemoveSubmodule: "Remove submodule",
ResetSubmodule: "Reset submodule",
AddSubmodule: "Add submodule",
UpdateSubmoduleUrl: "Update submodule URL",
InitialiseSubmodule: "Initialise submodule",
BulkInitialiseSubmodules: "Bulk initialise submodules",
BulkUpdateSubmodules: "Bulk update submodules",
BulkStashAndResetSubmodules: "Bulk stash and reset submodules",
BulkDeinitialiseSubmodules: "Bulk deinitialise submodules",
UpdateSubmodule: "Update submodule",
DeleteTag: "Delete tag",
PushTag: "Push tag",
NukeWorkingTree: "Nuke working tree",
DiscardUnstagedFileChanges: "Discard unstaged file changes",
RemoveUntrackedFiles: "Remove untracked files",
SoftReset: "Soft reset",
MixedReset: "Mixed reset",
HardReset: "Hard reset",
FastForwardBranch: "Fast forward branch",
Undo: "Undo",
Redo: "Redo",
},
} }
} }