Pārlūkot izejas kodu

build: Improve translation script (fixes #6943) (#6944)

Simon Frei 5 gadi atpakaļ
vecāks
revīzija
44bf8cfd27
2 mainītis faili ar 10 papildinājumiem un 2 dzēšanām
  1. 3 0
      gui/default/assets/lang/lang-en.json
  2. 7 2
      script/translate.go

+ 3 - 0
gui/default/assets/lang/lang-en.json

@@ -91,6 +91,8 @@
    "Downloaded": "Downloaded",
    "Downloading": "Downloading",
    "Edit": "Edit",
+   "Edit Device": "Edit Device",
+   "Edit Folder": "Edit Folder",
    "Editing {%path%}.": "Editing {{path}}.",
    "Enable Crash Reporting": "Enable Crash Reporting",
    "Enable NAT traversal": "Enable NAT traversal",
@@ -373,6 +375,7 @@
    "You have unsaved changes. Do you really want to discard them?": "You have unsaved changes. Do you really want to discard them?",
    "You must keep at least one version.": "You must keep at least one version.",
    "days": "days",
+   "directories": "directories",
    "files": "files",
    "full documentation": "full documentation",
    "items": "items",

+ 7 - 2
script/translate.go

@@ -21,13 +21,14 @@ import (
 
 var trans = make(map[string]string)
 var attrRe = regexp.MustCompile(`\{\{'([^']+)'\s+\|\s+translate\}\}`)
+var attrReCond = regexp.MustCompile(`\{\{.+\s+\?\s+'([^']+)'\s+:\s+'([^']+)'\s+\|\s+translate\}\}`)
 
 // exceptions to the untranslated text warning
 var noStringRe = regexp.MustCompile(
 	`^((\W*\{\{.*?\}\} ?.?\/?.?(bps)?\W*)+(\.stignore)?|[^a-zA-Z]+.?[^a-zA-Z]*|[kMGT]?B|Twitter|JS\W?|DEV|https?://\S+)$`)
 
 // exceptions to the untranslated text warning specific to aboutModalView.html
-var aboutRe = regexp.MustCompile(`^([^/]+/[^/]+|(The Go Pro|Font Awesome ).+)$`)
+var aboutRe = regexp.MustCompile(`^([^/]+/[^/]+|(The Go Pro|Font Awesome ).+|Build \{\{.+\}\}|Copyright .+ the Syncthing Authors\.)$`)
 
 func generalNode(n *html.Node, filename string) {
 	translate := false
@@ -46,9 +47,13 @@ func generalNode(n *html.Node, filename string) {
 					// copyright notices of other projects
 					return
 				} else {
-					if matches := attrRe.FindStringSubmatch(a.Val); len(matches) == 2 {
+					for _, matches := range attrRe.FindAllStringSubmatch(a.Val, -1) {
 						translation(matches[1])
 					}
+					for _, matches := range attrReCond.FindAllStringSubmatch(a.Val, -1) {
+						translation(matches[1])
+						translation(matches[2])
+					}
 					if a.Key == "data-content" &&
 						!noStringRe.MatchString(a.Val) {
 						log.Println("Untranslated data-content string (" + filename + "):")