From 91772b4e110a471c2c5b780edc5d42cd1fcd7f43 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Sun, 10 Nov 2019 08:14:40 -0500 Subject: [PATCH] Exclude non-translatable strings. Lint exclude ExtraTranslation. --- lint.xml | 1 + res/values-lg/strings.xml | 6 +++--- res/values-mk/strings.xml | 2 +- translations.gradle | 41 ++++++++++++++++++++++++++++++++++++--- 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/lint.xml b/lint.xml index 75cf6ae86d..23bcb40c45 100644 --- a/lint.xml +++ b/lint.xml @@ -15,6 +15,7 @@ + diff --git a/res/values-lg/strings.xml b/res/values-lg/strings.xml index 1f19187111..b42774b92a 100644 --- a/res/values-lg/strings.xml +++ b/res/values-lg/strings.xml @@ -88,7 +88,7 @@ a MMS terina bukumi Signal Katudde ku Signal %1$s - Katukozese emboozi eno: %1$s + Bambi londa contact sumulula contact eno Ojjakudamu okufuna obubaka ne ssimu okuva ew\'omuntu ono @@ -487,7 +487,7 @@ gy\'olonze (%s) sintuufu. ino kiyinza okumala akaseera.Gumukiriza, ojakutegeezebwa nga okuyingiza kuwedde. Kiyingizibwa - Database ezibwa bujja + Yingiza system SMS database Yingiza datbase okuva ku apu ya default system messenger Yingiza backup yo bubaka obuwandike @@ -521,7 +521,7 @@ gy\'olonze (%s) sintuufu. Byakyaama Ssimu okuva ku Signal - Jakko edoboozi + Enamba yesimu diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index d43e5cf62e..eae276614f 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -364,7 +364,7 @@ Ова може да потрае. Бидете стрпливи, ќе бидете известени веднаш штом заврши импортирањето. ИМПОТИРАЊЕ - Ажурирање на базата на податоци… + Импортирај системска SMS база на податоци Импортирајте нешифрирана копија diff --git a/translations.gradle b/translations.gradle index 329e4d26db..b116ccb1ab 100644 --- a/translations.gradle +++ b/translations.gradle @@ -56,7 +56,7 @@ task cleanApostropheErrors { doLast { allStringsResourceFiles { f -> def before = f.text - def after = before.replaceAll(/([^\\=08])(')/,'$1\\\\\'') + def after = before.replaceAll(/([^\\=08])(')/, '$1\\\\\'') if (before != after) { f.text = after logger.info("$f.parentFile.name/$f.name...updated") @@ -66,8 +66,43 @@ task cleanApostropheErrors { mustRunAfter replaceEllipsis } +task excludeNonTranslatables { + group 'Translate' + description 'Remove strings that are marked "translatable"="false" or are ExtraTranslations.' + doLast { + def englishFile = file('res/values/strings.xml') + + def english = new XmlParser().parse(englishFile) + def nonTranslatable = english + .findAll { it['@translatable'] == 'false' } + .collect { it['@name'] } + .toSet() + def all = english.collect { it['@name'] }.toSet() + def translatable = all - nonTranslatable + + allStringsResourceFiles { f -> + if (f != englishFile) { + def newLines = f.readLines() + .collect { line -> + def matcher = line =~ /name="([^"]*)".*<\// + if (matcher.find()) { + def name = matcher.group(1) + if (!line.contains('excludeNonTranslatables') && !translatable.contains(name)) { + return " " + } + } + return line + } + + f.write(newLines.join("\n") + "\n") + } + } + } + mustRunAfter cleanApostropheErrors +} + task translate { group 'Translate' - description 'Pull translations and post-process for ellipsis and apostrophes.' - dependsOn pullTranslations, replaceEllipsis, cleanApostropheErrors + description 'Pull translations and post-process for ellipsis, apostrophes and non-translatables.' + dependsOn pullTranslations, replaceEllipsis, cleanApostropheErrors, excludeNonTranslatables }