summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2019-11-08 23:57:21 +0100
committerByteHamster <info@bytehamster.com>2019-11-09 09:52:39 +0100
commitace46235c63aa4c0004e86123d737990431c77bb (patch)
treef8ed698139488690d8bd5a0caf11627c0baa5daa
parentdfe463393b47e090d13891ea66c9d920b399c4d4 (diff)
downloadAntennaPod-ace46235c63aa4c0004e86123d737990431c77bb.zip
Added translators screen
-rw-r--r--app/src/main/assets/translators.txt55
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutFragment.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutTranslatorsFragment.java64
-rw-r--r--createTranslatorsList.py36
5 files changed, 161 insertions, 3 deletions
diff --git a/app/src/main/assets/translators.txt b/app/src/main/assets/translators.txt
new file mode 100644
index 000000000..ed03400e8
--- /dev/null
+++ b/app/src/main/assets/translators.txt
@@ -0,0 +1,55 @@
+Arabic;abdelrahman.fahem93, abdunnasir, abuzar3.khalid, desha, iDemo, mohamedagamy, msahouli, nabilMaghura
+Asturian (ast_ES);enolp
+Azerbaijani;danieloeh, kotfenix
+Basque;gaztainalde, pospolos, zakurranputza
+Bulgarian;solusitor
+Catalan;dvd1985, exort12, javiercoll, lambdani, marcmetallextrem, xc70
+Catalan (ca_ES);00c0c0, javiercoll
+Chinese;dillonbecker, RainSlide, xukeek, yangyang
+Chinese (zh_CN);bebeauties38, cyril3, domingos86, dudeG, ErlichLiu, Felix2yu, gaohongyuan, Guaidaodl, Huck0, iconteral, JayYoung, jhxie, kavdx, kyleehee, linxiangyu, molisiye, owen8877, RainSlide, Sak94664, spice2wolf, stellaxuyi, tupunco, wi24rd, wongsyrone, xukeek, yangyang, yiqiok, YogaGuru
+Chinese (zh_TW);gugod, nigelinux, pggdt, Solomon, ymhuang0808
+Czech (cs_CZ);anotheranonymoususer, elich, Hanzmeister, mcepl, petnek, svetlemodry
+Danish;CasperHN, jhertel
+Dutch;e2jk, glotzbach, rwv, Vistaus
+English;mfietz, sterylmreep
+Estonian;Eraser
+Finnish;danieloeh, elguitar, Sahtor
+French;cactux, ChaoticMind, clombion, e2jk, edewaele, lacouture, LouFex, Matth78, mfietz, Poussinou, repat, Sioul, sterylmreep, TacoTheDank, Tilwa, vcariven, whenrow
+Galician;antiparvos, pikamoku, Raichely
+German;112358, altegedanken, barilla, benedikt.g, bitsunited, Buggi, ceving, ChaoticMind, Chaquotay, dab0015, dadosch, DerSilly, die_otto, DJaeger, elkangaroo, enz, fidel, finsterwalder, Foso, GNi33, hightower5, HolgerJeromin, kalei, lohmann, LostInWeb, mfietz, moasda, nilso, repat, SAPlayer, schafia, Schroedingberg, sevenmaster, sucaml, Teaspoon, theonlytruth, weltenwort, Wyrrrd, ypid
+Modern Greek (1453-);antonist, danieloeh, hua2016s, jack.ath92, MSavoritias, pavlosv
+Hebrew (he_IL);amir.dafnyman, E1i9, mongoose4004, pinkasey, rellieberman, Yaron, הלוי11
+Hindi (hi_IN);ankitiitb1069, Isaasu, nmabhinandan, purple.coder, siddhusengar
+Hungarian;glatz.balazs, hurrikan, lna91, marthynw, meskobalazs, naren93, tszauer, ttyborg42
+Icelandic;marthjod
+Indonesian;jff, levirs565, luke137, rezafaiza, silvanael16
+Italian;aalex70, allin, apanontin, Bonnee, giuseppep, Guybrush88, marco_pag, neonsoftware, sevenmaster, theloca95
+Italian (it_IT);aalex70, allin, apanontin, Bonnee, buongiorgio, giuseppep, Guybrush88, ilmanzo, m.chinni, neonsoftware, niccord, nixxo, sevenmaster, theloca95
+Japanese;Naofumi, RACER1, sh3llc4t, TranslatorG
+Kannada (kn_IN);chiraag.nataraj, thejeshgn
+Korean;changwoo, libliboom, seungrye, skcha
+Korean (ko_KR);changwoo, seungrye
+Lithuanian;naglis
+Macedonian;krisfremen
+Malayalam;joice, rashivkp, rubenroy
+Norwegian;timbast
+Norwegian Bokmål;corkie, danieloeh, heraldo
+Norwegian Bokmål (nb_NO);corkie, heraldo, kongk, timbast
+Persian;ahangarha, F7D, sinamoghaddas
+Polish;Iwangelion, maniexx, mateossh, mfloryan
+Polish (pl_PL);d6210809, hiro2020, Iwangelion, kRkk, lomapur, mandlus, maniexx, Mephistofeles, shark103, tyle
+Portuguese;andersonvom, domingos86, emansije, smarquespt
+Portuguese (pt_BR);alexupits, alysonborges, andersonvom, arua, caioau, carlo_valente, castrors, deandreamatias, edman, Firmino, jackmiras, Junin, lipefire, lluccia, lucasmotacr, mbaltar, rogervezaro, RubeensVinicius, SamWilliam, silvanael16
+Romanian (ro_RO);corneliu.e, fuzzmz, ralienpp
+Russian (ru_RU);astra1, btimofeev, Duke_Raven, gammja, GaynullinDima, MegMasters98, mercutiy, null, overmind88, PtilopsisLeucotis, s.chebotar, shams4real, skvheadless, un_logic, Vladryyu, whereisthetea, zhenya97
+Slovenian (sl_SI);panter23
+Spanish;AleksSyntek, andersonvom, Atreyu94, coperfix, deandreamatias, domingos86, dvd1985, Fitoschido, frandavid100, hard_ware, javiercoll, Juanmuto, lambdani, LatinSuD, leogrignafini, palopezv, TacoTheDank, tres.14159, wakutiteo
+Spanish (es_ES);andersonvom, dvd1985, e2jk, frandavid100, hard_ware, palopezv, Raichely, TacoTheDank
+Swahili (macrolanguage);kmtra
+Swahili (macrolanguage) (sw_KE);BonfaceKilz
+Swedish (sv_SE);albin.brantin, Bio, bpnilsson, ChaoticMind, jony08, nilso, SharpMelon, TiloWiklund, TwoD
+Telugu;Isaasu, veeven
+Turkish;basarancaner, brsata, Erdy, golcuk, overbite, Slsdem
+Ukrainian (uk_UA);older, paul_sm, sergiyr, zhenya97
+Vietnamese;abnvolk, nguyenvui, ppanhh, vietnamesel10n
+Vietnamese (vi_VN);bizover
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java
index 1b84aaf0f..2a3c3b850 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java
@@ -38,8 +38,6 @@ public class SimpleIconListAdapter extends ArrayAdapter<SimpleIconListAdapter.Li
Glide.with(context)
.load(item.imageUrl)
.apply(new RequestOptions()
- .placeholder(R.color.light_gray)
- .error(R.color.light_gray)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.fitCenter()
.dontAnimate())
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutFragment.java
index 9237d0ff0..2455cd9ce 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutFragment.java
@@ -24,7 +24,12 @@ public class AboutFragment extends PreferenceFragmentCompat {
});
findPreference("about_developers").setOnPreferenceClickListener((preference) -> {
getFragmentManager().beginTransaction().replace(R.id.content, new AboutDevelopersFragment())
- .addToBackStack(getString(R.string.about_pref)).commit();
+ .addToBackStack(getString(R.string.developers)).commit();
+ return true;
+ });
+ findPreference("about_translators").setOnPreferenceClickListener((preference) -> {
+ getFragmentManager().beginTransaction().replace(R.id.content, new AboutTranslatorsFragment())
+ .addToBackStack(getString(R.string.translators)).commit();
return true;
});
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutTranslatorsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutTranslatorsFragment.java
new file mode 100644
index 000000000..72a7abebc
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AboutTranslatorsFragment.java
@@ -0,0 +1,64 @@
+package de.danoeh.antennapod.fragment.preferences;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.ListFragment;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.PreferenceActivity;
+import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
+import io.reactivex.Single;
+import io.reactivex.SingleOnSubscribe;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+
+public class AboutTranslatorsFragment extends ListFragment {
+ private Disposable translatorsLoader;
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ getListView().setDivider(null);
+ getListView().setSelector(android.R.color.transparent);
+
+ translatorsLoader = Single.create((SingleOnSubscribe<ArrayList<SimpleIconListAdapter.ListItem>>) emitter -> {
+ ArrayList<SimpleIconListAdapter.ListItem> translators = new ArrayList<>();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ getContext().getAssets().open("translators.txt")));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ String[] info = line.split(";");
+ translators.add(new SimpleIconListAdapter.ListItem(info[0], info[1], null));
+ }
+ emitter.onSuccess(translators);
+ })
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ translators -> setListAdapter(new SimpleIconListAdapter(getContext(), translators)),
+ error -> Toast.makeText(getContext(), "Error while loading translators", Toast.LENGTH_LONG).show()
+ );
+
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ if (translatorsLoader != null) {
+ translatorsLoader.dispose();
+ }
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ ((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.translators);
+ }
+}
diff --git a/createTranslatorsList.py b/createTranslatorsList.py
new file mode 100644
index 000000000..24381ab57
--- /dev/null
+++ b/createTranslatorsList.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python3
+import pycountry
+import requests
+import configparser
+import os
+
+config = configparser.ConfigParser()
+config.read(os.path.expanduser("~") + '/.transifexrc')
+if 'https://www.transifex.com' in config:
+ TRANSIFEX_USER = config['https://www.transifex.com']['username']
+ TRANSIFEX_PW = config['https://www.transifex.com']['password']
+else:
+ TRANSIFEX_USER = ""
+ TRANSIFEX_PW = ""
+
+csvFile = open("app/src/main/assets/translators.txt", "w")
+r = requests.get('http://www.transifex.com/api/2/project/antennapod/languages/',
+ auth=(TRANSIFEX_USER, TRANSIFEX_PW))
+for lang in r.json():
+ lang_contributers = lang['coordinators'] + lang['reviewers'] + lang['translators']
+ lang_contributers = sorted(lang_contributers, key=str.lower)
+ lang_code = lang['language_code']
+ try:
+ lang_name = pycountry.languages.lookup(lang_code).name
+ except:
+ try:
+ lang_name = pycountry.languages.lookup(
+ lang_code.split('_')[0]).name + ' (' + lang_code + ')'
+ except:
+ lang_name = lang['language_code']
+ print('\033[91mLanguage code not found:' + lang_code + '\033[0m')
+
+ line = lang_name + ';' + ', '.join(lang_contributers).replace(';', '')
+ csvFile.write(line + '\n')
+ print(line)
+csvFile.close()