diff --git a/build/merge-forgejo-locales.go b/build/merge-forgejo-locales.go index 730f51c62e..3fecde12e2 100644 --- a/build/merge-forgejo-locales.go +++ b/build/merge-forgejo-locales.go @@ -8,6 +8,7 @@ package main import ( "bufio" + "log" "os" "regexp" "strings" @@ -39,19 +40,28 @@ func renameGiteaForgejo(filename string) []byte { panic(err) } - replacer := strings.NewReplacer( + replacements := []string{ "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://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", "code.gitea.io/gitea", "Forgejo", `GitHub`, `Codeberg`, "https://github.com/go-gitea/gitea", "https://codeberg.org/forgejo/forgejo", "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.io/en-us/webhooks/", "https://forgejo.org/docs/latest/user/webhooks/", - ) + "https://docs.gitea.com/usage/protected-tags", "https://forgejo.org/docs/latest/user/protection/#protected-tags", + "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) scanner := bufio.NewScanner(file) @@ -72,10 +82,18 @@ func renameGiteaForgejo(filename string) []byte { re := regexp.MustCompile(`(.*Gitea)`) out = append(out, []byte(re.ReplaceAllString(line, "${1}/Forgejo")+"\n")...) } else { + count_replaced(line) out = append(out, []byte(replacer.Replace(line)+"\n")...) } } 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 }