Translator comments to have empty translation spots

This commit is contained in:
Claude Brisson
2024-07-12 11:37:51 +02:00
parent e28c26ee96
commit fbb8ed97a5
4 changed files with 23 additions and 7 deletions

View File

@@ -21,12 +21,14 @@ import kotlin.io.path.useDirectoryEntries
class Translator private constructor(private val iso: String) { class Translator private constructor(private val iso: String) {
fun translate(enText: String) = translations[iso]?.get(enText) ?: enText.also { fun translate(enText: String) =
reportMissingTranslation(enText) translations[iso]?.get(enText) ?: enText.let {
} it.replace(Regex("_BLANK_\\w+"), "")
}.also {
reportMissingTranslation(enText)
}
fun translate(uri: String, template: Template): Template? { fun translate(uri: String, template: Template): Template? {
if (iso == "en") return template
val key = Pair(uri, iso) val key = Pair(uri, iso)
var translated = translatedTemplates[key] var translated = translatedTemplates[key]
if (translated != null && translated.lastModified < template.lastModified) { if (translated != null && translated.lastModified < template.lastModified) {
@@ -39,7 +41,11 @@ class Translator private constructor(private val iso: String) {
if (translated == null) { if (translated == null) {
translated = template.clone() as Template translated = template.clone() as Template
val data: SimpleNode = translated!!.data as SimpleNode val data: SimpleNode = translated!!.data as SimpleNode
translateNode(data) if (iso == "en") {
stripComments(data)
} else {
translateNode(data)
}
translatedTemplates[key] = translated!! translatedTemplates[key] = translated!!
} }
} }
@@ -47,6 +53,15 @@ class Translator private constructor(private val iso: String) {
return translated return translated
} }
private fun stripComments(node: SimpleNode) {
if (node is ASTText) {
node.text = node.text.replace(Regex("_BLANK_\\w+"), "")
}
else for (i in 0 until node.jjtGetNumChildren()) {
stripComments(node.jjtGetChild(i) as SimpleNode)
}
}
private fun translateNode(node: SimpleNode, ignoringInput: String? = null): String? { private fun translateNode(node: SimpleNode, ignoringInput: String? = null): String? {
var ignoring = ignoringInput var ignoring = ignoringInput
if (node is ASTText) translateFragments(node.text, ignoring).let { if (node is ASTText) translateFragments(node.text, ignoring).let {

View File

@@ -281,7 +281,7 @@
Advanced parameters Advanced parameters
</div> </div>
<div class="popup-content"> <div class="popup-content">
#parse('tour-parameters.inc.html') #translate('tour-parameters.inc.html')
</div> </div>
<div class="popup-footer"> <div class="popup-footer">
<div class="form-actions"> <div class="form-actions">

View File

@@ -112,6 +112,7 @@
#set($rankThreshold = $tour.pairing.secondary.rankThreshold) #set($rankThreshold = $tour.pairing.secondary.rankThreshold)
#levels($rankThreshold) #levels($rankThreshold)
</select> </select>
_BLANK_AFTER_RANK_THRESHOLD_
</label> </label>
<label> <label>
&nbsp;<input name="winsThreshold" type="checkbox" class="inline" value="true" #if($tour.pairing.secondary.winsThreshold) checked #end/> &nbsp;<input name="winsThreshold" type="checkbox" class="inline" value="true" #if($tour.pairing.secondary.winsThreshold) checked #end/>

View File

@@ -101,7 +101,7 @@
</div> </div>
<div class="popup-content"> <div class="popup-content">
#if($round < $tour.rounds) #if($round < $tour.rounds)
<div class="warning">Warning: publishing partial results at round <span>$round</span> out of <span>$tour.rounds</span>!</div> <div class="warning">Warning: publishing partial results at round <span>$round</span> / <span>$tour.rounds</span>!</div>
#end #end
<form class="ui edit form"> <form class="ui edit form">
<div class="field"> <div class="field">