Added translators screen
This commit is contained in:
parent
dfe463393b
commit
ace46235c6
55
app/src/main/assets/translators.txt
Normal file
55
app/src/main/assets/translators.txt
Normal 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
|
@ -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())
|
||||
|
@ -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;
|
||||
});
|
||||
}
|
||||
|
@ -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
36
createTranslatorsList.py
Normal 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()
|
Loading…
x
Reference in New Issue
Block a user