Added translators screen

This commit is contained in:
ByteHamster 2019-11-08 23:57:21 +01:00
parent dfe463393b
commit ace46235c6
5 changed files with 161 additions and 3 deletions

View File

@ -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

View File

@ -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())

View File

@ -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;
});
}

View File

@ -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);
}
}

36
createTranslatorsList.py Normal file
View File

@ -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()