Add Locale merger script
This commit is contained in:
parent
43fe7b3fa1
commit
d7d02ae6fb
1 changed files with 71 additions and 0 deletions
71
build/merge-forgejo-locales.go
Normal file
71
build/merge-forgejo-locales.go
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
// Copyright 2022 The Forgejo Authors c/o Codeberg e.V.. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build ignore
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"gopkg.in/ini.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
trimPrefix = "gitea_"
|
||||||
|
sourceFolder = "options/locales/"
|
||||||
|
)
|
||||||
|
|
||||||
|
// returns list of locales, still containing the file extension!
|
||||||
|
func generate_locale_list() []string {
|
||||||
|
localeFiles, _ := os.ReadDir(sourceFolder)
|
||||||
|
locales := []string{}
|
||||||
|
for _, localeFile := range localeFiles {
|
||||||
|
if !localeFile.IsDir() && strings.HasPrefix(localeFile.Name(), trimPrefix) {
|
||||||
|
locales = append(locales, strings.TrimPrefix(localeFile.Name(), trimPrefix))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return locales
|
||||||
|
}
|
||||||
|
|
||||||
|
// replace all occurrences of Gitea with Forgejo
|
||||||
|
func renameGiteaForgejo(filename string) []byte {
|
||||||
|
file, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
out := make([]byte, 0, 1024)
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
scanner.Split(bufio.ScanLines)
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") {
|
||||||
|
out = append(out, []byte("\n"+line+"\n")...)
|
||||||
|
} else if strings.Contains(line, "Gitea") {
|
||||||
|
out = append(out, []byte(strings.Replace(line, "Gitea", "Forgejo", -1)+"\n")...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file.Close()
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
locales := generate_locale_list()
|
||||||
|
var err error
|
||||||
|
var localeFile *ini.File
|
||||||
|
for _, locale := range locales {
|
||||||
|
giteaLocale := sourceFolder + "gitea_" + locale
|
||||||
|
localeFile, err = ini.Load(giteaLocale, renameGiteaForgejo(giteaLocale))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
err = localeFile.SaveTo("options/locale/locale_" + locale)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue