mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Merge branch 'master' into master
This commit is contained in:
commit
a083373285
47 changed files with 304 additions and 239 deletions
|
|
@ -1,25 +1,18 @@
|
||||||
_Before creating an issue, please search the existing issues to see if a similar one has already been created. You can search issues by specific labels (e.g. `label:nearby `) or just by typing keywords into the search filter._
|
|
||||||
|
|
||||||
**Summary:**
|
**Summary:**
|
||||||
|
|
||||||
Summarize your issue in one sentence (what goes wrong, what did you expect to happen)
|
Summarize your issue in one sentence (what goes wrong, what did you expect to happen)
|
||||||
|
|
||||||
|
_Before creating an issue, please search the existing issues to see if a similar one has already been created. You can search issues by specific labels (e.g. `label:nearby `) or just by typing keywords into the search filter._
|
||||||
|
|
||||||
**Steps to reproduce:**
|
**Steps to reproduce:**
|
||||||
|
|
||||||
How can we reproduce the issue?
|
How can we reproduce the issue?
|
||||||
|
What did you expect the app to do, and what did you see instead?
|
||||||
|
|
||||||
**Add System logs:**
|
**Add System logs:**
|
||||||
|
|
||||||
Add logcat files here (if possible).
|
Add logcat files here (if possible).
|
||||||
|
|
||||||
**Expected behavior:**
|
|
||||||
|
|
||||||
What did you expect the App to do?
|
|
||||||
|
|
||||||
**Observed behavior:**
|
|
||||||
|
|
||||||
What did you see instead? Describe your issue in detail here.
|
|
||||||
|
|
||||||
**Device and Android version:**
|
**Device and Android version:**
|
||||||
|
|
||||||
What make and model device (e.g., Samsung J7) did you encounter this on? What Android
|
What make and model device (e.g., Samsung J7) did you encounter this on? What Android
|
||||||
|
|
@ -28,7 +21,7 @@ version (e.g., Android 4.0 Ice Cream Sandwich or Android 6.0 Marshmallow) are yo
|
||||||
|
|
||||||
**Commons app version:**
|
**Commons app version:**
|
||||||
|
|
||||||
You can find this information by going to the navigation drawer in the app and tapping 'About'
|
You can find this information by going to the navigation drawer in the app and tapping 'About'. If you are building from our codebase instead of downloading the app, please also mention the branch and build variant (e.g. master and prodDebug).
|
||||||
|
|
||||||
**Screen-shots:**
|
**Screen-shots:**
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ dependencies {
|
||||||
implementation 'com.jakewharton.timber:timber:4.5.1'
|
implementation 'com.jakewharton.timber:timber:4.5.1'
|
||||||
implementation 'info.debatty:java-string-similarity:0.24'
|
implementation 'info.debatty:java-string-similarity:0.24'
|
||||||
implementation 'com.borjabravo:readmoretextview:2.1.0'
|
implementation 'com.borjabravo:readmoretextview:2.1.0'
|
||||||
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
|
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
|
||||||
implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:5.5.0@aar') {
|
implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:5.5.0@aar') {
|
||||||
transitive = true
|
transitive = true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ import android.accounts.AccountManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||||
import io.reactivex.Completable;
|
import io.reactivex.Completable;
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
|
|
@ -31,6 +33,7 @@ public class SessionManager {
|
||||||
/**
|
/**
|
||||||
* @return Account|null
|
* @return Account|null
|
||||||
*/
|
*/
|
||||||
|
@Nullable
|
||||||
public Account getCurrentAccount() {
|
public Account getCurrentAccount() {
|
||||||
if (currentAccount == null) {
|
if (currentAccount == null) {
|
||||||
AccountManager accountManager = AccountManager.get(context);
|
AccountManager accountManager = AccountManager.get(context);
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import static android.content.Intent.EXTRA_STREAM;
|
||||||
import static fr.free.nrw.commons.contributions.Contribution.SOURCE_CAMERA;
|
import static fr.free.nrw.commons.contributions.Contribution.SOURCE_CAMERA;
|
||||||
import static fr.free.nrw.commons.contributions.Contribution.SOURCE_GALLERY;
|
import static fr.free.nrw.commons.contributions.Contribution.SOURCE_GALLERY;
|
||||||
import static fr.free.nrw.commons.upload.UploadService.EXTRA_SOURCE;
|
import static fr.free.nrw.commons.upload.UploadService.EXTRA_SOURCE;
|
||||||
|
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF;
|
||||||
|
|
||||||
public class ContributionController {
|
public class ContributionController {
|
||||||
|
|
||||||
|
|
@ -91,6 +92,7 @@ public class ContributionController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleImagePicked(int requestCode, Intent data, boolean isDirectUpload, String wikiDataEntityId) {
|
public void handleImagePicked(int requestCode, Intent data, boolean isDirectUpload, String wikiDataEntityId) {
|
||||||
|
Timber.d("Is direct upload %s and the Wikidata entity ID is %s", isDirectUpload, wikiDataEntityId);
|
||||||
FragmentActivity activity = fragment.getActivity();
|
FragmentActivity activity = fragment.getActivity();
|
||||||
Timber.d("handleImagePicked() called with onActivityResult()");
|
Timber.d("handleImagePicked() called with onActivityResult()");
|
||||||
Intent shareIntent = new Intent(activity, ShareActivity.class);
|
Intent shareIntent = new Intent(activity, ShareActivity.class);
|
||||||
|
|
@ -119,7 +121,7 @@ public class ContributionController {
|
||||||
try {
|
try {
|
||||||
shareIntent.putExtra("isDirectUpload", isDirectUpload);
|
shareIntent.putExtra("isDirectUpload", isDirectUpload);
|
||||||
if (wikiDataEntityId != null && !wikiDataEntityId.equals("")) {
|
if (wikiDataEntityId != null && !wikiDataEntityId.equals("")) {
|
||||||
shareIntent.putExtra("wikiDataEntityId", wikiDataEntityId);
|
shareIntent.putExtra(WIKIDATA_ENTITY_ID_PREF, wikiDataEntityId);
|
||||||
}
|
}
|
||||||
activity.startActivity(shareIntent);
|
activity.startActivity(shareIntent);
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import timber.log.Timber;
|
||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
import static android.app.Activity.RESULT_OK;
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF;
|
||||||
|
|
||||||
public class NearbyListFragment extends DaggerFragment {
|
public class NearbyListFragment extends DaggerFragment {
|
||||||
private Bundle bundleForUpdates; // Carry information from activity about changed nearby places and current location
|
private Bundle bundleForUpdates; // Carry information from activity about changed nearby places and current location
|
||||||
|
|
@ -146,7 +147,7 @@ public class NearbyListFragment extends DaggerFragment {
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||||
requestCode, resultCode, data);
|
requestCode, resultCode, data);
|
||||||
controller.handleImagePicked(requestCode, data, true, directPrefs.getString("WikiDataEntityId", null));
|
controller.handleImagePicked(requestCode, data, true, directPrefs.getString(WIKIDATA_ENTITY_ID_PREF, null));
|
||||||
} else {
|
} else {
|
||||||
Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||||
requestCode, resultCode, data);
|
requestCode, resultCode, data);
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView;
|
||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
import static android.app.Activity.RESULT_OK;
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF;
|
||||||
|
|
||||||
public class NearbyMapFragment extends DaggerFragment {
|
public class NearbyMapFragment extends DaggerFragment {
|
||||||
|
|
||||||
|
|
@ -711,7 +712,7 @@ public class NearbyMapFragment extends DaggerFragment {
|
||||||
|
|
||||||
fabCamera.setOnClickListener(view -> {
|
fabCamera.setOnClickListener(view -> {
|
||||||
if (fabCamera.isShown()) {
|
if (fabCamera.isShown()) {
|
||||||
Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription());
|
Timber.d("Camera button tapped. Place: %s", place.toString());
|
||||||
storeSharedPrefs();
|
storeSharedPrefs();
|
||||||
directUpload.initiateCameraUpload();
|
directUpload.initiateCameraUpload();
|
||||||
}
|
}
|
||||||
|
|
@ -719,7 +720,7 @@ public class NearbyMapFragment extends DaggerFragment {
|
||||||
|
|
||||||
fabGallery.setOnClickListener(view -> {
|
fabGallery.setOnClickListener(view -> {
|
||||||
if (fabGallery.isShown()) {
|
if (fabGallery.isShown()) {
|
||||||
Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription());
|
Timber.d("Gallery button tapped. Place: %s", place.toString());
|
||||||
storeSharedPrefs();
|
storeSharedPrefs();
|
||||||
directUpload.initiateGalleryUpload();
|
directUpload.initiateGalleryUpload();
|
||||||
}
|
}
|
||||||
|
|
@ -731,7 +732,7 @@ public class NearbyMapFragment extends DaggerFragment {
|
||||||
editor.putString("Title", place.getName());
|
editor.putString("Title", place.getName());
|
||||||
editor.putString("Desc", place.getLongDescription());
|
editor.putString("Desc", place.getLongDescription());
|
||||||
editor.putString("Category", place.getCategory());
|
editor.putString("Category", place.getCategory());
|
||||||
editor.putString("WikiDataEntityId", place.getWikiDataEntityId());
|
editor.putString(WIKIDATA_ENTITY_ID_PREF, place.getWikiDataEntityId());
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -767,7 +768,7 @@ public class NearbyMapFragment extends DaggerFragment {
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||||
requestCode, resultCode, data);
|
requestCode, resultCode, data);
|
||||||
controller.handleImagePicked(requestCode, data, true, directPrefs.getString("WikiDataEntityId", null));
|
controller.handleImagePicked(requestCode, data, true, directPrefs.getString(WIKIDATA_ENTITY_ID_PREF, null));
|
||||||
} else {
|
} else {
|
||||||
Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||||
requestCode, resultCode, data);
|
requestCode, resultCode, data);
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import java.util.Map;
|
||||||
|
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.location.LatLng;
|
import fr.free.nrw.commons.location.LatLng;
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class Place {
|
public class Place {
|
||||||
|
|
||||||
|
|
@ -58,10 +59,12 @@ public class Place {
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getWikiDataEntityId() {
|
public String getWikiDataEntityId() {
|
||||||
if (!hasWikidataLink()) {
|
if (!hasWikidataLink()) {
|
||||||
|
Timber.d("Wikidata entity ID is null for place with sitelink %s", siteLinks.toString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String wikiDataLink = siteLinks.getWikidataLink().toString();
|
String wikiDataLink = siteLinks.getWikidataLink().toString();
|
||||||
|
Timber.d("Wikidata entity is %s", wikiDataLink);
|
||||||
return wikiDataLink.replace("http://www.wikidata.org/entity/", "");
|
return wikiDataLink.replace("http://www.wikidata.org/entity/", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,7 +97,18 @@ public class Place {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("Place(%s@%s)", name, location);
|
return "Place{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", label='" + label + '\'' +
|
||||||
|
", longDescription='" + longDescription + '\'' +
|
||||||
|
", secondaryImageUrl='" + secondaryImageUrl + '\'' +
|
||||||
|
", location='" + location + '\'' +
|
||||||
|
", category='" + category + '\'' +
|
||||||
|
", image='" + image + '\'' +
|
||||||
|
", secondaryImage=" + secondaryImage +
|
||||||
|
", distance='" + distance + '\'' +
|
||||||
|
", siteLinks='" + siteLinks.toString() + '\'' +
|
||||||
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,15 @@ public class Sitelinks implements Parcelable {
|
||||||
return Uri.parse(sanitisedStringUrl);
|
return Uri.parse(sanitisedStringUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Sitelinks{" +
|
||||||
|
"wikipediaLink='" + wikipediaLink + '\'' +
|
||||||
|
", commonsLink='" + commonsLink + '\'' +
|
||||||
|
", wikidataLink='" + wikidataLink + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
private Sitelinks(Sitelinks.Builder builder) {
|
private Sitelinks(Sitelinks.Builder builder) {
|
||||||
this.wikidataLink = builder.wikidataLink;
|
this.wikidataLink = builder.wikidataLink;
|
||||||
this.wikipediaLink = builder.wikipediaLink;
|
this.wikipediaLink = builder.wikipediaLink;
|
||||||
|
|
|
||||||
|
|
@ -106,20 +106,20 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse {
|
||||||
ParcelFileDescriptor descriptor = contentResolver.openFileDescriptor(mediaUri, "r");
|
ParcelFileDescriptor descriptor = contentResolver.openFileDescriptor(mediaUri, "r");
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
if (descriptor != null) {
|
if (descriptor != null) {
|
||||||
imageObj = new GPSExtractor(descriptor.getFileDescriptor(), context, prefs);
|
imageObj = new GPSExtractor(descriptor.getFileDescriptor());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
String filePath = getPathOfMediaOrCopy();
|
String filePath = getPathOfMediaOrCopy();
|
||||||
if (filePath != null) {
|
if (filePath != null) {
|
||||||
imageObj = new GPSExtractor(filePath, context, prefs);
|
imageObj = new GPSExtractor(filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
decimalCoords = imageObj.getCoords(gpsEnabled);
|
decimalCoords = imageObj.getCoords();
|
||||||
if (decimalCoords == null || !imageObj.imageCoordsExists) {
|
if (decimalCoords == null || !imageObj.imageCoordsExists) {
|
||||||
//Find other photos taken around the same time which has gps coordinates
|
//Find other photos taken around the same time which has gps coordinates
|
||||||
if (!haveCheckedForOtherImages)
|
if (!haveCheckedForOtherImages)
|
||||||
findOtherImages(gpsEnabled);// Do not do repeat the process
|
findOtherImages();// Do not do repeat the process
|
||||||
} else {
|
} else {
|
||||||
useImageCoords();
|
useImageCoords();
|
||||||
}
|
}
|
||||||
|
|
@ -137,9 +137,8 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse {
|
||||||
/**
|
/**
|
||||||
* Find other images around the same location that were taken within the last 20 sec
|
* Find other images around the same location that were taken within the last 20 sec
|
||||||
*
|
*
|
||||||
* @param gpsEnabled True if GPS is enabled
|
|
||||||
*/
|
*/
|
||||||
private void findOtherImages(boolean gpsEnabled) {
|
private void findOtherImages() {
|
||||||
Timber.d("filePath" + getPathOfMediaOrCopy());
|
Timber.d("filePath" + getPathOfMediaOrCopy());
|
||||||
|
|
||||||
long timeOfCreation = new File(filePath).lastModified();//Time when the original image was created
|
long timeOfCreation = new File(filePath).lastModified();//Time when the original image was created
|
||||||
|
|
@ -161,17 +160,17 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse {
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
if (descriptor != null) {
|
if (descriptor != null) {
|
||||||
tempImageObj = new GPSExtractor(descriptor.getFileDescriptor(), context, prefs);
|
tempImageObj = new GPSExtractor(descriptor.getFileDescriptor());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (filePath != null) {
|
if (filePath != null) {
|
||||||
tempImageObj = new GPSExtractor(file.getAbsolutePath(), context, prefs);
|
tempImageObj = new GPSExtractor(file.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tempImageObj != null) {
|
if (tempImageObj != null) {
|
||||||
Timber.d("not null fild EXIF" + tempImageObj.imageCoordsExists + " coords" + tempImageObj.getCoords(gpsEnabled));
|
Timber.d("not null fild EXIF" + tempImageObj.imageCoordsExists + " coords" + tempImageObj.getCoords());
|
||||||
if (tempImageObj.getCoords(gpsEnabled) != null && tempImageObj.imageCoordsExists) {
|
if (tempImageObj.getCoords() != null && tempImageObj.imageCoordsExists) {
|
||||||
// Current image has gps coordinates and it's not current gps locaiton
|
// Current image has gps coordinates and it's not current gps locaiton
|
||||||
Timber.d("This file has image coords:" + file.getAbsolutePath());
|
Timber.d("This file has image coords:" + file.getAbsolutePath());
|
||||||
SimilarImageDialogFragment newFragment = new SimilarImageDialogFragment();
|
SimilarImageDialogFragment newFragment = new SimilarImageDialogFragment();
|
||||||
|
|
@ -250,7 +249,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse {
|
||||||
@Override
|
@Override
|
||||||
public void onPositiveResponse() {
|
public void onPositiveResponse() {
|
||||||
imageObj = tempImageObj;
|
imageObj = tempImageObj;
|
||||||
decimalCoords = imageObj.getCoords(false);// Not necessary to use gps as image already ha EXIF data
|
decimalCoords = imageObj.getCoords();// Not necessary to use gps as image already ha EXIF data
|
||||||
Timber.d("EXIF from tempImageObj");
|
Timber.d("EXIF from tempImageObj");
|
||||||
useImageCoords();
|
useImageCoords();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,6 @@
|
||||||
package fr.free.nrw.commons.upload;
|
package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.location.Criteria;
|
|
||||||
import android.location.Location;
|
|
||||||
import android.location.LocationListener;
|
|
||||||
import android.location.LocationManager;
|
|
||||||
import android.media.ExifInterface;
|
import android.media.ExifInterface;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
|
|
@ -19,31 +12,21 @@ import timber.log.Timber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts geolocation to be passed to API for category suggestions. If a picture with geolocation
|
* Extracts geolocation to be passed to API for category suggestions. If a picture with geolocation
|
||||||
* is uploaded, extract latitude and longitude from EXIF data of image. If a picture without
|
* is uploaded, extract latitude and longitude from EXIF data of image.
|
||||||
* geolocation is uploaded, retrieve user's location (if enabled in Settings).
|
|
||||||
*/
|
*/
|
||||||
public class GPSExtractor {
|
public class GPSExtractor {
|
||||||
|
|
||||||
private final Context context;
|
|
||||||
private SharedPreferences prefs;
|
|
||||||
private ExifInterface exif;
|
private ExifInterface exif;
|
||||||
private double decLatitude;
|
private double decLatitude;
|
||||||
private double decLongitude;
|
private double decLongitude;
|
||||||
private Double currentLatitude = null;
|
|
||||||
private Double currentLongitude = null;
|
|
||||||
public boolean imageCoordsExists;
|
public boolean imageCoordsExists;
|
||||||
private MyLocationListener myLocationListener;
|
|
||||||
private LocationManager locationManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct from the file descriptor of the image (only for API 24 or newer).
|
* Construct from the file descriptor of the image (only for API 24 or newer).
|
||||||
* @param fileDescriptor the file descriptor of the image
|
* @param fileDescriptor the file descriptor of the image
|
||||||
* @param context the context
|
|
||||||
*/
|
*/
|
||||||
@RequiresApi(24)
|
@RequiresApi(24)
|
||||||
public GPSExtractor(@NonNull FileDescriptor fileDescriptor, Context context, SharedPreferences prefs) {
|
public GPSExtractor(@NonNull FileDescriptor fileDescriptor) {
|
||||||
this.context = context;
|
|
||||||
this.prefs = prefs;
|
|
||||||
try {
|
try {
|
||||||
exif = new ExifInterface(fileDescriptor);
|
exif = new ExifInterface(fileDescriptor);
|
||||||
} catch (IOException | IllegalArgumentException e) {
|
} catch (IOException | IllegalArgumentException e) {
|
||||||
|
|
@ -54,65 +37,22 @@ public class GPSExtractor {
|
||||||
/**
|
/**
|
||||||
* Construct from the file path of the image.
|
* Construct from the file path of the image.
|
||||||
* @param path file path of the image
|
* @param path file path of the image
|
||||||
* @param context the context
|
*
|
||||||
*/
|
*/
|
||||||
public GPSExtractor(@NonNull String path, Context context, SharedPreferences prefs) {
|
public GPSExtractor(@NonNull String path) {
|
||||||
this.prefs = prefs;
|
|
||||||
try {
|
try {
|
||||||
exif = new ExifInterface(path);
|
exif = new ExifInterface(path);
|
||||||
} catch (IOException | IllegalArgumentException e) {
|
} catch (IOException | IllegalArgumentException e) {
|
||||||
Timber.w(e);
|
Timber.w(e);
|
||||||
}
|
}
|
||||||
this.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if user enabled retrieval of their current location in Settings
|
|
||||||
* @return true if enabled, false if disabled
|
|
||||||
*/
|
|
||||||
private boolean gpsPreferenceEnabled() {
|
|
||||||
boolean gpsPref = prefs.getBoolean("allowGps", false);
|
|
||||||
Timber.d("Gps pref set to: %b", gpsPref);
|
|
||||||
return gpsPref;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a LocationManager to listen for current location
|
|
||||||
*/
|
|
||||||
protected void registerLocationManager() {
|
|
||||||
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
|
||||||
Criteria criteria = new Criteria();
|
|
||||||
String provider = locationManager.getBestProvider(criteria, true);
|
|
||||||
myLocationListener = new MyLocationListener();
|
|
||||||
|
|
||||||
try {
|
|
||||||
locationManager.requestLocationUpdates(provider, 400, 1, myLocationListener);
|
|
||||||
Location location = locationManager.getLastKnownLocation(provider);
|
|
||||||
if (location != null) {
|
|
||||||
myLocationListener.onLocationChanged(location);
|
|
||||||
}
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
Timber.e(e, "Illegal argument exception");
|
|
||||||
} catch (SecurityException e) {
|
|
||||||
Timber.e(e, "Security exception");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unregisterLocationManager() {
|
|
||||||
try {
|
|
||||||
locationManager.removeUpdates(myLocationListener);
|
|
||||||
} catch (SecurityException e) {
|
|
||||||
Timber.e(e, "Security exception");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts geolocation (either of image from EXIF data, or of user)
|
* Extracts geolocation (either of image from EXIF data, or of user)
|
||||||
* @param useGPS set to true if location permissions allowed (by API 23), false if disallowed
|
|
||||||
* @return coordinates as string (needs to be passed as a String in API query)
|
* @return coordinates as string (needs to be passed as a String in API query)
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getCoords(boolean useGPS) {
|
public String getCoords() {
|
||||||
String latitude;
|
String latitude;
|
||||||
String longitude;
|
String longitude;
|
||||||
String latitudeRef;
|
String latitudeRef;
|
||||||
|
|
@ -120,30 +60,9 @@ public class GPSExtractor {
|
||||||
String decimalCoords;
|
String decimalCoords;
|
||||||
|
|
||||||
//If image has no EXIF data and user has enabled GPS setting, get user's location
|
//If image has no EXIF data and user has enabled GPS setting, get user's location
|
||||||
|
//TODO: Always return null as a temporary fix for #1599
|
||||||
if (exif == null || exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE) == null) {
|
if (exif == null || exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE) == null) {
|
||||||
if (useGPS) {
|
|
||||||
registerLocationManager();
|
|
||||||
|
|
||||||
imageCoordsExists = false;
|
|
||||||
Timber.d("EXIF data has no location info");
|
|
||||||
|
|
||||||
//Check what user's preference is for automatic location detection
|
|
||||||
boolean gpsPrefEnabled = gpsPreferenceEnabled();
|
|
||||||
|
|
||||||
//Check that currentLatitude and currentLongitude have been
|
|
||||||
// explicitly set by MyLocationListener
|
|
||||||
// and do not default to (0.0,0.0)
|
|
||||||
if (gpsPrefEnabled && currentLatitude != null && currentLongitude != null) {
|
|
||||||
Timber.d("Current location values: Lat = %f Long = %f",
|
|
||||||
currentLatitude, currentLongitude);
|
|
||||||
return String.valueOf(currentLatitude) + "|" + String.valueOf(currentLongitude);
|
|
||||||
} else {
|
|
||||||
// No coords found
|
|
||||||
return null;
|
return null;
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
//If image has EXIF data, extract image coords
|
//If image has EXIF data, extract image coords
|
||||||
imageCoordsExists = true;
|
imageCoordsExists = true;
|
||||||
|
|
@ -166,33 +85,6 @@ public class GPSExtractor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Listen for user's location when it changes
|
|
||||||
*/
|
|
||||||
private class MyLocationListener implements LocationListener {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLocationChanged(Location location) {
|
|
||||||
currentLatitude = location.getLatitude();
|
|
||||||
currentLongitude = location.getLongitude();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusChanged(String provider, int status, Bundle extras) {
|
|
||||||
Timber.d("%s's status changed to %d", provider, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onProviderEnabled(String provider) {
|
|
||||||
Timber.d("Provider %s enabled", provider);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onProviderDisabled(String provider) {
|
|
||||||
Timber.d("Provider %s disabled", provider);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getDecLatitude() {
|
public double getDecLatitude() {
|
||||||
return decLatitude;
|
return decLatitude;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -329,18 +329,18 @@ public class MultipleShareActivity extends AuthenticatedActivity
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(imageUri,"r");
|
ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(imageUri,"r");
|
||||||
if (fd != null) {
|
if (fd != null) {
|
||||||
gpsExtractor = new GPSExtractor(fd.getFileDescriptor(),this,prefs);
|
gpsExtractor = new GPSExtractor(fd.getFileDescriptor());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
String filePath = FileUtils.getPath(this,imageUri);
|
String filePath = FileUtils.getPath(this,imageUri);
|
||||||
if (filePath != null) {
|
if (filePath != null) {
|
||||||
gpsExtractor = new GPSExtractor(filePath,this,prefs);
|
gpsExtractor = new GPSExtractor(filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gpsExtractor != null) {
|
if (gpsExtractor != null) {
|
||||||
//get image coordinates from exif data or user location
|
//get image coordinates from exif data or user location
|
||||||
return gpsExtractor.getCoords(locationPermitted);
|
return gpsExtractor.getCoords();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (FileNotFoundException fnfe) {
|
} catch (FileNotFoundException fnfe) {
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,7 @@ import android.os.Environment;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.design.widget.Snackbar;
|
|
||||||
import android.support.graphics.drawable.VectorDrawableCompat;
|
import android.support.graphics.drawable.VectorDrawableCompat;
|
||||||
import android.support.v4.app.ActivityCompat;
|
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
@ -69,6 +67,7 @@ import timber.log.Timber;
|
||||||
import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.DUPLICATE_PROCEED;
|
import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.DUPLICATE_PROCEED;
|
||||||
import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.NO_DUPLICATE;
|
import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.NO_DUPLICATE;
|
||||||
import static fr.free.nrw.commons.upload.FileUtils.getSHA1;
|
import static fr.free.nrw.commons.upload.FileUtils.getSHA1;
|
||||||
|
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity for the title/desc screen after image is selected. Also starts processing image
|
* Activity for the title/desc screen after image is selected. Also starts processing image
|
||||||
|
|
@ -78,7 +77,6 @@ public class ShareActivity
|
||||||
extends AuthenticatedActivity
|
extends AuthenticatedActivity
|
||||||
implements SingleUploadFragment.OnUploadActionInitiated,
|
implements SingleUploadFragment.OnUploadActionInitiated,
|
||||||
OnCategoriesSaveHandler {
|
OnCategoriesSaveHandler {
|
||||||
private static final int REQUEST_PERM_ON_CREATE_LOCATION = 2;
|
|
||||||
private static final int REQUEST_PERM_ON_SUBMIT_STORAGE = 4;
|
private static final int REQUEST_PERM_ON_SUBMIT_STORAGE = 4;
|
||||||
//Had to make them class variables, to extract out the click listeners, also I see no harm in this
|
//Had to make them class variables, to extract out the click listeners, also I see no harm in this
|
||||||
final Rect startBounds = new Rect();
|
final Rect startBounds = new Rect();
|
||||||
|
|
@ -131,7 +129,6 @@ public class ShareActivity
|
||||||
private String title;
|
private String title;
|
||||||
private String description;
|
private String description;
|
||||||
private String wikiDataEntityId;
|
private String wikiDataEntityId;
|
||||||
private Snackbar snackbar;
|
|
||||||
private boolean duplicateCheckPassed = false;
|
private boolean duplicateCheckPassed = false;
|
||||||
private boolean isNearbyUpload = false;
|
private boolean isNearbyUpload = false;
|
||||||
private Animator CurrentAnimator;
|
private Animator CurrentAnimator;
|
||||||
|
|
@ -295,22 +292,6 @@ public class ShareActivity
|
||||||
Timber.d("Uri: %s", mediaUri.toString());
|
Timber.d("Uri: %s", mediaUri.toString());
|
||||||
Timber.d("Ext storage dir: %s", Environment.getExternalStorageDirectory());
|
Timber.d("Ext storage dir: %s", Environment.getExternalStorageDirectory());
|
||||||
|
|
||||||
useNewPermissions = false;
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
useNewPermissions = true;
|
|
||||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
locationPermitted = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check location permissions if M or newer for category suggestions, request via snackbar if not present
|
|
||||||
if (!locationPermitted) {
|
|
||||||
requestPermissionUsingSnackBar(
|
|
||||||
getString(R.string.location_permission_rationale),
|
|
||||||
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
|
|
||||||
REQUEST_PERM_ON_CREATE_LOCATION);
|
|
||||||
}
|
|
||||||
|
|
||||||
SingleUploadFragment shareView = (SingleUploadFragment) getSupportFragmentManager().findFragmentByTag("shareView");
|
SingleUploadFragment shareView = (SingleUploadFragment) getSupportFragmentManager().findFragmentByTag("shareView");
|
||||||
categorizationFragment = (CategorizationFragment) getSupportFragmentManager().findFragmentByTag("categorization");
|
categorizationFragment = (CategorizationFragment) getSupportFragmentManager().findFragmentByTag("categorization");
|
||||||
if (shareView == null && categorizationFragment == null) {
|
if (shareView == null && categorizationFragment == null) {
|
||||||
|
|
@ -345,6 +326,8 @@ public class ShareActivity
|
||||||
if (intent.hasExtra("isDirectUpload")) {
|
if (intent.hasExtra("isDirectUpload")) {
|
||||||
Timber.d("This was initiated by a direct upload from Nearby");
|
Timber.d("This was initiated by a direct upload from Nearby");
|
||||||
isNearbyUpload = true;
|
isNearbyUpload = true;
|
||||||
|
wikiDataEntityId = intent.getStringExtra(WIKIDATA_ENTITY_ID_PREF);
|
||||||
|
Timber.d("Received wikiDataEntityId from contribution controller %s", wikiDataEntityId);
|
||||||
}
|
}
|
||||||
mimeType = intent.getType();
|
mimeType = intent.getType();
|
||||||
}
|
}
|
||||||
|
|
@ -409,7 +392,7 @@ public class ShareActivity
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles BOTH snackbar permission request (for location) and submit button permission request (for storage)
|
* Handles submit button permission request (for storage)
|
||||||
*
|
*
|
||||||
* @param requestCode type of request
|
* @param requestCode type of request
|
||||||
* @param permissions permissions requested
|
* @param permissions permissions requested
|
||||||
|
|
@ -418,41 +401,19 @@ public class ShareActivity
|
||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||||
switch (requestCode) {
|
switch (requestCode) {
|
||||||
case REQUEST_PERM_ON_CREATE_LOCATION: {
|
|
||||||
if (grantResults.length >= 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
locationPermitted = true;
|
|
||||||
checkIfFileExists();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Storage (from submit button) - this needs to be separate from (1) because only the
|
// Storage (from submit button) - this needs to be separate from (1) because only the
|
||||||
// submit button should bring user to next screen
|
// submit button should bring user to next screen
|
||||||
case REQUEST_PERM_ON_SUBMIT_STORAGE: {
|
case REQUEST_PERM_ON_SUBMIT_STORAGE: {
|
||||||
if (grantResults.length >= 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
if (grantResults.length >= 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||||
//It is OK to call this at both (1) and (4) because if perm had been granted at
|
|
||||||
//snackbar, user should not be prompted at submit button
|
|
||||||
checkIfFileExists();
|
checkIfFileExists();
|
||||||
|
|
||||||
//Uploading only begins if storage permission granted from arrow icon
|
//Uploading only begins if storage permission granted from arrow icon
|
||||||
uploadBegins();
|
uploadBegins();
|
||||||
snackbar.dismiss();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays Snackbar to ask for location permissions
|
|
||||||
*/
|
|
||||||
private Snackbar requestPermissionUsingSnackBar(String rationale, final String[] perms, final int code) {
|
|
||||||
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), rationale,
|
|
||||||
Snackbar.LENGTH_INDEFINITE).setAction(R.string.ok,
|
|
||||||
view -> ActivityCompat.requestPermissions(ShareActivity.this, perms, code));
|
|
||||||
snackbar.show();
|
|
||||||
return snackbar;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if file user wants to upload already exists on Commons
|
* Check if file user wants to upload already exists on Commons
|
||||||
*/
|
*/
|
||||||
|
|
@ -489,12 +450,6 @@ public class ShareActivity
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
try {
|
|
||||||
gpsObj.unregisterLocationManager();
|
|
||||||
Timber.d("Unregistered locationManager");
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Timber.d("locationManager does not exist, not unregistered");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package fr.free.nrw.commons.upload;
|
package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.accounts.Account;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
@ -13,6 +15,7 @@ import android.os.AsyncTask;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
@ -22,10 +25,15 @@ import java.util.concurrent.Executors;
|
||||||
|
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.HandlerService;
|
import fr.free.nrw.commons.HandlerService;
|
||||||
|
|
||||||
import fr.free.nrw.commons.auth.LoginActivity;
|
import fr.free.nrw.commons.auth.LoginActivity;
|
||||||
|
|
||||||
|
import fr.free.nrw.commons.R;
|
||||||
|
|
||||||
import fr.free.nrw.commons.auth.SessionManager;
|
import fr.free.nrw.commons.auth.SessionManager;
|
||||||
import fr.free.nrw.commons.contributions.Contribution;
|
import fr.free.nrw.commons.contributions.Contribution;
|
||||||
import fr.free.nrw.commons.settings.Prefs;
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
|
import fr.free.nrw.commons.utils.ViewUtil;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class UploadController {
|
public class UploadController {
|
||||||
|
|
@ -95,6 +103,7 @@ public class UploadController {
|
||||||
public void startUpload(String title, Uri mediaUri, String description, String mimeType, String source, String decimalCoords, String wikiDataEntityId, ContributionUploadProgress onComplete) {
|
public void startUpload(String title, Uri mediaUri, String description, String mimeType, String source, String decimalCoords, String wikiDataEntityId, ContributionUploadProgress onComplete) {
|
||||||
Contribution contribution;
|
Contribution contribution;
|
||||||
|
|
||||||
|
|
||||||
//TODO: Modify this to include coords
|
//TODO: Modify this to include coords
|
||||||
contribution = new Contribution(mediaUri, null, title, description, -1,
|
contribution = new Contribution(mediaUri, null, title, description, -1,
|
||||||
null, null, sessionManager.getCurrentAccount().name,
|
null, null, sessionManager.getCurrentAccount().name,
|
||||||
|
|
@ -107,6 +116,20 @@ public class UploadController {
|
||||||
//Calls the next overloaded method
|
//Calls the next overloaded method
|
||||||
startUpload(contribution, onComplete);
|
startUpload(contribution, onComplete);
|
||||||
|
|
||||||
|
Timber.d("Wikidata entity ID received from Share activity is %s", wikiDataEntityId);
|
||||||
|
//TODO: Modify this to include coords
|
||||||
|
Account currentAccount = sessionManager.getCurrentAccount();
|
||||||
|
if(currentAccount == null) {
|
||||||
|
Timber.d("Current account is null");
|
||||||
|
ViewUtil.showLongToast(context, context.getString(R.string.user_not_logged_in));
|
||||||
|
sessionManager.forceLogin(context);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
contribution = new Contribution(mediaUri, null, title, description, -1,
|
||||||
|
null, null, currentAccount.name,
|
||||||
|
CommonsApplication.DEFAULT_EDIT_SUMMARY, decimalCoords);
|
||||||
|
|
||||||
|
|
||||||
contribution.setTag("mimeType", mimeType);
|
contribution.setTag("mimeType", mimeType);
|
||||||
contribution.setSource(source);
|
contribution.setSource(source);
|
||||||
contribution.setWikiDataEntityId(wikiDataEntityId);
|
contribution.setWikiDataEntityId(wikiDataEntityId);
|
||||||
|
|
@ -120,6 +143,7 @@ public class UploadController {
|
||||||
* @param contribution the contribution object
|
* @param contribution the contribution object
|
||||||
* @param onComplete the progress tracker
|
* @param onComplete the progress tracker
|
||||||
*/
|
*/
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
public void startUpload(final Contribution contribution, final ContributionUploadProgress onComplete) {
|
public void startUpload(final Contribution contribution, final ContributionUploadProgress onComplete) {
|
||||||
//Set creator, desc, and license
|
//Set creator, desc, and license
|
||||||
if (TextUtils.isEmpty(contribution.getCreator())) {
|
if (TextUtils.isEmpty(contribution.getCreator())) {
|
||||||
|
|
|
||||||
|
|
@ -251,8 +251,10 @@ public class UploadService extends HandlerService<Contribution> {
|
||||||
|
|
||||||
String resultStatus = uploadResult.getResultStatus();
|
String resultStatus = uploadResult.getResultStatus();
|
||||||
if (!resultStatus.equals("Success")) {
|
if (!resultStatus.equals("Success")) {
|
||||||
|
Timber.d("Contribution upload failed. Wikidata entity won't be edited");
|
||||||
showFailedNotification(contribution);
|
showFailedNotification(contribution);
|
||||||
} else {
|
} else {
|
||||||
|
Timber.d("Contribution upload success. Initiating Wikidata edit for entity id %s", contribution.getWikiDataEntityId());
|
||||||
wikidataEditService.createClaimWithLogging(contribution.getWikiDataEntityId(), filename);
|
wikidataEditService.createClaimWithLogging(contribution.getWikiDataEntityId(), filename);
|
||||||
contribution.setFilename(uploadResult.getCanonicalFilename());
|
contribution.setFilename(uploadResult.getCanonicalFilename());
|
||||||
contribution.setImageUrl(uploadResult.getImageUrl());
|
contribution.setImageUrl(uploadResult.getImageUrl());
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package fr.free.nrw.commons.wikidata;
|
||||||
|
|
||||||
|
public class WikidataConstants {
|
||||||
|
public static final String WIKIDATA_ENTITY_ID_PREF = "WikiDataEntityId";
|
||||||
|
}
|
||||||
|
|
@ -48,10 +48,16 @@ public class WikidataEditService {
|
||||||
* @param fileName
|
* @param fileName
|
||||||
*/
|
*/
|
||||||
public void createClaimWithLogging(String wikidataEntityId, String fileName) {
|
public void createClaimWithLogging(String wikidataEntityId, String fileName) {
|
||||||
if(wikidataEntityId == null
|
if(wikidataEntityId == null) {
|
||||||
|| fileName == null) {
|
Timber.d("Skipping creation of claim as Wikidata entity ID is null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(fileName == null) {
|
||||||
|
Timber.d("Skipping creation of claim as fileName entity ID is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
editWikidataProperty(wikidataEntityId, fileName);
|
editWikidataProperty(wikidataEntityId, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -144,4 +144,6 @@
|
||||||
<string name="notifications_talk_page_message">%1$s رسالة على صفحة الحديث</string>
|
<string name="notifications_talk_page_message">%1$s رسالة على صفحة الحديث</string>
|
||||||
<string name="notifications_mention">%1$s ذكر لك على %2$s.</string>
|
<string name="notifications_mention">%1$s ذكر لك على %2$s.</string>
|
||||||
<string name="share_app_title">شارك التطبيق</string>
|
<string name="share_app_title">شارك التطبيق</string>
|
||||||
|
<string name="appwidget_img">صورة اليوم</string>
|
||||||
|
<string name="app_widget_heading">صورة اليوم</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,8 @@
|
||||||
<string name="no_internet">ইন্টারনেট অনুপলব্ধ</string>
|
<string name="no_internet">ইন্টারনেট অনুপলব্ধ</string>
|
||||||
<string name="internet_established">ইন্টারনেট উপলব্ধ</string>
|
<string name="internet_established">ইন্টারনেট উপলব্ধ</string>
|
||||||
<string name="no_notifications">কোন বিজ্ঞপ্তি পাওয়া যায়নি</string>
|
<string name="no_notifications">কোন বিজ্ঞপ্তি পাওয়া যায়নি</string>
|
||||||
|
<string name="about_translate_title">ভাষাসমূহ</string>
|
||||||
|
<string name="about_translate_cancel">বাতিল</string>
|
||||||
<string name="retry">পুনঃচেষ্টা করুন</string>
|
<string name="retry">পুনঃচেষ্টা করুন</string>
|
||||||
<string name="showcase_view_got_it_button">বুঝেছি!</string>
|
<string name="showcase_view_got_it_button">বুঝেছি!</string>
|
||||||
<string name="no_images_found">কোন চিত্র পাওয়া যায়নি!</string>
|
<string name="no_images_found">কোন চিত্র পাওয়া যায়নি!</string>
|
||||||
|
|
|
||||||
|
|
@ -284,4 +284,5 @@
|
||||||
<string name="wikidata_edit_failure">Fehler bei der Aktualisierung des dazugehörigen Wikidata-Objekts!</string>
|
<string name="wikidata_edit_failure">Fehler bei der Aktualisierung des dazugehörigen Wikidata-Objekts!</string>
|
||||||
<string name="menu_set_wallpaper">Hintergrundbild festlegen</string>
|
<string name="menu_set_wallpaper">Hintergrundbild festlegen</string>
|
||||||
<string name="wallpaper_set_successfully">Hintergrundbild erfolgreich festgelegt!</string>
|
<string name="wallpaper_set_successfully">Hintergrundbild erfolgreich festgelegt!</string>
|
||||||
|
<string name="user_not_logged_in">Sitzung abgelaufen. Bitte erneut anmelden.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -288,4 +288,5 @@
|
||||||
<string name="wikidata_edit_failure">Αποτυχία ενημέρωσης της αντιστοιχούσας οντότητας του Wikidata!</string>
|
<string name="wikidata_edit_failure">Αποτυχία ενημέρωσης της αντιστοιχούσας οντότητας του Wikidata!</string>
|
||||||
<string name="menu_set_wallpaper">Ρύθμιση ταπετσαρίας</string>
|
<string name="menu_set_wallpaper">Ρύθμιση ταπετσαρίας</string>
|
||||||
<string name="wallpaper_set_successfully">Η ταπετσαρία ρυθμίστηκε επιτυχώς!</string>
|
<string name="wallpaper_set_successfully">Η ταπετσαρία ρυθμίστηκε επιτυχώς!</string>
|
||||||
|
<string name="user_not_logged_in">Η συνεδρία σύνδεσης έληξε, παρακαλώ συνδεθείτε ξανά.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Authors:
|
<!-- Authors:
|
||||||
|
* Amaia
|
||||||
* An13sa
|
* An13sa
|
||||||
* Fitoschido
|
* Fitoschido
|
||||||
* Mikel Ibaiba
|
* Mikel Ibaiba
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
<string name="menu_settings">Hobespenak</string>
|
<string name="menu_settings">Hobespenak</string>
|
||||||
<string name="username">Erabiltzaile izena</string>
|
<string name="username">Erabiltzaile izena</string>
|
||||||
<string name="password">Pasahitza</string>
|
<string name="password">Pasahitza</string>
|
||||||
|
<string name="login_credential">Sartu zure Commons Beta kontura</string>
|
||||||
<string name="login">Saioa hasi</string>
|
<string name="login">Saioa hasi</string>
|
||||||
<string name="forgot_password">Pasahitza ahaztu duzu?</string>
|
<string name="forgot_password">Pasahitza ahaztu duzu?</string>
|
||||||
<string name="signup">Eman izena</string>
|
<string name="signup">Eman izena</string>
|
||||||
|
|
@ -25,7 +27,7 @@
|
||||||
<string name="login_success">Saio hasiera egina</string>
|
<string name="login_success">Saio hasiera egina</string>
|
||||||
<string name="login_failed">Saio hasieran akatsa!</string>
|
<string name="login_failed">Saio hasieran akatsa!</string>
|
||||||
<string name="upload_failed">Fitxategia ez da aurkitu. Mesedez saiatu beste batekin.</string>
|
<string name="upload_failed">Fitxategia ez da aurkitu. Mesedez saiatu beste batekin.</string>
|
||||||
<string name="authentication_failed" fuzzy="true">Autentifikazioan akatsa!</string>
|
<string name="authentication_failed">Autentifikazioan akatsa, mesedez saiatu berriro sartzen</string>
|
||||||
<string name="uploading_started">Igoera hasi da!</string>
|
<string name="uploading_started">Igoera hasi da!</string>
|
||||||
<string name="upload_completed_notification_title">%1$s igotzen!</string>
|
<string name="upload_completed_notification_title">%1$s igotzen!</string>
|
||||||
<string name="upload_completed_notification_text">Ukitu igotakoa ikusteko</string>
|
<string name="upload_completed_notification_text">Ukitu igotakoa ikusteko</string>
|
||||||
|
|
@ -46,10 +48,13 @@
|
||||||
<string name="menu_share">Partekatu</string>
|
<string name="menu_share">Partekatu</string>
|
||||||
<string name="menu_open_in_browser">Ikusi nabigatzailean</string>
|
<string name="menu_open_in_browser">Ikusi nabigatzailean</string>
|
||||||
<string name="share_title_hint">Izenburua</string>
|
<string name="share_title_hint">Izenburua</string>
|
||||||
|
<string name="add_title_toast">Mesedez, eman izenburu bat fitxategi honetarako</string>
|
||||||
<string name="share_description_hint">Deskribapena</string>
|
<string name="share_description_hint">Deskribapena</string>
|
||||||
<string name="login_failed_network">Ezin izan da sartu - sarean akatsa</string>
|
<string name="login_failed_network">Ezin izan da sartu - sarean akatsa</string>
|
||||||
|
<string name="login_failed_wrong_credentials">Ezin da sartu. Mesedez, berrikusi zure erabiltzaile izena eta pasahitza</string>
|
||||||
<string name="login_failed_throttled">Sartzeko saiakera txar gehiegi. Mesedez saiatu zaitez minutu batzuk barru.</string>
|
<string name="login_failed_throttled">Sartzeko saiakera txar gehiegi. Mesedez saiatu zaitez minutu batzuk barru.</string>
|
||||||
<string name="login_failed_blocked">Barka, baina erabiltzaile hau blokeatuta dago Commonsen</string>
|
<string name="login_failed_blocked">Barka, baina erabiltzaile hau blokeatuta dago Commonsen</string>
|
||||||
|
<string name="login_failed_2fa_needed">Zure bi faktoreko autentifikazio kodea eman behar duzu.</string>
|
||||||
<string name="login_failed_generic">Saio hasieran akatsa</string>
|
<string name="login_failed_generic">Saio hasieran akatsa</string>
|
||||||
<string name="share_upload_button">Igo</string>
|
<string name="share_upload_button">Igo</string>
|
||||||
<string name="multiple_share_base_title">Izena eman bilduma honi</string>
|
<string name="multiple_share_base_title">Izena eman bilduma honi</string>
|
||||||
|
|
@ -59,6 +64,7 @@
|
||||||
<string name="menu_save_categories">Gorde</string>
|
<string name="menu_save_categories">Gorde</string>
|
||||||
<string name="refresh_button">Eguneratu</string>
|
<string name="refresh_button">Eguneratu</string>
|
||||||
<string name="display_list_button">Zerrenda</string>
|
<string name="display_list_button">Zerrenda</string>
|
||||||
|
<string name="gps_disabled">GPSa desgaituta dago gailu honetan. Gaitu nahi duzu?</string>
|
||||||
<string name="enable_gps">GPSa gaitu</string>
|
<string name="enable_gps">GPSa gaitu</string>
|
||||||
<string name="contributions_subtitle_zero">Oraindik ez da ezer igo</string>
|
<string name="contributions_subtitle_zero">Oraindik ez da ezer igo</string>
|
||||||
<plurals name="contributions_subtitle">
|
<plurals name="contributions_subtitle">
|
||||||
|
|
@ -71,6 +77,7 @@
|
||||||
<string name="categories_activity_title">Kategoriak</string>
|
<string name="categories_activity_title">Kategoriak</string>
|
||||||
<string name="title_activity_settings">Hobespenak</string>
|
<string name="title_activity_settings">Hobespenak</string>
|
||||||
<string name="title_activity_signup">Eman izena</string>
|
<string name="title_activity_signup">Eman izena</string>
|
||||||
|
<string name="title_activity_featured_images">Nabarmendutako irudiak</string>
|
||||||
<string name="menu_about">Honi buruz</string>
|
<string name="menu_about">Honi buruz</string>
|
||||||
<string name="about_license" fuzzy="true">Open Source softwarea <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache v2 Lizentziaren</a> pean egina. Wikimedia Commons eta bere logoa Wikimedia Fundazioaren marka erregistratuak dira eta Wikimedia Fundazioaren baimenarekin erabiltzen dira. Ez gaude Wikimedia Fundaziora afiliatuta.</string>
|
<string name="about_license" fuzzy="true">Open Source softwarea <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache v2 Lizentziaren</a> pean egina. Wikimedia Commons eta bere logoa Wikimedia Fundazioaren marka erregistratuak dira eta Wikimedia Fundazioaren baimenarekin erabiltzen dira. Ez gaude Wikimedia Fundaziora afiliatuta.</string>
|
||||||
<string name="about_improve" fuzzy="true">GitHub-eko <a href=\"https://github.com/commons-app/apps-android-commons\">Iturria</a> eta <a href=\"https://commons-app.github.io/\">webgunea</a>. <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-eko gai</a> berria sortu erroreen berri emateko.</string>
|
<string name="about_improve" fuzzy="true">GitHub-eko <a href=\"https://github.com/commons-app/apps-android-commons\">Iturria</a> eta <a href=\"https://commons-app.github.io/\">webgunea</a>. <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-eko gai</a> berria sortu erroreen berri emateko.</string>
|
||||||
|
|
@ -111,8 +118,24 @@
|
||||||
<string name="license_name_cc_by_sa_4_0">CC BY-SA 4.0</string>
|
<string name="license_name_cc_by_sa_4_0">CC BY-SA 4.0</string>
|
||||||
<string name="license_name_cc_by_4_0">CC BY 4.0</string>
|
<string name="license_name_cc_by_4_0">CC BY 4.0</string>
|
||||||
<string name="license_name_cc_zero">CC Zero</string>
|
<string name="license_name_cc_zero">CC Zero</string>
|
||||||
|
<string name="tutorial_1_text">Wikimedia Commons-ek Wikipedian erabiltzen diren irudi gehienak barne hartzen ditu.</string>
|
||||||
|
<string name="tutorial_1_subtext">Zure irudiek mundu osoko jendeari irakasten laguntzen dute!</string>
|
||||||
|
<string name="tutorial_2_text">Mesedez, igo bakarrik zuk ateratako edo sortutako irudiak:</string>
|
||||||
|
<string name="tutorial_2_subtext">Naturako elementuak (loreak, animaliak, mendiak)\n• Objektu erabilgarriak (bizikletak, tren geltokiak)\n• Pertsona famatuak (zure alkatea, zuk ezagututako atleta olinpikoren bat)</string>
|
||||||
|
<string name="tutorial_2_subtext_1">Naturako elementuak (loreak, animaliak, mendiak)</string>
|
||||||
|
<string name="tutorial_2_subtext_2">Objektu erabilgarriak (bizikletak, tren geltokiak)</string>
|
||||||
|
<string name="tutorial_2_subtext_3">Pertsona famatuak (zure alkatea, zuk ezagututako atleta olinpikoren bat...)</string>
|
||||||
<string name="tutorial_3_text">Mesedez EZ igo:</string>
|
<string name="tutorial_3_text">Mesedez EZ igo:</string>
|
||||||
|
<string name="tutorial_3_subtext_2">Internetetik jaitsitako irudiak</string>
|
||||||
<string name="tutorial_4_text">Igoera adibidea:</string>
|
<string name="tutorial_4_text">Igoera adibidea:</string>
|
||||||
|
<string name="tutorial_4_subtext">- Izenburua: Sydney Opera House\n- Deskribapena: Sydney Opera House badiaren beste aldetik ikusita\n- Kategoriak: Sydney Opera House mendebaldetik, Sydney Opera House urrunetik ikusita</string>
|
||||||
|
<string name="tutorial_4_subtext_1">Izenburua: Sydney Opera House</string>
|
||||||
|
<string name="tutorial_4_subtext_2">Deskribapena: Sydney Opera House badiaren beste aldetik ikusita</string>
|
||||||
|
<string name="tutorial_4_subtext_3">Kategoriak: Sydney Opera House mendebaldetik, Sydney Opera House urrunetik ikusita</string>
|
||||||
|
<string name="welcome_wikipedia_text">Lagundu zuren irudiekin. Lagundu Wikipediako artikuluei bizia ematen!</string>
|
||||||
|
<string name="welcome_wikipedia_subtext">Wikipediako irudiak Wikimedia Commons-etik datoz.</string>
|
||||||
|
<string name="welcome_copyright_text">Zure irudiek mundu osoko jendeari irakasten laguntzen dute.</string>
|
||||||
|
<string name="welcome_copyright_subtext">Saihestu copyright-a daukaten materialak, Interneten aurkitutakoak edo posterretakoak, liburuen azalak, etab.</string>
|
||||||
<string name="welcome_final_text">Lortu duzula uste duzu?</string>
|
<string name="welcome_final_text">Lortu duzula uste duzu?</string>
|
||||||
<string name="welcome_final_button_text">Bai!</string>
|
<string name="welcome_final_button_text">Bai!</string>
|
||||||
<string name="detail_panel_cats_label">Kategoriak</string>
|
<string name="detail_panel_cats_label">Kategoriak</string>
|
||||||
|
|
@ -130,6 +153,7 @@
|
||||||
<string name="media_detail_title">Izenburua</string>
|
<string name="media_detail_title">Izenburua</string>
|
||||||
<string name="media_detail_media_title">Fitxategiaren izenburua</string>
|
<string name="media_detail_media_title">Fitxategiaren izenburua</string>
|
||||||
<string name="media_detail_description">Deskribapena</string>
|
<string name="media_detail_description">Deskribapena</string>
|
||||||
|
<string name="media_detail_author">Egilea</string>
|
||||||
<string name="media_detail_uploaded_date">Igoera data</string>
|
<string name="media_detail_uploaded_date">Igoera data</string>
|
||||||
<string name="media_detail_license">Lizentzia</string>
|
<string name="media_detail_license">Lizentzia</string>
|
||||||
<string name="media_detail_coordinates">Koordenatuak</string>
|
<string name="media_detail_coordinates">Koordenatuak</string>
|
||||||
|
|
@ -138,7 +162,9 @@
|
||||||
<string name="_2fa_code">2FA Kodea</string>
|
<string name="_2fa_code">2FA Kodea</string>
|
||||||
<string name="maximum_limit">Gehienezko muga</string>
|
<string name="maximum_limit">Gehienezko muga</string>
|
||||||
<string name="maximum_limit_alert">500 baino gehiago ezin dira erakutsi</string>
|
<string name="maximum_limit_alert">500 baino gehiago ezin dira erakutsi</string>
|
||||||
|
<string name="logout_verification">Benetan itxi nahi duzu saioa?</string>
|
||||||
<string name="commons_logo">Commonsen logoa</string>
|
<string name="commons_logo">Commonsen logoa</string>
|
||||||
|
<string name="commons_website">Commons webgunea</string>
|
||||||
<string name="background_image">Atzealdeko irudia</string>
|
<string name="background_image">Atzealdeko irudia</string>
|
||||||
<string name="mediaimage_failed">Media irudiak kale egin du</string>
|
<string name="mediaimage_failed">Media irudiak kale egin du</string>
|
||||||
<string name="no_image_found">Ez da irudirik aurkitu</string>
|
<string name="no_image_found">Ez da irudirik aurkitu</string>
|
||||||
|
|
@ -163,12 +189,36 @@
|
||||||
<string name="navigation_item_feedback">Atzeraelikadura</string>
|
<string name="navigation_item_feedback">Atzeraelikadura</string>
|
||||||
<string name="navigation_item_logout">Saioa itxi</string>
|
<string name="navigation_item_logout">Saioa itxi</string>
|
||||||
<string name="navigation_item_info">Tutoriala</string>
|
<string name="navigation_item_info">Tutoriala</string>
|
||||||
|
<string name="navigation_item_notification">Jakinarazpenak</string>
|
||||||
<string name="no_description_found">Deskripziorik ez da aurkitu</string>
|
<string name="no_description_found">Deskripziorik ez da aurkitu</string>
|
||||||
<string name="nearby_info_menu_commons_article">Artxibo orrialde komuna</string>
|
<string name="nearby_info_menu_commons_article">Artxibo orrialde komuna</string>
|
||||||
<string name="nearby_info_menu_wikidata_article">Wikidata itema</string>
|
<string name="nearby_info_menu_wikidata_article">Wikidata itema</string>
|
||||||
|
<string name="nearby_info_menu_wikipedia_article">Wikipediako artikulua</string>
|
||||||
<string name="error_while_cache">Argazkiak hartzerakoan sortutako akatsa</string>
|
<string name="error_while_cache">Argazkiak hartzerakoan sortutako akatsa</string>
|
||||||
<string name="give_permission">Baimena eman</string>
|
<string name="give_permission">Baimena eman</string>
|
||||||
<string name="login_to_your_account">Zure kontuan saioa hasi</string>
|
<string name="login_to_your_account">Zure kontuan saioa hasi</string>
|
||||||
|
<string name="view_browser">Nabigatzailean ikusi</string>
|
||||||
|
<string name="nearby_location_has_not_changed">Kokapena ez da aldatu.</string>
|
||||||
|
<string name="nearby_location_not_available">Kokapena ez dago erabilgarri.</string>
|
||||||
|
<string name="location_permission_rationale_nearby">Baimena beharrezkoa da hurbil dauden lekuen zerrende ikusteko</string>
|
||||||
<string name="get_directions">NORABIDEAK JASO</string>
|
<string name="get_directions">NORABIDEAK JASO</string>
|
||||||
<string name="read_article">IRAKURRI ARTIKULUA</string>
|
<string name="read_article">IRAKURRI ARTIKULUA</string>
|
||||||
|
<string name="notifications_welcome">Ongi etorria Wikimedia Commons-era! Pozten gara zu hemen egoteaz.</string>
|
||||||
|
<string name="nearby_wikidata">WIKIDATA</string>
|
||||||
|
<string name="nearby_wikipedia">WIKIPEDIA</string>
|
||||||
|
<string name="nearby_commons">COMMONS</string>
|
||||||
|
<string name="no_internet">Interneta ez dago erabilgarri</string>
|
||||||
|
<string name="internet_established">Interneta erabilgarri</string>
|
||||||
|
<string name="no_notifications">Ez da jakinarazpenik aurkitu</string>
|
||||||
|
<string name="about_translate"><u>Itzuli</u></string>
|
||||||
|
<string name="about_translate_title">Hizkuntzak</string>
|
||||||
|
<string name="about_translate_proceed">Jarraitu</string>
|
||||||
|
<string name="about_translate_cancel">Utzi</string>
|
||||||
|
<string name="retry">Saiatu berriro</string>
|
||||||
|
<string name="showcase_view_got_it_button">Ulertu dut!</string>
|
||||||
|
<string name="showcase_view_whole_nearby_activity">Zugandik hurbil dauden leku hauek irudiak behar dituzte beren Wikipedia artikuluak hornitzeko</string>
|
||||||
|
<string name="no_images_found">Ez da irudirik aurkitu!</string>
|
||||||
|
<string name="error_loading_images">Arazo bat egon da irudiak kargatzerakoan.</string>
|
||||||
|
<string name="share_app_title">Aplikazioa partekatu</string>
|
||||||
|
<string name="share_coordinates_not_present">Ez da koordenaturik zehaztu irudia aukeratzean</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -264,4 +264,5 @@
|
||||||
<string name="no_images_found">Kuvia ei löytynyt!</string>
|
<string name="no_images_found">Kuvia ei löytynyt!</string>
|
||||||
<string name="image_uploaded_by">Tallentanut: %1$s</string>
|
<string name="image_uploaded_by">Tallentanut: %1$s</string>
|
||||||
<string name="share_app_title">Jaa sovellus</string>
|
<string name="share_app_title">Jaa sovellus</string>
|
||||||
|
<string name="user_not_logged_in">Istuntosi on vanhentunut. Kirjaudu sisään uudelleen.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -296,4 +296,5 @@
|
||||||
<string name="wikidata_edit_failure">Échec de la mise à jour de l\'entité Wikidata correspondante !</string>
|
<string name="wikidata_edit_failure">Échec de la mise à jour de l\'entité Wikidata correspondante !</string>
|
||||||
<string name="menu_set_wallpaper">Définir le papier-peint</string>
|
<string name="menu_set_wallpaper">Définir le papier-peint</string>
|
||||||
<string name="wallpaper_set_successfully">Papier-peint configuré avec succès!</string>
|
<string name="wallpaper_set_successfully">Papier-peint configuré avec succès!</string>
|
||||||
|
<string name="user_not_logged_in">Session expirée, veuillez vous reconnecter.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
<string name="login_success">Accedeu correctamente!</string>
|
<string name="login_success">Accedeu correctamente!</string>
|
||||||
<string name="login_failed">Erro durante o inición de sesión!</string>
|
<string name="login_failed">Erro durante o inición de sesión!</string>
|
||||||
<string name="upload_failed">Ficheiro non atopado. Por favor, probe con outro.</string>
|
<string name="upload_failed">Ficheiro non atopado. Por favor, probe con outro.</string>
|
||||||
<string name="authentication_failed" fuzzy="true">Erro durante a autenticación!</string>
|
<string name="authentication_failed">Erro de autenticación, por favor inicia unha nova sesión</string>
|
||||||
<string name="uploading_started">A carga comezou!</string>
|
<string name="uploading_started">A carga comezou!</string>
|
||||||
<string name="upload_completed_notification_title">Cargouse \"%1$s\"!</string>
|
<string name="upload_completed_notification_title">Cargouse \"%1$s\"!</string>
|
||||||
<string name="upload_completed_notification_text">Prema para ollar a súa carga</string>
|
<string name="upload_completed_notification_text">Prema para ollar a súa carga</string>
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
<string name="preference_license">Licenza por defecto</string>
|
<string name="preference_license">Licenza por defecto</string>
|
||||||
<string name="use_previous">Usar o título ou a descrición anterior</string>
|
<string name="use_previous">Usar o título ou a descrición anterior</string>
|
||||||
<string name="allow_gps">Obter automaticamente a localización actual</string>
|
<string name="allow_gps">Obter automaticamente a localización actual</string>
|
||||||
<string name="allow_gps_summary" fuzzy="true">Obter a localización actual para ofrecer suxestións de categoría se a imaxe non está xeolocalizada</string>
|
<string name="allow_gps_summary">Obter a localización actual se a imaxe non está xeolocalizada, e xeolocaliza a imaxe con ela. Atención: Isto revelará a súa localización actual.</string>
|
||||||
<string name="preference_theme">Modo nocturno</string>
|
<string name="preference_theme">Modo nocturno</string>
|
||||||
<string name="preference_theme_summary">Usar tema escuro</string>
|
<string name="preference_theme_summary">Usar tema escuro</string>
|
||||||
<string name="license_name_cc_by_sa_four"> Recoñecemento-CompartirIgual 4.0</string>
|
<string name="license_name_cc_by_sa_four"> Recoñecemento-CompartirIgual 4.0</string>
|
||||||
|
|
@ -278,6 +278,11 @@
|
||||||
<string name="share_app_title">Compartir a aplicación</string>
|
<string name="share_app_title">Compartir a aplicación</string>
|
||||||
<string name="share_coordinates_not_present">Non se indicaron as coordenadas ó seleccionar a imaxe</string>
|
<string name="share_coordinates_not_present">Non se indicaron as coordenadas ó seleccionar a imaxe</string>
|
||||||
<string name="error_fetching_nearby_places">Erro ó procurar os lugares próximos.</string>
|
<string name="error_fetching_nearby_places">Erro ó procurar os lugares próximos.</string>
|
||||||
|
<string name="appwidget_img">Imaxe do día</string>
|
||||||
|
<string name="app_widget_heading">Imaxe do día</string>
|
||||||
|
<string name="successful_wikidata_edit">A imaxe engadiuse con éxito a %1$s en Wikidata!</string>
|
||||||
|
<string name="wikidata_edit_failure">Fallou a actualización da entidade do Wikidata correspondente!</string>
|
||||||
<string name="menu_set_wallpaper">Definir imaxe de fondo</string>
|
<string name="menu_set_wallpaper">Definir imaxe de fondo</string>
|
||||||
<string name="wallpaper_set_successfully">A imaxe de fondo configurouse correctamenteǃ</string>
|
<string name="wallpaper_set_successfully">A imaxe de fondo configurouse correctamenteǃ</string>
|
||||||
|
<string name="user_not_logged_in">A sesión caducou, por favor inicia unha nova sesión.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -230,4 +230,5 @@
|
||||||
<string name="share_app_title">Condividi applicazione</string>
|
<string name="share_app_title">Condividi applicazione</string>
|
||||||
<string name="appwidget_img">Foto del giorno</string>
|
<string name="appwidget_img">Foto del giorno</string>
|
||||||
<string name="app_widget_heading">Foto del giorno</string>
|
<string name="app_widget_heading">Foto del giorno</string>
|
||||||
|
<string name="user_not_logged_in">Sessione di login scaduta, accedi nuovamente.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -288,4 +288,5 @@
|
||||||
<string name="wikidata_edit_failure">לא ניתן היה לעדכן הישות המתאימה בוויקינתונים!</string>
|
<string name="wikidata_edit_failure">לא ניתן היה לעדכן הישות המתאימה בוויקינתונים!</string>
|
||||||
<string name="menu_set_wallpaper">הגדרת רקע</string>
|
<string name="menu_set_wallpaper">הגדרת רקע</string>
|
||||||
<string name="wallpaper_set_successfully">הרקע הוגדר בהצלחה!</string>
|
<string name="wallpaper_set_successfully">הרקע הוגדר בהצלחה!</string>
|
||||||
|
<string name="user_not_logged_in">זמן הכניסה לחשבון פקע, נא להיכנס שוב.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -286,4 +286,5 @@
|
||||||
<string name="wikidata_edit_failure">일치하는 위키데이터 엔티티의 업데이트를 실패했습니다!</string>
|
<string name="wikidata_edit_failure">일치하는 위키데이터 엔티티의 업데이트를 실패했습니다!</string>
|
||||||
<string name="menu_set_wallpaper">배경화면 설정</string>
|
<string name="menu_set_wallpaper">배경화면 설정</string>
|
||||||
<string name="wallpaper_set_successfully">배경화면을 성공적으로 설정했습니다!</string>
|
<string name="wallpaper_set_successfully">배경화면을 성공적으로 설정했습니다!</string>
|
||||||
|
<string name="user_not_logged_in">로그인 세션이 만료되었으므로 다시 로그인해 주십시오.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -278,4 +278,5 @@
|
||||||
<string name="wikidata_edit_failure">Не успеав да ја изменам соодветната единица на Википодатоците!</string>
|
<string name="wikidata_edit_failure">Не успеав да ја изменам соодветната единица на Википодатоците!</string>
|
||||||
<string name="menu_set_wallpaper">Задај позадина</string>
|
<string name="menu_set_wallpaper">Задај позадина</string>
|
||||||
<string name="wallpaper_set_successfully">Позадината е успешно зададена!</string>
|
<string name="wallpaper_set_successfully">Позадината е успешно зададена!</string>
|
||||||
|
<string name="user_not_logged_in">Најавната седница истече. Најавете се повторно.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,17 @@
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
<string name="preference_category_appearance">Utseende</string>
|
<string name="preference_category_appearance">Utseende</string>
|
||||||
|
<string name="preference_category_general">Generelt</string>
|
||||||
<string name="preference_category_feedback">Tilbakemelding</string>
|
<string name="preference_category_feedback">Tilbakemelding</string>
|
||||||
|
<string name="preference_category_location">Beliggenhet</string>
|
||||||
<string name="app_name">Commons</string>
|
<string name="app_name">Commons</string>
|
||||||
<string name="bullet">•</string>
|
<string name="bullet">•</string>
|
||||||
<string name="menu_settings">Innstillinger</string>
|
<string name="menu_settings">Innstillinger</string>
|
||||||
<string name="username">Brukernavn</string>
|
<string name="username">Brukernavn</string>
|
||||||
<string name="password">Passord</string>
|
<string name="password">Passord</string>
|
||||||
|
<string name="login_credential">Logg inn på Commons Beta-kontoen din</string>
|
||||||
<string name="login">Logg inn</string>
|
<string name="login">Logg inn</string>
|
||||||
|
<string name="forgot_password">Glemt passordet?</string>
|
||||||
<string name="signup">Registrer deg</string>
|
<string name="signup">Registrer deg</string>
|
||||||
<string name="logging_in_title">Logger inn</string>
|
<string name="logging_in_title">Logger inn</string>
|
||||||
<string name="logging_in_message">Vennligst vent …</string>
|
<string name="logging_in_message">Vennligst vent …</string>
|
||||||
|
|
@ -48,8 +52,10 @@
|
||||||
<string name="menu_share">Del</string>
|
<string name="menu_share">Del</string>
|
||||||
<string name="menu_open_in_browser">Vis i nettleser</string>
|
<string name="menu_open_in_browser">Vis i nettleser</string>
|
||||||
<string name="share_title_hint">Tittel</string>
|
<string name="share_title_hint">Tittel</string>
|
||||||
|
<string name="add_title_toast">Angi en tittel for denne fila</string>
|
||||||
<string name="share_description_hint">Beskrivelse</string>
|
<string name="share_description_hint">Beskrivelse</string>
|
||||||
<string name="login_failed_network">Innlogging feilet - nettverksproblem</string>
|
<string name="login_failed_network">Innlogging feilet - nettverksproblem</string>
|
||||||
|
<string name="login_failed_wrong_credentials">Kunne ikke logge inn – sjekk brukernavnet og passordet ditt</string>
|
||||||
<string name="login_failed_throttled">For mange misslykkede forsøk. Vennligst prøv igjen om noen få minutter.</string>
|
<string name="login_failed_throttled">For mange misslykkede forsøk. Vennligst prøv igjen om noen få minutter.</string>
|
||||||
<string name="login_failed_blocked">Beklager, denne brukeren har blitt blokkert på Commons</string>
|
<string name="login_failed_blocked">Beklager, denne brukeren har blitt blokkert på Commons</string>
|
||||||
<string name="login_failed_2fa_needed">Du må oppgi tofaktorautentiseringskoden din.</string>
|
<string name="login_failed_2fa_needed">Du må oppgi tofaktorautentiseringskoden din.</string>
|
||||||
|
|
@ -61,6 +67,7 @@
|
||||||
<string name="categories_search_text_hint">Søk kategorier</string>
|
<string name="categories_search_text_hint">Søk kategorier</string>
|
||||||
<string name="menu_save_categories">Lagre</string>
|
<string name="menu_save_categories">Lagre</string>
|
||||||
<string name="refresh_button">Oppdater</string>
|
<string name="refresh_button">Oppdater</string>
|
||||||
|
<string name="display_list_button">Liste</string>
|
||||||
<string name="gps_disabled">GPS er slått av på denne enheten. Ønsker du å slå den på?</string>
|
<string name="gps_disabled">GPS er slått av på denne enheten. Ønsker du å slå den på?</string>
|
||||||
<string name="enable_gps">Slå på GPS</string>
|
<string name="enable_gps">Slå på GPS</string>
|
||||||
<string name="contributions_subtitle_zero">Ingen opplastinger ennå</string>
|
<string name="contributions_subtitle_zero">Ingen opplastinger ennå</string>
|
||||||
|
|
@ -82,11 +89,12 @@
|
||||||
<string name="categories_activity_title">Kategorier</string>
|
<string name="categories_activity_title">Kategorier</string>
|
||||||
<string name="title_activity_settings">Innstillinger</string>
|
<string name="title_activity_settings">Innstillinger</string>
|
||||||
<string name="title_activity_signup">Registrer deg</string>
|
<string name="title_activity_signup">Registrer deg</string>
|
||||||
|
<string name="title_activity_featured_images">Utvalgte bilder</string>
|
||||||
<string name="menu_about">Om</string>
|
<string name="menu_about">Om</string>
|
||||||
<string name="about_license">Wikimedia Commons-appen er åpen kildekode og er skapt og vedlikeholdt av stipendiater og frivillige fra Wikimedia-fellesskapet. Wikimedia Foundation er ikke involvert i utviklingen eller vedlikeholdet av appen.</string>
|
<string name="about_license">Wikimedia Commons-appen er åpen kildekode og er skapt og vedlikeholdt av stipendiater og frivillige fra Wikimedia-fellesskapet. Wikimedia Foundation er ikke involvert i utviklingen eller vedlikeholdet av appen.</string>
|
||||||
<string name="about_improve">Opprett en ny <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-sak</a> for feilrapporter og forslag.</string>
|
<string name="about_improve">Opprett en ny <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-sak</a> for feilrapporter og forslag.</string>
|
||||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Personvernpolicy</a></string>
|
<string name="about_privacy_policy"><u>Personvernpolicy</u></string>
|
||||||
<string name="about_credits" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-comons/blob/master/CREDITS\">Bidragsytere</a></string>
|
<string name="about_credits"><u>Bidragsytere</u></string>
|
||||||
<string name="title_activity_about">Om</string>
|
<string name="title_activity_about">Om</string>
|
||||||
<string name="menu_feedback">Send tilbakemelding (via Epost)</string>
|
<string name="menu_feedback">Send tilbakemelding (via Epost)</string>
|
||||||
<string name="no_email_client">Ingen epostklient installert</string>
|
<string name="no_email_client">Ingen epostklient installert</string>
|
||||||
|
|
@ -101,7 +109,7 @@
|
||||||
<string name="preference_license">Standardlisens</string>
|
<string name="preference_license">Standardlisens</string>
|
||||||
<string name="use_previous">Bruk forrige tittel/beskrivelse</string>
|
<string name="use_previous">Bruk forrige tittel/beskrivelse</string>
|
||||||
<string name="allow_gps">Hent automatisk nåværende plassering</string>
|
<string name="allow_gps">Hent automatisk nåværende plassering</string>
|
||||||
<string name="allow_gps_summary" fuzzy="true">Hent nåværende plassering for å tilby kategoriforslag om bildet ikke er geotagget</string>
|
<string name="allow_gps_summary">Hent nåværende plassering om bildet ikke er geotagget, og tagger bildet med plasseringen. Advarsel: Dette vil avsløre hvor du befinner deg for øyeblikket.</string>
|
||||||
<string name="preference_theme">Nattmodus</string>
|
<string name="preference_theme">Nattmodus</string>
|
||||||
<string name="preference_theme_summary">Bruk mørk drakt</string>
|
<string name="preference_theme_summary">Bruk mørk drakt</string>
|
||||||
<string name="license_name_cc_by_sa_four">Navngivelse-Del på samme vilkår 4.0</string>
|
<string name="license_name_cc_by_sa_four">Navngivelse-Del på samme vilkår 4.0</string>
|
||||||
|
|
@ -129,15 +137,18 @@
|
||||||
<string name="tutorial_2_text">Last opp bilder som er tatt eller skapt av deg:</string>
|
<string name="tutorial_2_text">Last opp bilder som er tatt eller skapt av deg:</string>
|
||||||
<string name="tutorial_2_subtext">– Naturlige objekter (blomster, dyr, fjell)\n– Nyttige objekter (sykler, jernbanestasjoner)\n– Berømte personer (ordføreren din, OL-deltakere du har møtt)</string>
|
<string name="tutorial_2_subtext">– Naturlige objekter (blomster, dyr, fjell)\n– Nyttige objekter (sykler, jernbanestasjoner)\n– Berømte personer (ordføreren din, OL-deltakere du har møtt)</string>
|
||||||
<string name="tutorial_2_subtext_1">Naturlige objekter (blomster, dyr, fjell)</string>
|
<string name="tutorial_2_subtext_1">Naturlige objekter (blomster, dyr, fjell)</string>
|
||||||
|
<string name="tutorial_2_subtext_2">Nyttige objekter (sykler, togstasjoner)</string>
|
||||||
<string name="tutorial_2_subtext_3">Berømte personer (din ordfører, OL-deltakere du møtte)</string>
|
<string name="tutorial_2_subtext_3">Berømte personer (din ordfører, OL-deltakere du møtte)</string>
|
||||||
<string name="tutorial_3_text">Vennligst IKKE last opp:</string>
|
<string name="tutorial_3_text">Vennligst IKKE last opp:</string>
|
||||||
<string name="tutorial_3_subtext">- Selfies eller bilder av vennene dine\n- Bilder som du har lastet ned fra internet\n- Skjermbilder tatt fra proprietære apper</string>
|
<string name="tutorial_3_subtext">- Selfies eller bilder av vennene dine\n- Bilder som du har lastet ned fra internet\n- Skjermbilder tatt fra proprietære apper</string>
|
||||||
<string name="tutorial_3_subtext_1">Selvportrett eller bilder av dine venner</string>
|
<string name="tutorial_3_subtext_1">Selvportrett eller bilder av dine venner</string>
|
||||||
<string name="tutorial_3_subtext_2">Bilder du lastet ned fra Internett</string>
|
<string name="tutorial_3_subtext_2">Bilder du lastet ned fra Internett</string>
|
||||||
|
<string name="tutorial_3_subtext_3">Skjermbilder av proprietære programmer</string>
|
||||||
<string name="tutorial_4_text">Opplastingseksempel:</string>
|
<string name="tutorial_4_text">Opplastingseksempel:</string>
|
||||||
<string name="tutorial_4_subtext">- Tittel: Sydneys operahus\n- Beskrivelse: Operahuset i Sydney sett fra andre siden av bukten\n- Kategorier: Operahuset i Sydney ifra vest, Operahuset i Sydney utenfra</string>
|
<string name="tutorial_4_subtext">- Tittel: Sydneys operahus\n- Beskrivelse: Operahuset i Sydney sett fra andre siden av bukten\n- Kategorier: Operahuset i Sydney ifra vest, Operahuset i Sydney utenfra</string>
|
||||||
<string name="tutorial_4_subtext_1">Tittel: Operahuset i Sydney</string>
|
<string name="tutorial_4_subtext_1">Tittel: Operahuset i Sydney</string>
|
||||||
<string name="tutorial_4_subtext_2">Beskrivelse: Operahuset i Sydney som det sees fra motsatt side av bukten</string>
|
<string name="tutorial_4_subtext_2">Beskrivelse: Operahuset i Sydney som det sees fra motsatt side av bukten</string>
|
||||||
|
<string name="tutorial_4_subtext_3">Kategorier: Sydneys operahus fra vest, Sydneys operahus fra utsiden</string>
|
||||||
<string name="welcome_wikipedia_text">Bidra med dine bilder. Hjelp til med å blåse liv i Wikipedias artikler!</string>
|
<string name="welcome_wikipedia_text">Bidra med dine bilder. Hjelp til med å blåse liv i Wikipedias artikler!</string>
|
||||||
<string name="welcome_wikipedia_subtext">Bilder på Wikipedia kommer fra Wikimedia Commons.</string>
|
<string name="welcome_wikipedia_subtext">Bilder på Wikipedia kommer fra Wikimedia Commons.</string>
|
||||||
<string name="welcome_copyright_text">Bildene dine kan være til hjelp for mennesker over hele verden som søker kunnskap og dannelse.</string>
|
<string name="welcome_copyright_text">Bildene dine kan være til hjelp for mennesker over hele verden som søker kunnskap og dannelse.</string>
|
||||||
|
|
@ -150,8 +161,8 @@
|
||||||
<string name="detail_description_empty">Ingen beskrivelse</string>
|
<string name="detail_description_empty">Ingen beskrivelse</string>
|
||||||
<string name="detail_license_empty">Ukjent lisens</string>
|
<string name="detail_license_empty">Ukjent lisens</string>
|
||||||
<string name="menu_refresh">Gjenoppfrisk</string>
|
<string name="menu_refresh">Gjenoppfrisk</string>
|
||||||
<string name="read_storage_permission_rationale" fuzzy="true">Nødvendig tillatelse: Lese ekstern lagring. Appen virker ikke uten dette.</string>
|
<string name="read_storage_permission_rationale">Nødvendig tillatelse: Lese ekstern lagring. Appen kan ikke få tilgang til galleriet ditt uten dette.</string>
|
||||||
<string name="write_storage_permission_rationale" fuzzy="true">Påkrevd tillatelse: Skriv til ekstern lagring. Appen fungerer ikke uten dette.</string>
|
<string name="write_storage_permission_rationale">Nødvendig tillatelse: Skriv til ekstern lagring. Appen får ikke tilgang til kameraet ditt uten dette.</string>
|
||||||
<string name="location_permission_rationale">Valgfri tillatelse: Hent nåværende posisjon for kategoriforslag</string>
|
<string name="location_permission_rationale">Valgfri tillatelse: Hent nåværende posisjon for kategoriforslag</string>
|
||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
<string name="title_activity_nearby">Plasser i nærheten</string>
|
<string name="title_activity_nearby">Plasser i nærheten</string>
|
||||||
|
|
@ -164,6 +175,8 @@
|
||||||
<string name="media_detail_media_title">Medietittel</string>
|
<string name="media_detail_media_title">Medietittel</string>
|
||||||
<string name="media_detail_description">Beskrivelse</string>
|
<string name="media_detail_description">Beskrivelse</string>
|
||||||
<string name="media_detail_description_explanation">Beskrivelse av mediet skal være her. Denne kan potensielt være ganske lang, og vil trenge å strekke seg over flere linjer. Vi håper det ser bra nok ut.</string>
|
<string name="media_detail_description_explanation">Beskrivelse av mediet skal være her. Denne kan potensielt være ganske lang, og vil trenge å strekke seg over flere linjer. Vi håper det ser bra nok ut.</string>
|
||||||
|
<string name="media_detail_author">Opphavsperson</string>
|
||||||
|
<string name="media_detail_author_explanation">Brukernavnet til opphavspersonen til utvalgte bilder kommer her.</string>
|
||||||
<string name="media_detail_uploaded_date">Opplastingsdato</string>
|
<string name="media_detail_uploaded_date">Opplastingsdato</string>
|
||||||
<string name="media_detail_license">Lisens</string>
|
<string name="media_detail_license">Lisens</string>
|
||||||
<string name="media_detail_coordinates">Koordinater</string>
|
<string name="media_detail_coordinates">Koordinater</string>
|
||||||
|
|
@ -206,10 +219,12 @@
|
||||||
<string name="navigation_item_logout">Logg ut</string>
|
<string name="navigation_item_logout">Logg ut</string>
|
||||||
<string name="navigation_item_info">Veiviser</string>
|
<string name="navigation_item_info">Veiviser</string>
|
||||||
<string name="navigation_item_notification">Varsler</string>
|
<string name="navigation_item_notification">Varsler</string>
|
||||||
|
<string name="navigation_item_featured_images">Utvalgt</string>
|
||||||
<string name="nearby_needs_permissions">Steder i nærheten kan ikke vises uten tillatelse for stedsbestemmelse</string>
|
<string name="nearby_needs_permissions">Steder i nærheten kan ikke vises uten tillatelse for stedsbestemmelse</string>
|
||||||
<string name="no_description_found">ingen beskrivelse funnet</string>
|
<string name="no_description_found">ingen beskrivelse funnet</string>
|
||||||
<string name="nearby_info_menu_commons_article">Commons-filside</string>
|
<string name="nearby_info_menu_commons_article">Commons-filside</string>
|
||||||
<string name="nearby_info_menu_wikidata_article">Wikidata-element</string>
|
<string name="nearby_info_menu_wikidata_article">Wikidata-element</string>
|
||||||
|
<string name="nearby_info_menu_wikipedia_article">Wikipedia-artikkel</string>
|
||||||
<string name="error_while_cache">Feil under mellomlagring av bilder</string>
|
<string name="error_while_cache">Feil under mellomlagring av bilder</string>
|
||||||
<string name="title_info">En unik beskrivende tittel for fila, som vil fungere som filnavn. Du kan bruke vanlig språk med mellomrom. Ikke ta med filendelsen</string>
|
<string name="title_info">En unik beskrivende tittel for fila, som vil fungere som filnavn. Du kan bruke vanlig språk med mellomrom. Ikke ta med filendelsen</string>
|
||||||
<string name="description_info">Beskriv bidraget så mye som mulig: Hvor ble det tatt? Hva viser det? Hva er konteksten? Beskriv objektene eller personene. Gi informasjon som ikke kan gjettes lett, for eksempel når på dagen bildet ble tatt om det er et landskapsbilde. Om bildet viser noe uvanlig, forklar hva som gjør det uvanlig.</string>
|
<string name="description_info">Beskriv bidraget så mye som mulig: Hvor ble det tatt? Hva viser det? Hva er konteksten? Beskriv objektene eller personene. Gi informasjon som ikke kan gjettes lett, for eksempel når på dagen bildet ble tatt om det er et landskapsbilde. Om bildet viser noe uvanlig, forklar hva som gjør det uvanlig.</string>
|
||||||
|
|
@ -222,6 +237,10 @@
|
||||||
<string name="send_log_file">Send loggfil</string>
|
<string name="send_log_file">Send loggfil</string>
|
||||||
<string name="send_log_file_description">Send loggfil til utviklerne via epost</string>
|
<string name="send_log_file_description">Send loggfil til utviklerne via epost</string>
|
||||||
<string name="no_web_browser">Ingen internettleser funnet som kan åpne lenken</string>
|
<string name="no_web_browser">Ingen internettleser funnet som kan åpne lenken</string>
|
||||||
|
<string name="null_url">Feil! URL ikke funnet</string>
|
||||||
|
<string name="nominate_deletion">Nominer for sletting</string>
|
||||||
|
<string name="nominated_for_deletion">Dette bildet har blitt nominert for sletting.</string>
|
||||||
|
<string name="view_browser">Vis i nettleseren</string>
|
||||||
<string name="nearby_location_has_not_changed">Stedet har ikke blitt endret.</string>
|
<string name="nearby_location_has_not_changed">Stedet har ikke blitt endret.</string>
|
||||||
<string name="nearby_location_not_available">Sted ikke tilgjengelig.</string>
|
<string name="nearby_location_not_available">Sted ikke tilgjengelig.</string>
|
||||||
<string name="location_permission_rationale_nearby">Tillatelse kreves for å vise listen over steder i nærheten</string>
|
<string name="location_permission_rationale_nearby">Tillatelse kreves for å vise listen over steder i nærheten</string>
|
||||||
|
|
@ -232,8 +251,38 @@
|
||||||
<string name="notifications_thank_you_edit">Takk for at du har gjort en redigering</string>
|
<string name="notifications_thank_you_edit">Takk for at du har gjort en redigering</string>
|
||||||
<string name="notifications_mention">%1$s nevnte deg på %2$s.</string>
|
<string name="notifications_mention">%1$s nevnte deg på %2$s.</string>
|
||||||
<string name="toggle_view_button">Skift visning</string>
|
<string name="toggle_view_button">Skift visning</string>
|
||||||
<string name="about_faq" fuzzy="true">Ofte stilte spørsmål</string>
|
<string name="nearby_directions">VEIBESKRIVELSE</string>
|
||||||
|
<string name="nearby_wikidata">WIKIDATA</string>
|
||||||
|
<string name="nearby_wikipedia">WIKIPEDIA</string>
|
||||||
|
<string name="nearby_commons">COMMONS</string>
|
||||||
|
<string name="about_rate_us"><u>Vurder oss</u></string>
|
||||||
|
<string name="about_faq"><u>Ofte stilte spørsmål</u></string>
|
||||||
|
<string name="welcome_skip_button">Hopp over innledning</string>
|
||||||
<string name="no_internet">Internett er utilgjengelig</string>
|
<string name="no_internet">Internett er utilgjengelig</string>
|
||||||
|
<string name="internet_established">Internett tilgjengelig</string>
|
||||||
|
<string name="error_notifications">Feil under henting av varsler</string>
|
||||||
|
<string name="no_notifications">Ingen varsler funnet</string>
|
||||||
<string name="about_translate"><u>Oversett</u></string>
|
<string name="about_translate"><u>Oversett</u></string>
|
||||||
|
<string name="about_translate_title">Språk</string>
|
||||||
|
<string name="about_translate_message">Velg språket du ønsker å sende inn oversettelser for</string>
|
||||||
|
<string name="about_translate_proceed">Fortsett</string>
|
||||||
|
<string name="about_translate_cancel">Avbryt</string>
|
||||||
<string name="retry">Prøv igjen</string>
|
<string name="retry">Prøv igjen</string>
|
||||||
|
<string name="showcase_view_got_it_button">Skjønner!</string>
|
||||||
|
<string name="showcase_view_whole_nearby_activity">Det er steder i nærheten av deg som trenger bilder for å illustrere Wikipedia-artiklene sine</string>
|
||||||
|
<string name="showcase_view_list_icon">Trykk på denne knappen for å få en liste over disse stedene</string>
|
||||||
|
<string name="showcase_view_plus_fab">Du kan laste opp et bilde for alle steder fra galleriet eller kameraet ditt</string>
|
||||||
|
<string name="no_images_found">Ingen bilder funnet!</string>
|
||||||
|
<string name="error_loading_images">Feil oppsto under lasting av bilder.</string>
|
||||||
|
<string name="image_uploaded_by">Lastet opp av: %1$s</string>
|
||||||
|
<string name="share_app_title">Del appen</string>
|
||||||
|
<string name="share_coordinates_not_present">Koordinater ble ikke spesifisert under bildevalget</string>
|
||||||
|
<string name="error_fetching_nearby_places">Feil under henting av steder i nærheten.</string>
|
||||||
|
<string name="appwidget_img">Dagens bilde</string>
|
||||||
|
<string name="app_widget_heading">Dagens bilde</string>
|
||||||
|
<string name="successful_wikidata_edit">Bildet ble lagt til på %1$s på Wikidata!</string>
|
||||||
|
<string name="wikidata_edit_failure">Kunne ikke oppdatere tilsvarende Wikidata-element!</string>
|
||||||
|
<string name="menu_set_wallpaper">Angi som bakgrunnsbilde</string>
|
||||||
|
<string name="wallpaper_set_successfully">Bakgrunnsbildet ble endret!</string>
|
||||||
|
<string name="user_not_logged_in">Innloggingsøkten har utløpt, logg inn på nytt.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@
|
||||||
<string name="categories_activity_title">Kategorie</string>
|
<string name="categories_activity_title">Kategorie</string>
|
||||||
<string name="title_activity_settings">Ustawienia</string>
|
<string name="title_activity_settings">Ustawienia</string>
|
||||||
<string name="title_activity_signup">Zarejestruj się</string>
|
<string name="title_activity_signup">Zarejestruj się</string>
|
||||||
|
<string name="title_activity_featured_images">Wyróżniony obrazek</string>
|
||||||
<string name="menu_about">O aplikacji</string>
|
<string name="menu_about">O aplikacji</string>
|
||||||
<string name="about_license">Aplikacja Wikimedia Commons jest oprogramowaniem typu open-source tworzonym i rozwijanym przez stypendystów i wolontariuszy ze społeczności Wikimedii. Fundacja Wikimedia nie bierze udziału w tworzeniu, rozwijaniu ani utrzymywaniu aplikacji.</string>
|
<string name="about_license">Aplikacja Wikimedia Commons jest oprogramowaniem typu open-source tworzonym i rozwijanym przez stypendystów i wolontariuszy ze społeczności Wikimedii. Fundacja Wikimedia nie bierze udziału w tworzeniu, rozwijaniu ani utrzymywaniu aplikacji.</string>
|
||||||
<string name="about_improve" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-commons\">Kod źródłowy</a> oraz <a href=\"https://commons-app.github.io/\">strona internetowa</a> na GitHub. Aby zgłosić błąd lub sugestię, utwórz nowe <a href=\"https://github.com/commons-app/apps-android-commons/issues\">zgłoszenie na GitHub</a>.</string>
|
<string name="about_improve" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-commons\">Kod źródłowy</a> oraz <a href=\"https://commons-app.github.io/\">strona internetowa</a> na GitHub. Aby zgłosić błąd lub sugestię, utwórz nowe <a href=\"https://github.com/commons-app/apps-android-commons/issues\">zgłoszenie na GitHub</a>.</string>
|
||||||
|
|
@ -159,6 +160,7 @@
|
||||||
<string name="detail_license_empty">Nieznana licencja</string>
|
<string name="detail_license_empty">Nieznana licencja</string>
|
||||||
<string name="menu_refresh">Odśwież</string>
|
<string name="menu_refresh">Odśwież</string>
|
||||||
<string name="read_storage_permission_rationale" fuzzy="true">Wymagane uprawnienia: odczyt z dysku zewnętrznego. Aplikacja nie będzie w stanie funkcjonować bez tego.</string>
|
<string name="read_storage_permission_rationale" fuzzy="true">Wymagane uprawnienia: odczyt z dysku zewnętrznego. Aplikacja nie będzie w stanie funkcjonować bez tego.</string>
|
||||||
|
<string name="write_storage_permission_rationale">Wymagane uprawnienia: odczyt z dysku zewnętrznego. Aplikacja nie będzie w stanie funkcjonować bez tego.</string>
|
||||||
<string name="location_permission_rationale">Opcjonalne zezwolenie: uzyskiwanie bieżącej lokalizacji dla wygenerowania propozycji kategorii</string>
|
<string name="location_permission_rationale">Opcjonalne zezwolenie: uzyskiwanie bieżącej lokalizacji dla wygenerowania propozycji kategorii</string>
|
||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
<string name="title_activity_nearby">Pobliskie miejsca</string>
|
<string name="title_activity_nearby">Pobliskie miejsca</string>
|
||||||
|
|
@ -175,6 +177,7 @@
|
||||||
<string name="media_detail_uploaded_date">Data przesłania</string>
|
<string name="media_detail_uploaded_date">Data przesłania</string>
|
||||||
<string name="media_detail_license">Licencja</string>
|
<string name="media_detail_license">Licencja</string>
|
||||||
<string name="media_detail_coordinates">Współrzędne</string>
|
<string name="media_detail_coordinates">Współrzędne</string>
|
||||||
|
<string name="media_detail_coordinates_empty">Nie dostarczone</string>
|
||||||
<string name="become_a_tester_title">Zostań beta-testerem</string>
|
<string name="become_a_tester_title">Zostań beta-testerem</string>
|
||||||
<string name="become_a_tester_description">Dołącz do kanału bety w Google Play i dostań wczesny dostęp do nowych funkcji i łatek</string>
|
<string name="become_a_tester_description">Dołącz do kanału bety w Google Play i dostań wczesny dostęp do nowych funkcji i łatek</string>
|
||||||
<string name="_2fa_code">Kod 2FA</string>
|
<string name="_2fa_code">Kod 2FA</string>
|
||||||
|
|
@ -205,12 +208,15 @@
|
||||||
<string name="navigation_item_logout">Wyloguj</string>
|
<string name="navigation_item_logout">Wyloguj</string>
|
||||||
<string name="navigation_item_info">Samouczek</string>
|
<string name="navigation_item_info">Samouczek</string>
|
||||||
<string name="navigation_item_notification">Powiadomienia</string>
|
<string name="navigation_item_notification">Powiadomienia</string>
|
||||||
|
<string name="navigation_item_featured_images">Wyróżnione</string>
|
||||||
<string name="no_description_found">nie znaleziono opisu</string>
|
<string name="no_description_found">nie znaleziono opisu</string>
|
||||||
<string name="nearby_info_menu_wikidata_article">Element Wikidanych</string>
|
<string name="nearby_info_menu_wikidata_article">Element Wikidanych</string>
|
||||||
<string name="nearby_info_menu_wikipedia_article">Artykuł na Wikipedii</string>
|
<string name="nearby_info_menu_wikipedia_article">Artykuł na Wikipedii</string>
|
||||||
<string name="title_info">Podaj krótką, opisową i unikalną nazwę, która będzie służyła jako nazwa pliku. Możesz używać prostego języka i spacji. Nie dodawaj rozszerzenia pliku.</string>
|
<string name="title_info">Podaj krótką, opisową i unikalną nazwę, która będzie służyła jako nazwa pliku. Możesz używać prostego języka i spacji. Nie dodawaj rozszerzenia pliku.</string>
|
||||||
|
<string name="give_permission">Uzyskaj uprawnienie</string>
|
||||||
<string name="login_to_your_account">Zaloguj się na swoje konto</string>
|
<string name="login_to_your_account">Zaloguj się na swoje konto</string>
|
||||||
<string name="null_url">Błąd! Nie znaleziono adresu URL</string>
|
<string name="null_url">Błąd! Nie znaleziono adresu URL</string>
|
||||||
|
<string name="nominate_deletion">Zgłoszone do usunięcia</string>
|
||||||
<string name="nominated_for_deletion">Ta grafika została zgłoszona do usunięcia.</string>
|
<string name="nominated_for_deletion">Ta grafika została zgłoszona do usunięcia.</string>
|
||||||
<string name="view_browser">Otwórz w przeglądarce</string>
|
<string name="view_browser">Otwórz w przeglądarce</string>
|
||||||
<string name="notifications_welcome">Witamy w Wikimedia Commons, %1$s! Cieszymy się, że tu jesteś.</string>
|
<string name="notifications_welcome">Witamy w Wikimedia Commons, %1$s! Cieszymy się, że tu jesteś.</string>
|
||||||
|
|
@ -225,9 +231,13 @@
|
||||||
<string name="welcome_skip_button">Pomiń samouczek</string>
|
<string name="welcome_skip_button">Pomiń samouczek</string>
|
||||||
<string name="no_notifications">Nie znaleziono powiadomień</string>
|
<string name="no_notifications">Nie znaleziono powiadomień</string>
|
||||||
<string name="about_translate_title">Języki</string>
|
<string name="about_translate_title">Języki</string>
|
||||||
|
<string name="about_translate_proceed">Dalej</string>
|
||||||
<string name="about_translate_cancel">Anuluj</string>
|
<string name="about_translate_cancel">Anuluj</string>
|
||||||
|
<string name="retry">Ponów próbę</string>
|
||||||
|
<string name="showcase_view_got_it_button">Wszystko jasne!</string>
|
||||||
<string name="no_images_found">Nie znaleziono grafik!</string>
|
<string name="no_images_found">Nie znaleziono grafik!</string>
|
||||||
<string name="error_loading_images">Wystąpił błąd podczas ładowania grafik.</string>
|
<string name="error_loading_images">Wystąpił błąd podczas ładowania grafik.</string>
|
||||||
|
<string name="image_uploaded_by">Przesłano przez $1</string>
|
||||||
<string name="menu_set_wallpaper">Ustaw tapetę</string>
|
<string name="menu_set_wallpaper">Ustaw tapetę</string>
|
||||||
<string name="wallpaper_set_successfully">Tapeta ustawiona pomyślnie!</string>
|
<string name="wallpaper_set_successfully">Tapeta ustawiona pomyślnie!</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -278,4 +278,5 @@
|
||||||
<string name="wikidata_edit_failure">Falì a agiorné l\'entità ëd Wikidata corëspondenta!</string>
|
<string name="wikidata_edit_failure">Falì a agiorné l\'entità ëd Wikidata corëspondenta!</string>
|
||||||
<string name="menu_set_wallpaper">Definì la tapissarìa</string>
|
<string name="menu_set_wallpaper">Definì la tapissarìa</string>
|
||||||
<string name="wallpaper_set_successfully">La tapissarìa a l\'é stàita definìa për da bin!</string>
|
<string name="wallpaper_set_successfully">La tapissarìa a l\'é stàita definìa për da bin!</string>
|
||||||
|
<string name="user_not_logged_in">Session ëscadùa, për piasì ch\'a rintra torna ant ël sistema.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -290,4 +290,5 @@
|
||||||
<string name="wikidata_edit_failure">Falha ao atualizar a entidade Wikidata correspondente!</string>
|
<string name="wikidata_edit_failure">Falha ao atualizar a entidade Wikidata correspondente!</string>
|
||||||
<string name="menu_set_wallpaper">Definir imagem de fundo</string>
|
<string name="menu_set_wallpaper">Definir imagem de fundo</string>
|
||||||
<string name="wallpaper_set_successfully">Imagem de fundo definida!</string>
|
<string name="wallpaper_set_successfully">Imagem de fundo definida!</string>
|
||||||
|
<string name="user_not_logged_in">A sessão expirou. Inicie uma nova sessão, por favor.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
* Giro720
|
* Giro720
|
||||||
* Hamilton Abreu
|
* Hamilton Abreu
|
||||||
* Imperadeiro98
|
* Imperadeiro98
|
||||||
|
* Ldacosta
|
||||||
* Lijealso
|
* Lijealso
|
||||||
* Luckas
|
* Luckas
|
||||||
* Malafaya
|
* Malafaya
|
||||||
|
|
@ -289,4 +290,5 @@
|
||||||
<string name="wikidata_edit_failure">Falha ao atualizar a entidade Wikidata correspondente!</string>
|
<string name="wikidata_edit_failure">Falha ao atualizar a entidade Wikidata correspondente!</string>
|
||||||
<string name="menu_set_wallpaper">Definir imagem de fundo</string>
|
<string name="menu_set_wallpaper">Definir imagem de fundo</string>
|
||||||
<string name="wallpaper_set_successfully">Imagem de fundo definida!</string>
|
<string name="wallpaper_set_successfully">Imagem de fundo definida!</string>
|
||||||
|
<string name="user_not_logged_in">A sessão expirou. Inicie uma nova sessão, por favor.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -296,4 +296,5 @@
|
||||||
<string name="wikidata_edit_failure">Не удалось обновить соответствующую страницу викиданных!</string>
|
<string name="wikidata_edit_failure">Не удалось обновить соответствующую страницу викиданных!</string>
|
||||||
<string name="menu_set_wallpaper">Сделать фоновой заставкой</string>
|
<string name="menu_set_wallpaper">Сделать фоновой заставкой</string>
|
||||||
<string name="wallpaper_set_successfully">Фоновая заставка успешно установлена!</string>
|
<string name="wallpaper_set_successfully">Фоновая заставка успешно установлена!</string>
|
||||||
|
<string name="user_not_logged_in">Сессия авторизации истекла, пожалуйста авторизуйтесь заново.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<string name="password">ڳجھولفظ</string>
|
<string name="password">ڳجھولفظ</string>
|
||||||
<string name="login_credential">وڪي ڪامنز جي آزمائشي کاتي ۾ داخل ٿيو</string>
|
<string name="login_credential">وڪي ڪامنز جي آزمائشي کاتي ۾ داخل ٿيو</string>
|
||||||
<string name="login">داخل ٿيو</string>
|
<string name="login">داخل ٿيو</string>
|
||||||
<string name="forgot_password">ڳجھو لفظ وساري ويٺا آهيو؟</string>
|
<string name="forgot_password">پاسورڊ وساري ويٺا آهيو؟</string>
|
||||||
<string name="signup">کاتو کوليو</string>
|
<string name="signup">کاتو کوليو</string>
|
||||||
<string name="logging_in_title">داخل ٿيندي</string>
|
<string name="logging_in_title">داخل ٿيندي</string>
|
||||||
<string name="logging_in_message">براءِ مھرباني انتظار ڪريو…</string>
|
<string name="logging_in_message">براءِ مھرباني انتظار ڪريو…</string>
|
||||||
|
|
@ -51,10 +51,10 @@
|
||||||
<string name="add_title_toast">هن فائيل لاءِ ڪا سُرخي ڏيو</string>
|
<string name="add_title_toast">هن فائيل لاءِ ڪا سُرخي ڏيو</string>
|
||||||
<string name="share_description_hint">تشريح</string>
|
<string name="share_description_hint">تشريح</string>
|
||||||
<string name="login_failed_network">ناقابلِ داخل ٿيڻ - باھمڄار ناڪامي</string>
|
<string name="login_failed_network">ناقابلِ داخل ٿيڻ - باھمڄار ناڪامي</string>
|
||||||
<string name="login_failed_wrong_credentials">داخل نه ٿيا آهيو - مهرباني ڪري ڳجهو لفظ ۽ کاتي جو نالو چيڪ ڪيو</string>
|
<string name="login_failed_wrong_credentials">داخل نه ٿيا آهيو - مهرباني ڪري پاسورڊ ۽ کاتي جو نالو چيڪ ڪيو</string>
|
||||||
<string name="login_failed_throttled">ھيڪانديون ناڪام ڪوششون. براءِ مھرباني ڪجھ منٽن کانپوءِ ٻيھر ڪوشش ڪريو.</string>
|
<string name="login_failed_throttled">ھيڪانديون ناڪام ڪوششون. براءِ مھرباني ڪجھ منٽن کانپوءِ ٻيھر ڪوشش ڪريو.</string>
|
||||||
<string name="login_failed_blocked">افسوس، ھي واپرائيندڙ العام تي بندشيل آھي</string>
|
<string name="login_failed_blocked">افسوس، ھي واپرائيندڙ العام تي بندشيل آھي</string>
|
||||||
<string name="login_failed_2fa_needed">اوهان هر صورت ۾ ٻن عنصرن واري تصديق جو ڪوڊ ڏيو.</string>
|
<string name="login_failed_2fa_needed">اوهان هر صورت ۾ پنهنجو ٻن عنصرن وارو تصديقي ڪوڊ ڏيو.</string>
|
||||||
<string name="login_failed_generic">داخل ٿيڻ ناڪام</string>
|
<string name="login_failed_generic">داخل ٿيڻ ناڪام</string>
|
||||||
<string name="share_upload_button">چاڙھيو</string>
|
<string name="share_upload_button">چاڙھيو</string>
|
||||||
<string name="multiple_share_base_title">ھن سيٽ کي نالو ڏيو</string>
|
<string name="multiple_share_base_title">ھن سيٽ کي نالو ڏيو</string>
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<string name="menu_save_categories">سانڍيو</string>
|
<string name="menu_save_categories">سانڍيو</string>
|
||||||
<string name="refresh_button">تازو ڪيو</string>
|
<string name="refresh_button">تازو ڪيو</string>
|
||||||
<string name="display_list_button">فهرست</string>
|
<string name="display_list_button">فهرست</string>
|
||||||
<string name="gps_disabled">اوهان جي ڊوائيس ۾ جي پي ايس بند آهي. اوهان کولڻ چاهيو ٿا؟</string>
|
<string name="gps_disabled">اوهان جي ڊوائيس ۾ جي پي ايس بند آهي. ڇا اوهان ان کي کولڻ چاهيو ٿا؟</string>
|
||||||
<string name="enable_gps">جي پي ايس چالو ڪيو (اين ايبل جي پي ايس)</string>
|
<string name="enable_gps">جي پي ايس چالو ڪيو (اين ايبل جي پي ايس)</string>
|
||||||
<string name="contributions_subtitle_zero">اڃان تائين ڪو به ڄاڙهه (اَپلوڊ) نه ٿيو آهي</string>
|
<string name="contributions_subtitle_zero">اڃان تائين ڪو به ڄاڙهه (اَپلوڊ) نه ٿيو آهي</string>
|
||||||
<plurals name="contributions_subtitle">
|
<plurals name="contributions_subtitle">
|
||||||
|
|
@ -133,7 +133,7 @@
|
||||||
<string name="tutorial_2_subtext_3">مشھور شخصيتون (توھان جو ناظم، اولمپڪ رانديگر جنھن سان توھان مليو)</string>
|
<string name="tutorial_2_subtext_3">مشھور شخصيتون (توھان جو ناظم، اولمپڪ رانديگر جنھن سان توھان مليو)</string>
|
||||||
<string name="tutorial_3_text">براءِ مھرباني نہ چاڙھيو:</string>
|
<string name="tutorial_3_text">براءِ مھرباني نہ چاڙھيو:</string>
|
||||||
<string name="tutorial_3_subtext">u2022 سيلفيون يا پنھنجي دوستن جو تصويرون \nu2022 اھي تصويرون جيڪي توھان انٽرنيٽ تان ڊائونلوڊ ڪيون \nu2022 پروپرائيٽري ايپس جا اسڪرين شاٽ</string>
|
<string name="tutorial_3_subtext">u2022 سيلفيون يا پنھنجي دوستن جو تصويرون \nu2022 اھي تصويرون جيڪي توھان انٽرنيٽ تان ڊائونلوڊ ڪيون \nu2022 پروپرائيٽري ايپس جا اسڪرين شاٽ</string>
|
||||||
<string name="tutorial_3_subtext_1">سيلفي يا اوهان جي دوست جي تصوير</string>
|
<string name="tutorial_3_subtext_1">پاڻفي يا اوهان جي دوستن جون تصويرون</string>
|
||||||
<string name="tutorial_3_subtext_2">انٽرنيٽ تان کنيل تصويرون</string>
|
<string name="tutorial_3_subtext_2">انٽرنيٽ تان کنيل تصويرون</string>
|
||||||
<string name="tutorial_4_text">مثال چاڙھ:</string>
|
<string name="tutorial_4_text">مثال چاڙھ:</string>
|
||||||
<string name="tutorial_4_subtext">- عنوان: سڊني اوپيرا گھر \n- تشريح: سڊني اوپيرا گھر نھر جي پاسي کان ڏيک \n- زمرا: سڊني اوپيرا گھر، سڊني اوپيرا گھر اولھ کان، سڊني اوپيرا گھر ڏورانھان ڏيک</string>
|
<string name="tutorial_4_subtext">- عنوان: سڊني اوپيرا گھر \n- تشريح: سڊني اوپيرا گھر نھر جي پاسي کان ڏيک \n- زمرا: سڊني اوپيرا گھر، سڊني اوپيرا گھر اولھ کان، سڊني اوپيرا گھر ڏورانھان ڏيک</string>
|
||||||
|
|
@ -150,7 +150,7 @@
|
||||||
<string name="detail_description_empty">ڪا تشريح ناھي</string>
|
<string name="detail_description_empty">ڪا تشريح ناھي</string>
|
||||||
<string name="detail_license_empty">اڻڄاتل لائسنس</string>
|
<string name="detail_license_empty">اڻڄاتل لائسنس</string>
|
||||||
<string name="menu_refresh">تازو ڪريو</string>
|
<string name="menu_refresh">تازو ڪريو</string>
|
||||||
<string name="read_storage_permission_rationale" fuzzy="true">گھربل اجازت: خارجي اسٽوريج پڙھڻ. ايپ ھن کانسواءِ فنڪشن نٿي ڪري سگھي.</string>
|
<string name="read_storage_permission_rationale">گھربل اجازت: خارجي اسٽوريج پڙهو. ايپ ھن کانسواءِ تصوير گيليري نٿو ڏسي سگھي.</string>
|
||||||
<string name="location_permission_rationale">چونڊ اجازت: زمرن جي تجويزن لاءِ ھاڻوڪي مڪانيت وٺو</string>
|
<string name="location_permission_rationale">چونڊ اجازت: زمرن جي تجويزن لاءِ ھاڻوڪي مڪانيت وٺو</string>
|
||||||
<string name="ok">ٺيڪ</string>
|
<string name="ok">ٺيڪ</string>
|
||||||
<string name="title_activity_nearby">ويجھڙائيءَ ۾ جڳھون</string>
|
<string name="title_activity_nearby">ويجھڙائيءَ ۾ جڳھون</string>
|
||||||
|
|
@ -161,6 +161,7 @@
|
||||||
<string name="media_detail_title">عنوان</string>
|
<string name="media_detail_title">عنوان</string>
|
||||||
<string name="media_detail_media_title">ابلاغ جو عنوان</string>
|
<string name="media_detail_media_title">ابلاغ جو عنوان</string>
|
||||||
<string name="media_detail_description">تشريح</string>
|
<string name="media_detail_description">تشريح</string>
|
||||||
|
<string name="media_detail_author">ليکڪ</string>
|
||||||
<string name="media_detail_uploaded_date">چاڙھيل تاريخ</string>
|
<string name="media_detail_uploaded_date">چاڙھيل تاريخ</string>
|
||||||
<string name="media_detail_license">لائسنس (اجازت نامو)</string>
|
<string name="media_detail_license">لائسنس (اجازت نامو)</string>
|
||||||
<string name="become_a_tester_title">آزمائشي آزمائيندڙ ٿيو</string>
|
<string name="become_a_tester_title">آزمائشي آزمائيندڙ ٿيو</string>
|
||||||
|
|
@ -190,17 +191,20 @@
|
||||||
<string name="navigation_item_feedback">اوهان جي راءِ</string>
|
<string name="navigation_item_feedback">اوهان جي راءِ</string>
|
||||||
<string name="navigation_item_logout">ٻاهر نڪرو</string>
|
<string name="navigation_item_logout">ٻاهر نڪرو</string>
|
||||||
<string name="navigation_item_info">سکيا (ٽيوٽوريل)</string>
|
<string name="navigation_item_info">سکيا (ٽيوٽوريل)</string>
|
||||||
|
<string name="navigation_item_notification">نوٽيفيڪيشنس</string>
|
||||||
|
<string name="navigation_item_featured_images">چونڊ ڪيل</string>
|
||||||
<string name="nearby_needs_permissions">ويجھيو جڳھون بغير مڪانيت اجازت جي نٿيون ڏيکاري سگھجن</string>
|
<string name="nearby_needs_permissions">ويجھيو جڳھون بغير مڪانيت اجازت جي نٿيون ڏيکاري سگھجن</string>
|
||||||
<string name="no_description_found">ڪا به وضاحت نه ملي</string>
|
<string name="no_description_found">ڪا به وضاحت نه ملي</string>
|
||||||
<string name="nearby_info_menu_commons_article">ڪامن فائيل جو ورق</string>
|
<string name="nearby_info_menu_commons_article">ڪامن فائيل جو ورق</string>
|
||||||
<string name="nearby_info_menu_wikidata_article">وڪيڊيٽا جزو (وڪيڊيٽا آئيٽم)</string>
|
<string name="nearby_info_menu_wikidata_article">وڪيڊيٽا جزو (وڪيڊيٽا آئيٽم)</string>
|
||||||
|
<string name="nearby_info_menu_wikipedia_article">وڪيپيڊيا مضمون</string>
|
||||||
<string name="give_permission">اجازت ڏيو</string>
|
<string name="give_permission">اجازت ڏيو</string>
|
||||||
<string name="use_external_storage">ٻاھري سنڀار استعمال ڪريو</string>
|
<string name="use_external_storage">ٻاھري سنڀار استعمال ڪريو</string>
|
||||||
<string name="use_external_storage_summary">ايپ ۾ ڪئمرا سان ڪڍيل تصويرون پنھنجي ڊوائيس تي سانڍيو</string>
|
<string name="use_external_storage_summary">ايپ ۾ ڪئمرا سان ڪڍيل تصويرون پنھنجي ڊوائيس تي سانڍيو</string>
|
||||||
<string name="login_to_your_account">پنھنجي کاتي ۾ داخل ٿيو</string>
|
<string name="login_to_your_account">پنھنجي کاتي ۾ داخل ٿيو</string>
|
||||||
<string name="send_log_file">لاگ فائيل موڪليو</string>
|
<string name="send_log_file">لاگ فائيل موڪليو</string>
|
||||||
<string name="send_log_file_description">لاگ فائيل سرجڻھارن کي برقٽپال ذريعي موڪليو</string>
|
<string name="send_log_file_description">لاگ فائيل سرجڻھارن کي برقٽپال ذريعي موڪليو</string>
|
||||||
<string name="nominated_for_deletion">تصوير مٽائڻ لاءِ نامزد ڪئي وئي آهي.</string>
|
<string name="nominated_for_deletion">هن تصوير کي ڊاهڻ لاءِ مقرر ڪيو ويو آهي.</string>
|
||||||
<string name="view_browser">برائوزر ۾ ڏسو</string>
|
<string name="view_browser">برائوزر ۾ ڏسو</string>
|
||||||
<string name="nearby_location_has_not_changed">مڪانيت تبديلي ناھي ٿي.</string>
|
<string name="nearby_location_has_not_changed">مڪانيت تبديلي ناھي ٿي.</string>
|
||||||
<string name="nearby_location_not_available">مڪانيت موجود ناھي.</string>
|
<string name="nearby_location_not_available">مڪانيت موجود ناھي.</string>
|
||||||
|
|
@ -208,11 +212,13 @@
|
||||||
<string name="get_directions">ھدايتون وٺو</string>
|
<string name="get_directions">ھدايتون وٺو</string>
|
||||||
<string name="read_article">مضمون پڙھو</string>
|
<string name="read_article">مضمون پڙھو</string>
|
||||||
<string name="notifications_welcome">وڪيپيڊيا ڪامنز ۾ ڀليڪار، %1$s! اسان کي خوشي آهي ته اوهان هتي آهيو</string>
|
<string name="notifications_welcome">وڪيپيڊيا ڪامنز ۾ ڀليڪار، %1$s! اسان کي خوشي آهي ته اوهان هتي آهيو</string>
|
||||||
<string name="notifications_talk_page_message">%1$s اوهان جي بحث صفحي تي پيغام ڇڏيو آهي.</string>
|
<string name="notifications_talk_page_message">%1$s اوهان جي بحث واري صفحي تي پيغام ڇڏيو آهي.</string>
|
||||||
<string name="notifications_thank_you_edit">سنوارڻ لاءِ مهرباني</string>
|
<string name="notifications_thank_you_edit">سنوارڻ لاءِ مهرباني</string>
|
||||||
<string name="notifications_mention">%1$s اوهان جو %2$s تي ذڪر ڪيو آهي.</string>
|
<string name="notifications_mention">%1$s اوهان جو %2$s تي ذڪر ڪيو آهي.</string>
|
||||||
<string name="nearby_directions">طرف</string>
|
<string name="nearby_directions">طرف</string>
|
||||||
|
<string name="nearby_wikidata">وڪيڊيٽا</string>
|
||||||
<string name="nearby_wikipedia">وڪيپيڊيا</string>
|
<string name="nearby_wikipedia">وڪيپيڊيا</string>
|
||||||
|
<string name="nearby_commons">ڪامنز</string>
|
||||||
<string name="about_rate_us"><u>پذيرائي ڏيو</u></string>
|
<string name="about_rate_us"><u>پذيرائي ڏيو</u></string>
|
||||||
<string name="about_faq"><u>عام سوال</u></string>
|
<string name="about_faq"><u>عام سوال</u></string>
|
||||||
<string name="welcome_skip_button">سبق کي ڇڏيو</string>
|
<string name="welcome_skip_button">سبق کي ڇڏيو</string>
|
||||||
|
|
@ -221,9 +227,15 @@
|
||||||
<string name="about_translate"><u>ترجمو</u></string>
|
<string name="about_translate"><u>ترجمو</u></string>
|
||||||
<string name="about_translate_title">ٻوليون</string>
|
<string name="about_translate_title">ٻوليون</string>
|
||||||
<string name="about_translate_cancel">رد</string>
|
<string name="about_translate_cancel">رد</string>
|
||||||
|
<string name="retry">ٻيهر ڪوشش ڪريو</string>
|
||||||
<string name="showcase_view_got_it_button">سمجھي ويس!</string>
|
<string name="showcase_view_got_it_button">سمجھي ويس!</string>
|
||||||
<string name="no_images_found">ڪوبہ عڪس نہ لڌو!</string>
|
<string name="no_images_found">ڪوبہ عڪس نہ لڌو!</string>
|
||||||
|
<string name="error_loading_images">تصويرون لوڊ ڪرڻ دوران چُڪ ٿي آهي.</string>
|
||||||
|
<string name="image_uploaded_by">پاران چاڙهيل: %1$s</string>
|
||||||
<string name="share_app_title">ايپ ونڊيو</string>
|
<string name="share_app_title">ايپ ونڊيو</string>
|
||||||
<string name="appwidget_img">اڄ جي تصوير</string>
|
<string name="appwidget_img">اڄ جي تصوير</string>
|
||||||
<string name="app_widget_heading">اڄ جي تصوير</string>
|
<string name="app_widget_heading">اڄ جي تصوير</string>
|
||||||
|
<string name="menu_set_wallpaper">وال پيپر لڳايو</string>
|
||||||
|
<string name="wallpaper_set_successfully">وال پيپر ڪاميابيءَ سان لڳي ويو!</string>
|
||||||
|
<string name="user_not_logged_in">لاگ اِن سيشن ايڪسپائير ٿي ويو آهي، مهرباني ڪري وري لاڳ اِن ٿيو.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
<string name="login_success">لاگ ان کامیاب!</string>
|
<string name="login_success">لاگ ان کامیاب!</string>
|
||||||
<string name="login_failed">لاگ ان ناکام!</string>
|
<string name="login_failed">لاگ ان ناکام!</string>
|
||||||
<string name="upload_failed">فائل کائنی لبھی،ٻئی فائل کیتے کوشش کرو۔</string>
|
<string name="upload_failed">فائل کائنی لبھی،ٻئی فائل کیتے کوشش کرو۔</string>
|
||||||
<string name="authentication_failed" fuzzy="true">تصدیق ناکام!</string>
|
<string name="authentication_failed">تصدیق ناکام، ولدا لاڳ ان تھیوو</string>
|
||||||
<string name="uploading_started">اپ لوڈ شروع!</string>
|
<string name="uploading_started">اپ لوڈ شروع!</string>
|
||||||
<string name="upload_completed_notification_title">%1$s اپ لوڈ تھی ڳیا!</string>
|
<string name="upload_completed_notification_title">%1$s اپ لوڈ تھی ڳیا!</string>
|
||||||
<string name="upload_completed_notification_text">آپݨی اپلوڈ ݙیکھݨ کیتے ٹیپ کرو</string>
|
<string name="upload_completed_notification_text">آپݨی اپلوڈ ݙیکھݨ کیتے ٹیپ کرو</string>
|
||||||
|
|
@ -46,18 +46,18 @@
|
||||||
<string name="multiple_share_base_title">ایں سیٹ دا ناں ݙسو</string>
|
<string name="multiple_share_base_title">ایں سیٹ دا ناں ݙسو</string>
|
||||||
<string name="provider_modifications">تبدیلیاں</string>
|
<string name="provider_modifications">تبدیلیاں</string>
|
||||||
<string name="menu_upload_single">اپلوڈ</string>
|
<string name="menu_upload_single">اپلوڈ</string>
|
||||||
<string name="categories_search_text_hint">قسماں دی ڳول</string>
|
<string name="categories_search_text_hint">ونکیاں دی ڳول</string>
|
||||||
<string name="menu_save_categories">بچاؤ</string>
|
<string name="menu_save_categories">بچاؤ</string>
|
||||||
<string name="refresh_button">سجرا، تازہ کرو</string>
|
<string name="refresh_button">سجرا، تازہ کرو</string>
|
||||||
<string name="display_list_button">فہرست</string>
|
<string name="display_list_button">فہرست</string>
|
||||||
<string name="enable_gps">جی پی ایس چلاؤ</string>
|
<string name="enable_gps">جی پی ایس چلاؤ</string>
|
||||||
<string name="contributions_subtitle_zero">اڄݨ ککھ وی اپ لوڈ نی تھیا</string>
|
<string name="contributions_subtitle_zero">اڄݨ ککھ وی اپ لوڈ نی تھیا</string>
|
||||||
<string name="categories_activity_title">قسماں، زمرے</string>
|
<string name="categories_activity_title">ونکیاں</string>
|
||||||
<string name="title_activity_settings">ترتیباں</string>
|
<string name="title_activity_settings">ترتیباں</string>
|
||||||
<string name="title_activity_signup">سائن اپ</string>
|
<string name="title_activity_signup">سائن اپ</string>
|
||||||
<string name="menu_about">تعارف</string>
|
<string name="menu_about">تعارف</string>
|
||||||
<string name="title_activity_about">تعارف</string>
|
<string name="title_activity_about">تعارف</string>
|
||||||
<string name="provider_categories">حالیہ ورتیاں ڳیاں قسماں</string>
|
<string name="provider_categories">حالیہ ورتیاں ڳیاں ونکیاں</string>
|
||||||
<string name="menu_retry_upload">ولدا کوشش کرو</string>
|
<string name="menu_retry_upload">ولدا کوشش کرو</string>
|
||||||
<string name="menu_cancel_upload">منسوخ</string>
|
<string name="menu_cancel_upload">منسوخ</string>
|
||||||
<string name="menu_download">ڈاؤن لوڈ ، لہاوݨ</string>
|
<string name="menu_download">ڈاؤن لوڈ ، لہاوݨ</string>
|
||||||
|
|
@ -74,7 +74,7 @@
|
||||||
<string name="welcome_wikipedia_subtext">وکی پیڈیا تے فوٹو وکی میڈیا کامنز کنوں امدن۔</string>
|
<string name="welcome_wikipedia_subtext">وکی پیڈیا تے فوٹو وکی میڈیا کامنز کنوں امدن۔</string>
|
||||||
<string name="welcome_copyright_text">تہاݙے فوٹو پوری دنیا دے لوکاں کوں تعلیم ݙیوݨ کیتے مدد ݙیندن</string>
|
<string name="welcome_copyright_text">تہاݙے فوٹو پوری دنیا دے لوکاں کوں تعلیم ݙیوݨ کیتے مدد ݙیندن</string>
|
||||||
<string name="welcome_final_button_text">جیا!</string>
|
<string name="welcome_final_button_text">جیا!</string>
|
||||||
<string name="detail_panel_cats_label">قسماں، زمرے</string>
|
<string name="detail_panel_cats_label">ونکیاں</string>
|
||||||
<string name="detail_panel_cats_loading">لوڈ تھیدا پئے۔۔۔</string>
|
<string name="detail_panel_cats_loading">لوڈ تھیدا پئے۔۔۔</string>
|
||||||
<string name="detail_panel_cats_none">کجھ نی چݨیا</string>
|
<string name="detail_panel_cats_none">کجھ نی چݨیا</string>
|
||||||
<string name="detail_description_empty">کوئی تفصیل کائنی</string>
|
<string name="detail_description_empty">کوئی تفصیل کائنی</string>
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,25 @@
|
||||||
* Uchup19
|
* Uchup19
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
|
<string name="preference_category_appearance">Pidangan</string>
|
||||||
|
<string name="preference_category_general">Umum</string>
|
||||||
|
<string name="preference_category_feedback">Eupan balik</string>
|
||||||
|
<string name="preference_category_location">Lokasi</string>
|
||||||
<string name="app_name">Commons</string>
|
<string name="app_name">Commons</string>
|
||||||
|
<string name="bullet">•</string>
|
||||||
<string name="menu_settings">Séting</string>
|
<string name="menu_settings">Séting</string>
|
||||||
<string name="username">Sandiasma</string>
|
<string name="username">Sandiasma</string>
|
||||||
<string name="password">Kecap sandi</string>
|
<string name="password">Kecap sandi</string>
|
||||||
|
<string name="login_credential">Asup log kana akun Commons Beta anjeun</string>
|
||||||
<string name="login">Asup log</string>
|
<string name="login">Asup log</string>
|
||||||
|
<string name="forgot_password">Poho Kecap Sandi?</string>
|
||||||
<string name="signup">Daptar</string>
|
<string name="signup">Daptar</string>
|
||||||
<string name="logging_in_title">Asup log</string>
|
<string name="logging_in_title">Asup log</string>
|
||||||
<string name="logging_in_message">Tungguan…</string>
|
<string name="logging_in_message">Tungguan…</string>
|
||||||
<string name="login_success">Laksana login!</string>
|
<string name="login_success">Laksana login!</string>
|
||||||
<string name="login_failed">Gagal login!</string>
|
<string name="login_failed">Gagal login!</string>
|
||||||
<string name="upload_failed">Berkas teu kapanggih. Coba berkas séjén.</string>
|
<string name="upload_failed">Berkas teu kapanggih. Coba berkas séjén.</string>
|
||||||
<string name="authentication_failed" fuzzy="true">Oténtikasi gagal!</string>
|
<string name="authentication_failed">Oténtikasi gagal! mangga asup log deui</string>
|
||||||
<string name="uploading_started">Mitembeyan ngunjal!</string>
|
<string name="uploading_started">Mitembeyan ngunjal!</string>
|
||||||
<string name="upload_completed_notification_title">%1$s diunjal!</string>
|
<string name="upload_completed_notification_title">%1$s diunjal!</string>
|
||||||
<string name="upload_completed_notification_text">Toél pikeun némpo unjalan anjeun</string>
|
<string name="upload_completed_notification_text">Toél pikeun némpo unjalan anjeun</string>
|
||||||
|
|
@ -25,7 +32,7 @@
|
||||||
<string name="upload_progress_notification_title_finishing">Méréskeun unjalan %1$s</string>
|
<string name="upload_progress_notification_title_finishing">Méréskeun unjalan %1$s</string>
|
||||||
<string name="upload_failed_notification_title">Ngunjal %1$s gagal</string>
|
<string name="upload_failed_notification_title">Ngunjal %1$s gagal</string>
|
||||||
<string name="upload_failed_notification_subtitle">Toél pikeun nempo</string>
|
<string name="upload_failed_notification_subtitle">Toél pikeun nempo</string>
|
||||||
<plurals name="uploads_pending_notification_indicator" fuzzy="true">
|
<plurals name="uploads_pending_notification_indicator">
|
||||||
<item quantity="one">ngunjal %1$d berkas</item>
|
<item quantity="one">ngunjal %1$d berkas</item>
|
||||||
<item quantity="other">ngunjal %1$d berkas</item>
|
<item quantity="other">ngunjal %1$d berkas</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
|
|
@ -75,6 +82,7 @@
|
||||||
<string name="categories_activity_title">Kategori</string>
|
<string name="categories_activity_title">Kategori</string>
|
||||||
<string name="title_activity_settings">Séting</string>
|
<string name="title_activity_settings">Séting</string>
|
||||||
<string name="title_activity_signup">Daptar</string>
|
<string name="title_activity_signup">Daptar</string>
|
||||||
|
<string name="title_activity_featured_images">Gambar petingan</string>
|
||||||
<string name="menu_about">Ngeunaan</string>
|
<string name="menu_about">Ngeunaan</string>
|
||||||
<string name="about_license">Aplikasi Wikimédia Commons mangrupa aplikasi sumber nembrak nu dijieun jeung dikokolakeun ku panampa hibah sarta rélawan komunitas Wikimédia. Wikimedia Foundation teu pépérodeun dina nyieun, ngamekarkeun, atawa mulasara ieu aplikasi.</string>
|
<string name="about_license">Aplikasi Wikimédia Commons mangrupa aplikasi sumber nembrak nu dijieun jeung dikokolakeun ku panampa hibah sarta rélawan komunitas Wikimédia. Wikimedia Foundation teu pépérodeun dina nyieun, ngamekarkeun, atawa mulasara ieu aplikasi.</string>
|
||||||
<string name="about_improve" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-commons\">Sumber</a> sarta <a href=\"https://commons-app.github.io/\">situ wéb</a> dina GitHub. Jieun anyar <a href=\"https://github.com/commons-app/apps-android-commons/issues\">perkara GitHub</a> pikeun saran jeung laporan kutu.</string>
|
<string name="about_improve" fuzzy="true"><a href=\"https://github.com/commons-app/apps-android-commons\">Sumber</a> sarta <a href=\"https://commons-app.github.io/\">situ wéb</a> dina GitHub. Jieun anyar <a href=\"https://github.com/commons-app/apps-android-commons/issues\">perkara GitHub</a> pikeun saran jeung laporan kutu.</string>
|
||||||
|
|
@ -91,7 +99,7 @@
|
||||||
<string name="share_license_summary">Ieu gambar bakal ditangtayungan ku lisénsi %1$s</string>
|
<string name="share_license_summary">Ieu gambar bakal ditangtayungan ku lisénsi %1$s</string>
|
||||||
<string name="media_upload_policy">Ku ngirimkeun ieu gambar, kuring ngedalkeun yén ieu mangrupa karya kuring sorangan, yén ieu karya teu ngandung matéri atawa hak pribadi nu ditangtayungan ku hak cipta, sarta mun teu nurut kana <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Kawijakan Wikimedia Commons</a>.</string>
|
<string name="media_upload_policy">Ku ngirimkeun ieu gambar, kuring ngedalkeun yén ieu mangrupa karya kuring sorangan, yén ieu karya teu ngandung matéri atawa hak pribadi nu ditangtayungan ku hak cipta, sarta mun teu nurut kana <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Kawijakan Wikimedia Commons</a>.</string>
|
||||||
<string name="menu_download">Undeur</string>
|
<string name="menu_download">Undeur</string>
|
||||||
<string name="preference_license" fuzzy="true">Lisénsi</string>
|
<string name="preference_license">Lisénsi buhun</string>
|
||||||
<string name="use_previous">Paké baé judul/pedaran saméméhna</string>
|
<string name="use_previous">Paké baé judul/pedaran saméméhna</string>
|
||||||
<string name="allow_gps">Comot lokasi sacara otomatis</string>
|
<string name="allow_gps">Comot lokasi sacara otomatis</string>
|
||||||
<string name="allow_gps_summary" fuzzy="true">Catet lokasi ayeuna pikeun nawarkeun usulan kategori lamun gambar tanpa géotag</string>
|
<string name="allow_gps_summary" fuzzy="true">Catet lokasi ayeuna pikeun nawarkeun usulan kategori lamun gambar tanpa géotag</string>
|
||||||
|
|
@ -125,6 +133,7 @@
|
||||||
<string name="tutorial_3_subtext">- Sélpi atawa poto sobat anjeun\n- Poto anu diundeur ti Internét\n- Poto layar aplikasi</string>
|
<string name="tutorial_3_subtext">- Sélpi atawa poto sobat anjeun\n- Poto anu diundeur ti Internét\n- Poto layar aplikasi</string>
|
||||||
<string name="tutorial_4_text">Conto unjalan:</string>
|
<string name="tutorial_4_text">Conto unjalan:</string>
|
||||||
<string name="tutorial_4_subtext" fuzzy="true">- Judul: Gedung Opera Sydney\n- Pedaran: Gedung Opera Sydney (Sydney Opera House) ditempo ti basisir peuntas\n- Kategori: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views</string>
|
<string name="tutorial_4_subtext" fuzzy="true">- Judul: Gedung Opera Sydney\n- Pedaran: Gedung Opera Sydney (Sydney Opera House) ditempo ti basisir peuntas\n- Kategori: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views</string>
|
||||||
|
<string name="tutorial_4_subtext_1">Judul: Rumah Opera Sydney</string>
|
||||||
<string name="welcome_wikipedia_text">Sumbangkeun gambar Anjeun. Bantuan ngahirupkeun artikel Wikipédia!</string>
|
<string name="welcome_wikipedia_text">Sumbangkeun gambar Anjeun. Bantuan ngahirupkeun artikel Wikipédia!</string>
|
||||||
<string name="welcome_wikipedia_subtext">Gambar di Wikipédia asalna ti Wikimedia Commons.</string>
|
<string name="welcome_wikipedia_subtext">Gambar di Wikipédia asalna ti Wikimedia Commons.</string>
|
||||||
<string name="welcome_copyright_text">Gambar-gambar anjeun ngabantu ngatik jalma di sakuliah dunya.</string>
|
<string name="welcome_copyright_text">Gambar-gambar anjeun ngabantu ngatik jalma di sakuliah dunya.</string>
|
||||||
|
|
@ -151,6 +160,7 @@
|
||||||
<string name="media_detail_media_title">Judul berkas</string>
|
<string name="media_detail_media_title">Judul berkas</string>
|
||||||
<string name="media_detail_description">Déskripsi</string>
|
<string name="media_detail_description">Déskripsi</string>
|
||||||
<string name="media_detail_description_explanation">Pedaran berkas nyangkaruk didieu. Bisa jadi matak ngalikakeun, sarta ngempladkeun kana sawatara baris. Sanajan kitu, muga bisa katémbong écés.</string>
|
<string name="media_detail_description_explanation">Pedaran berkas nyangkaruk didieu. Bisa jadi matak ngalikakeun, sarta ngempladkeun kana sawatara baris. Sanajan kitu, muga bisa katémbong écés.</string>
|
||||||
|
<string name="media_detail_author">Pangarang</string>
|
||||||
<string name="media_detail_uploaded_date">Tanggal ngunjal</string>
|
<string name="media_detail_uploaded_date">Tanggal ngunjal</string>
|
||||||
<string name="media_detail_license">Lisénsi</string>
|
<string name="media_detail_license">Lisénsi</string>
|
||||||
<string name="media_detail_coordinates">Koordinat</string>
|
<string name="media_detail_coordinates">Koordinat</string>
|
||||||
|
|
@ -165,6 +175,9 @@
|
||||||
<string name="login_failed_2fa_not_supported">Oténtikasi dua faktor kiwari teu dirojong.</string>
|
<string name="login_failed_2fa_not_supported">Oténtikasi dua faktor kiwari teu dirojong.</string>
|
||||||
<string name="logout_verification">Yakin anjeun rék kaluar?</string>
|
<string name="logout_verification">Yakin anjeun rék kaluar?</string>
|
||||||
<string name="commons_logo">Logo Commons</string>
|
<string name="commons_logo">Logo Commons</string>
|
||||||
|
<string name="commons_website">Situs wéb Commons</string>
|
||||||
|
<string name="commons_facebook">Kaca Facebook Commons</string>
|
||||||
|
<string name="commons_github">Kode Sumber Github Commons</string>
|
||||||
<string name="background_image">Gambar Kasang Tukang</string>
|
<string name="background_image">Gambar Kasang Tukang</string>
|
||||||
<string name="mediaimage_failed">Gambar Média Gagal</string>
|
<string name="mediaimage_failed">Gambar Média Gagal</string>
|
||||||
<string name="no_image_found">Gambar Teu Kapanggih</string>
|
<string name="no_image_found">Gambar Teu Kapanggih</string>
|
||||||
|
|
@ -189,10 +202,13 @@
|
||||||
<string name="navigation_item_feedback">Eupan balik</string>
|
<string name="navigation_item_feedback">Eupan balik</string>
|
||||||
<string name="navigation_item_logout">Kaluar</string>
|
<string name="navigation_item_logout">Kaluar</string>
|
||||||
<string name="navigation_item_info">Pituduh</string>
|
<string name="navigation_item_info">Pituduh</string>
|
||||||
|
<string name="navigation_item_notification">Iber</string>
|
||||||
|
<string name="navigation_item_featured_images">Petingan</string>
|
||||||
<string name="nearby_needs_permissions">Tempat sabudeureun teu bisa ditémbongkeun tanpa idin lokasi</string>
|
<string name="nearby_needs_permissions">Tempat sabudeureun teu bisa ditémbongkeun tanpa idin lokasi</string>
|
||||||
<string name="no_description_found">teu manggihan pedaran</string>
|
<string name="no_description_found">teu manggihan pedaran</string>
|
||||||
<string name="nearby_info_menu_commons_article">Kaca berkas commons</string>
|
<string name="nearby_info_menu_commons_article">Kaca berkas commons</string>
|
||||||
<string name="nearby_info_menu_wikidata_article">item Wikidata</string>
|
<string name="nearby_info_menu_wikidata_article">item Wikidata</string>
|
||||||
|
<string name="nearby_info_menu_wikipedia_article">Artikel Wikipédia</string>
|
||||||
<string name="error_while_cache">Kasalahan nalika muat gambar</string>
|
<string name="error_while_cache">Kasalahan nalika muat gambar</string>
|
||||||
<string name="title_info">Judul déskriptif anu unik pikeun berkas, anu bakal miboga fungsi minangka ngaran berkas. Anjeun bisa maké basa basajan kalawan spasi. Ulah ngawuwuhkeun éksténsi berkas</string>
|
<string name="title_info">Judul déskriptif anu unik pikeun berkas, anu bakal miboga fungsi minangka ngaran berkas. Anjeun bisa maké basa basajan kalawan spasi. Ulah ngawuwuhkeun éksténsi berkas</string>
|
||||||
<string name="description_info">Pék émbarkeun wincikan média saloba-lobabana: Dimana éta dicokot? Naon nu titojokeunna? Naon kontéksna? Pék jéntrékeun obyék atawa jalmana. Ébré informasi anu teu gampang kajudi, kawas wayah mun éta mangrupa pamandangan. Ari média nu némbongkeun perkara nu teu guyub, pék jéntrékeun naon nu ngabalukarkeun éta téh teu guyub.</string>
|
<string name="description_info">Pék émbarkeun wincikan média saloba-lobabana: Dimana éta dicokot? Naon nu titojokeunna? Naon kontéksna? Pék jéntrékeun obyék atawa jalmana. Ébré informasi anu teu gampang kajudi, kawas wayah mun éta mangrupa pamandangan. Ari média nu némbongkeun perkara nu teu guyub, pék jéntrékeun naon nu ngabalukarkeun éta téh teu guyub.</string>
|
||||||
|
|
|
||||||
|
|
@ -286,4 +286,5 @@
|
||||||
<string name="wikidata_edit_failure">Misslyckades att uppdatera motsvarande Wikidataentitet!</string>
|
<string name="wikidata_edit_failure">Misslyckades att uppdatera motsvarande Wikidataentitet!</string>
|
||||||
<string name="menu_set_wallpaper">Ange som bakgrundsbild</string>
|
<string name="menu_set_wallpaper">Ange som bakgrundsbild</string>
|
||||||
<string name="wallpaper_set_successfully">Bakgrundsbilden ändrades!</string>
|
<string name="wallpaper_set_successfully">Bakgrundsbilden ändrades!</string>
|
||||||
|
<string name="user_not_logged_in">Inloggningssessionen löptes ut, var god logga in igen.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">விக்கிமீடியா காமன்சு</string>
|
<string name="app_name">காமன்சு</string>
|
||||||
<string name="menu_settings">அமைப்புகள்</string>
|
<string name="menu_settings">அமைப்புகள்</string>
|
||||||
<string name="username">பயனர் பெயர்</string>
|
<string name="username">பயனர் பெயர்</string>
|
||||||
<string name="password">கடவுச்சொல்</string>
|
<string name="password">கடவுச்சொல்</string>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
* Emperyan
|
* Emperyan
|
||||||
* Hedda
|
* Hedda
|
||||||
* Incelemeelemani
|
* Incelemeelemani
|
||||||
|
* Joseph
|
||||||
* McAang
|
* McAang
|
||||||
* Neslihan Turan
|
* Neslihan Turan
|
||||||
* Rapsar
|
* Rapsar
|
||||||
|
|
@ -288,4 +289,5 @@
|
||||||
<string name="wikidata_edit_failure">Karşılık gelen Vikiveri varlığı güncellenemedi!</string>
|
<string name="wikidata_edit_failure">Karşılık gelen Vikiveri varlığı güncellenemedi!</string>
|
||||||
<string name="menu_set_wallpaper">Duvar kağıdı ayarla</string>
|
<string name="menu_set_wallpaper">Duvar kağıdı ayarla</string>
|
||||||
<string name="wallpaper_set_successfully">Duvar kağıdı başarıyla ayarlandı!</string>
|
<string name="wallpaper_set_successfully">Duvar kağıdı başarıyla ayarlandı!</string>
|
||||||
|
<string name="user_not_logged_in">Oturumun süresi doldu, lütfen tekrar giriş yapın.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -295,4 +295,5 @@
|
||||||
<string name="wikidata_edit_failure">Не вдалось оновити відповідну сторінку Вікіданих!</string>
|
<string name="wikidata_edit_failure">Не вдалось оновити відповідну сторінку Вікіданих!</string>
|
||||||
<string name="menu_set_wallpaper">Поставити шпалерами екрану</string>
|
<string name="menu_set_wallpaper">Поставити шпалерами екрану</string>
|
||||||
<string name="wallpaper_set_successfully">Шпалери екрану виставлено успішно!</string>
|
<string name="wallpaper_set_successfully">Шпалери екрану виставлено успішно!</string>
|
||||||
|
<string name="user_not_logged_in">Сесія авторизації спливла. Будь ласка, авторизуйтесь знову.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
<string name="menu_from_gallery">از نگار خانہ</string>
|
<string name="menu_from_gallery">از نگار خانہ</string>
|
||||||
<string name="menu_from_camera">تصویر لیں</string>
|
<string name="menu_from_camera">تصویر لیں</string>
|
||||||
<string name="menu_nearby">قریبی</string>
|
<string name="menu_nearby">قریبی</string>
|
||||||
<string name="provider_contributions">میری اپلوڈ</string>
|
<string name="provider_contributions">میرے اپلوڈ کردہ</string>
|
||||||
<string name="menu_share">شیئر</string>
|
<string name="menu_share">شیئر</string>
|
||||||
<string name="menu_open_in_browser">براؤزر میں کھولیں</string>
|
<string name="menu_open_in_browser">براؤزر میں کھولیں</string>
|
||||||
<string name="share_title_hint">عنوان</string>
|
<string name="share_title_hint">عنوان</string>
|
||||||
|
|
|
||||||
|
|
@ -289,4 +289,5 @@
|
||||||
<string name="wikidata_edit_failure">更新所對應的維基數據項目失敗!</string>
|
<string name="wikidata_edit_failure">更新所對應的維基數據項目失敗!</string>
|
||||||
<string name="menu_set_wallpaper">設定桌布</string>
|
<string name="menu_set_wallpaper">設定桌布</string>
|
||||||
<string name="wallpaper_set_successfully">桌布設定成功!</string>
|
<string name="wallpaper_set_successfully">桌布設定成功!</string>
|
||||||
|
<string name="user_not_logged_in">登入用 session 逾期,請重新登入。</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
<string name="preference_category_appearance">外观</string>
|
<string name="preference_category_appearance">外观</string>
|
||||||
<string name="preference_category_general">常规</string>
|
<string name="preference_category_general">一般</string>
|
||||||
<string name="preference_category_feedback">反馈</string>
|
<string name="preference_category_feedback">反馈</string>
|
||||||
<string name="preference_category_location">位置</string>
|
<string name="preference_category_location">位置</string>
|
||||||
<string name="app_name">共享资源</string>
|
<string name="app_name">共享资源</string>
|
||||||
|
|
@ -285,4 +285,5 @@
|
||||||
<string name="wikidata_edit_failure">更新对应维基数据实体失败!</string>
|
<string name="wikidata_edit_failure">更新对应维基数据实体失败!</string>
|
||||||
<string name="menu_set_wallpaper">设置墙纸</string>
|
<string name="menu_set_wallpaper">设置墙纸</string>
|
||||||
<string name="wallpaper_set_successfully">墙纸已成功设置!</string>
|
<string name="wallpaper_set_successfully">墙纸已成功设置!</string>
|
||||||
|
<string name="user_not_logged_in">登录会话已过期,请重新登录。</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -289,4 +289,6 @@
|
||||||
<string name="wikidata_edit_failure">Failed to update corresponding Wikidata entity!</string>
|
<string name="wikidata_edit_failure">Failed to update corresponding Wikidata entity!</string>
|
||||||
<string name="menu_set_wallpaper">Set wallpaper</string>
|
<string name="menu_set_wallpaper">Set wallpaper</string>
|
||||||
<string name="wallpaper_set_successfully">Wallpaper set successfully!</string>
|
<string name="wallpaper_set_successfully">Wallpaper set successfully!</string>
|
||||||
|
|
||||||
|
<string name="user_not_logged_in">Login session expired, please log in again.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -38,16 +38,8 @@
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<!-- The key 'allowGps' was used before and has since been removed based on the discussion at #1599.
|
||||||
android:title="@string/preference_category_location">
|
Do not reuse this key unless you revive the same feature with the changes mentioned at #1599.-->
|
||||||
|
|
||||||
<SwitchPreference
|
|
||||||
android:key="allowGps"
|
|
||||||
android:title="@string/allow_gps"
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:summary="@string/allow_gps_summary" />
|
|
||||||
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/preference_category_feedback">
|
android:title="@string/preference_category_feedback">
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
At its core, dependency injection is just the principle of `"tell, dont ask"` put into practice; for instance, if a class needs to use the `MediaWikiApi`, it should be handed an instance of the classs rather than reaching out to get it. This has the effect of decoupling code, making it easier to test and reuse.
|
At its core, dependency injection is just the principle of `"tell, don't ask"` put into practice; for instance, if a class needs to use the `MediaWikiApi`, it should be handed an instance of the class rather than reaching out to get it. This has the effect of decoupling code, making it easier to test and reuse.
|
||||||
|
|
||||||
## Dependency Injection in the Commons app
|
## Dependency Injection in the Commons app
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue