mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 04:13:53 +01:00
Merged, Resolve merge conflicts
This commit is contained in:
commit
c6352a3792
49 changed files with 284 additions and 75 deletions
|
|
@ -3,10 +3,10 @@ android:
|
|||
components:
|
||||
- platform-tools
|
||||
- tools
|
||||
- build-tools-25.0.0
|
||||
- build-tools-25.0.1
|
||||
- extra-google-m2repository
|
||||
- extra-android-m2repository
|
||||
- android-23
|
||||
- android-25
|
||||
- sys-img-x86-android-18
|
||||
jdk:
|
||||
# - openjdk8 # not yet available
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# Wikimedia Commons for Android
|
||||
|
||||
##v2.0.2
|
||||
- Make "View in browser" direct to mobile website
|
||||
|
||||
##v2.0.1
|
||||
- Disabled minify again (reenabling test failed)
|
||||
- Hotfix for ShareAction bug
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
# Wikimedia Commons Android app
|
||||
# Wikimedia Commons Android app [](https://travis-ci.org/commons-app/apps-android-commons)
|
||||
|
||||
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. Download the app [here][8], or view our [website][9].
|
||||
|
||||
Initially started by the Wikimedia Foundation, this app is now maintained by volunteers. Anyone is welcome to improve it, just choose among the [open issues](https://github.com/commons-app/apps-android-commons/issues) and send us a pull request :-)
|
||||
|
||||
[](https://travis-ci.org/commons-app/apps-android-commons)
|
||||
<a href="https://f-droid.org/repository/browse/?fdid=fr.free.nrw.commons" target="_blank">
|
||||
<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="90"/></a>
|
||||
<a href="https://play.google.com/store/apps/details?id=fr.free.nrw.commons" target="_blank">
|
||||
<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="90"/></a>
|
||||
|
||||
## Develop with Android Studio or IntelliJ ##
|
||||
|
||||
|
|
|
|||
|
|
@ -12,30 +12,24 @@ dependencies {
|
|||
compile 'ch.acra:acra:4.7.0'
|
||||
compile 'org.mediawiki:api:1.3'
|
||||
compile 'commons-codec:commons-codec:1.10'
|
||||
compile 'com.android.support:support-v4:25.0.0'
|
||||
compile 'com.android.support:appcompat-v7:25.0.0'
|
||||
compile 'com.android.support:design:25.0.0'
|
||||
compile "com.android.support:support-v4:${project.supportLibVersion}"
|
||||
compile "com.android.support:appcompat-v7:${project.supportLibVersion}"
|
||||
compile "com.android.support:design:${project.supportLibVersion}"
|
||||
compile 'com.google.code.gson:gson:2.7'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
|
||||
//noinspection GradleDependency - old version has required feature
|
||||
compile 'com.google.code.gson:gson:1.4'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion '25'
|
||||
compileSdkVersion project.compileSdkVersion
|
||||
buildToolsVersion project.buildToolsVersion
|
||||
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
applicationId "fr.free.nrw.commons"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 23
|
||||
|
||||
ndk {
|
||||
moduleName "libtranscode"
|
||||
}
|
||||
applicationId 'fr.free.nrw.commons'
|
||||
minSdkVersion project.minSdkVersion
|
||||
targetSdkVersion project.targetSdkVersion
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
|
@ -50,4 +44,4 @@ android {
|
|||
disable 'ExtraTranslation'
|
||||
abortOnError false
|
||||
}
|
||||
}
|
||||
}
|
||||
6
app/src/debug/res/values/placeholder_strings.xml
Normal file
6
app/src/debug/res/values/placeholder_strings.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="placeholder_place_distance">Overlay</string>
|
||||
<string name="placeholder_place_name">Name</string>
|
||||
<string name="placeholder_place_description">Description</string>
|
||||
</resources>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="fr.free.nrw.commons"
|
||||
android:versionCode="64"
|
||||
android:versionName="2.0.1" >
|
||||
android:versionCode="65"
|
||||
android:versionName="2.0.2" >
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
|
|
@ -85,7 +86,7 @@
|
|||
<activity
|
||||
android:name=".nearby.NearbyActivity"
|
||||
android:label="@string/title_activity_nearby"
|
||||
android:parentActivityName=".contributions.ContributionsActivity"/>
|
||||
android:parentActivityName=".contributions.ContributionsActivity" />
|
||||
|
||||
<service android:name=".upload.UploadService" >
|
||||
</service>
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ public class CommonsApplication extends Application {
|
|||
public static final String API_URL = "https://commons.wikimedia.org/w/api.php";
|
||||
public static final String IMAGE_URL_BASE = "https://upload.wikimedia.org/wikipedia/commons";
|
||||
public static final String HOME_URL = "https://commons.wikimedia.org/wiki/";
|
||||
public static final String MOBILE_HOME_URL = "https://commons.m.wikimedia.org/wiki/";
|
||||
public static final String EVENTLOG_URL = "https://www.wikimedia.org/beacon/event";
|
||||
public static final String EVENTLOG_WIKI = "commonswiki";
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
|
|
@ -54,7 +55,7 @@ public class LicenseList {
|
|||
public String nameIdForTemplate(String template) {
|
||||
// hack :D (converts dashes and periods to underscores)
|
||||
// cc-by-sa-3.0 -> cc_by_sa_3_0
|
||||
return "license_name_" + template.toLowerCase().replace("-", "_").replace(".", "_");
|
||||
return "license_name_" + template.toLowerCase(Locale.ENGLISH).replace("-", "_").replace(".", "_");
|
||||
}
|
||||
|
||||
private int stringIdByName(String stringId) {
|
||||
|
|
|
|||
|
|
@ -61,6 +61,10 @@ public class Media implements Parcelable {
|
|||
return CommonsApplication.HOME_URL + "File:" + Utils.urlEncode(getFilename().replace("File:", "").replace(" ", "_"));
|
||||
}
|
||||
|
||||
public String getMobileDescriptionUrl() {
|
||||
return CommonsApplication.MOBILE_HOME_URL + "File:" + Utils.urlEncode(getFilename().replace("File:", "").replace(" ", "_"));
|
||||
}
|
||||
|
||||
public Uri getLocalUri() {
|
||||
return localUri;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import java.security.NoSuchAlgorithmException;
|
|||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.regex.Pattern;
|
||||
|
|
@ -81,7 +82,7 @@ public class Utils {
|
|||
}
|
||||
|
||||
public static Date parseMWDate(String mwDate) {
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // Assuming MW always gives me UTC
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH); // Assuming MW always gives me UTC
|
||||
try {
|
||||
return isoFormat.parse(mwDate);
|
||||
} catch (ParseException e) {
|
||||
|
|
@ -90,7 +91,7 @@ public class Utils {
|
|||
}
|
||||
|
||||
public static String toMWDate(Date date) {
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // Assuming MW always gives me UTC
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH); // Assuming MW always gives me UTC
|
||||
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||
return isoFormat.format(date);
|
||||
}
|
||||
|
|
@ -201,7 +202,7 @@ public class Utils {
|
|||
}
|
||||
|
||||
public static String capitalize(String string) {
|
||||
return string.substring(0,1).toUpperCase() + string.substring(1);
|
||||
return string.substring(0,1).toUpperCase(Locale.getDefault()) + string.substring(1);
|
||||
}
|
||||
|
||||
public static String licenseTemplateFor(String license) {
|
||||
|
|
@ -303,13 +304,17 @@ public class Utils {
|
|||
Pattern jpegPattern = Pattern.compile("\\.jpeg$", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
// People are used to ".jpg" more than ".jpeg" which the system gives us.
|
||||
if (extension != null && extension.toLowerCase().equals("jpeg")) {
|
||||
if (extension != null && extension.toLowerCase(Locale.ENGLISH).equals("jpeg")) {
|
||||
extension = "jpg";
|
||||
}
|
||||
title = jpegPattern.matcher(title).replaceFirst(".jpg");
|
||||
if (extension != null && !title.toLowerCase().endsWith("." + extension.toLowerCase())) {
|
||||
if (extension != null && !title.toLowerCase(Locale.getDefault()).endsWith("." + extension.toLowerCase(Locale.ENGLISH))) {
|
||||
title += "." + extension;
|
||||
}
|
||||
return title;
|
||||
}
|
||||
|
||||
public static boolean isNullOrWhiteSpace(String value) {
|
||||
return value == null || value.trim().isEmpty();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,16 @@
|
|||
package fr.free.nrw.commons.auth;
|
||||
|
||||
import android.Manifest;
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.accounts.AccountManagerFuture;
|
||||
import android.accounts.AuthenticatorException;
|
||||
import android.accounts.OperationCanceledException;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -20,23 +24,24 @@ public abstract class AuthenticatedActivity extends AppCompatActivity {
|
|||
CommonsApplication app;
|
||||
|
||||
private String authCookie;
|
||||
|
||||
|
||||
public AuthenticatedActivity(String accountType) {
|
||||
this.accountType = accountType;
|
||||
this.accountType = accountType;
|
||||
}
|
||||
|
||||
|
||||
private class GetAuthCookieTask extends AsyncTask<Void, String, String> {
|
||||
private Account account;
|
||||
private AccountManager accountManager;
|
||||
|
||||
public GetAuthCookieTask(Account account, AccountManager accountManager) {
|
||||
this.account = account;
|
||||
this.accountManager = accountManager;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
super.onPostExecute(result);
|
||||
if(result != null) {
|
||||
if (result != null) {
|
||||
authCookie = result;
|
||||
onAuthCookieAcquired(result);
|
||||
} else {
|
||||
|
|
@ -60,19 +65,19 @@ public abstract class AuthenticatedActivity extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class AddAccountTask extends AsyncTask<Void, String, String> {
|
||||
private AccountManager accountManager;
|
||||
|
||||
public AddAccountTask(AccountManager accountManager) {
|
||||
this.accountManager = accountManager;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
super.onPostExecute(result);
|
||||
if(result != null) {
|
||||
Account[] allAccounts =accountManager.getAccountsByType(accountType);
|
||||
Account curAccount = allAccounts[0];
|
||||
if (result != null) {
|
||||
Account curAccount = getCurrentAccount();
|
||||
GetAuthCookieTask getCookieTask = new GetAuthCookieTask(curAccount, accountManager);
|
||||
getCookieTask.execute();
|
||||
} else {
|
||||
|
|
@ -80,6 +85,18 @@ public abstract class AuthenticatedActivity extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Account getCurrentAccount() {
|
||||
if (ActivityCompat.checkSelfPermission(AuthenticatedActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
|
||||
return null;
|
||||
}
|
||||
Account[] allAccounts = accountManager.getAccountsByType(accountType);
|
||||
if (allAccounts == null) {
|
||||
return null;
|
||||
}
|
||||
return allAccounts[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... params) {
|
||||
AccountManagerFuture<Bundle> resultFuture = accountManager.addAccount(accountType, null, null, null, AuthenticatedActivity.this, null, null);
|
||||
|
|
|
|||
|
|
@ -26,10 +26,12 @@ import android.widget.TextView;
|
|||
import android.widget.Toast;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
|
||||
import fr.free.nrw.commons.CommonsApplication;
|
||||
import fr.free.nrw.commons.EventLog;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.Utils;
|
||||
import fr.free.nrw.commons.WelcomeActivity;
|
||||
import fr.free.nrw.commons.contributions.ContributionsActivity;
|
||||
import fr.free.nrw.commons.contributions.ContributionsContentProvider;
|
||||
|
|
@ -220,7 +222,7 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
private void performLogin() {
|
||||
String username = usernameEdit.getText().toString();
|
||||
// Because Mediawiki is upercase-first-char-then-case-sensitive :)
|
||||
String canonicalUsername = username.substring(0,1).toUpperCase() + username.substring(1);
|
||||
String canonicalUsername = Utils.capitalize(username.substring(0,1)) + username.substring(1);
|
||||
|
||||
String password = passwordEdit.getText().toString();
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import android.text.TextUtils;
|
|||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import fr.free.nrw.commons.CommonsApplication;
|
||||
import fr.free.nrw.commons.EventLog;
|
||||
|
|
@ -131,7 +132,7 @@ public class Contribution extends Media {
|
|||
|
||||
public String getPageContents() {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
|
||||
|
||||
buffer
|
||||
.append("== {{int:filedesc}} ==\n")
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ public class MediaDetailPagerFragment extends Fragment implements ViewPager.OnPa
|
|||
// View in browser
|
||||
Intent viewIntent = new Intent();
|
||||
viewIntent.setAction(Intent.ACTION_VIEW);
|
||||
viewIntent.setData(Uri.parse(m.getDescriptionUrl()));
|
||||
viewIntent.setData(Uri.parse(m.getMobileDescriptionUrl()));
|
||||
startActivity(viewIntent);
|
||||
return true;
|
||||
case R.id.menu_download_current_image:
|
||||
|
|
|
|||
|
|
@ -49,13 +49,16 @@ public class ModificationsSyncAdapter extends AbstractThreadedSyncAdapter {
|
|||
String authCookie;
|
||||
try {
|
||||
authCookie = AccountManager.get(getContext()).blockingGetAuthToken(account, "", false);
|
||||
} catch (OperationCanceledException e) {
|
||||
} catch (OperationCanceledException | AuthenticatorException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IOException e) {
|
||||
Log.d("Commons", "Could not authenticate :(");
|
||||
return;
|
||||
} catch (AuthenticatorException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
if(Utils.isNullOrWhiteSpace(authCookie)) {
|
||||
Log.d("Commons", "Could not authenticate :(");
|
||||
return;
|
||||
}
|
||||
|
||||
MWApi api = CommonsApplication.createMWApi();
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ public class SingleUploadFragment extends Fragment {
|
|||
setLicenseSummary(license);
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.putString(Prefs.DEFAULT_LICENSE, license);
|
||||
editor.commit();
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -41,8 +41,7 @@
|
|||
android:textStyle="bold"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@android:color/white"
|
||||
android:singleLine="false"/>
|
||||
android:textColor="@android:color/white"/>
|
||||
|
||||
<Button
|
||||
android:layout_width="120dp"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:id="@+id/contributionsFragmentContainer"
|
||||
android:background="#000000"
|
||||
>
|
||||
|
||||
<fragment
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="16dp"
|
||||
android:gravity="center"
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:hint="@string/categories_search_text_hint"
|
||||
android:singleLine="true"
|
||||
android:maxLines="1"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
/>
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<!-- Placeholder. Height gets set at runtime based on container size; the initial value is a hack to keep
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:text="Title"
|
||||
android:text="@string/media_detail_title"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingBottom="6dp"
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Title of the media"
|
||||
android:text="@string/media_detail_media_title"
|
||||
android:id="@+id/mediaDetailTitle"
|
||||
android:layout_gravity="left|start"
|
||||
android:textColor="@android:color/white"
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Description"
|
||||
android:text="@string/media_detail_description"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
|
|
@ -115,7 +115,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Description of the media goes here. This can potentially be fairly long, and will need to wrap across multiple lines. We hope it looks nice though."
|
||||
android:text="@string/media_detail_description_explanation"
|
||||
android:background="#20ffffff"
|
||||
android:id="@+id/mediaDetailDesc"
|
||||
android:textColor="@android:color/white"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scrollHorizontally="false"
|
||||
android:singleLine="true"
|
||||
android:maxLines="1"
|
||||
android:hint="@string/share_title_hint"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
style="?android:textAppearanceSmallInverse"
|
||||
android:textColor="#ffffff"
|
||||
android:background="@color/text_background"
|
||||
tools:text="Overlay"
|
||||
tools:text="@string/placeholder_place_distance"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
android:maxLines="1"
|
||||
android:ellipsize="none"
|
||||
style="?android:textAppearanceMedium"
|
||||
tools:text="Name"
|
||||
tools:text="@string/placeholder_place_name"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
android:ellipsize="none"
|
||||
android:maxLines="4"
|
||||
style="?android:textAppearanceSmall"
|
||||
tools:text="Description"
|
||||
tools:text="@string/placeholder_place_description"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
|
|||
|
|
@ -27,9 +27,7 @@
|
|||
android:id="@+id/proprietary_x"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_width="140dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/selfie_x"
|
||||
/>
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
android:layout_height="120dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_toRightOf="@+id/welcome_wikipedia"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
@ -44,7 +43,6 @@
|
|||
android:textAlignment="center"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@android:color/white"
|
||||
android:singleLine="false"
|
||||
/>
|
||||
|
||||
<Button
|
||||
|
|
|
|||
|
|
@ -160,4 +160,8 @@ u2022 বিষয়শ্রেণী: সিডনি অপেরা হা
|
|||
<string name="file_exists">এই ফাইলটি ইতিমধ্যে কমন্সে বিদ্যমান। আপনি কি নিশ্চিত আপনি সামনে এগুতে চান?</string>
|
||||
<string name="yes">হ্যাঁ</string>
|
||||
<string name="no">না</string>
|
||||
<string name="media_detail_title">শিরোনাম</string>
|
||||
<string name="media_detail_media_title">মিডিয়ার শিরোনাম</string>
|
||||
<string name="media_detail_description">বিবরণ</string>
|
||||
<string name="media_detail_description_explanation">মিডিয়ার বিবরণ এখানে যাবে। এই মোটামুটি দীর্ঘ হতে পারে এবং একাধিক লাইনে লিখতে হতে পারে। আমরা আশা করি এটি দেখতে সুন্দর হবে।</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -160,4 +160,8 @@ Pouezit war ar c\'hemenn-mañ (pe distroit en a-raok) evit mont dreist ar bazenn
|
|||
<string name="file_exists">Emañ ar restr-mañ war Commons c\'hoazh. Ha sur oc\'h e fell deoc\'h kenderc\'hel ?</string>
|
||||
<string name="yes">Ya</string>
|
||||
<string name="no">Ket</string>
|
||||
<string name="media_detail_title">Titl</string>
|
||||
<string name="media_detail_media_title">Titl ar media</string>
|
||||
<string name="media_detail_description">Deskrivadur</string>
|
||||
<string name="media_detail_description_explanation">Amañ e lakaer titl ar media. Gallout a ra bezañ hir-mat ha mont dre meur a linenn. Spi hon eus e vo bravik an disoc\'h koulskoude.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -132,4 +132,6 @@ Gomin Wikimedia.</string>
|
|||
<string name="detail_description_empty">Dim disgrifiad</string>
|
||||
<string name="detail_license_empty">Trwydded anhysbys</string>
|
||||
<string name="menu_refresh">Adnewyddu</string>
|
||||
<string name="media_detail_title">Teitl</string>
|
||||
<string name="media_detail_description">Disgrifiad</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -160,4 +160,11 @@ u2022 Kategorien: Opernhaus von Sydney, Opernhaus von Sydney von Westen, Opernha
|
|||
<string name="file_exists">Diese Datei ist bereits auf Commons vorhanden. Bist du sicher, dass du fortfahren möchtest?</string>
|
||||
<string name="yes">Ja</string>
|
||||
<string name="no">Nein</string>
|
||||
<string name="media_detail_title">Titel</string>
|
||||
<string name="media_detail_media_title">Titel des Mediums</string>
|
||||
<string name="media_detail_description">Beschreibung</string>
|
||||
<string name="media_detail_description_explanation">Hier folgt die Beschreibung des Mediums. Diese kann möglicherweise ziemlich lang sein und erfordert dann einen Umbruch auf mehreren Zeilen. Wir hoffen, dass sie dennoch gut aussieht.</string>
|
||||
<string name="become_a_tester_title">Beta-Tester werden</string>
|
||||
<string name="become_a_tester_description">Melde dich bei unserem Beta-Kanal auf Google Play an und erhalte frühen Zugriff auf neue Funktionen und Fehlerbehebungen</string>
|
||||
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -165,4 +165,8 @@ imágenes de carteles, portadas de libro, etc.</string>
|
|||
<string name="file_exists">Este archivo ya existe en Commons. ¿Confirmas que quieres continuar?</string>
|
||||
<string name="yes">Sí</string>
|
||||
<string name="no">No</string>
|
||||
<string name="media_detail_title">Título</string>
|
||||
<string name="media_detail_media_title">Título del multimedia</string>
|
||||
<string name="media_detail_description">Descripción</string>
|
||||
<string name="media_detail_description_explanation">Aquí va la descripción del multimedia. Potencialmente, puede ser bastante largo, y deberá agruparse en múltiples líneas. De todas formas, esperamos que se ve bien.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ Wikimedia Commons an det Wikimedia-Commons-Logo san markintiaken faan\'t Wikimed
|
|||
<string name="no_uploads_yet">Dü heest noch nian bilen huuchschüürd.</string>
|
||||
<string name="menu_retry_upload">Noch ans ferschük</string>
|
||||
<string name="menu_cancel_upload">Ufbreeg</string>
|
||||
<string name="share_license_summary">Detdiar bil feit det lisens %$1 .</string>
|
||||
<string name="share_license_summary">Detdiar bil feit det lisens %1$s</string>
|
||||
<string name="menu_download">Deelloose</string>
|
||||
<string name="preference_license">Lisens</string>
|
||||
<string name="use_previous">Ual tiitel/beskriiwang brük</string>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<string name="upload_completed_notification_title">Ua hoʻouka ʻia ʻo %1$s</string>
|
||||
<string name="upload_completed_notification_text">Kīkē no ka ʻike ʻana o kāu hoʻouka</string>
|
||||
<string name="upload_progress_notification_title_start">Hoʻomaka nei i ka hoʻouka ʻana o %1$s</string>
|
||||
<string name="upload_progress_notification_title_in_progress">Hoʻouka nei ʻo</string>
|
||||
<string name="upload_progress_notification_title_in_progress">Hoʻouka nei ʻo %1$s</string>
|
||||
<string name="upload_progress_notification_title_finishing">Hele a pau ka hoʻouka ʻana o %1$s</string>
|
||||
<string name="upload_failed_notification_title">Ua hāʻule ʻo %1$s i ka hoʻouka ʻana</string>
|
||||
<string name="upload_failed_notification_subtitle">Kīkē no ka ʻike ʻana</string>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
<resources>
|
||||
<string name="crash_dialog_title">Az alkalmazás összeomlott</string>
|
||||
<string name="crash_dialog_text">Hoppá! Valami elromlott!</string>
|
||||
<string name="crash_dialog_comment_prompt">Kérjük írja meg nekünk emailben, hogy mit csinált a programban. Ez segít kijavítani a hibát!</string>
|
||||
<string name="crash_dialog_comment_prompt">Kérjük, írd meg nekünk e-mailben, hogy épp mit csináltál. Ez segít nekünk kijavítani a hibát!</string>
|
||||
<string name="crash_dialog_ok_toast">Köszönjük!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
<string name="login_failed_generic">Bejelentkezési hiba</string>
|
||||
<string name="share_upload_button">Feltöltés</string>
|
||||
<string name="multiple_share_base_title">Nevezd el a gyűjteményt</string>
|
||||
<string name="provider_modifications">Értesítések</string>
|
||||
<string name="provider_modifications">Változtatások</string>
|
||||
<string name="menu_upload_single">Feltöltés</string>
|
||||
<string name="categories_search_text_hint">Keresés a kategóriák között</string>
|
||||
<string name="menu_save_categories">Mentés</string>
|
||||
|
|
@ -77,7 +77,7 @@ Kattints erre az üzenetre a lépés kihagyásához</string>
|
|||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Forráskód</a> és <a href=\"https://commons-app.github.io/\">weboldal</a> a GitHubon. Nyiss egy új <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-problémát</a> hibabejelentéssel vagy fejlesztési javaslattal.</string>
|
||||
<string name="about_privacy_policy"><a href=\"https://wikimediafoundation.org/wiki/Adatvédelmi_irányelv\">Adatvédelmi irányelvek</a></string>
|
||||
<string name="title_activity_about">Névjegy</string>
|
||||
<string name="menu_feedback">Visszajelzés küldése (email)</string>
|
||||
<string name="menu_feedback">Visszajelzés küldése (e-mailben)</string>
|
||||
<string name="no_email_client">Nincs telepített levelezőprogram</string>
|
||||
<string name="provider_categories">Legutóbb használt kategóriák</string>
|
||||
<string name="waiting_first_sync">Várakozás az első szinkronizálásra...</string>
|
||||
|
|
@ -90,6 +90,8 @@ Kattints erre az üzenetre a lépés kihagyásához</string>
|
|||
<string name="use_previous">Előző cím/leírás használata</string>
|
||||
<string name="allow_gps">Automatikusan megkapja a jelenlegi helyet</string>
|
||||
<string name="allow_gps_summary">Lekéri a jelenlegi helyet, hogy lehetőség legyen kategóriajavaslatokra a nem földrajzi címkézett képeknél.</string>
|
||||
<string name="license_name_cc_by_sa_four">Nevezd meg! – Így add tovább! 4.0</string>
|
||||
<string name="license_name_cc_by_four">Nevezd meg! 4.0</string>
|
||||
<string name="license_name_cc_by_sa">Nevezd meg! – Így add tovább! 3.0</string>
|
||||
<string name="license_name_cc_by">Attribution 3.0</string>
|
||||
<string name="license_name_cc0">CC0</string>
|
||||
|
|
@ -158,4 +160,8 @@ Kattints erre az üzenetre a lépés kihagyásához</string>
|
|||
<string name="file_exists">Ez a fájl már létezik a Commons-on. Biztos, hogy folytatni akarod?</string>
|
||||
<string name="yes">Igen</string>
|
||||
<string name="no">Nem</string>
|
||||
<string name="media_detail_title">Cím</string>
|
||||
<string name="media_detail_media_title">Média címe</string>
|
||||
<string name="media_detail_description">Leírás</string>
|
||||
<string name="media_detail_description_explanation">A média leírása kerül ide. Ez akár egészen hosszú is lehet, és több sorba fog kerülni. Azért reméljük, jól néz majd ki.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -160,4 +160,8 @@
|
|||
<string name="file_exists">הקובץ הזה כבר קיים בוויקישיתוף. האם להמשיך?</string>
|
||||
<string name="yes">כן</string>
|
||||
<string name="no">לא</string>
|
||||
<string name="media_detail_title">כותרת</string>
|
||||
<string name="media_detail_media_title">כותרת המדיה</string>
|
||||
<string name="media_detail_description">תיאור</string>
|
||||
<string name="media_detail_description_explanation">תיאור המדיה יהיה כאן. זה יכול להיות ארוך למדי, ולהתפרס על מספר שורות. אנחנו מקווים שזה נראה טוב.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -151,4 +151,7 @@
|
|||
<string name="file_exists">이 파일은 이미 공용에 존재합니다. 계속하시겠습니까?</string>
|
||||
<string name="yes">예</string>
|
||||
<string name="no">아니오</string>
|
||||
<string name="media_detail_title">제목</string>
|
||||
<string name="media_detail_media_title">미디어 제목</string>
|
||||
<string name="media_detail_description">설명</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -159,4 +159,7 @@ Leet w.e.g. <a href=\"https://github.com/commons-app/apps-android-commons/iss
|
|||
<string name="file_exists">Dëse Fichier gëtt et schonn op Commons. Sidd Dir sécher datt Dir virufuere wëllt?</string>
|
||||
<string name="yes">Jo</string>
|
||||
<string name="no">Neen</string>
|
||||
<string name="media_detail_title">Titel</string>
|
||||
<string name="media_detail_description">Beschreiwung</string>
|
||||
<string name="become_a_tester_title">Beta-Tester ginn</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -161,4 +161,11 @@ u2022 Категорија: Сиднејска опера, Сиднејскат
|
|||
<string name="file_exists">Податотекава веќе постои на Ризницата. Дали сигурно сакате да продолжите?</string>
|
||||
<string name="yes">Да</string>
|
||||
<string name="no">Не</string>
|
||||
<string name="media_detail_title">Наслов</string>
|
||||
<string name="media_detail_media_title">Наслов на податотеката</string>
|
||||
<string name="media_detail_description">Опис</string>
|
||||
<string name="media_detail_description_explanation">Тука оди описот на податотеката. Ова потенцијално може да биде прилично долго, и ќе треба да се преломи во неколку реда. Се надеваме дека ќе изгледа добро.</string>
|
||||
<string name="become_a_tester_title">Станете бета-испробувач</string>
|
||||
<string name="become_a_tester_description">Пријавете се на нашиот бета-канал на Google Play и добивајте ран пристап до нови можности и исправки на грешки</string>
|
||||
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -160,4 +160,6 @@ Kliknij ten komunikat lub naciśnij „cofnij”, aby pominąć ten krok.</strin
|
|||
<string name="file_exists">Ten plik już istnieje na Commons. Jesteś pewien, że chcesz kontynuować?</string>
|
||||
<string name="yes">Tak</string>
|
||||
<string name="no">Nie</string>
|
||||
<string name="media_detail_title">Tytuł</string>
|
||||
<string name="media_detail_description">Opis</string>
|
||||
</resources>
|
||||
|
|
|
|||
89
app/src/main/res/values-pms/strings.xml
Normal file
89
app/src/main/res/values-pms/strings.xml
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Comun</string>
|
||||
<string name="menu_settings">Paràmeter</string>
|
||||
<string name="username">Stranòm</string>
|
||||
<string name="password">Ciav</string>
|
||||
<string name="login">Intré ant ël sistema</string>
|
||||
<string name="signup">Anscriv-se</string>
|
||||
<string name="logging_in_title">Conession</string>
|
||||
<string name="logging_in_message">Ch\'a l\'abia passiensa...</string>
|
||||
<string name="login_success">A l\'é intrà ant ël sistema!</string>
|
||||
<string name="login_failed">Falì a rintré ant ël sistema!</string>
|
||||
<string name="upload_failed">Archivi nen trovà. Për piasì, ch\'a preuva con n\'àutr.</string>
|
||||
<string name="authentication_failed">Autentificassion falìa!</string>
|
||||
<string name="uploading_started">Cariament ancaminà!</string>
|
||||
<string name="upload_completed_notification_title">%1$s carià!</string>
|
||||
<string name="upload_completed_notification_text">Sgnaché për vëdde sò cariament</string>
|
||||
<string name="upload_progress_notification_title_start">Inissi dël cariament %1$s</string>
|
||||
<string name="upload_progress_notification_title_in_progress">%1$s carià</string>
|
||||
<string name="upload_progress_notification_title_finishing">Fin dël cariament %1$s</string>
|
||||
<string name="upload_failed_notification_title">Cariament falì a %1$s</string>
|
||||
<string name="upload_failed_notification_subtitle">Sgnaché për ësmon-e</string>
|
||||
<plurals name="uploads_pending_notification_indicator">
|
||||
<item quantity="one">1 archivi an camin ch\'as caria</item>
|
||||
<item quantity="other">%d archivi an camin ch\'as cario</item>
|
||||
</plurals>
|
||||
<string name="title_activity_contributions">Ij mè cariament</string>
|
||||
<string name="contribution_state_queued">An coa</string>
|
||||
<string name="contribution_state_failed">Falì</string>
|
||||
<string name="contribution_state_in_progress">%1$d%% completà</string>
|
||||
<string name="contribution_state_starting">Cariament</string>
|
||||
<string name="menu_from_gallery">Da la galarìa</string>
|
||||
<string name="menu_from_camera">Fé na fòto</string>
|
||||
<string name="menu_nearby">Davzin</string>
|
||||
<string name="provider_contributions">Ij mè cariament</string>
|
||||
<string name="menu_share">Partagé</string>
|
||||
<string name="menu_open_in_browser">Smon-e ant ël navigador</string>
|
||||
<string name="share_title_hint">Tìtol</string>
|
||||
<string name="share_description_hint">Descrission</string>
|
||||
<string name="login_failed_network">Impossìbil rintré ant ël sistema - la rej a marcia nen</string>
|
||||
<string name="login_failed_username">Impossìbil rintré ant ël sistema - për piasì, ch\'a verìfica sò stranòm</string>
|
||||
<string name="login_failed_password">Impossìbil rintré ant ël sistema - për piasì, ch\'a contròla soa ciav</string>
|
||||
<string name="login_failed_throttled">Tròpi tentativ falì. Për piasì, ch\'a preuva torna da-sì chèiche minute.</string>
|
||||
<string name="login_failed_blocked">An dëspias, s\'utent-sì a l\'é stàit blocà ansima a Commons</string>
|
||||
<string name="login_failed_generic">Falì a rintré ant ël sistema</string>
|
||||
<string name="share_upload_button">Carié</string>
|
||||
<string name="multiple_share_base_title">Deje un nòm a s\'ansem</string>
|
||||
<string name="provider_modifications">Modìfiche</string>
|
||||
<string name="menu_upload_single">Carié</string>
|
||||
<string name="categories_search_text_hint">Sërché dle categorìe</string>
|
||||
<string name="menu_save_categories">Argistré</string>
|
||||
<plurals name="contributions_subtitle">
|
||||
<item quantity="zero">Ancor gnun cariament</item>
|
||||
<item quantity="one">1 cariament</item>
|
||||
<item quantity="other">%d cariament</item>
|
||||
</plurals>
|
||||
<plurals name="starting_multiple_uploads">
|
||||
<item quantity="one">1 cariament ancaminà</item>
|
||||
<item quantity="other">%d cariament ancaminà</item>
|
||||
</plurals>
|
||||
<plurals name="multiple_uploads_title">
|
||||
<item quantity="one">1 cariament</item>
|
||||
<item quantity="other">%d cariament</item>
|
||||
</plurals>
|
||||
<string name="categories_not_found">Gnun-e categorìe rëspondente a %1$s trovà</string>
|
||||
<string name="categories_skip_explanation">Ch\'a gionta dle categorìe, për ch\'a sia pi belfé trové soe plance su Wikimedia Commons.
|
||||
|
||||
Ch\'a ancamin-a a scrive për gionté dle categorìe.
|
||||
Ch\'a sgnaca an s\'ën mëssage (o ch\'a sgnaca ël boton andaré) për sauté \'s pass.</string>
|
||||
<string name="categories_activity_title">Categorìe</string>
|
||||
<string name="preference_tracking">Rapòrt d\'utilisassion</string>
|
||||
<string name="preference_tracking_summary">Mandé ij rapòrt d\'usagi a Wikimedia për giutene a amelioré l\'aplicassion</string>
|
||||
<string name="title_activity_settings">Paràmeter</string>
|
||||
<string name="title_activity_signup">Marchesse</string>
|
||||
<string name="menu_about">A propòsit</string>
|
||||
<string name="about_license">Ij programa Open Source a son publicà sota la <a href=\"https://github.com/wikimedia/apps-android-commons/blob/master/COPYING\">licensa Apache v2</a>. Wikimedia Commons e sò sìmbol a son dle marche argistrà dla Fondassion Wikimedia e a son dovrà con ël përmess ëd la Fondassion Wikimedia. Nojàutri i soma nen aprovà da o afilià a la Fondassion Wikimedia.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Sorgiss</a> e <a href=\"https://commons-app.github.io/\">sit an sl\'aragnà</a> su GitHub. Creé na neuva <a href=\"https://github.com/commons-app/apps-android-commons/issues\">signalassion GitHub</a> për signalé dij givo e dij sugeriment.</string>
|
||||
<string name="about_privacy_policy"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Régole ëd confidensialità</a></string>
|
||||
<string name="title_activity_about">A propòsit</string>
|
||||
<string name="menu_feedback">Mandé dij coment (për pòsta eletrònica)</string>
|
||||
<string name="no_email_client">Gnun clien ëd pòsta eletrònica anstalà</string>
|
||||
<string name="provider_categories">Categorìe dovrà ëd recent</string>
|
||||
<string name="waiting_first_sync">Atèisa ëd prima sincronisassion...</string>
|
||||
<string name="no_uploads_yet">A l\'ha ancor nen carià ëd fòto.</string>
|
||||
<string name="menu_retry_upload">Prové torna</string>
|
||||
<string name="menu_cancel_upload">Anulé</string>
|
||||
<string name="share_license_summary">Costa plancia a sarà sota la licensa %1$s</string>
|
||||
<string name="menu_download">Dëscarié</string>
|
||||
</resources>
|
||||
|
|
@ -163,4 +163,7 @@
|
|||
<string name="file_exists">Этот файл уже существует на Викискладе. Вы уверены, что хотите продолжить?</string>
|
||||
<string name="yes">Да</string>
|
||||
<string name="no">Нет</string>
|
||||
<string name="media_detail_title">Название</string>
|
||||
<string name="media_detail_description">Описание</string>
|
||||
<string name="become_a_tester_title">Стать бета-тестером</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -164,4 +164,11 @@ u2022 Категорії: Sydney Opera House, Sydney Opera House from the west,
|
|||
<string name="file_exists">Цей файл вже існує на Вікісховищі. Ви впевнені, що хочете продовжити?</string>
|
||||
<string name="yes">Так</string>
|
||||
<string name="no">Ні</string>
|
||||
<string name="media_detail_title">Назва</string>
|
||||
<string name="media_detail_media_title">Назва медіафайлу</string>
|
||||
<string name="media_detail_description">Опис</string>
|
||||
<string name="media_detail_description_explanation">Сюди потрапляє опис медіафайлу. Він потенційно може бути досить довгим і розтягнутися на декілька рядків. Однак ми сподіваємось, що він виглядатиме гарно.</string>
|
||||
<string name="become_a_tester_title">Станьте бета-тестером</string>
|
||||
<string name="become_a_tester_description">Увійдіть на наш бета-канал на Google Play і отримайте ранній доступ до нових функцій та виправлень багів</string>
|
||||
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -160,4 +160,8 @@
|
|||
<string name="file_exists">此檔案已存在於共享資源上。您確定要繼續嗎?</string>
|
||||
<string name="yes">是</string>
|
||||
<string name="no">否</string>
|
||||
<string name="media_detail_title">標題</string>
|
||||
<string name="media_detail_media_title">多媒體標體</string>
|
||||
<string name="media_detail_description">描述</string>
|
||||
<string name="media_detail_description_explanation">描述使用在此的多媒體。若內容可能會很長的話請斷開換行。我們希望這樣可以讓內容看起來較好些。</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<string name="menu_share">分享</string>
|
||||
<string name="menu_open_in_browser">在浏览器中查看</string>
|
||||
<string name="share_title_hint">标题</string>
|
||||
<string name="share_description_hint">描述</string>
|
||||
<string name="share_description_hint">说明</string>
|
||||
<string name="login_failed_network">无法登录 - 网络故障</string>
|
||||
<string name="login_failed_username">无法登录 - 请检查您的用户名</string>
|
||||
<string name="login_failed_password">无法登录 - 请检查您的密码</string>
|
||||
|
|
@ -159,4 +159,8 @@
|
|||
<string name="file_exists">此文件在共享资源已存在。您确定要继续么?</string>
|
||||
<string name="yes">是</string>
|
||||
<string name="no">否</string>
|
||||
<string name="media_detail_title">标题</string>
|
||||
<string name="media_detail_media_title">媒体的标题</string>
|
||||
<string name="media_detail_description">说明</string>
|
||||
<string name="media_detail_description_explanation">在此填写媒体的说明。这可能会相当长,并将需要包裹在多行中。我们希望它看起来很好。</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -155,4 +155,11 @@ Tap this message (or hit back) to skip this step.</string>
|
|||
<string name="file_exists">This file already exists on Commons. Are you sure you want to proceed?</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="media_detail_title">Title</string>
|
||||
<string name="media_detail_media_title">Title of the media</string>
|
||||
<string name="media_detail_description">Description</string>
|
||||
<string name="media_detail_description_explanation">Description of the media goes here. This can potentially be fairly long, and will need to wrap across multiple lines. We hope it looks nice though.</string>
|
||||
<string name="become_a_tester_title">Become a Beta Tester</string>
|
||||
<string name="become_a_tester_description">Opt-in to our beta channel on Google Play and get early access to new features and bug fixes</string>
|
||||
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -13,5 +13,11 @@
|
|||
android:summary="@string/allow_gps_summary"
|
||||
android:key="allowGps" />
|
||||
|
||||
<Preference android:title="@string/become_a_tester_title"
|
||||
android:summary="@string/become_a_tester_description">
|
||||
<intent android:action="android.intent.action.VIEW"
|
||||
android:data="@string/beta_opt_in_link" />
|
||||
</Preference>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ buildscript {
|
|||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.3.0'
|
||||
classpath "com.android.tools.build:gradle:${project.gradleVersion}"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1,9 @@
|
|||
android.useDeprecatedNdk=true
|
||||
gradleVersion = 2.3.0
|
||||
|
||||
supportLibVersion = 25.2.0
|
||||
|
||||
compileSdkVersion = android-25
|
||||
buildToolsVersion = 25.0.1
|
||||
|
||||
minSdkVersion = 15
|
||||
targetSdkVersion = 25
|
||||
|
|
|
|||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,4 +1,4 @@
|
|||
#Fri Mar 03 19:41:57 IST 2017
|
||||
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue