Exclude non-translatable strings.

Lint exclude ExtraTranslation.
master
Alan Evans 2019-11-10 08:14:40 -05:00
parent af5c7cb7ca
commit 91772b4e11
4 changed files with 43 additions and 7 deletions

View File

@ -15,6 +15,7 @@
<issue id="HardcodedText" severity="error" />
<issue id="VectorRaster" severity="error" />
<issue id="ButtonOrder" severity="error" />
<issue id="ExtraTranslation" severity="error" />
<issue id="RestrictedApi" severity="error">
<ignore path="src/org/thoughtcrime/securesms/mediasend/camerax/VideoCapture.java" />

View File

@ -88,7 +88,7 @@ a</string>
<string name="ConversationActivity_transport_insecure_mms">MMS terina bukumi</string>
<string name="ConversationActivity_transport_signal">Signal</string>
<string name="ConversationActivity_lets_switch_to_signal">Katudde ku Signal %1$s</string>
<string name="ConversationActivity_lets_use_this_to_chat">Katukozese emboozi eno: %1$s</string>
<!-- Removed by excludeNonTranslatables <string name="ConversationActivity_lets_use_this_to_chat">Katukozese emboozi eno: %1$s</string> -->
<string name="ConversationActivity_specify_recipient">Bambi londa contact</string>
<string name="ConversationActivity_unblock_this_contact_question">sumulula contact eno</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">Ojjakudamu okufuna obubaka ne ssimu okuva ew\'omuntu ono</string>
@ -487,7 +487,7 @@ gy\'olonze (%s) sintuufu.</string>
<string name="database_migration_activity__this_could_take_a_moment_please_be_patient">ino kiyinza okumala akaseera.Gumukiriza, ojakutegeezebwa nga okuyingiza kuwedde.</string>
<string name="database_migration_activity__importing">Kiyingizibwa</string>
<!--database_upgrade_activity-->
<string name="database_upgrade_activity__updating_database">Database ezibwa bujja</string>
<!-- Removed by excludeNonTranslatables <string name="database_upgrade_activity__updating_database">Database ezibwa bujja</string> -->
<string name="import_fragment__import_system_sms_database">Yingiza system SMS database</string>
<string name="import_fragment__import_the_database_from_the_default_system">Yingiza datbase okuva ku apu ya default system messenger</string>
<string name="import_fragment__import_plaintext_backup">Yingiza backup yo bubaka obuwandike</string>
@ -521,7 +521,7 @@ gy\'olonze (%s) sintuufu.</string>
<string name="recipient_preferences__privacy">Byakyaama</string>
<!--- redphone_call_controls-->
<string name="redphone_call_card__signal_call">Ssimu okuva ku Signal</string>
<string name="redphone_call_controls__mute">Jakko edoboozi</string>
<!-- Removed by excludeNonTranslatables <string name="redphone_call_controls__mute">Jakko edoboozi</string> -->
<!--registration_activity-->
<string name="registration_activity__phone_number">Enamba yesimu</string>
<!--recipients_panel-->

View File

@ -364,7 +364,7 @@
<string name="database_migration_activity__this_could_take_a_moment_please_be_patient">Ова може да потрае. Бидете стрпливи, ќе бидете известени веднаш штом заврши импортирањето.</string>
<string name="database_migration_activity__importing">ИМПОТИРАЊЕ</string>
<!--database_upgrade_activity-->
<string name="database_upgrade_activity__updating_database">Ажурирање на базата на податоци…</string>
<!-- Removed by excludeNonTranslatables <string name="database_upgrade_activity__updating_database">Ажурирање на базата на податоци…</string> -->
<string name="import_fragment__import_system_sms_database">Импортирај системска SMS база на податоци</string>
<string name="import_fragment__import_plaintext_backup">Импортирајте нешифрирана копија</string>
<!--load_more_header-->

View File

@ -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 " <!-- Removed by excludeNonTranslatables ${line.trim()} -->"
}
}
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
}