feat: translation support
All checks were successful
continuous-integration/drone/push Build is passing

See #483
This commit is contained in:
2025-08-19 11:22:52 +02:00
parent 5cf6048ecb
commit 53342a5dd4
25 changed files with 142 additions and 113 deletions

View File

@ -2,7 +2,6 @@ package git
import (
"errors"
"fmt"
"io/ioutil"
"os"
"os/user"
@ -13,6 +12,7 @@ import (
"github.com/go-git/go-git/v5"
gitConfigPkg "github.com/go-git/go-git/v5/config"
"github.com/go-git/go-git/v5/plumbing/format/gitignore"
"github.com/leonelquinteros/gotext"
)
// IsClean checks if a repo has unstaged changes
@ -23,12 +23,12 @@ func IsClean(repoPath string) (bool, error) {
return false, git.ErrRepositoryNotExists
}
return false, fmt.Errorf("unable to open %s: %s", repoPath, err)
return false, errors.New(gotext.Get("unable to open %s: %s", repoPath, err))
}
worktree, err := repo.Worktree()
if err != nil {
return false, fmt.Errorf("unable to open worktree of %s: %s", repoPath, err)
return false, errors.New(gotext.Get("unable to open worktree of %s: %s", repoPath, err))
}
patterns, err := GetExcludesFiles()
@ -42,14 +42,14 @@ func IsClean(repoPath string) (bool, error) {
status, err := worktree.Status()
if err != nil {
return false, fmt.Errorf("unable to query status of %s: %s", repoPath, err)
return false, errors.New(gotext.Get("unable to query status of %s: %s", repoPath, err))
}
if status.String() != "" {
noNewline := strings.TrimSuffix(status.String(), "\n")
log.Debugf("git status: %s: %s", repoPath, noNewline)
log.Debugf(gotext.Get("git status: %s: %s", repoPath, noNewline))
} else {
log.Debugf("git status: %s: clean", repoPath)
log.Debugf(gotext.Get("git status: %s: clean", repoPath))
}
return status.IsClean(), nil
@ -85,7 +85,7 @@ func parseGitConfig() (*gitConfigPkg.Config, error) {
globalGitConfig := filepath.Join(usr.HomeDir, ".gitconfig")
if _, err := os.Stat(globalGitConfig); err != nil {
if os.IsNotExist(err) {
log.Debugf("no %s exists, not reading any global gitignore config", globalGitConfig)
log.Debugf(gotext.Get("no %s exists, not reading any global gitignore config", globalGitConfig))
return cfg, nil
}
return cfg, err
@ -127,7 +127,7 @@ func parseExcludesFile(excludesfile string) ([]gitignore.Pattern, error) {
if _, err := os.Stat(excludesfile); err != nil {
if os.IsNotExist(err) {
log.Debugf("no %s exists, skipping reading gitignore paths", excludesfile)
log.Debugf(gotext.Get("no %s exists, skipping reading gitignore paths", excludesfile))
return ps, nil
}
return ps, err
@ -146,7 +146,7 @@ func parseExcludesFile(excludesfile string) ([]gitignore.Pattern, error) {
}
}
log.Debugf("read global ignore paths: %s", strings.Join(pathsRaw, " "))
log.Debugf(gotext.Get("read global ignore paths: %s", strings.Join(pathsRaw, " ")))
return ps, nil
}