aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-03-26 17:16:42 +0000
committerKenny Root <kenny@the-b.org>2015-03-26 17:16:42 +0000
commit4008df01afe4af94cf13f5859a9c101c43250de9 (patch)
tree6e64706c60d567310a90e870708dbcc6d45b0e95
parente86defa455be9598dd71e2a52c4b971ea431ea28 (diff)
downloadconnectbot-4008df01afe4af94cf13f5859a9c101c43250de9.tar.gz
connectbot-4008df01afe4af94cf13f5859a9c101c43250de9.tar.bz2
connectbot-4008df01afe4af94cf13f5859a9c101c43250de9.zip
Add translation gradle tasks
-rw-r--r--app/app.iml2
-rw-r--r--app/build.gradle1
-rw-r--r--app/locale/.gitignore (renamed from locale/.gitignore)0
-rw-r--r--config/translations.gradle83
4 files changed, 86 insertions, 0 deletions
diff --git a/app/app.iml b/app/app.iml
index 0ee0215..b7eaca7 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -61,6 +61,7 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/build/distributions" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
@@ -82,6 +83,7 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
+ <excludeFolder url="file://$MODULE_DIR$/build/test-results" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 20 Platform" jdkType="Android SDK" />
diff --git a/app/build.gradle b/app/build.gradle
index cd14b7a..d3da188 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply from: '../config/quality.gradle'
+apply from: '../config/translations.gradle'
android {
compileSdkVersion 20
diff --git a/locale/.gitignore b/app/locale/.gitignore
index 72e8ffc..72e8ffc 100644
--- a/locale/.gitignore
+++ b/app/locale/.gitignore
diff --git a/config/translations.gradle b/config/translations.gradle
new file mode 100644
index 0000000..13d9659
--- /dev/null
+++ b/config/translations.gradle
@@ -0,0 +1,83 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2015 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+def localeDir = file('locale')
+def launchpadImportBasename = 'launchpad-import'
+def launchpadExportFile = getRootProject().file('launchpad-export.tar.gz')
+
+def android2poExec = 'a2po'
+def android2poArgs = ['--groups', 'strings',
+ '--android', getProjectDir().getPath() + '/src/main/res',
+ '--gettext', localeDir,
+ '--template', 'fortune/fortune.pot',
+ '--layout', "'fortune/fortune-%(locale)s.po'"]
+
+task ensureLocalDirExists {
+ localeDir.mkdirs()
+}
+
+task untarTranslations(type: Copy) {
+ from tarTree(resources.gzip(launchpadExportFile))
+ into localeDir
+}
+
+task translationsImport(type: Exec, dependsOn: 'untarTranslations') {
+ description "Import translations into ConnectBot from Launchpad's export function"
+ executable = android2poExec
+ args = ['import'] + android2poArgs
+
+ // Save the output to print out.
+ standardOutput = new ByteArrayOutputStream()
+ errorOutput = new ByteArrayOutputStream()
+ ext.output = {
+ return standardOutput.toString()
+ }
+ ext.errs = {
+ return errorOutput.toString()
+ }
+
+ doLast {
+ println()
+ println("Translations import output:")
+ println("${translationsImport.output}")
+ println("${translationsImport.errs}")
+ }
+}
+
+task exportFromAndroid(type: Exec) {
+ executable = android2poExec
+ args = ['export'] + android2poArgs
+
+ // Save the output to print out.
+ standardOutput = new ByteArrayOutputStream()
+ ext.output = {
+ return standardOutput.toString()
+ }
+}
+
+task translationsExport(type: Tar, dependsOn: 'exportFromAndroid') {
+ description "Export translations from ConnectBot in a format suitable to import into Launchpad"
+ baseName = launchpadImportBasename
+ from localeDir
+ compression = Compression.GZIP
+ doLast {
+ println()
+ println('Import file into Launchpad:')
+ println(getArchivePath())
+ println()
+ }
+}