diff --git a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java index 895190003..ecf4c21f0 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java @@ -1,6 +1,8 @@ package fr.free.nrw.commons; import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -10,6 +12,9 @@ import android.util.Log; import android.support.customtabs.CustomTabsIntent; import android.support.v4.content.ContextCompat; import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.LinearLayout; +import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -29,6 +34,16 @@ public class AboutActivity extends NavigationBaseActivity { @BindView(R.id.about_license) HtmlTextView aboutLicenseText; @BindView(R.id.about_faq) TextView faqText; + String language[] = { "Kazakh", "Afrikaans", "Arabic", "Bengali", "Asturianu", "azərbaycanca", "Bikol Central", + "Bulgarain", "বাংলা", "Bosanski", "Brezhoneg","català","کوردی", " čeština", " kaszëbsczi", "Cymraeg", "dansk", "Deutsch" + ,"Zazaki", "डोटेली","Ελληνικά","euskara","español","فارسی","suomi", "français" ,"Nordfriisk", "galego", "Hawaiʻi" + ,"हिन्दी","Hunsrik","עברית","hornjoserbsce","magyar","interlingua","Bahasa Indonesia", "íslenska","Italian","japanese", + "Basa Jawa", "ქართული", " ភាសាខ្មែរ","ಕನ್ನಡ", "한국어","къарачай-малкъар","Кыргызча", "latina", "Lëtzebuergesch", "lietuvių", + "latviešu", "Malagasy", "македонски"," മലയാളം","монгол","मराठी","Bahasa Melayu","Malti", "नेपाली", "norsk bokmål", + " Nederlands","occitan","ଓଡ଼ିଆ","ਪੰਜਾਬੀ","polsk","Piemontèis","پښتو","português","română","русский"," سنڌي", " සිංහල", + "slovenčina"," سرائیکی", "svenska", "தமிழ்", "ತುಳು"," తెలుగు"," ไทย", "Türkçe","українська", "اردو", "Tiếng Việt", + " მარგალური","ייִדיש",}; + /** * This method helps in the creation About screen * @@ -87,8 +102,43 @@ public class AboutActivity extends NavigationBaseActivity { Utils.handleWebUrl(this,Uri.parse("https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\\")); } + @OnClick(R.id.about_faq) public void launchFrequentlyAskedQuesions(View view) { Utils.handleWebUrl(this,Uri.parse("https://github.com/commons-app/apps-android-commons/wiki/Frequently-Asked-Questions\\")); } + + @OnClick(R.id.about_translate) + public void launchTranslate(View view) { + final ArrayAdapter languageAdapter = new ArrayAdapter(AboutActivity.this, + android.R.layout.simple_spinner_item, language); + final Spinner spinner = new Spinner(AboutActivity.this); + spinner.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); + spinner.setAdapter(languageAdapter); + spinner.setGravity(17); + + AlertDialog.Builder builder = new AlertDialog.Builder(AboutActivity.this); + builder.setView(spinner); + builder.setTitle(R.string.about_translate_title) + .setMessage(R.string.about_translate_message) + .setPositiveButton(R.string.about_translate_proceed, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String languageSelected = spinner.getSelectedItem().toString(); + TokensTranslations tokensTranslations = new TokensTranslations(); + tokensTranslations.initailize(); + String token = tokensTranslations.getTranslationToken(languageSelected); + Utils.handleWebUrl(AboutActivity.this,Uri.parse("https://translatewiki.net/w/i.php?title=Special:Translate&language="+token+"&group=commons-android-strings&filter=%21translated&action=translate ?")); + } + }); + builder.setNegativeButton(R.string.about_translate_cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + builder.create().show(); + + } + } diff --git a/app/src/main/java/fr/free/nrw/commons/TokensTranslations.java b/app/src/main/java/fr/free/nrw/commons/TokensTranslations.java new file mode 100644 index 000000000..92278b6e9 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/TokensTranslations.java @@ -0,0 +1,105 @@ +package fr.free.nrw.commons; + +import java.util.HashMap; + +/** + * Created by Dell on 3/16/2018. + */ + +public class TokensTranslations { + HashMap translationToken = new HashMap(); + + public void initailize() { + translationToken.put("Kazakh", "ab"); + translationToken.put("Afrikaans", "af"); + translationToken.put("Arabic", "ar"); + translationToken.put("Bengali", "as"); + translationToken.put("Asturianu", "ast"); + translationToken.put("azərbaycanca", "az"); + translationToken.put("Bikol Central", "bcl"); + translationToken.put("Bulgarain","bg"); + translationToken.put("বাংলা", "bn"); + translationToken.put("Brezhoneg", "br"); + translationToken.put("Bosanski", "bs"); + translationToken.put("català", "ca"); + translationToken.put("کوردی","ckb"); + translationToken.put("čeština", "cs"); + translationToken.put("kaszëbsczi", "csb"); + translationToken.put("Cymraeg", "cy"); + translationToken.put("dansk", "da"); + translationToken.put("Deutsch", "de"); + translationToken.put("Zazaki", "diq"); + translationToken.put("डोटेली","diq"); + translationToken.put("Ελληνικά","el"); + translationToken.put("euskara","eu"); + translationToken.put("español", "es"); + translationToken.put("فارسی","fa"); + translationToken.put("suomi", "fi"); + translationToken.put("føroyskt", "fo"); + translationToken.put("français", "fr"); + translationToken.put("Nordfriisk", "frr"); + translationToken.put("galego", "gr"); + translationToken.put("Hawaiʻi", "haw"); + translationToken.put("עברית","he"); + translationToken.put("हिन्दी","hi"); + translationToken.put("Hunsrik", "hrx"); + translationToken.put("hornjoserbsce", "hsb"); + translationToken.put("magyar","hu"); + translationToken.put("interlingua","ia"); + translationToken.put("Bahasa Indonesia", "id"); + translationToken.put("íslenska","is"); + translationToken.put("Italian","it"); + translationToken.put("japanese","ja"); + translationToken.put("Basa Jawa","jv"); + translationToken.put("ქართული", "ka"); + translationToken.put("Taqbaylit","kab"); + translationToken.put(" ភាសាខ្មែរ","km"); + translationToken.put("ಕನ್ನಡ", "kn"); + translationToken.put("한국어", "ko"); + translationToken.put("къарачай-малкъар","krc"); + translationToken.put("Кыргызча","ky"); + translationToken.put("latina","la"); + translationToken.put("Lëtzebuergesch","lb"); + translationToken.put("lietuvių", "lt"); + translationToken.put("latviešu","lv"); + translationToken.put("Malagasy","mg"); + translationToken.put("македонски", "mk"); + translationToken.put("മലയാളം","ml"); + translationToken.put("монгол","mn"); + translationToken.put("मराठी","mr"); + translationToken.put("Bahasa Melayu","ms"); + translationToken.put("Malti","mt"); + translationToken.put("norsk bokmål", "nb"); + translationToken.put("नेपाली","ne"); + translationToken.put("Nederlands","nl"); + translationToken.put("occitan","oc"); + translationToken.put("ଓଡ଼ିଆ","or"); + translationToken.put("ਪੰਜਾਬੀ","pa"); + translationToken.put("polsk", "pl"); + translationToken.put("Piemontèis","pms"); + translationToken.put("پښتو","ps"); + translationToken.put("português","pt"); + translationToken.put("română","ro"); + translationToken.put("русский","ru"); + translationToken.put(" سنڌي","sd"); + translationToken.put(" සිංහල","si"); + translationToken.put("slovenčina","sk"); + translationToken.put(" سرائیکی","skr"); + translationToken.put("Basa Sunda","su"); + translationToken.put("svenska","sv"); + translationToken.put("தமிழ்", "ta"); + translationToken.put("ತುಳು", "tcy"); + translationToken.put(" తెలుగు","te"); + translationToken.put(" ไทย","th"); + translationToken.put("Türkçe","tr"); + translationToken.put("українська","uk"); + translationToken.put("اردو","ur"); + translationToken.put("Tiếng Việt","vi"); + translationToken.put(" მარგალური", "xmf"); + translationToken.put("ייִדיש","yi"); + } + + public String getTranslationToken ( String language){ + return translationToken.get(language); + } +} diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index f4a295d95..9551e6e64 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -123,6 +123,16 @@ android:gravity="center" android:text="@string/about_privacy_policy" /> + + Rate Us Frequently Asked Questions Skip Tutorial + Translate + Languages + Select the langauge you want translations for ? + Proceed + Cancel +