diff --git a/build.gradle.kts b/build.gradle.kts
index 6edb7ff9d..1f1eec34a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,6 +8,10 @@ plugins {
id("org.jlleitschuh.gradle.ktlint") version "9.4.1"
}
+apply {
+ from("translators.gradle.kts")
+}
+
allprojects {
repositories {
google()
diff --git a/translators b/translators
new file mode 100644
index 000000000..e76755b80
--- /dev/null
+++ b/translators
@@ -0,0 +1,69 @@
+Mihail Stefanov (Български)
+Angga Rifandi (Bahasa Indonesia)
+raden20 (Bahasa Indonesia)
+azzamsa (Bahasa Indonesia)
+David Nos (Català)
+Tomáš Borovec (Čeština)
+Rancher (Cрпски)
+Yussuf (Dansk)
+Sølv Ræven (Dansk)
+Matthias Meisser (Deutsch)
+Sojusnik (Deutsch)
+Can Altas (Deutsch)
+Laura Sophie (Deutsch)
+Ander Raso Vazquez (Español)
+Beriain (Euskara)
+Osoitz (Euskara)
+Andreas Michelakis (Ελληνικά)
+Eman (Fārsi)
+Saeed Esmaili (Fārsi)
+Behnood HRazy (Fārsi)
+François Mahé (Français)
+Thibaut Girka (Français)
+Mathis Chenuet (Français)
+Michael Faille (Français)
+Tiralka (Français)
+Ivan Krušlin (Hrvatski)
+Marco Cavazza (Italiano)
+Mark Macaré (Nederlands)
+Jelle den Butter (Nederlands)
+nitovf9292 (Norsk)
+Adam Jurkiewicz (Polski)
+Álinson Santos Xavier (Português)
+Bernardo Lopes (Português)
+Dmitriy Bogdanov (Русский)
+Andrei Pleș (Română)
+Andreea Muscalagiu (Română)
+Dušan Strgar (Slovenščina)
+Alexander Jansson (Svenska)
+Robin (Svenska)
+Sofia Veijonen (Suomen kieli)
+Đorđe Vasiljević (српски)
+Caner Başaran (Türkçe)
+hodanli (Türkçe)
+Yurii Stavytskyi (Українська)
+Rystard (Українська)
+Oglaigh Rystard (Українська)
+taras-ko (Українська)
+Limin Lu (中文)
+XuToTo (中文)
+Ting-Hua (中文)
+Bowie Chen (中文)
+Lee (中文)
+Liveeasy (中文)
+Naofumi F (日本語)
+Al Alloush (العَرَبِية)
+Boula (العَرَبِية)
+Israa Z (العَرَبِية)
+Josh Graham (한국어 )
+Seoyul (한국어 )
+Aman Satnami (हिन्दी)
+Niraj Yadav (हिन्दी)
+Yoav Argov (עברית)
+Mahdi Nasiri (فارسی)
+Mohammed Imthath (தமிழ்)
+magimai (தமிழ்)
+Anshoe (தமிழ்)
+Trần Thái (Tiếng Việt)
+Anh Quân (Tiếng Việt)
+pnhpnh (Tiếng Việt)
diff --git a/translators.gradle.kts b/translators.gradle.kts
new file mode 100644
index 000000000..3b9a3f1e2
--- /dev/null
+++ b/translators.gradle.kts
@@ -0,0 +1,35 @@
+import groovy.xml.MarkupBuilder
+
+task("updateTranslators") {
+ doLast {
+ val writer =
+ file("uhabits-android/src/main/res/layout/about_translators.xml").bufferedWriter()
+ val indent = " "
+ val xml = MarkupBuilder(groovy.util.IndentPrinter(writer, indent))
+ xml.doubleQuotes = true
+ xml.withGroovyBuilder {
+ "LinearLayout"(
+ "style" to "@style/Card",
+ "android:gravity" to "center",
+ "xmlns:android" to "http://schemas.android.com/apk/res/android"
+ ) {
+ "TextView"(
+ "style" to "@style/CardHeader",
+ "android:text" to "@string/translators",
+ "android:textColor" to "?aboutScreenColor"
+ )
+
+ xml.mkp.yield('\n' + indent)
+ xml.mkp.comment("This list is automatically generated, do not edit manually.")
+
+ val reader = file("translators").bufferedReader()
+ for (l in reader.lines()) {
+ "TextView"(
+ "style" to "@style/About.Item",
+ "android:text" to l
+ )
+ }
+ }
+ }
+ }
+}
diff --git a/uhabits-android/src/main/res/layout/about_translators.xml b/uhabits-android/src/main/res/layout/about_translators.xml
index 10e12433c..60eeb079d 100644
--- a/uhabits-android/src/main/res/layout/about_translators.xml
+++ b/uhabits-android/src/main/res/layout/about_translators.xml
@@ -1,286 +1,73 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file