Merge pull request #1285 from tanvidadu/translate

Add translate link to tell users to localize the app
This commit is contained in:
neslihanturan 2018-03-22 10:08:53 +02:00 committed by GitHub
commit 24641b5d6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 171 additions and 0 deletions

View file

@ -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<String> languageAdapter = new ArrayAdapter<String>(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();
}
}

View file

@ -0,0 +1,105 @@
package fr.free.nrw.commons;
import java.util.HashMap;
/**
* Created by Dell on 3/16/2018.
*/
public class TokensTranslations {
HashMap<String,String> translationToken = new HashMap<String,String>();
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);
}
}

View file

@ -123,6 +123,16 @@
android:gravity="center"
android:text="@string/about_privacy_policy" />
<TextView
android:id="@+id/about_translate"
style="?android:textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/primaryColor"
android:layout_marginTop="@dimen/standard_gap"
android:gravity="center"
android:text="@string/about_translate" />
<TextView
android:id="@+id/about_credits"
style="?android:textAppearanceSmall"

View file

@ -253,4 +253,10 @@
<string name="about_rate_us"><u>Rate Us</u></string>
<string name="about_faq">Frequently Asked Questions</string>
<string name="welcome_skip_button">Skip Tutorial</string>
<string name="about_translate"><u>Translate</u></string>
<string name="about_translate_title">Languages</string>
<string name="about_translate_message">Select the langauge you want translations for ?</string>
<string name="about_translate_proceed">Proceed</string>
<string name="about_translate_cancel">Cancel</string>
</resources>