[I18N] Add Locale merger script (squash) abort on NOOP
If a string is no longer used in the english version of the locales, it means the Gitea string was changed and it needs updating. Abort when it is the case and recommend action.
This commit is contained in:
parent
1b3c486a88
commit
34f3d7d65e
1 changed files with 24 additions and 6 deletions
|
@ -8,6 +8,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -39,19 +40,28 @@ func renameGiteaForgejo(filename string) []byte {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
replacer := strings.NewReplacer(
|
replacements := []string{
|
||||||
"Gitea", "Forgejo",
|
"Gitea", "Forgejo",
|
||||||
"https://docs.gitea.io/en-us/install-from-binary/", "https://forgejo.org/download/#installation-from-binary",
|
"https://docs.gitea.com/installation/install-from-binary", "https://forgejo.org/download/#installation-from-binary",
|
||||||
"https://github.com/go-gitea/gitea/tree/master/docker", "https://forgejo.org/download/#container-image",
|
"https://github.com/go-gitea/gitea/tree/master/docker", "https://forgejo.org/download/#container-image",
|
||||||
"https://docs.gitea.io/en-us/install-from-package/", "https://forgejo.org/download",
|
"https://docs.gitea.com/installation/install-from-package", "https://forgejo.org/download",
|
||||||
"https://code.gitea.io/gitea", "https://forgejo.org/download",
|
"https://code.gitea.io/gitea", "https://forgejo.org/download",
|
||||||
"code.gitea.io/gitea", "Forgejo",
|
"code.gitea.io/gitea", "Forgejo",
|
||||||
`<a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a>`, `<a href="https://codeberg.org/forgejo/forgejo/issues" target="_blank">Codeberg</a>`,
|
`<a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a>`, `<a href="https://codeberg.org/forgejo/forgejo/issues" target="_blank">Codeberg</a>`,
|
||||||
"https://github.com/go-gitea/gitea", "https://codeberg.org/forgejo/forgejo",
|
"https://github.com/go-gitea/gitea", "https://codeberg.org/forgejo/forgejo",
|
||||||
"https://blog.gitea.io", "https://forgejo.org/news",
|
"https://blog.gitea.io", "https://forgejo.org/news",
|
||||||
"https://docs.gitea.io/en-us/protected-tags/", "https://forgejo.org/docs/latest/user/protection/#protected-tags",
|
"https://docs.gitea.com/usage/protected-tags", "https://forgejo.org/docs/latest/user/protection/#protected-tags",
|
||||||
"https://docs.gitea.io/en-us/webhooks/", "https://forgejo.org/docs/latest/user/webhooks/",
|
"https://docs.gitea.com/usage/webhooks", "https://forgejo.org/docs/latest/user/webhooks/",
|
||||||
)
|
}
|
||||||
|
replacer := strings.NewReplacer(replacements...)
|
||||||
|
replaced := make(map[string]bool, len(replacements)/2)
|
||||||
|
count_replaced := func(original string) {
|
||||||
|
for i := 0; i < len(replacements); i += 2 {
|
||||||
|
if strings.Contains(original, replacements[i]) {
|
||||||
|
replaced[replacements[i]] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
out := make([]byte, 0, 1024)
|
out := make([]byte, 0, 1024)
|
||||||
scanner := bufio.NewScanner(file)
|
scanner := bufio.NewScanner(file)
|
||||||
|
@ -72,10 +82,18 @@ func renameGiteaForgejo(filename string) []byte {
|
||||||
re := regexp.MustCompile(`(.*Gitea)`)
|
re := regexp.MustCompile(`(.*Gitea)`)
|
||||||
out = append(out, []byte(re.ReplaceAllString(line, "${1}/Forgejo")+"\n")...)
|
out = append(out, []byte(re.ReplaceAllString(line, "${1}/Forgejo")+"\n")...)
|
||||||
} else {
|
} else {
|
||||||
|
count_replaced(line)
|
||||||
out = append(out, []byte(replacer.Replace(line)+"\n")...)
|
out = append(out, []byte(replacer.Replace(line)+"\n")...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file.Close()
|
file.Close()
|
||||||
|
if strings.HasSuffix(filename, "gitea_en-US.ini") {
|
||||||
|
for i := 0; i < len(replacements); i += 2 {
|
||||||
|
if replaced[replacements[i]] == false {
|
||||||
|
log.Fatalf("%s was never used to replace something in %s, it is obsolete and must be updated", replacements[i], filename)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue