Fix conflicts

This commit is contained in:
neslihanturan 2019-08-16 13:47:15 +03:00
commit e6f36336f8
39 changed files with 2687 additions and 219 deletions

View file

@ -1,5 +1,12 @@
# Wikimedia Commons for Android
## v2.11.0
- Refactored upload process, explore/media details, and peer review to use MVP architecture
- Refactored all AsyncTasks to use RxAndroid
- Partial migration to Retrofit
- Allow users to remove EXIF tags from their uploads if desired
- Multiple crash and bug fixes
## v2.10.2
- Fixed remaining issues with date image taken
- Fixed database crash

View file

@ -83,8 +83,6 @@ dependencies {
implementation "androidx.cardview:cardview:1.0.0"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "androidx.exifinterface:exifinterface:1.0.0"
//swipe_layout
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
//metadata extractor
implementation 'com.drewnoakes:metadata-extractor:2.11.0'
}
@ -93,8 +91,8 @@ android {
buildToolsVersion "28.0.3"
defaultConfig {
applicationId 'fr.free.nrw.commons'
versionCode 243
versionName '2.10.2'
versionCode 475
versionName '2.11.0'
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
minSdkVersion 19
targetSdkVersion 28

View file

@ -48,8 +48,21 @@ public class CategoriesModel{
*/
public Comparator<CategoryItem> sortBySimilarity(final String filter) {
Comparator<String> stringSimilarityComparator = StringSortingUtils.sortBySimilarity(filter);
return (firstItem, secondItem) -> stringSimilarityComparator
.compare(firstItem.getName(), secondItem.getName());
return (firstItem, secondItem) -> {
//if the category is selected, it should get precedence
if (null != firstItem && firstItem.isSelected()) {
if (null != secondItem && secondItem.isSelected()) {
return stringSimilarityComparator
.compare(firstItem.getName(), secondItem.getName());
}
return -1;
}
if (null != secondItem && secondItem.isSelected()) {
return 1;
}
return stringSimilarityComparator
.compare(firstItem.getName(), secondItem.getName());
};
}
/**
@ -255,4 +268,38 @@ public class CategoriesModel{
this.categoriesCache.clear();
this.selectedCategories.clear();
}
/**
* Search for categories
*/
public Observable<CategoryItem> searchCategories(String query, List<String> imageTitleList) {
if (TextUtils.isEmpty(query)) {
return gpsCategories()
.concatWith(titleCategories(imageTitleList))
.concatWith(recentCategories());
}
return mwApi
.searchCategories(query, SEARCH_CATS_LIMIT)
.map(s -> new CategoryItem(s, false));
}
/**
* Returns default categories
*/
public Observable<CategoryItem> getDefaultCategories(List<String> titleList) {
Observable<CategoryItem> directCategories = directCategories();
if (hasDirectCategories()) {
Timber.d("Image has direct Categories");
return directCategories
.concatWith(gpsCategories())
.concatWith(titleCategories(titleList))
.concatWith(recentCategories());
} else {
Timber.d("Image has no direct Categories");
return gpsCategories()
.concatWith(titleCategories(titleList))
.concatWith(recentCategories());
}
}
}

View file

@ -0,0 +1,723 @@
package fr.free.nrw.commons.nearby;
import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.Gson;
import java.util.List;
import javax.inject.Inject;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import butterknife.BindView;
import butterknife.ButterKnife;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.contributions.MainActivity;
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
import fr.free.nrw.commons.location.LatLng;
import fr.free.nrw.commons.location.LocationServiceManager;
import fr.free.nrw.commons.location.LocationUpdateListener;
import fr.free.nrw.commons.utils.FragmentUtils;
import fr.free.nrw.commons.utils.NetworkUtils;
import fr.free.nrw.commons.utils.PermissionUtils;
import fr.free.nrw.commons.utils.ViewUtil;
import fr.free.nrw.commons.wikidata.WikidataEditListener;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import timber.log.Timber;
import static fr.free.nrw.commons.contributions.MainActivity.CONTRIBUTIONS_TAB_POSITION;
import static fr.free.nrw.commons.contributions.MainActivity.NEARBY_TAB_POSITION;
import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED;
import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_CHANGED;
import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.MAP_UPDATED;
import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.PERMISSION_JUST_GRANTED;
public class NearbyFragment extends CommonsDaggerSupportFragment
implements LocationUpdateListener,
WikidataEditListener.WikidataP18EditListener {
@BindView(R.id.progressBar)
ProgressBar progressBar;
@BindView(R.id.bottom_sheet)
LinearLayout bottomSheet;
@BindView(R.id.bottom_sheet_details)
LinearLayout bottomSheetDetails;
@BindView(R.id.transparentView)
View transparentView;
@BindView(R.id.container_sheet)
FrameLayout frameLayout;
@BindView(R.id.loading_nearby_list)
ConstraintLayout loading_nearby_layout;
@Inject
LocationServiceManager locationManager;
@Inject
NearbyController nearbyController;
@Inject
WikidataEditListener wikidataEditListener;
@Inject Gson gson;
public NearbyMapFragment nearbyMapFragment;
private NearbyListFragment nearbyListFragment;
private static final String TAG_RETAINED_MAP_FRAGMENT = NearbyMapFragment.class.getSimpleName();
private static final String TAG_RETAINED_LIST_FRAGMENT = NearbyListFragment.class.getSimpleName();
private Bundle bundle;
private BottomSheetBehavior bottomSheetBehavior; // Behavior for list bottom sheet
private BottomSheetBehavior bottomSheetBehaviorForDetails; // Behavior for details bottom sheet
private LatLng curLatLng;
private boolean lockNearbyView; //Determines if the nearby places needs to be refreshed
public View view;
private Snackbar snackbar;
private LatLng lastKnownLocation;
private LatLng customLatLng;
private final String NETWORK_INTENT_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
private BroadcastReceiver broadcastReceiver;
private boolean onOrientationChanged = false;
private boolean populateForCurrentLocation = false;
private boolean isNetworkErrorOccured = false;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_nearby, container, false);
ButterKnife.bind(this, view);
/*// Resume the fragment if exist
resumeFragment();*/
bundle = new Bundle();
initBottomSheetBehaviour();
this.view = view;
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
onOrientationChanged = true;
}
}
/**
* Hide or expand bottom sheet according to states of all sheets
*/
public void listOptionMenuItemClicked() {
if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED || bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_HIDDEN){
bottomSheetBehaviorForDetails.setState(BottomSheetBehavior.STATE_HIDDEN);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}else if(bottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED){
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
/**
* Resume fragments if they exists
*/
private void resumeFragment() {
// Find the retained fragment on activity restarts
nearbyMapFragment = getMapFragment();
nearbyListFragment = getListFragment();
addNetworkBroadcastReceiver();
}
/**
* Returns the map fragment added to child fragment manager previously, if exists.
*/
private NearbyMapFragment getMapFragment() {
return (NearbyMapFragment) getChildFragmentManager().findFragmentByTag(TAG_RETAINED_MAP_FRAGMENT);
}
private void removeMapFragment() {
if (nearbyMapFragment != null) {
FragmentManager fm = getFragmentManager();
fm.beginTransaction().remove(nearbyMapFragment).commit();
nearbyMapFragment = null;
}
}
/**
* Returns the list fragment added to child fragment manager previously, if exists.
*/
private NearbyListFragment getListFragment() {
return (NearbyListFragment) getChildFragmentManager().findFragmentByTag(TAG_RETAINED_LIST_FRAGMENT);
}
private void removeListFragment() {
if (nearbyListFragment != null) {
FragmentManager fm = getFragmentManager();
fm.beginTransaction().remove(nearbyListFragment).commit();
nearbyListFragment = null;
}
}
/**
* Initialize bottom sheet behaviour (sheet for map list.) Set height 9/16 of all window.
* Add callback for bottom sheet changes, so that we can sync it with bottom sheet for details
* (sheet for nearby details)
*/
private void initBottomSheetBehaviour() {
transparentView.setAlpha(0);
bottomSheet.getLayoutParams().height = getActivity().getWindowManager()
.getDefaultDisplay().getHeight() / 16 * 9;
bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(View bottomSheet, int unusedNewState) {
prepareViewsForSheetPosition();
}
@Override
public void onSlide(View bottomSheet, float slideOffset) {
}
});
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
bottomSheetBehaviorForDetails = BottomSheetBehavior.from(bottomSheetDetails);
bottomSheetBehaviorForDetails.setState(BottomSheetBehavior.STATE_HIDDEN);
}
/**
* Sets camera position, zoom level according to sheet positions
*/
private void prepareViewsForSheetPosition() {
// TODO
}
@Override
public void onLocationChangedSignificantly(LatLng latLng) {
refreshView(LOCATION_SIGNIFICANTLY_CHANGED);
}
@Override
public void onLocationChangedSlightly(LatLng latLng) {
refreshView(LOCATION_SLIGHTLY_CHANGED);
}
@Override
public void onLocationChangedMedium(LatLng latLng) {
// For nearby map actions, there are no differences between 500 meter location change (aka medium change) and slight change
refreshView(LOCATION_SLIGHTLY_CHANGED);
}
@Override
public void onWikidataEditSuccessful() {
// Do not refresh nearby map if we are checking other areas with search this area button
if (nearbyMapFragment != null && !nearbyMapFragment.searchThisAreaModeOn) {
refreshView(MAP_UPDATED);
}
}
/**
* This method should be the single point to load/refresh nearby places
*
* @param locationChangeType defines if location changed significantly or slightly
*/
private void refreshView(LocationServiceManager.LocationChangeType locationChangeType) {
Timber.d("Refreshing nearby places");
if (lockNearbyView) {
return;
}
if (!NetworkUtils.isInternetConnectionEstablished(getActivity())) {
hideProgressBar();
return;
}
registerLocationUpdates();
LatLng lastLocation = locationManager.getLastLocation();
if (curLatLng != null && curLatLng.equals(lastLocation)
&& !locationChangeType.equals(MAP_UPDATED)) { //refresh view only if location has changed
// Two exceptional cases to refresh nearby map manually.
if (!onOrientationChanged) {
return;
}
}
curLatLng = lastLocation;
if (locationChangeType.equals(PERMISSION_JUST_GRANTED)) {
curLatLng = lastKnownLocation;
}
if (curLatLng == null) {
Timber.d("Skipping update of nearby places as location is unavailable");
return;
}
/*
onOrientation changed is true whenever activities orientation changes. After orientation
change we want to refresh map significantly, doesn't matter if location changed significantly
or not. Thus, we included onOrientationChanged boolean to if clause
*/
if (locationChangeType.equals(LOCATION_SIGNIFICANTLY_CHANGED)
|| locationChangeType.equals(PERMISSION_JUST_GRANTED)
|| locationChangeType.equals(MAP_UPDATED)
|| onOrientationChanged) {
progressBar.setVisibility(View.VISIBLE);
//TODO: This hack inserts curLatLng before populatePlaces is called (see #1440). Ideally a proper fix should be found
String gsonCurLatLng = gson.toJson(curLatLng);
bundle.clear();
bundle.putString("CurLatLng", gsonCurLatLng);
compositeDisposable.add(Observable.fromCallable(() -> nearbyController
.loadAttractionsFromLocation(curLatLng, curLatLng, false, true))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::populatePlaces,
throwable -> {
Timber.d(throwable);
showErrorMessage(getString(R.string.error_fetching_nearby_places));
progressBar.setVisibility(View.GONE);
}));
} else if (locationChangeType
.equals(LOCATION_SLIGHTLY_CHANGED) && nearbyMapFragment != null) {
String gsonCurLatLng = gson.toJson(curLatLng);
bundle.putString("CurLatLng", gsonCurLatLng);
updateMapFragment(false,true, null, null);
}
if (nearbyMapFragment != null && nearbyMapFragment.searchThisAreaButton != null) {
nearbyMapFragment.searchThisAreaButton.setVisibility(View.GONE);
}
}
/**
* This method should be used with "Search this are button". This method will search nearby
* points around any custom location (target location when user clicked on search this area)
* button. It populates places for custom location.
* @param customLatLng Custom area which we will search around
*/
void refreshViewForCustomLocation(LatLng customLatLng, boolean refreshForCurrentLocation) {
if (customLatLng == null) {
// If null, return
return;
}
populateForCurrentLocation = refreshForCurrentLocation;
this.customLatLng = customLatLng;
compositeDisposable.add(Observable.fromCallable(() -> nearbyController
.loadAttractionsFromLocation(curLatLng, customLatLng, false, populateForCurrentLocation))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::populatePlacesFromCustomLocation,
throwable -> {
Timber.d(throwable);
showErrorMessage(getString(R.string.error_fetching_nearby_places));
}));
if (nearbyMapFragment != null) {
nearbyMapFragment.searchThisAreaButton.setVisibility(View.GONE);
}
}
/**
* Populates places for custom location, should be used for finding nearby places around a
* location where you are not at.
* @param nearbyPlacesInfo This variable has place list information and distances.
*/
private void populatePlacesFromCustomLocation(NearbyController.NearbyPlacesInfo nearbyPlacesInfo) {
if (nearbyMapFragment != null) {
nearbyMapFragment.searchThisAreaButtonProgressBar.setVisibility(View.GONE);
}
if (nearbyMapFragment != null && curLatLng != null) {
if (!populateForCurrentLocation) {
nearbyMapFragment.updateMapSignificantlyForCustomLocation(customLatLng, nearbyPlacesInfo.placeList);
} else {
updateMapFragment(true,true, customLatLng, nearbyPlacesInfo);
}
updateListFragmentForCustomLocation(nearbyPlacesInfo.placeList);
}
}
/**
* Turns nearby place lists and boundary coordinates into gson and update map and list fragments
* accordingly
* @param nearbyPlacesInfo a variable holds both nearby place list and boundary coordinates
*/
private void populatePlaces(NearbyController.NearbyPlacesInfo nearbyPlacesInfo) {
Timber.d("Populating nearby places");
List<Place> placeList = nearbyPlacesInfo.placeList;
LatLng[] boundaryCoordinates = nearbyPlacesInfo.boundaryCoordinates;
String gsonPlaceList = gson.toJson(placeList);
String gsonCurLatLng = gson.toJson(curLatLng);
String gsonBoundaryCoordinates = gson.toJson(boundaryCoordinates);
if (placeList.size() == 0) {
ViewUtil.showShortSnackbar(view.findViewById(R.id.container), R.string.no_nearby);
}
bundle.putString("PlaceList", gsonPlaceList);
bundle.putString("BoundaryCoord", gsonBoundaryCoordinates);
// First time to init fragments
if (nearbyMapFragment == null) {
Timber.d("Init map fragment for the first time");
lockNearbyView(true);
setMapFragment();
setListFragment();
hideProgressBar();
lockNearbyView(false);
} else {
// There are fragments, just update the map and list
Timber.d("Map fragment already exists, just update the map and list");
updateMapFragment(false,false, null, null);
updateListFragment();
}
}
/**
* Lock nearby view updates while updating map or list. Because we don't want new update calls
* when we already updating for old location update.
* @param lock true if we should lock nearby map
*/
private void lockNearbyView(boolean lock) {
if (lock) {
lockNearbyView = true;
locationManager.unregisterLocationManager();
locationManager.removeLocationListener(this);
} else {
lockNearbyView = false;
registerLocationUpdates();
locationManager.addLocationListener(this);
}
}
/**
* Updates map fragment,
* For slight update: camera follows users location
* For significant update: nearby markers are removed and new markers added again
* Slight updates stop if user is checking another area of map
*
* @param updateViaButton search this area button is clicked
* @param isSlightUpdate Means no need to update markers, just follow user location with camera
* @param customLatLng Will be used for updates for other locations than users current location.
* Ie. when we use search this area feature
* @param nearbyPlacesInfo Includes nearby places list and boundary coordinates
*/
private void updateMapFragment(boolean updateViaButton, boolean isSlightUpdate, @Nullable LatLng customLatLng, @Nullable NearbyController.NearbyPlacesInfo nearbyPlacesInfo) {
/*
Significant update means updating nearby place markers. Slightly update means only
updating current location marker and camera target.
We update our map Significantly on each 1000 meter change, but we can't never know
the frequency of nearby places. Thus we check if we are close to the boundaries of
our nearby markers, we update our map Significantly.
*/
NearbyMapFragment nearbyMapFragment = getMapFragment();
if (nearbyMapFragment != null && !nearbyMapFragment.isCurrentLocationMarkerVisible() && !onOrientationChanged) {
Timber.d("Do not update the map, user is not seeing current location marker" +
" means they are checking around and moving on map");
return;
}
if (nearbyMapFragment != null && curLatLng != null) {
hideProgressBar(); // In case it is visible (this happens, not an impossible case)
/*
* If we are close to nearby places boundaries, we need a significant update to
* get new nearby places. Check order is south, north, west, east
* */
if (nearbyMapFragment.boundaryCoordinates != null
&& !nearbyMapFragment.checkingAround
&& !nearbyMapFragment.searchThisAreaModeOn
&& !onOrientationChanged
&& (curLatLng.getLatitude() < nearbyMapFragment.boundaryCoordinates[0].getLatitude()
|| curLatLng.getLatitude() > nearbyMapFragment.boundaryCoordinates[1].getLatitude()
|| curLatLng.getLongitude() < nearbyMapFragment.boundaryCoordinates[2].getLongitude()
|| curLatLng.getLongitude() > nearbyMapFragment.boundaryCoordinates[3].getLongitude())) {
// populate places
compositeDisposable.add(Observable.fromCallable(() -> nearbyController
.loadAttractionsFromLocation(curLatLng, curLatLng, false, updateViaButton))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::populatePlaces,
throwable -> {
Timber.d(throwable);
showErrorMessage(getString(R.string.error_fetching_nearby_places));
progressBar.setVisibility(View.GONE);
}));
nearbyMapFragment.setBundleForUpdates(bundle);
nearbyMapFragment.updateMapSignificantlyForCurrentLocation();
updateListFragment();
return;
}
if (updateViaButton) {
nearbyMapFragment.updateMapSignificantlyForCustomLocation(customLatLng, nearbyPlacesInfo.placeList);
return;
}
/*
If this is the map update just after orientation change, then it is not a slight update
anymore. We want to significantly update map after each orientation change
*/
if (onOrientationChanged) {
isSlightUpdate = false;
onOrientationChanged = false;
}
if (isSlightUpdate) {
nearbyMapFragment.setBundleForUpdates(bundle);
nearbyMapFragment.updateMapSlightly();
} else {
nearbyMapFragment.setBundleForUpdates(bundle);
nearbyMapFragment.updateMapSignificantlyForCurrentLocation();
updateListFragment();
}
} else {
lockNearbyView(true);
setMapFragment();
setListFragment();
hideProgressBar();
lockNearbyView(false);
}
}
/**
* Updates already existing list fragment with bundle includes nearby places and boundary
* coordinates
*/
private void updateListFragment() {
nearbyListFragment.setBundleForUpdates(bundle);
nearbyListFragment.updateNearbyListSignificantly();
}
/**
* Updates nearby list for custom location, will be used with search this area method. When you
* want to search for a place where you are not at.
* @param placeList List of places around your manually chosen target location from map.
*/
private void updateListFragmentForCustomLocation(List<Place> placeList) {
nearbyListFragment.updateNearbyListSignificantlyForCustomLocation(placeList);
}
/**
* Calls fragment for map view.
*/
private void setMapFragment() {
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
nearbyMapFragment = new NearbyMapFragment();
nearbyMapFragment.setArguments(bundle);
fragmentTransaction.replace(R.id.container, nearbyMapFragment, TAG_RETAINED_MAP_FRAGMENT);
fragmentTransaction.commitAllowingStateLoss();
}
/**
* Calls fragment for list view.
*/
private void setListFragment() {
loading_nearby_layout.setVisibility(View.GONE);
frameLayout.setVisibility(View.VISIBLE);
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
nearbyListFragment = new NearbyListFragment();
nearbyListFragment.setArguments(bundle);
fragmentTransaction.replace(R.id.container_sheet, nearbyListFragment, TAG_RETAINED_LIST_FRAGMENT);
initBottomSheetBehaviour();
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
fragmentTransaction.commitAllowingStateLoss();
}
/**
* Hides progress bar
*/
private void hideProgressBar() {
if (progressBar != null) {
progressBar.setVisibility(View.GONE);
}
}
/**
* This method first checks if the location permissions has been granted and then register the location manager for updates.
*/
private void registerLocationUpdates() {
locationManager.registerLocationManager();
}
private void showErrorMessage(String message) {
ViewUtil.showLongToast(getActivity(), message);
}
/**
* Adds network broadcast receiver to recognize connection established
*/
private void addNetworkBroadcastReceiver() {
if (!FragmentUtils.isFragmentUIActive(this)) {
return;
}
if (broadcastReceiver != null) {
return;
}
IntentFilter intentFilter = new IntentFilter(NETWORK_INTENT_ACTION);
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (getActivity() != null) {
if (NetworkUtils.isInternetConnectionEstablished(getActivity())) {
if (isNetworkErrorOccured) {
refreshView(LOCATION_SIGNIFICANTLY_CHANGED);
isNetworkErrorOccured = false;
}
if (snackbar != null) {
snackbar.dismiss();
snackbar = null;
}
} else {
if (snackbar == null) {
snackbar = Snackbar.make(view, R.string.no_internet, Snackbar.LENGTH_INDEFINITE);
if (nearbyMapFragment != null && nearbyMapFragment.searchThisAreaButton != null) {
nearbyMapFragment.searchThisAreaButton.setVisibility(View.GONE);
}
}
isNetworkErrorOccured = true;
snackbar.show();
}
}
}
};
getActivity().registerReceiver(broadcastReceiver, intentFilter);
}
@Override
public void onResume() {
super.onResume();
// Resume the fragment if exist
if (((MainActivity) getActivity()).viewPager.getCurrentItem() == NEARBY_TAB_POSITION) {
checkPermissionsAndPerformAction(this::resumeFragment);
} else {
resumeFragment();
}
}
/**
* Perform nearby operations on nearby tab selected
* @param onOrientationChanged pass orientation changed info to fragment
*/
public void onTabSelected(boolean onOrientationChanged) {
Timber.d("On nearby tab selected");
this.onOrientationChanged = onOrientationChanged;
checkPermissionsAndPerformAction(this::performNearbyOperations);
}
private void checkPermissionsAndPerformAction(Runnable runnable) {
PermissionUtils.checkPermissionsAndPerformAction(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION,
runnable,
() -> ((MainActivity) getActivity()).viewPager.setCurrentItem(CONTRIBUTIONS_TAB_POSITION),
R.string.location_permission_title,
R.string.location_permission_rationale_nearby);
}
/**
* Calls nearby operations in required order.
*/
private void performNearbyOperations() {
locationManager.addLocationListener(this);
registerLocationUpdates();
lockNearbyView = false;
addNetworkBroadcastReceiver();
refreshView(LOCATION_SIGNIFICANTLY_CHANGED);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
wikidataEditListener.setAuthenticationStateListener(this);
}
@Override
public void onDestroy() {
super.onDestroy();
wikidataEditListener.setAuthenticationStateListener(null);
}
@Override
public void onDetach() {
super.onDetach();
snackbar = null;
broadcastReceiver = null;
wikidataEditListener.setAuthenticationStateListener(null);
}
@Override
public void onPause() {
super.onPause();
// this means that this activity will not be recreated now, user is leaving it
// or the activity is otherwise finishing
if(getActivity().isFinishing()) {
// we will not need this fragment anymore, this may also be a good place to signal
// to the retained fragment object to perform its own cleanup.
//removeMapFragment();
removeListFragment();
}
if (broadcastReceiver != null) {
getActivity().unregisterReceiver(broadcastReceiver);
broadcastReceiver = null;
}
if (locationManager != null) {
locationManager.removeLocationListener(this);
locationManager.unregisterLocationManager();
}
}
/**
* Centers the map in nearby fragment to a given place
* @param place is new center of the map
*/
public void centerMapToPlace(Place place) {
if (nearbyMapFragment != null) {
nearbyMapFragment.centerMapToPlace(place);
}
}
public boolean isBottomSheetExpanded() { return bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED;
}
}

File diff suppressed because it is too large Load diff

View file

@ -17,6 +17,8 @@ import fr.free.nrw.commons.utils.SwipableCardView;
import fr.free.nrw.commons.utils.ViewUtil;
import timber.log.Timber;
import static fr.free.nrw.commons.contributions.MainActivity.NEARBY_TAB_POSITION;
/**
* Custom card view for nearby notification card view on main screen, above contributions list
*/
@ -66,7 +68,6 @@ public class NearbyNotificationCardView extends SwipableCardView {
progressBar = rootView.findViewById(R.id.progressBar);
setActionListeners();
}
@Override
@ -81,8 +82,16 @@ public class NearbyNotificationCardView extends SwipableCardView {
}
private void setActionListeners() {
this.setOnClickListener(view -> ((MainActivity)getContext()).viewPager.setCurrentItem(1));
private void setActionListeners(Place place) {
this.setOnClickListener(view -> {
MainActivity m = (MainActivity) getContext();
// Change to nearby tab
m.viewPager.setCurrentItem(NEARBY_TAB_POSITION);
// Center the map to the place
((NearbyFragment) m.contributionsActivityPagerAdapter.getItem(NEARBY_TAB_POSITION)).centerMapToPlace(place);
});
}
@Override public boolean onSwipe(View view) {
@ -120,6 +129,7 @@ public class NearbyNotificationCardView extends SwipableCardView {
contentLayout.setVisibility(VISIBLE);
// Make progress bar invisible once data is ready
progressBar.setVisibility(GONE);
setActionListeners(place);
// And content views visible since they are ready
notificationTitle.setVisibility(VISIBLE);
notificationDistance.setVisibility(VISIBLE);

View file

@ -116,9 +116,12 @@ public class PlaceRenderer extends Renderer<Place> {
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(lastPosition, buttonLayout.getHeight());
}
}
if (onBookmarkClick == null) {
((NearbyFragment) fragment.getParentFragment()).centerMapToPlace(place);
}
};
view.setOnClickListener(listener);
view.requestFocus();
view.setOnFocusChangeListener((view1, hasFocus) -> {
if (!hasFocus && buttonLayout.isShown()) {

View file

@ -225,6 +225,7 @@ public class NotificationActivity extends NavigationBaseActivity {
public void notificationClicked(Notification notification) {
Timber.d("Notification clicked %s", notification.link);
handleUrl(notification.link);
removeNotification(notification);
}
@Override

View file

@ -9,7 +9,6 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.daimajia.swipe.SwipeLayout;
import com.google.android.material.animation.ArgbEvaluatorCompat;
import com.pedrogomez.renderers.Renderer;
@ -32,12 +31,8 @@ public class NotificationRenderer extends Renderer<Notification> {
TextView time;
@BindView(R.id.icon)
ImageView icon;
@BindView(R.id.swipeLayout)
SwipeLayout swipeLayout;
@BindView(R.id.bottom)
LinearLayout bottomLayout;
@BindView(R.id.notification_view)
RelativeLayout notificationView;
/*@BindView(R.id.bottom)
LinearLayout bottomLayout;*/
private NotificationClicked listener;
private boolean isarchivedvisible = false;
@ -53,13 +48,6 @@ public class NotificationRenderer extends Renderer<Notification> {
listener.notificationClicked(getContent());
}
@OnClick(R.id.bottom)
void onBottomLayoutClicked(){
Notification notification = getContent();
Timber.d("NotificationID: %s", notification.notificationId);
listener.markNotificationAsRead(notification);
}
@Override
protected void setUpView(View rootView) {
@ -74,21 +62,6 @@ public class NotificationRenderer extends Renderer<Notification> {
protected View inflate(LayoutInflater layoutInflater, ViewGroup viewGroup) {
View inflatedView = layoutInflater.inflate(R.layout.item_notification, viewGroup, false);
ButterKnife.bind(this, inflatedView);
if (isarchivedvisible) {
swipeLayout.setSwipeEnabled(false);
}else {
swipeLayout.setSwipeEnabled(true);
}
swipeLayout.addDrag(SwipeLayout.DragEdge.Top, bottomLayout);
swipeLayout.addRevealListener(R.id.bottom_wrapper_child1, (child, edge, fraction, distance) -> {
View star = child.findViewById(R.id.star);
float d = child.getHeight() / 2 - star.getHeight() / 2;
star.setTranslationY(d * fraction);
star.setScaleX(fraction + 0.6f);
star.setScaleY(fraction + 0.6f);
int c = ArgbEvaluatorCompat.getInstance().evaluate(fraction, Color.parseColor("#dddddd"), Color.parseColor("#90960a0a"));
child.setBackgroundColor(c);
});
return inflatedView;
}

View file

@ -11,10 +11,8 @@ import fr.free.nrw.commons.upload.UploadModel;
import fr.free.nrw.commons.upload.UploadModel.UploadItem;
import io.reactivex.Observable;
import io.reactivex.Single;
import java.util.Comparator;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
@ -167,7 +165,7 @@ public class UploadRemoteDataSource {
}
/**
* ask the UplaodModel for the image quality of the UploadItem
* ask the UploadModel for the image quality of the UploadItem
*
* @param uploadItem
* @param shouldValidateTitle
@ -176,4 +174,21 @@ public class UploadRemoteDataSource {
public Single<Integer> getImageQuality(UploadItem uploadItem, boolean shouldValidateTitle) {
return uploadModel.getImageQuality(uploadItem, shouldValidateTitle);
}
/**
* Ask the CategoriesModel to search categories
* @param query
* @param imageTitleList
* @return
*/
public Observable<CategoryItem> searchCategories(String query, List<String> imageTitleList) {
return categoriesModel.searchCategories(query, imageTitleList);
}
/**
* Ask the CategoriesModel for default categories
*/
public Observable<CategoryItem> getDefaultCategories(List<String> imageTitleList) {
return categoriesModel.getDefaultCategories(imageTitleList);
}
}

View file

@ -8,10 +8,8 @@ import fr.free.nrw.commons.upload.SimilarImageInterface;
import fr.free.nrw.commons.upload.UploadModel.UploadItem;
import io.reactivex.Observable;
import io.reactivex.Single;
import java.util.Comparator;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
@ -262,4 +260,18 @@ public class UploadRepository {
public void setSelectedLicense(String licenseName) {
localDataSource.setSelectedLicense(licenseName);
}
/**
* Ask the RemoteDataSource to search for categories
*/
public Observable<CategoryItem> searchCategories(String query, List<String> imageTitleList) {
return remoteDataSource.searchCategories(query, imageTitleList);
}
/**
* Ask the RemoteDataSource to get default categories
*/
public Observable<CategoryItem> getDefaultCategories(List<String> imageTitleList) {
return remoteDataSource.getDefaultCategories(imageTitleList);
}
}

View file

@ -1,15 +1,12 @@
package fr.free.nrw.commons.settings;
import android.Manifest;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.MultiSelectListPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
import android.text.Editable;
import android.text.TextWatcher;
@ -31,6 +28,7 @@ import fr.free.nrw.commons.Utils;
import fr.free.nrw.commons.di.ApplicationlessInjection;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.logging.CommonsLogSender;
import fr.free.nrw.commons.ui.LongTitlePreferences.LongTitleMultiSelectListPreference;
import fr.free.nrw.commons.utils.PermissionUtils;
import fr.free.nrw.commons.utils.ViewUtil;
import fr.free.nrw.commons.upload.Language;
@ -70,8 +68,9 @@ public class SettingsFragment extends PreferenceFragment {
return true;
});
MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference("manageExifTags");
LongTitleMultiSelectListPreference multiSelectListPref = (LongTitleMultiSelectListPreference) findPreference("manageExifTags");
if (multiSelectListPref != null) {
defaultKvStore.putJson(Prefs.MANAGED_EXIF_TAGS, multiSelectListPref.getValues());
multiSelectListPref.setOnPreferenceChangeListener((preference, newValue) -> {
defaultKvStore.putJson(Prefs.MANAGED_EXIF_TAGS, newValue);
return true;

View file

@ -147,7 +147,6 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
spinnerDescriptionLanguages.getContext(),
R.layout.row_item_languages_spinner, selectedLanguages,
savedLanguageValue);
languagesAdapter.notifyDataSetChanged();
spinnerDescriptionLanguages.setAdapter(languagesAdapter);
spinnerDescriptionLanguages.setOnItemSelectedListener(new OnItemSelectedListener() {
@ -162,6 +161,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
selectedLanguages.put(adapterView, languageCode);
((SpinnerLanguagesAdapter) adapterView
.getAdapter()).selectedLangCode = languageCode;
spinnerDescriptionLanguages.setSelection(position);
Timber.d("Description language code is: "+languageCode);
}
@ -171,7 +171,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
});
if (description.getSelectedLanguageIndex() == -1) {
if (savedLanguageValue != null) {
if (!TextUtils.isEmpty(savedLanguageValue)) {
// If user has chosen a default language from settings activity savedLanguageValue is not null
spinnerDescriptionLanguages.setSelection(languagesAdapter.getIndexOfLanguageCode(savedLanguageValue));
} else {
@ -180,7 +180,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
.getIndexOfUserDefaultLocale(spinnerDescriptionLanguages.getContext());
spinnerDescriptionLanguages.setSelection(defaultLocaleIndex, true);
} else {
spinnerDescriptionLanguages.setSelection(0);
spinnerDescriptionLanguages.setSelection(0,true);
}
}

View file

@ -105,13 +105,13 @@ public class FileProcessor implements Callback {
*/
private Set<String> getExifTagsToRedact(Context context) {
Type setType = new TypeToken<Set<String>>() {}.getType();
Set<String> prefManageEXIFTags = defaultKvStore.getJson(Prefs.MANAGED_EXIF_TAGS, setType);
Set<String> selectedExifTags = defaultKvStore.getJson(Prefs.MANAGED_EXIF_TAGS, setType);
Set<String> redactTags = new HashSet<>(Arrays.asList(
context.getResources().getStringArray(R.array.pref_exifTag_values)));
Timber.d(redactTags.toString());
if (prefManageEXIFTags != null) redactTags.removeAll(prefManageEXIFTags);
if (selectedExifTags != null) redactTags.removeAll(selectedExifTags);
else redactTags.clear();
return redactTags;
}

View file

@ -139,14 +139,7 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter {
String languageCode = LangCodeUtils.fixLanguageCode(languageCodesList.get(position));
final String languageName = StringUtils.capitalize(languageNamesList.get(position));
if(savedLanguageValue.equals("")){
savedLanguageValue = Locale.getDefault().getLanguage();
}
if (!isDropDownView) {
if( !dropDownClicked){
languageCode = LangCodeUtils.fixLanguageCode(savedLanguageValue);
}
view.setVisibility(View.GONE);
if (languageCode.length() > 2)
tvLanguage.setText(languageCode.substring(0, 2));

View file

@ -80,6 +80,9 @@ public class CategoriesPresenter implements CategoriesContract.UserActionListene
.observeOn(ioScheduler)
.concatWith(
repository.searchAll(query, imageTitleList)
.mergeWith(repository.searchCategories(query, imageTitleList))
.concatWith(TextUtils.isEmpty(query) ? repository
.getDefaultCategories(imageTitleList) : Observable.empty())
)
.filter(categoryItem -> !repository.containsYear(categoryItem.getName()))
.distinct();

View file

@ -89,7 +89,7 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
@Override
public void onResume() {
super.onResume();
if (presenter != null && isVisible && (categories == null || categories.isEmpty())) {
if (presenter != null && isVisible) {
presenter.searchForCategories(null);
}
}
@ -193,7 +193,7 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
super.setUserVisibleHint(isVisibleToUser);
isVisible = isVisibleToUser;
if (presenter != null && isResumed() && (categories == null || categories.isEmpty())) {
if (presenter != null && isResumed()) {
presenter.searchForCategories(null);
}
}

View file

@ -1,80 +1,51 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/notification_view"
android:foreground="?selectableItemBackground"
android:minHeight="72dp">
<com.daimajia.swipe.SwipeLayout android:layout_height="match_parent"
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:background="@android:color/white"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_message_black_24dp"
app:tint="@color/primaryDarkColor"
/>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
/>
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:id="@+id/swipeLayout"
>
<LinearLayout
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/bottom_wrapper_child1"
android:background="@color/deleteRed"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/star"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/ic_done_black_24dp"
android:layout_width="20dp"
android:layout_height="20dp" />
</RelativeLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/notification_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:background="@android:color/white"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_message_black_24dp"
/>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
tools:text="2 June" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/time"
android:layout_alignParentTop="true"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_toStartOf="@id/time"
android:layout_toLeftOf="@id/time"
android:layout_toEndOf="@id/icon"
android:layout_toRightOf="@id/icon"
android:ellipsize="end"
android:padding="12dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
tools:text="You just made your tenth edit" />
</RelativeLayout>
</com.daimajia.swipe.SwipeLayout>
android:layout_height="wrap_content"
android:layout_alignTop="@id/time"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_toEndOf="@id/icon"
android:layout_toLeftOf="@id/time"
android:layout_toRightOf="@id/icon"
android:layout_toStartOf="@id/time"
android:ellipsize="end"
android:layout_alignParentTop="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:padding="12dp"
/>
</RelativeLayout>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Mohsin Ali
-->
<resources>
<string name="crash_dialog_title">ক\'ম\'ঞ্চ ক্রেশ্ব হৈছে</string>
<string name="crash_dialog_text">উস্। কিবা সমস্যা হ\'ল!</string>
<string name="crash_dialog_ok_toast">ধন্যবাদ!</string>
</resources>

View file

@ -1,25 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Gitartha.bordoloi
* Mohsin Ali
* Sagsag
* Simbu123
-->
<resources>
<string name="app_name">কমন্স</string>
<string name="menu_settings">ছেটিং</string>
<string name="username">সদস্যনাম</string>
<string name="password">গুপ্তশব্দ</string>
<string name="login">প্ৰৱেশ</string>
<string name="title_activity_explore">অন্বেষণ কৰক</string>
<string name="navigation_item_explore">অন্বেষণ কৰক</string>
<string name="preference_category_appearance">ৰূপ</string>
<string name="preference_category_general">সাধাৰণ</string>
<string name="preference_category_feedback">প্ৰতিক্ৰিয়া</string>
<string name="preference_category_privacy">গোপনিয়তা</string>
<string name="preference_category_location">অৱস্থান</string>
<string name="app_name">ক\'ম\'ঞ্চ</string>
<string name="bullet"></string>
<string name="menu_settings">ছেটিংছ</string>
<string name="intent_share_upload_label">ক\'ম\'ঞ্চত আপল\'ড কৰক</string>
<string name="username">ব্যৱহাৰকাৰীনাম</string>
<string name="password">পাছৱৰ্ড</string>
<string name="login_credential">আপোনাৰ ক\'ম\'ঞ্চ বিটা একাউণ্টত লগইন কৰক</string>
<string name="login">লগইন কৰক</string>
<string name="forgot_password">পাছৱৰ্ড পাহৰিলে?</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="login_success">প্ৰৱেশ সফল হ\'ল!</string>
<string name="login_failed">প্ৰৱেশ বিফল হৈছে!</string>
<string name="login_success">লগইন সফল হ\'ল!</string>
<string name="login_failed">লগইন বিফল হৈছে!</string>
<string name="upload_failed">ফাইল পোৱা নগ\'ল। অনুগ্ৰহ কৰি আন এটা ফাইল চেষ্টা কৰক।</string>
<string name="authentication_failed">প্ৰমাণীকৰণ ব্যৰ্থ হৈছে!</string>
<string name="authentication_failed">প্ৰমাণীকৰণ ব্যৰ্থ হৈছে, অনুগ্ৰহ কৰি আকৌ প্ৰৱেশ কৰক</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_progress_notification_title_start">%1$s আপল\'ড আৰম্ভ হৈছে</string>
<string name="upload_progress_notification_title_in_progress">%1$s আপল\'ড হৈছে</string>
<string name="upload_progress_notification_title_finishing">%1$s আপল\'ড শেষ হৈছে</string>
<string name="upload_failed_notification_title">%1$s আপল\'ড ব্যৰ্থ হৈছে</string>
<string name="upload_failed_notification_subtitle">চাবৰ বাবে স্পৰ্শ কৰক</string>
<plurals name="uploads_pending_notification_indicator">
<item quantity="one">%1$dটা ফাইল আপল\'ড হৈছে</item>
<item quantity="other">%1$dটা ফাইল আপল\'ড হৈছে</item>
</plurals>
<string name="title_activity_contributions">মোৰ শেহতীয়া আপল\'ড</string>
<string name="contribution_state_queued">অপে‌ক্ষাৰত</string>
<string name="contribution_state_failed">ব্যৰ্থ হৈছে</string>
@ -31,8 +52,13 @@
<string name="provider_contributions">মোৰ আপল\'ডসমূহ</string>
<string name="menu_share">শ্বেয়াৰ কৰক</string>
<string name="menu_open_in_browser">ব্ৰাউজাৰত চাওক</string>
<string name="share_title_hint">শিৰোনামা</string>
<string name="share_title_hint">শীৰ্ষক (প্ৰয়োজনীয়)</string>
<string name="add_title_toast">অনুগ্ৰহ কৰি এই ফাই‍লটোৰ এটা শিৰোনাম দিয়ক</string>
<string name="share_description_hint">বিৱৰণ</string>
<string name="login_failed_network">প্ৰৱেশ ব্যৰ্থ হৈছে - নে\'টৱৰ্ক সমস্যা</string>
<string name="login_failed_wrong_credentials">প্ৰৱেশ ব্যৰ্থ হৈছে - অনুগ্ৰহ কৰি আপোনাৰ সদস্যনাম আৰু গুপ্তশব্দ পৰীক্ষা কৰক</string>
<string name="login_failed_throttled">অত্যাধিক অসফল প্ৰচেষ্টা। অনুগ্ৰহ কৰি অলপ সময়ৰ পাছত পুনৰ চেষ্টা কৰক।</string>
<string name="login_failed_blocked">ক্ষমা কৰিব, এই ব্যৱহাৰকাৰী গৰাকীক ক\'ম\'ঞ্চত বাৰণ কৰা হৈছে</string>
<string name="login_failed_generic">প্ৰৱেশ ব্যৰ্থ হৈছে</string>
<string name="share_upload_button">আপল’ড কৰক</string>
<string name="provider_modifications">পৰিৱৰ্তনসমূহ</string>
@ -40,13 +66,89 @@
<string name="categories_search_text_hint">শ্ৰেণী সন্ধান কৰক</string>
<string name="menu_save_categories">সাঁচি থওক</string>
<string name="refresh_button">ৰিফ্ৰেচ</string>
<string name="display_list_button">তালিকা</string>
<string name="gps_disabled">আপোনাৰ সঁজুলিত GPS নিষ্ক্ৰিয় হৈ আছে। আপুনি ইয়াক সক্ৰিয় কৰিব খুজিছে নেকি?</string>
<string name="enable_gps">GPS সক্ৰিয় কৰক</string>
<string name="contributions_subtitle_zero">এতিয়ালৈকে কোনো আপল\'ড নাই</string>
<string name="categories_activity_title">শ্ৰেণী</string>
<string name="title_activity_settings">ছেটিংছ</string>
<string name="title_activity_signup">পঞ্জীয়ন কৰক</string>
<string name="title_activity_featured_images">নিৰ্বাচিত ছবি</string>
<string name="title_activity_category_details">শ্ৰেণী</string>
<string name="menu_about">বিষয়ে</string>
<string name="about_privacy_policy">&lt;u&gt;গোপনিয়তা নীতি&lt;/u&gt;</string>
<string name="menu_feedback">প্ৰতিক্ৰিয়া প্ৰেৰণ কৰক (ইমেইল যোগে)</string>
<string name="no_email_client">কোনো ইমেইল ক্লায়েন্ট ইনষ্টল কৰা নাই</string>
<string name="waiting_first_sync">প্ৰথম চিংকৰ বাবে অপেক্ষাৰত...</string>
<string name="no_uploads_yet">আপুনি এতিয়ালৈকে কোনো ফটো আপল\'ড কৰা নাই।</string>
<string name="menu_retry_upload">পুনৰ চেষ্টা কৰক</string>
<string name="menu_cancel_upload">বাতিল কৰক</string>
<string name="menu_download">ডাউনল’ড কৰক</string>
<string name="preference_theme">নিশা ম\'ড</string>
<string name="preference_theme_summary">ক\'লা থীম ব্যৱহাৰ কৰক</string>
<string name="tutorial_3_text">অনুগ্ৰহ কৰি আপল\'ড নকৰিব:</string>
<string name="tutorial_3_subtext_1">আপোনাৰ বন্ধুসকলৰ ছেল্ফি বা ছবি</string>
<string name="tutorial_3_subtext_2">আপুনি ইণ্টাৰনেটৰ পৰা ডাউনল\'ড কৰা ছবিসমূহ</string>
<string name="tutorial_4_text">আপল\'ডৰ উদাহৰণ:</string>
<string name="tutorial_4_subtext_1">শীৰ্ষক: ছিডনী অপেৰা হাউছ</string>
<string name="welcome_final_text">আপুনি বুজিছে বুলি ভাবেনে?</string>
<string name="welcome_final_button_text">হয়!</string>
<string name="welcome_help_button_text">&lt;u&gt;অধিক তথ্য&lt;/u&gt;</string>
<string name="detail_panel_cats_loading">ল\'ড হৈ আছে…</string>
<string name="detail_panel_cats_none">একো চয়ন কৰা নাই</string>
<string name="detail_discussion_empty">একো আলোচনা নাই</string>
<string name="detail_license_empty">অজ্ঞাত লাইচেঞ্চ</string>
<string name="menu_refresh">সতেজ কৰক</string>
<string name="ok">ঠিক আছে</string>
<string name="title_activity_nearby">নিকটৱৰ্তী ঠাইসমূহ</string>
<string name="no_nearby">কোনো নিকটৱৰ্তী ঠাই পোৱা নাই</string>
<string name="warning">সকীয়নি</string>
<string name="yes">হয়</string>
<string name="no">নহয়</string>
<string name="media_detail_title">শীৰ্ষক</string>
<string name="media_detail_discussion">আলোচনা</string>
<string name="media_detail_uploaded_date">আপল\'ড কৰা তাৰিখ</string>
<string name="media_detail_license">লাইচেঞ্চ</string>
<string name="media_detail_coordinates">স্থানাংকসমূহ</string>
<string name="media_detail_coordinates_empty">একো প্ৰদান কৰা নাই</string>
<string name="become_a_tester_title">এগৰাকী বিটা টেষ্টাৰ হওঁক</string>
<string name="invalid_zero">শূণ্য বৈধ নহয়</string>
<string name="invalid_input">অবৈধ ইনপুট</string>
<string name="enter_valid">এটা বৈধ সংখ্যা প্ৰবিষ্ট কৰক</string>
<string name="cannot_be_zero">আপল\'ডৰ সীমা হ\'ব নোৱাৰে</string>
<string name="set_limit">শেহতীয়া আপল\'ডৰ সীমা</string>
<string name="background_image">পটভূমিৰ ছবি</string>
<string name="mediaimage_failed">মিডিয়াৰ ছবি বিফল হ\'ল</string>
<string name="no_image_found">কোনো ছবি পোৱা নাই</string>
<string name="navigation_drawer_open">খোলক</string>
<string name="navigation_drawer_close">বন্ধ কৰক</string>
<string name="navigation_item_nearby">নিকটৱৰ্তী</string>
<string name="navigation_item_settings">ছেটিংছ</string>
<string name="navigation_item_feedback">প্ৰতিক্ৰিয়া</string>
<string name="navigation_item_notification">জাননী</string>
<string name="upload_problem_image_blurry">ছবিখন ধোঁৱা-ধোঁৱা।</string>
<string name="give_permission">অনুমতি দিয়ক</string>
<string name="null_url">ত্ৰুটি! URL পোৱা নাই</string>
<string name="skip_login">বাদ দিয়ক</string>
<string name="nearby_commons">ক\'ম\'ঞ্চ</string>
<string name="appwidget_img">দিনটোৰ ছবিখন</string>
<string name="app_widget_heading">দিনটোৰ ছবিখন</string>
<string name="search_commons">ক\'ম\'ঞ্চত সন্ধান কৰক</string>
<string name="delete">বিলোপ কৰক</string>
<string name="statistics">পৰিসংখ্যা</string>
<string name="level">স্তৰ</string>
<string name="error_occurred">ত্ৰুটি সংঘটিত হ\'ল!</string>
<string name="notifications">জাননী</string>
<string name="submit">দাখিল কৰক</string>
<string name="yes_submit">হয়, দাখিল কৰক</string>
<string name="dialog_box_text_nomination">%1$s কিয় বিলোপ কৰা হ\'ব লাগে?</string>
<string name="delete_helper_show_deletion_title_success">সফল</string>
<string name="delete_helper_show_deletion_title_failed">বিফল হ\'ল</string>
<string name="delete_helper_ask_spam_selfie">এটা ছেল্ফি</string>
<string name="delete_helper_ask_spam_blurry">ধোঁৱা-ধোঁৱা</string>
<string name="delete_helper_ask_spam_nonsense">অৰ্থহীন</string>
<string name="delete_helper_ask_spam_other">অনান্য</string>
<string name="delete_helper_ask_reason_copyright_logo">ল\'গ\'</string>
<string name="delete_helper_ask_reason_copyright_other">অন্য</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">কাৰণ এয়া</string>
</resources>

View file

@ -169,6 +169,7 @@
<string name="storage_permission_title">Pidiendo permisu d\'almacenamientu</string>
<string name="read_storage_permission_rationale">Permisu riquíu: llectura d\'almacenamientu esternu. L\'aplicación nun puede entrar na to galería ensin él.</string>
<string name="write_storage_permission_rationale">Permisu necesariu: Escritura n\'almacenamientu esternu. L\'aplicación nun puede aportar a la cámara/galería ensin él.</string>
<string name="location_permission_title">Pidiendo permisu d\'allugamientu</string>
<string name="location_permission_rationale">Permisu opcional: llograr l\'allugamientu actual pa suxerir categoríes</string>
<string name="ok">Aceutar</string>
<string name="title_activity_nearby">Llugares cercanos</string>
@ -319,8 +320,8 @@
<string name="error_loading_subcategories">Asocedió un error al cargar les subcategoríes.</string>
<string name="search_tab_title_media">Multimedia</string>
<string name="search_tab_title_categories">Categoríes</string>
<string name="explore_tab_title_featured" fuzzy="true">DESTACADA</string>
<string name="explore_tab_title_mobile" fuzzy="true">XUBÍO DENDE\'L MÓVIL</string>
<string name="explore_tab_title_featured">Destacada</string>
<string name="explore_tab_title_mobile">Xubío dende\'l móvil</string>
<string name="successful_wikidata_edit">Añadióse correutamente la imaxe a %1$s en Wikidata.</string>
<string name="wikidata_edit_failure">Nun pudo anovase la entidá de Wikidata correspondiente.</string>
<string name="menu_set_wallpaper">Poner como fondu</string>
@ -406,6 +407,14 @@
<string name="provider_bookmarks">Marcadores</string>
<string name="bookmark_empty">Nun añadisti nengún marcador</string>
<string name="provider_bookmarks_location">Marcadores</string>
<string name="log_collection_started">Principió la collecha de rexistros. Reanicia l\'aplicación, realiza l\'acción que desees rexistrar y, dempués, toca «Unviar ficheru de rexistru» nuevamente</string>
<string name="deletion_reason_uploaded_by_mistake">Xubilu por error</string>
<string name="deletion_reason_publicly_visible">Nun sabía que diba ser visible\'n público</string>
<string name="deletion_reason_bad_for_my_privacy">Decatéme que ye malo pa la mio privacidá</string>
<string name="deletion_reason_no_longer_want_public">Cambié d\'opinión, nun quiero que siga siendo visible públicamente</string>
<string name="deletion_reason_not_interesting">Sentímoslo, esta imaxe nun ye interesante pa una enciclopedia</string>
<string name="uploaded_by_myself">Xubíla yo mesmu\'l %1$s, usada en %2$d artículu(os).</string>
<string name="no_uploads">¡Afáyate\'n Commons.\n\nCarga\'l to primer ficheru tocando nel botón amestar.</string>
<string name="desc_language_Worldwide">Mundial</string>
<string name="desc_language_America">América</string>
<string name="desc_language_Europe">Europa</string>
@ -420,6 +429,17 @@
<string name="upload_flow_all_images_in_set">(Pa toles imaxes del conxuntu)</string>
<string name="search_this_area">Buscar nesta área</string>
<string name="nearby_card_permission_title">Solicitú de permisu</string>
<string name="nearby_card_permission_explanation">¿Quies qu\'usemos el to allugamientu actual p\'amosate\'l llugar más cercanu que precisa imaxes?</string>
<string name="unable_to_display_nearest_place">Nun ye posible amosar el sitiu más cercanu que precisa semeyes ensin permisos d\'allugamientu</string>
<string name="never_ask_again">Nun entrugar más esto</string>
<string name="display_location_permission_title">Amosar permisu d\'allugamientu</string>
<string name="display_location_permission_explanation">Pidir permisu d\'allugamientu cuando se precise pa la función de ver la tarxeta de notificación cercana.</string>
<string name="achievements_fetch_failed">Daqué salió mal, nun pudimos recibir los tos llogros</string>
<string name="ends_on">Remata el:</string>
<string name="display_campaigns">Amosar campañes</string>
<string name="display_campaigns_explanation">Ver les campañes en cursu</string>
<string name="nearby_campaign_dismiss_message">Yá nun verás más les campañes. Sicasí, si quies puedes reactivar esti avisu na configuración.</string>
<string name="this_function_needs_network_connection">Esta función rique conexón de rede, comprueba la configuración de conexón.</string>
<string name="nominate_for_deletion_done">Fecho</string>
<string name="nominate_for_deletion_notify_user">Avisando al usuariu na páxina d\'alderique</string>
<string name="nominate_for_deletion_edit_deletion_request_log">Añadiendo ficheru al rexistru de solicitúes de desaniciu</string>
@ -432,5 +452,70 @@
<string name="send_thank_send">Agradecer</string>
<string name="send_thank_notification_title">Agradecer</string>
<string name="send_thank_toast">Unviar agradecimientu por %1$s</string>
<string name="review_category_no_button_text">Paez bien</string>
<string name="review_spam_yes_button_text">Non, fora de contestu</string>
<string name="review_spam_no_button_text">Paez bien</string>
<string name="review_copyright_yes_button_text">Non, vulneración de derechos d\'autor</string>
<string name="review_copyright_no_button_text">Paez bien</string>
<string name="review_thanks_yes_button_text">Sí, por qué non</string>
<string name="review_thanks_no_button_text">Imaxe siguiente</string>
<string name="skip_image_explanation">Faciendo clic nesti botón recibirás otra imaxe de Wikimedia Commons xubida apocayá</string>
<string name="review_image_explanation">Puedes revisar imaxes y ameyorar la calidá de Wikimedia Commoms.\nLos cuatro parámetros de revisión son: \n - ¿Ésta imaxe tien rellación col contestu? \n - ¿La imaxe cumple les riegles de copyright? \n - ¿La imaxe ta correchamente categorizada? \n - Si too ta correuto, tamién puedes dar les gracies al collaborador.</string>
<plurals name="receiving_shared_content">
<item quantity="one">Recibiendo\'l conteníu compartíu. El procesamientu de la imaxe puede tardar ciertu tiempu, dependiendo del tamañu de la imaxe y del to preséu</item>
<item quantity="other">Recibiendo\'l conteníu compartíu. El procesamientu de les imaxes puede tardar ciertu tiempu, dependiendo del tamañu de les imaxes y del to preséu</item>
</plurals>
<string name="no_image">Nun s\'usó nenguna imaxe</string>
<string name="no_image_reverted">Nun se revertió nenguna imaxe</string>
<string name="no_image_uploaded">Nun se xubió nenguna imaxe</string>
<string name="no_notification">Nun tienes avisos ensin lleer</string>
<string name="no_archived_notification">Nun tienes avisos archivaos</string>
<string name="share_logs_using">Compartir rexistros usando</string>
<string name="menu_option_archived">Ver los archivaos</string>
<string name="menu_option_unread">Ver los nun lleíos</string>
<string name="error_occurred_in_picking_images">Asocedió un error al escoyer les imaxes</string>
<string name="image_chooser_title">Escueyi les imaxes pa xubir</string>
<string name="please_wait">Espera…</string>
<string name="images_featured_explanation">Les imaxes destacaes son creaciones de talentosos fotógrafos y ilustradores que la comunidá de Wikimedia Commons reconoció como les de mayor calidá del sitiu.</string>
<string name="images_via_nearby_explanation">Les imaxes xubíes via Llugares Cercanos son les imaxes que se cargaron descubriendo llugares nel mapa.</string>
<string name="thanks_received_explanation">Esta función permite que los editores unvien una nota Gracies a los usuarios que realicen ediciones útiles usando un pequeñu enllaz d\'agradecimientu na páxina d\'historial o na de diferencies.</string>
<string name="previous_image_title_description">Copiar el títulu y descripción anteriores</string>
<string name="previous_button_tooltip_message">Fai clic para reutilizar el títulu y descripción qu\'escribisti na imaxe anterior y cambialu p\'adautalu a la imaxe actual</string>
<string name="welcome_do_upload_content_description">Exemplos d\'imaxes bones pa xubir a Commons</string>
<string name="welcome_dont_upload_content_description">Exemplos d\'imaxes que nun tienen de xubise</string>
<string name="skip_image">Saltar esta imaxe</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Falló la descarga. Nun podemos descargar el ficheru ensin permisu d\'almacenamientu esternu.</string>
<string name="manage_exif_tags">Alministrar etiquetes EXIF</string>
<string name="manage_exif_tags_summary">Escoyer qué etiquetes EXIF tienen de caltenese nes cargues</string>
<string name="exif_tag_name_author">Autor</string>
<string name="exif_tag_name_copyright">Derechos d\'autor</string>
<string name="exif_tag_name_location">Allugamientu</string>
<string name="exif_tag_name_cameraModel">Modelu de la cámara</string>
<string name="exif_tag_name_lensModel">Modelu de la lente</string>
<string name="exif_tag_name_serialNumbers">Númberos de serie</string>
<string name="exif_tag_name_software">Software</string>
<string name="share_text">Xubi semeyes a Wikimedia Commons nel to móvil, descarga l\'aplicación de Commons: %1$s</string>
<string name="share_via">Compartir l\'aplicación per...</string>
<string name="image_info">Información de la imaxe</string>
<string name="no_categories_found">Nun s\'alcontró nenguna categoría</string>
<string name="upload_cancelled">Carga encaboxada</string>
<string name="previous_image_title_description_not_found">Nun hai datos sobro\'l títulu o la descripción de la imaxe anterior</string>
<string name="dialog_box_text_nomination">¿Por qué tien de desaniciase %1$s?</string>
<string name="review_is_uploaded_by">%1$s xubióse por: %2$s</string>
<string name="default_description_language">Idioma predetermináu de la descripción</string>
<string name="delete_helper_make_deletion_toast">Tentando marcar %1$s pal so desaniciu</string>
<string name="delete_helper_show_deletion_title">Marcando pa desaniciar</string>
<string name="delete_helper_show_deletion_title_success">Correuto</string>
<string name="delete_helper_show_deletion_message_if">Marcóse correutamente %1$s pa desaniciar.</string>
<string name="delete_helper_show_deletion_title_failed">Falló</string>
<string name="delete_helper_show_deletion_message_else">Non pudo pidise\'l desaniciu.</string>
<string name="delete_helper_ask_spam_selfie">Un autorretratu</string>
<string name="delete_helper_ask_spam_blurry">Borrosa</string>
<string name="delete_helper_ask_spam_nonsense">Xirigonza</string>
<string name="delete_helper_ask_spam_other">Otru</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Semeya de la prensa</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Semeya tomada d\'internet al debalu</string>
<string name="delete_helper_ask_reason_copyright_logo">Logo</string>
<string name="delete_helper_ask_reason_copyright_other">Otros</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Porque ye</string>
</resources>

View file

@ -1,7 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Ibrahim
* ToJack
-->
<resources>
<string name="crash_dialog_title">Хаиогии Викианбор</string>
<string name="crash_dialog_text">Упс. Чизе хато пеш рафт!</string>
<string name="crash_dialog_comment_prompt">Ба мо бигуед, ки шумо чӣ кор кардед, ба мо дар имайл нависед. Мо ба шумо кӯмак мерасонем.</string>
<string name="crash_dialog_ok_toast">Ташаккур!</string>
</resources>

View file

@ -1,10 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Ibrahim
* ToJack
* Vashgird
-->
<resources>
<string name="app_name" fuzzy="true">Анбори Викимедиа</string>
<string name="preference_category_general">Умумӣ</string>
<string name="preference_category_feedback">Пешниҳод</string>
<string name="preference_category_privacy">Ҳарими хусусӣ</string>
<string name="preference_category_location">Мавқеъ</string>
<string name="app_name">Викианбор</string>
<string name="menu_settings">Танзимот</string>
<string name="intent_share_upload_label">Ирсолнамоӣ ба Викианбор</string>
<string name="username">Номи корбар</string>
<string name="password">Гузарвожа</string>
<string name="login">Вуруд</string>
<string name="forgot_password">Гузарвожаро фаромӯш кардед?</string>
<string name="logging_in_title">Дар ҳоли вуруд</string>
<string name="logging_in_message">Лутфан мунтазир шавед…</string>
<string name="login_success">Вуруд бо муваффақият!</string>
@ -17,10 +28,11 @@
<string name="contribution_state_starting">Дар ҳоли боркунӣ</string>
<string name="menu_from_gallery">Аз Нигористон</string>
<string name="menu_from_camera">Гирифтани акс</string>
<string name="menu_nearby">Наздикӣ</string>
<string name="provider_contributions">Боргузориҳои ман</string>
<string name="menu_share">Бо ҳам дидан</string>
<string name="menu_open_in_browser">Дидан дар Мурургар</string>
<string name="share_title_hint">Унвон</string>
<string name="share_title_hint" fuzzy="true">Унвон</string>
<string name="share_description_hint">Тавзеҳот</string>
<string name="login_failed_generic">Вуруд номуваффақ шуд</string>
<string name="share_upload_button">Боркунӣ</string>
@ -28,8 +40,11 @@
<string name="menu_upload_single">Боркунӣ</string>
<string name="categories_search_text_hint">Ҷустуҷӯи гурӯҳҳо</string>
<string name="menu_save_categories">Захира</string>
<string name="refresh_button">Азнавкунӣ</string>
<string name="display_list_button">Рӯйхат</string>
<string name="categories_activity_title">Гурӯҳҳо</string>
<string name="title_activity_settings">Танзимот</string>
<string name="title_activity_category_details">Гурӯҳ</string>
<string name="menu_about">Дар бораи</string>
<string name="title_activity_about">Дар бораи</string>
<string name="menu_feedback">Ирсоли Пешниҳод (тавассути Email)</string>
@ -59,9 +74,89 @@
<string name="detail_panel_cats_label">Гурӯҳҳо</string>
<string name="detail_panel_cats_loading">Дар ҳоли кушодашавӣ…</string>
<string name="detail_panel_cats_none">Ҳеҷ яке интихоб нашудааст</string>
<string name="detail_description_empty">Тавзеҳот нест</string>
<string name="detail_discussion_empty">Тавзеҳот нест</string>
<string name="detail_license_empty">Иҷозатномаи ношинос</string>
<string name="menu_refresh">Азнавкунӣ</string>
<string name="ok">Бошад</string>
<string name="warning">Ҳушдор</string>
<string name="yes">Бале</string>
<string name="no">На</string>
<string name="media_detail_title">Унвон</string>
<string name="media_detail_description">Тавсифот</string>
<string name="media_detail_discussion">Баҳс</string>
<string name="media_detail_author">Муаллиф</string>
<string name="media_detail_uploaded_date">Рӯзи боркунӣ</string>
<string name="media_detail_license">Иҷозатнома</string>
<string name="media_detail_coordinates">Координатҳо</string>
<string name="media_detail_coordinates_empty">Пешниҳод нашудааст</string>
<string name="commons_logo">Логотипи Викианбор</string>
<string name="commons_website">Сомонаи Викианбор</string>
<string name="commons_facebook">Викианбор дар Фейсбук</string>
<string name="no_image_found">Аксе пайдо нашуд</string>
<string name="no_subcategory_found">Ягон зергурӯҳе пайдо нашуд</string>
<string name="welcome_image_welcome_wikipedia">Ба Википедиа хуш омадед.</string>
<string name="cancel">Пӯшидан</string>
<string name="navigation_drawer_open">Кушодан</string>
<string name="navigation_drawer_close">Пӯшидан</string>
<string name="navigation_item_home">Хона</string>
<string name="navigation_item_upload">Боркунӣ</string>
<string name="navigation_item_nearby">Наздикӣ</string>
<string name="navigation_item_about">Дар бораи</string>
<string name="navigation_item_settings">Танзимот</string>
<string name="navigation_item_feedback">Пешниҳод</string>
<string name="navigation_item_logout">Баромад</string>
<string name="navigation_item_notification">Огоҳиҳо</string>
<string name="navigation_item_featured_images">Баргузида</string>
<string name="navigation_item_review">Тафтиш</string>
<string name="nearby_info_menu_wikidata_article">Унсури Викидода</string>
<string name="error_while_cache">Хатогӣ ҳангоми кэшкунии тасвир</string>
<string name="navigation_item_login">Вуруд</string>
<string name="read_article">Хондани мақола</string>
<string name="nearby_directions">Ҷиҳат</string>
<string name="nearby_wikidata">Викидода</string>
<string name="nearby_wikipedia">Википедиа</string>
<string name="nearby_commons">Викианбор</string>
<string name="about_translate_title">Забонҳо</string>
<string name="about_translate_cancel">Лағв</string>
<string name="retry">Дубора саъй кунед</string>
<string name="showcase_view_got_it_button">Гирифтан!</string>
<string name="menu_search_button">Ҷустуҷӯ</string>
<string name="search_commons">Ҷустуҷӯи Викианбор</string>
<string name="title_activity_search">Ҷустуҷӯ</string>
<string name="search_recent_header">Ҷусторҳои охир:</string>
<string name="search_tab_title_media">Расона</string>
<string name="search_tab_title_categories">Гурӯҳҳо</string>
<string name="explore_tab_title_featured">Баргузида</string>
<string name="quiz">Пурсиш</string>
<string name="question">Савол</string>
<string name="result">Натиҷа</string>
<string name="delete">Ҳазв</string>
<string name="statistics">Омор</string>
<string name="level">Сатҳ</string>
<string name="list_sheet">Рӯйхат</string>
<string name="next">Баъдӣ</string>
<string name="previous">Пешина</string>
<string name="submit">Ирсол</string>
<string name="navigation_item_bookmarks">Маркаҳои китоб</string>
<string name="title_activity_bookmarks">Маркаҳои китоб</string>
<string name="title_page_bookmarks_pictures">Расмҳо</string>
<string name="title_page_bookmarks_locations">Ҷойҳо</string>
<string name="menu_bookmark">Илова/Ҳазв намудани маркаҳои китоб</string>
<string name="provider_bookmarks">Маркаҳои китоб</string>
<string name="provider_bookmarks_location">Маркаҳои китоб</string>
<string name="desc_language_Worldwide">Шабакаи дунявӣ</string>
<string name="desc_language_America">Амрико</string>
<string name="desc_language_Europe">Урупо</string>
<string name="desc_language_Middle_East">Шарқи наздик</string>
<string name="desc_language_Africa">Африқо</string>
<string name="desc_language_Asia">Осиё</string>
<string name="desc_language_Pacific">Баҳри Ором</string>
<string name="no_categories_selected">Ягон гурӯҳе интихоб нашуд</string>
<string name="yes_submit">Бале, ирсолнамоӣ</string>
<string name="no_go_back">На, ба ақиб</string>
<string name="nominate_for_deletion_done">Анҷом шуд</string>
<string name="skip_image">Гузаштани ин акс</string>
<string name="default_description_language">Забони шарҳ ба таври пешфарз</string>
<string name="delete_helper_show_deletion_title_success">Муваффақият</string>
</resources>

View file

@ -204,6 +204,8 @@
<string name="nearby_wikipedia" fuzzy="true">УИКИПЕДИЯ</string>
<string name="nearby_commons" fuzzy="true">ОБЩОМЕДИЯ</string>
<string name="about_translate_cancel">Отказ</string>
<string name="menu_search_button">Търсене</string>
<string name="title_activity_search">Търсене</string>
<string name="search_tab_title_media" fuzzy="true">ИЗОБРАЖЕНИЯ/ЗАПИСИ</string>
<string name="search_tab_title_categories" fuzzy="true">КАТЕГОРИИ</string>
<string name="no_recent_searches">Няма последни търсения</string>
@ -215,6 +217,7 @@
<string name="preference_author_name_summary">Персонализираното авторско име, което ще се използва вместо потребителското ви име при качване</string>
<string name="archived_notifications">Известия (архивирани)</string>
<string name="list_sheet">Списък</string>
<string name="next">Следваща</string>
<string name="submit">Изпращане</string>
<string name="desc_language_America">Америка</string>
<string name="desc_language_Europe">Европа</string>

View file

@ -4,8 +4,8 @@
* XVEC
-->
<resources>
<string name="crash_dialog_title">El Commons s\'ha penjat</string>
<string name="crash_dialog_text">Uups ! Quelcom ha anat malament !</string>
<string name="crash_dialog_comment_prompt">Explica\'ns que estaves fent, després comparteix-ho mitjançant email amb nosaltres. Ens ajudaràs a arreglar-ho!</string>
<string name="crash_dialog_title">El Commons ha fallat</string>
<string name="crash_dialog_text">Ups! Quelcom ha anat malament!</string>
<string name="crash_dialog_comment_prompt">Expliqueu-nos què féieu, després compartiu-nos-ho per correu electrònic. Ens ajudareu a arreglar-ho!</string>
<string name="crash_dialog_ok_toast">Gràcies!</string>
</resources>

View file

@ -10,14 +10,21 @@
* XVEC
-->
<resources>
<string name="title_activity_explore">Explora</string>
<string name="navigation_item_explore">Explora</string>
<string name="preference_category_appearance">Aparença</string>
<string name="preference_category_general">General</string>
<string name="preference_category_feedback">Comentaris</string>
<string name="preference_category_privacy">Privadesa</string>
<string name="preference_category_location">Ubicació</string>
<string name="app_name">Commons</string>
<string name="menu_settings">Configuració</string>
<string name="intent_share_upload_label">Carrega a Commons</string>
<string name="username">Nom d\'usuari</string>
<string name="password">Contrasenya</string>
<string name="login_credential">Inicieu una sessió al vostre compte beta de Commons</string>
<string name="login">Inicia una sessió</string>
<string name="forgot_password">Heu oblidat la contrasenya?</string>
<string name="signup">Registre</string>
<string name="logging_in_title">Sestà iniciant la sessió</string>
<string name="logging_in_message">Espereu…</string>
@ -33,8 +40,8 @@
<string name="upload_progress_notification_title_finishing">Acabant la càrrega al servidor de %1$s</string>
<string name="upload_failed_notification_title">Error al carregar %1$s</string>
<string name="upload_failed_notification_subtitle">Prem per veure-ho</string>
<plurals name="uploads_pending_notification_indicator" fuzzy="true">
<item quantity="one">s\'està carregant 1 fitxer</item>
<plurals name="uploads_pending_notification_indicator">
<item quantity="one">s\'està carregant %1$d fitxer</item>
<item quantity="other">s\'estan carregant %1$d fitxers</item>
</plurals>
<string name="title_activity_contributions">Les meves càrregues recents</string>
@ -48,34 +55,38 @@
<string name="provider_contributions">Les meves càrregues</string>
<string name="menu_share">Comparteix</string>
<string name="menu_open_in_browser">Mostra al navegador</string>
<string name="share_title_hint" fuzzy="true">Títol</string>
<string name="share_title_hint">Títol (obligatori)</string>
<string name="add_title_toast">Proporcioneu un títol per al fitxer</string>
<string name="share_description_hint">Descripció</string>
<string name="login_failed_network">No s\'ha pogut iniciar la sessió error de xarxa</string>
<string name="login_failed_wrong_credentials">No es pot iniciar la sessió - comproveu el nom d\'usuari i la contrasenya</string>
<string name="login_failed_throttled">Massa intents erronis Proveu-ho de nou d\'aquí uns minuts.</string>
<string name="login_failed_blocked">Ho sentim, aquest usuari ha estat blocat a Commons</string>
<string name="login_failed_2fa_needed">Heu de proporcionar el vostre codi d\'autenticació de dos factors.</string>
<string name="login_failed_generic">Ha fallat l\'inici de sessió</string>
<string name="share_upload_button">Carrega</string>
<string name="multiple_share_base_title">Anomena aquest conjunt</string>
<string name="add_set_name_toast">Proporcioneu un nom per al conjunt</string>
<string name="provider_modifications">Modificacions</string>
<string name="menu_upload_single">Carrega</string>
<string name="categories_search_text_hint">Categories de cerca</string>
<string name="menu_save_categories">Desa</string>
<string name="refresh_button">Refresca</string>
<string name="display_list_button">Llista</string>
<string name="gps_disabled">El vostre dispositiu no té el GPS habilitat. El voleu habilitar?</string>
<string name="enable_gps">Habilita el GPS</string>
<string name="contributions_subtitle_zero">Encara no hi ha cap càrrega</string>
<plurals name="contributions_subtitle" fuzzy="true">
<plurals name="contributions_subtitle">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">%1$d càrrega</item>
<item quantity="other">%1$d càrregues</item>
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<plurals name="starting_multiple_uploads">
<item quantity="one">S\'està iniciant %1$d càrrega</item>
<item quantity="other">S\'estan iniciant %1$d càrregues</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<item quantity="one">1 càrrega</item>
<plurals name="multiple_uploads_title">
<item quantity="one">%1$d càrrega</item>
<item quantity="other">%1$d càrregues</item>
</plurals>
<string name="categories_not_found">No s\'ha trobat cap categoria que coincideixi amb %1$s</string>
@ -83,10 +94,14 @@
<string name="categories_activity_title">Categories</string>
<string name="title_activity_settings">Paràmetres</string>
<string name="title_activity_signup">Registre</string>
<string name="title_activity_featured_images">Imatges destacades</string>
<string name="title_activity_category_details">Categoria</string>
<string name="title_activity_review">Revisió per parells</string>
<string name="menu_about">Quant a</string>
<string name="about_license">Laplicació de codi obert Wikimedia Commons fou creada per, i rep manteniment de, cessionaris i voluntaris de la comunitat de Wikimedia. La Fundació Wikimedia no està involucrada en la creació, el desenvolupament ni el manteniment de laplicació.</string>
<string name="about_improve" fuzzy="true">Codi a &lt;a href=\"https://github.com/commons-app/apps-android-commons\"&gt;GitHub&lt;/a&gt;. Informes d\'error a &lt;a href=\" https://github.com/commons-app/apps-android-commons/issues\"&gt;Github&lt;/a&gt;.</string>
<string name="about_privacy_policy" fuzzy="true">Wikimedia:Commons-android-texts-sobre privacitat/ca</string>
<string name="about_improve">Crea una &lt;a href=\"%1$s\"&gt;incidència de GitHub&lt;/a&gt; nova per a informes d\'error i suggeriments.</string>
<string name="about_privacy_policy">&lt;u&gt;Política de privadesa&lt;/u&gt;</string>
<string name="about_credits">&lt;u&gt;Crèdits&lt;/u&gt;</string>
<string name="title_activity_about">Quant a</string>
<string name="menu_feedback">Envia comentaris (per correu)</string>
<string name="no_email_client">No hi ha cap client de correu instal·lat</string>
@ -95,10 +110,16 @@
<string name="no_uploads_yet">Encara no heu carregat cap foto.</string>
<string name="menu_retry_upload">Reintenta</string>
<string name="menu_cancel_upload">Cancel·la</string>
<string name="share_license_summary" fuzzy="true">Aquesta imatge es llicenciarà sota %1$s</string>
<plurals name="share_license_summary">
<item quantity="one">Aquesta imatge quedarà sota llicència %1$s</item>
<item quantity="other">Aquestes imatges quedaran sota llicència %1$s</item>
</plurals>
<string name="media_upload_policy">En trametre aquesta imatge declaro que és fruit del meu treball, que no conté material amb drets d\'autor o amb autofotos, i que s\'adhereix a les &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\"&gt;polítiques de Wikimedia Commons&lt;/a&gt;.</string>
<string name="menu_download">Baixa</string>
<string name="preference_license">Llicència per defecte</string>
<string name="use_previous">Utilitza títol i descripció anteriors</string>
<string name="allow_gps">Obté la ubicació actual automàticament</string>
<string name="allow_gps_summary">Recupera la ubicació actual si la imatge no està geoetiquetada, i n\'etiqueta la imatge geogràficament. Avís: això revelarà la vostra ubicació actual.</string>
<string name="preference_theme">Mode nocturn</string>
<string name="preference_theme_summary">Utilitza el tema fosc</string>
<string name="license_name_cc_by_sa_four">Reconeixement-CompartirIgual 4.0</string>
@ -121,44 +142,77 @@
<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_zero">CC Zero</string>
<string name="tutorial_1_text">Wikimedia Commons hostatja la majoria d\'imatges que s\'utilitzen a la Viquipèdia.</string>
<string name="tutorial_1_subtext">Les vostres imatges ajuden a educar gent d\'arreu del món!</string>
<string name="tutorial_2_text">Carregueu només imatges que hàgiu pres o creat:</string>
<string name="tutorial_2_subtext_1">Objectes naturals (flors, animals, muntanyes)</string>
<string name="tutorial_2_subtext_2">Objectes útils (bicicletes, estacions de tren)</string>
<string name="tutorial_2_subtext_3">Gent famosa (el vostre batlle, atletes olímpiques que hàgiu conegut)</string>
<string name="tutorial_3_text">NO carregueu:</string>
<string name="tutorial_3_subtext_1">Autofotos o fotos de les amistats</string>
<string name="tutorial_3_subtext_2">Imatges baixades des de la Internet</string>
<string name="tutorial_3_subtext_3">Captures de pantalla d\'aplicacions privatives</string>
<string name="tutorial_4_text">Exemple de càrrega:</string>
<string name="tutorial_4_subtext_1">Títol: Òpera de Sydney</string>
<string name="tutorial_4_subtext_2">Descripció: Òpera de Sydney vista des de l\'altre costat de la badia</string>
<string name="welcome_wikipedia_text">Doneu les vostres imatges. Ajudeu a donar vida als articles de la Viquipèdia!</string>
<string name="welcome_wikipedia_subtext">Les imatges de la Viquipèdia vénen de la Wikimedia Commons.</string>
<string name="welcome_copyright_text">Les vostres imatges ajuden a educar gent d\'arreu del món.</string>
<string name="welcome_copyright_subtext">No utilitzis material amb copyright que puguis trobar a Internet, ni tampoc imatges de pòsters, portades de llibres, etc.</string>
<string name="welcome_final_text">Creieu que ho heu entès?</string>
<string name="welcome_final_button_text">Sí!</string>
<string name="welcome_help_button_text">&lt;u&gt;Més Informació&lt;/u&gt;</string>
<string name="detail_panel_cats_label">Categories</string>
<string name="detail_panel_cats_loading">Carregant…</string>
<string name="detail_panel_cats_none">No se n\'ha seleccionat cap</string>
<string name="detail_description_empty">Sense descripció</string>
<string name="detail_discussion_empty">Cap discussió</string>
<string name="detail_license_empty">Llicència desconeguda</string>
<string name="menu_refresh">Refresca</string>
<string name="storage_permission_title">S\'estan sol·licitant permisos d\'emmagatzematge</string>
<string name="location_permission_title">Sol·licitud de permisos d\'ubicació</string>
<string name="location_permission_rationale">Permís opcional: obtén la ubicació actual per al suggeriment de categories</string>
<string name="ok">D\'acord</string>
<string name="title_activity_nearby">Llocs propers</string>
<string name="no_nearby">No s\'han trobat llocs propers</string>
<string name="warning">Avís</string>
<string name="upload_image_duplicate">El fitxer ja existeix a Commons. Esteu segur que voleu procedir?</string>
<string name="yes"></string>
<string name="no">No</string>
<string name="media_detail_title">Títol</string>
<string name="media_detail_description">Descripció</string>
<string name="media_detail_discussion">Discussió</string>
<string name="media_detail_author">Autor</string>
<string name="media_detail_uploaded_date">Data de càrrega</string>
<string name="media_detail_license">Llicència</string>
<string name="media_detail_coordinates">Coordenades</string>
<string name="media_detail_coordinates_empty">No s\'ha proporcionat cap</string>
<string name="_2fa_code">Codi 2FA</string>
<string name="number_of_uploads">El meu límit de càrrega recent</string>
<string name="maximum_limit">Límit màxim</string>
<string name="invalid_zero">El zero no és vàlid</string>
<string name="invalid_input">Entrada no vàlida</string>
<string name="maximum_limit_alert">No es poden mostrar més de 500</string>
<string name="enter_valid">Introduïu un nombre vàlid</string>
<string name="cannot_be_zero">El límit de càrrega no pot ser 0</string>
<string name="set_limit">Límit de càrrega recent</string>
<string name="login_failed_2fa_not_supported">Actualment no es permet l\'autenticació de dos factors.</string>
<string name="logout_verification">Realment voleu finalitzar la sessió?</string>
<string name="commons_logo">Logo de Commons</string>
<string name="commons_website">Lloc web del Commons</string>
<string name="commons_facebook">Pàgina del Facebook del Commons</string>
<string name="commons_github">Codi font del Commons a GitHub</string>
<string name="background_image">Imatge de fons</string>
<string name="mediaimage_failed">Ha fallat la imatge multimèdia</string>
<string name="no_image_found">No sha trobat cap imatge</string>
<string name="no_subcategory_found">No s\'han trobat subcategories</string>
<string name="no_parentcategory_found">No s\'ha trobat cap categoria pare</string>
<string name="upload_image">Carrega la imatge</string>
<string name="welcome_image_mount_zao">Mont Zao</string>
<string name="welcome_image_llamas">Llames</string>
<string name="welcome_image_rainbow_bridge">Pont Rainbow</string>
<string name="welcome_image_tulip">Tulipa</string>
<string name="welcome_image_no_selfies">No autofotos</string>
<string name="welcome_image_proprietary">Imatge privativa</string>
<string name="welcome_image_welcome_wikipedia">Benvinguts a la Viquipèdia</string>
<string name="welcome_image_sydney_opera_house">Casa d\'Òpera de Sydney</string>
@ -174,49 +228,200 @@
<string name="navigation_item_logout">Finalitza la sessió</string>
<string name="navigation_item_info">Tutorial</string>
<string name="navigation_item_notification">Notificacions</string>
<string name="navigation_item_featured_images">Destacat</string>
<string name="navigation_item_review">Revisa</string>
<string name="nearby_needs_permissions">No poden mostrar-se els llocs propers sense permisos d\'ubicació</string>
<string name="no_description_found">no s\'ha trobat cap descripció</string>
<string name="nearby_info_menu_commons_article">Article del fitxer a Commons</string>
<string name="nearby_info_menu_wikidata_article">Element del Wikidata</string>
<string name="nearby_info_menu_wikipedia_article">Article de Viquipèdia</string>
<string name="error_while_cache">Error mentre es carregaven les fotografies</string>
<string name="upload_problem_exist">Problemes potencials d\'aquesta imatge:</string>
<string name="upload_problem_image_dark">La imatge és massa fosca.</string>
<string name="upload_problem_image_blurry">La imatge és borrosa.</string>
<string name="upload_problem_image_duplicate">La imatge ja és a Commons.</string>
<string name="upload_problem_different_geolocation">Aquesta imatge s\'ha pres a una altra ubicació.</string>
<string name="upload_problem_do_you_continue">Encara voleu carregar la imatge?</string>
<string name="give_permission">Dóna permís</string>
<string name="use_external_storage">Utilitza lemmagatzematge extern</string>
<string name="use_external_storage_summary">Desa les fotos fetes amb la càmera integrada del dispositiu</string>
<string name="login_to_your_account">Entreu en el vostre compte</string>
<string name="send_log_file">Envia el fitxer de registre</string>
<string name="send_log_file_description" fuzzy="true">Envia el registre als desenvolupadors per correu</string>
<string name="send_log_file_description">Envia el fitxer de registre a l\'equip de desenvolupament per correu per ajudar a depurar problemes amb l\'aplicació. Nota: els registres poden incorporar informació identificadora</string>
<string name="no_web_browser">No s\'ha trobat cap navegador web per obrir l\'URL</string>
<string name="null_url">Error! No s\'ha trobat l\'URL</string>
<string name="nominate_deletion">Nomina per a supressió</string>
<string name="nominated_for_deletion">S\'ha nominat la imatge per a supressió.</string>
<string name="nominated_see_more">&lt;u&gt;Vegeu la pàgina web per a més detalls&lt;/u&gt;</string>
<string name="view_browser">Mostra en el navegador</string>
<string name="skip_login">Omet</string>
<string name="navigation_item_login">Inicia una sessió</string>
<string name="skip_login_title">Realment voleu ometre l\'inici de sessió?</string>
<string name="skip_login_message">Caldrà que inicieu una sessió per carregar imatges en un futur.</string>
<string name="login_alert_message">Inicieu una sessió per utilitzar aquesta característica</string>
<string name="copy_wikicode">Copia el wikitext al portaretalls</string>
<string name="wikicode_copied">S\'ha copiat el wikitext al portaretalls</string>
<string name="nearby_location_has_not_changed">La ubicació no ha canviat.</string>
<string name="nearby_location_not_available">La ubicació no és disponible.</string>
<string name="get_directions">Com anar-hi</string>
<string name="read_article">Llegeix larticle</string>
<string name="notifications_welcome">Us donem la benvinguda a Wikimedia Commons, %1$s! Ens alegra que hàgiu vingut.</string>
<string name="notifications_thank_you_edit">Gràcies per fer una modificació</string>
<string name="notifications_mention" fuzzy="true">%1$s us ha mencionat a %2$s.</string>
<string name="notifications_mention">%1$s us ha mencionat a %2$s.</string>
<string name="toggle_view_button">Commuta la vista</string>
<string name="nearby_directions">Direccions</string>
<string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Viquipèdia</string>
<string name="nearby_commons">Commons</string>
<string name="about_faq" fuzzy="true">Preguntes freqüents</string>
<string name="about_rate_us">&lt;u&gt;Valoreu-nos&lt;/u&gt;</string>
<string name="about_faq">&lt;u&gt;PMF&lt;/u&gt;</string>
<string name="welcome_skip_button">Omet la guia</string>
<string name="no_internet">Internet no disponible</string>
<string name="internet_established">Internet disponible</string>
<string name="no_notifications">No s\'ha trobat cap notificació</string>
<string name="about_translate">&lt;u&gt;Tradueix&lt;/u&gt;</string>
<string name="about_translate_title">Llengües</string>
<string name="about_translate_proceed">Procedeix</string>
<string name="about_translate_cancel">Cancel·la</string>
<string name="retry">Torna-ho a provar</string>
<string name="showcase_view_got_it_button">Entesos</string>
<string name="no_images_found">No sha trobat cap imatge.</string>
<string name="error_loading_images">S\'ha produït un error en carregar les imatges.</string>
<string name="image_uploaded_by">Carregada per: %1$s</string>
<string name="block_notification">Esteu blocat d\'editar a Commons</string>
<string name="appwidget_img">Imatge del dia</string>
<string name="app_widget_heading">Imatge del dia</string>
<string name="menu_search_button">Cerca</string>
<string name="search_commons">Cerca a Commons</string>
<string name="title_activity_search">Cerca</string>
<string name="search_recent_header">Cerques recents:</string>
<string name="provider_searches">Consultes de cerca recents</string>
<string name="search_tab_title_media">Multimèdia</string>
<string name="search_tab_title_categories">Categories</string>
<string name="explore_tab_title_featured">Destacats</string>
<string name="explore_tab_title_mobile">Penjats mitjançant el mòbil</string>
<string name="menu_set_wallpaper">Defineix com a fons d\'escriptori</string>
<string name="quiz">Qüestionari</string>
<string name="quiz_question_string">Esteu d\'acord en carregar la imatge?</string>
<string name="question">Pregunta</string>
<string name="result">Resultat</string>
<string name="selfie_answer">Les autofotos no tenen molt valor enciclopèdic. No carregueu una foto vostra a menys que ja tingueu un article vostre a la Viquipèdia.</string>
<string name="continue_message">Continua</string>
<string name="correct">Resposta correcta</string>
<string name="wrong">Resposta incorrecta</string>
<string name="quiz_screenshot_question">Esteu d\'acord en carregar la captura de pantalla?</string>
<string name="share_app_title">Comparteix l\'aplicació</string>
<string name="error_fetching_nearby_places">S\'ha produït un error en recuperar els llocs propers.</string>
<string name="add_description">+ Afegeix una descripció</string>
<string name="no_recent_searches">No hi ha cap cerca recent</string>
<string name="delete_recent_searches_dialog">Esteu segur que voleu esborrar el vostre historial de cerca?</string>
<string name="delete_search_dialog">Voleu suprimir aquesta cerca?</string>
<string name="search_history_deleted">S\'ha eliminat l\'historial de cerca</string>
<string name="nominate_delete">Nomina per a supressió</string>
<string name="delete">Suprimeix</string>
<string name="Achievements">Assoliments</string>
<string name="statistics">Estadístiques</string>
<string name="statistics_thanks">Agraïments rebuts</string>
<string name="statistics_featured">Imatges destacades</string>
<string name="statistics_wikidata_edits">Imatges per proximitat</string>
<string name="level">Nivell</string>
<string name="images_uploaded">Imatges carregades</string>
<string name="image_reverts">Imatges no revertides</string>
<string name="images_used_by_wiki">Imatges utilitzades</string>
<string name="error_occurred">S\'ha produït un error!</string>
<string name="notifications_channel_name_all">Notificació de Commons</string>
<string name="preference_author_name">Nom de l\'autor personalitzat</string>
<string name="contributions_fragment">Contribucions</string>
<string name="nearby_fragment">A prop</string>
<string name="notifications">Notificacions</string>
<string name="no_close_nearby">No s\'han trobat llocs propers prop vostre</string>
<string name="list_sheet">Llista</string>
<string name="storage_permission">Permissos d\'emmagatzematge</string>
<string name="step_count">Pas %1$d de %2$d</string>
<string name="next">Següent</string>
<string name="previous">Anterior</string>
<string name="submit">Envia</string>
<string name="navigation_item_bookmarks">Adreces d\'interès</string>
<string name="title_activity_bookmarks">Adreces d\'interès</string>
<string name="title_page_bookmarks_pictures">Imatges</string>
<string name="title_page_bookmarks_locations">Ubicacions</string>
<string name="menu_bookmark">Afegeix/suprimeix de les adreces d\'interès</string>
<string name="provider_bookmarks">Adreces d\'interès</string>
<string name="bookmark_empty">No heu afegit cap adreça d\'interès</string>
<string name="provider_bookmarks_location">Adreces d\'interès</string>
<string name="deletion_reason_uploaded_by_mistake">Ho he carregat per error</string>
<string name="deletion_reason_publicly_visible">No sabia que seria visible públicament</string>
<string name="deletion_reason_bad_for_my_privacy">Me n\'he adonat que no era bo per a la meva privadesa</string>
<string name="deletion_reason_no_longer_want_public">He canviat d\'opinió i no vull que continuï sent visible públicament</string>
<string name="deletion_reason_not_interesting">Ho sentim, la imatge no sembla interessant per a una enciclopèdia</string>
<string name="desc_language_Worldwide">Arreu del món</string>
<string name="desc_language_America">Amèrica</string>
<string name="desc_language_Europe">Europa</string>
<string name="desc_language_Middle_East">Orient mitjà</string>
<string name="desc_language_Africa">Àfrica</string>
<string name="desc_language_Asia">Àsia</string>
<string name="desc_language_Pacific">Pacífic</string>
<string name="no_categories_selected">No s\'ha seleccionat cap categoria</string>
<string name="yes_submit">Sí, envia</string>
<string name="no_go_back">No, vés enrere</string>
<string name="search_this_area">Cerca en aquesta àrea</string>
<string name="nearby_card_permission_title">Sol·licitud de permisos</string>
<string name="never_ask_again">No ho tornis a demanar</string>
<string name="display_location_permission_title">Mostra el permís d\'ubicació</string>
<string name="ends_on">Finalitza el:</string>
<string name="display_campaigns">Mostra les campanyes</string>
<string name="nominate_for_deletion_done">Fet</string>
<string name="review_copyright_yes_button_text" fuzzy="true">NO, VIOLACIÓ DE DRETS DAUTOR</string>
<string name="notsure">No n\'estic segur</string>
<string name="review_category">Té categorizació correcta?</string>
<string name="review_spam">S\'adiu al tema?</string>
<string name="review_thanks">Voleu agrair al col·laborador?</string>
<string name="review_no_category">Oh, no està ni tan sols categoritzat!</string>
<string name="review_category_explanation">Aquesta imatge està sota les categories %1$s.</string>
<string name="review_category_yes_button_text">No, mala categorització</string>
<string name="review_category_no_button_text">Sembla bé</string>
<string name="review_spam_no_button_text">Sembla bé</string>
<string name="review_copyright_yes_button_text">No, vulneració de drets d\'autor</string>
<string name="review_copyright_no_button_text">Sembla bé</string>
<string name="review_thanks_yes_button_text">I tant</string>
<string name="review_thanks_no_button_text">Imatge següent</string>
<string name="no_image">No s\'ha utilitzat cap imatge</string>
<string name="no_image_reverted">No s\'ha revertit cap imatge</string>
<string name="no_image_uploaded">No s\'ha carregat cap imatge</string>
<string name="no_notification">No teniu cap notificació sense llegir</string>
<string name="no_archived_notification">No teniu cap notificació arxivada</string>
<string name="share_logs_using">Comparteix els registres utilitzant</string>
<string name="menu_option_archived">Mostra els arxivats</string>
<string name="image_chooser_title">Trieu les imatges per carregar</string>
<string name="please_wait">Espereu…</string>
<string name="previous_image_title_description">Copia el títol i descripció anteriors</string>
<string name="welcome_do_upload_content_description">Exemples dimatges adequades per a Commons</string>
<string name="welcome_dont_upload_content_description">Exemples dimatges que no shan de pujar</string>
<string name="skip_image">Omet aquesta imatge</string>
<string name="manage_exif_tags">Gestiona les etiquetes EXIF</string>
<string name="manage_exif_tags_summary">Seleccioneu quines etiquetes EXIF voleu conservar en les càrregues</string>
<string name="exif_tag_name_author">Autor</string>
<string name="exif_tag_name_copyright">Drets dautor</string>
<string name="exif_tag_name_location">Ubicació</string>
<string name="exif_tag_name_cameraModel">Model de la càmera</string>
<string name="exif_tag_name_lensModel">Model de lent</string>
<string name="exif_tag_name_serialNumbers">Números de sèrie</string>
<string name="exif_tag_name_software">Programari</string>
<string name="share_via">Comparteix l\'aplicació a través de...</string>
<string name="image_info">Informació de la imatge</string>
<string name="no_categories_found">No sha trobat cap categoria</string>
<string name="upload_cancelled">Sha cancel·lat la pujada</string>
<string name="previous_image_title_description_not_found">No hi ha dades del títol o de la descripció anteriors de la imatge</string>
<string name="dialog_box_text_nomination">Per què s\'hauria de suprimir %1$s?</string>
<string name="default_description_language">Llengua per defecte de la descripció</string>
<string name="delete_helper_show_deletion_title">Nomina per a supressió</string>
<string name="delete_helper_show_deletion_title_success">Èxit</string>
<string name="delete_helper_ask_spam_selfie">Una autofoto</string>
<string name="delete_helper_ask_spam_blurry">Borrosa</string>
<string name="delete_helper_ask_spam_nonsense">Sense sentit</string>
<string name="delete_helper_ask_spam_other">Altre</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Foto de premsa</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Foto aleatòria d\'Internet</string>
<string name="delete_helper_ask_reason_copyright_logo">Logotip</string>
<string name="delete_helper_ask_reason_copyright_other">Altra</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Perquè sí</string>
</resources>

View file

@ -32,7 +32,7 @@
<string name="intent_share_upload_label">Nahrát na Commons</string>
<string name="username">Uživatelské jméno</string>
<string name="password">Heslo</string>
<string name="login_credential">Přihlásit se do svého Commons Beta účtu</string>
<string name="login_credential">Přihlásit se do svého Commons beta účtu</string>
<string name="login">Přihlásit se</string>
<string name="forgot_password">Zapomněli jste heslo?</string>
<string name="signup">Zaregistrovat se</string>

View file

@ -16,6 +16,7 @@
<string name="preference_category_appearance">Aparencia</string>
<string name="preference_category_general">Xeral</string>
<string name="preference_category_feedback">Comentarios</string>
<string name="preference_category_privacy">Privacidade</string>
<string name="preference_category_location">Localización</string>
<string name="app_name">Commons</string>
<string name="bullet"></string>
@ -97,6 +98,7 @@
<string name="title_activity_signup">Rexistrarse</string>
<string name="title_activity_featured_images">Imaxes destacadas</string>
<string name="title_activity_category_details">Categoría</string>
<string name="title_activity_review">Revisión por pares</string>
<string name="menu_about">Acerca de</string>
<string name="about_license">A aplicación Wikimedia Commons é unha aplicación de código aberto creada e mantida polos cesionarios e voluntarios da comunidade de Wikimedia. A Fundación Wikimedia non está involucrada na creación, desenvolvemento ou mantemento da aplicación.</string>
<string name="about_improve">Crear unha nova &lt;a href=\"%1$s\"&gt;incidencia&lt;/a&gt; para informar de problemas e suxestións.</string>
@ -167,11 +169,13 @@
<string name="detail_panel_cats_loading">Cargando…</string>
<string name="detail_panel_cats_none">Ningunha seleccionada</string>
<string name="detail_description_empty">Sen descrición</string>
<string name="detail_discussion_empty">Sen conversas</string>
<string name="detail_license_empty">Licenza descoñecida</string>
<string name="menu_refresh">Refrescar</string>
<string name="storage_permission_title">Pedindo permiso de almacenamento</string>
<string name="read_storage_permission_rationale">Permiso necesarioː ler un almacenamento externo. A aplicación non pode acceder á súa galería sen isto.</string>
<string name="write_storage_permission_rationale" fuzzy="true">Permiso necesario: Escribir en almacenamento externo. A aplicación non pode acceder á súa cámara sen el.</string>
<string name="write_storage_permission_rationale">Permiso necesario: Escribir en almacenamento externo. A aplicación non pode acceder á súa cámara/galería sen el.</string>
<string name="location_permission_title">Pedindo Permiso de Localización</string>
<string name="location_permission_rationale">Permiso opcionalː obter a localización actual para suxerir categorías</string>
<string name="ok">Aceptar</string>
<string name="title_activity_nearby">Lugares próximos</string>
@ -182,6 +186,7 @@
<string name="no">Non</string>
<string name="media_detail_title">Título</string>
<string name="media_detail_description">Descrición</string>
<string name="media_detail_discussion">Conversa</string>
<string name="media_detail_author">Autor</string>
<string name="media_detail_uploaded_date">Data de suba</string>
<string name="media_detail_license">Licenza</string>
@ -197,7 +202,7 @@
<string name="maximum_limit_alert">Non se poden amosar máis de 500</string>
<string name="enter_valid">Indique un número válido</string>
<string name="cannot_be_zero">O límite de subas non pode ser 0</string>
<string name="set_limit" fuzzy="true">Establecer o límite de subas recentes</string>
<string name="set_limit">Establecer o límite de subas recentes</string>
<string name="login_failed_2fa_not_supported">Actualmente non se permite a autenticación de dous factores.</string>
<string name="logout_verification">Está seguro de querer saír?</string>
<string name="commons_logo">Logo de Commons</string>
@ -232,6 +237,7 @@
<string name="navigation_item_info">Titorial</string>
<string name="navigation_item_notification">Notificacións</string>
<string name="navigation_item_featured_images">Destacados</string>
<string name="navigation_item_review">Revisar</string>
<string name="nearby_needs_permissions">Os sitios situados preto non poden visualizarse sen permisos de localización</string>
<string name="no_description_found">non se atopou descrición</string>
<string name="nearby_info_menu_commons_article">Páxina do ficheiro en Commons</string>
@ -247,7 +253,9 @@
<string name="upload_problem_image_blurry">A imaxe está borrosa.</string>
<string name="upload_problem_image_duplicate">A imaxe xa está en Commons.</string>
<string name="upload_problem_different_geolocation">Esta imaxe foi realizada nunha localización diferente.</string>
<string name="upload_problem_fbmd">Por favor sube so fotografías feitas por ti mesmo. Non subas imaxes ou fotografías que atopes nas contas de Facebook de outros.</string>
<string name="upload_problem_do_you_continue">Aínda quere subir esta imaxe?</string>
<string name="internet_downloaded">Por favor suba so fotografías feitas por vostede mesmo. Non suba imaxes ou fotografías que descargara da Internet.</string>
<string name="give_permission">Outorgar permiso</string>
<string name="use_external_storage">Usar o almacenamento externo</string>
<string name="use_external_storage_summary">Gardar as imaxes capturadas coa cámara do seu dispositivo</string>
@ -259,6 +267,8 @@
<string name="nominate_deletion">Nomear para borrado</string>
<string name="nominated_for_deletion">Esta imaxe foi nomeada para borrar.</string>
<string name="nominated_see_more">&lt;u&gt;Consulte a páxina web para ter máis para detalles&lt;/u&gt;</string>
<string name="nominating_file_for_deletion">Nomeando %1$d para borrado.</string>
<string name="nominating_for_deletion_status">Nomeando ficheiro para borradoː %1$s</string>
<string name="view_browser">Ver en navegador</string>
<string name="skip_login">Omitir</string>
<string name="navigation_item_login">Acceder ao sistema</string>
@ -270,23 +280,25 @@
<string name="nearby_location_has_not_changed">A localización non cambiou.</string>
<string name="nearby_location_not_available">A localización non está dispoñible.</string>
<string name="location_permission_rationale_nearby">Precísase permiso para amosar unha lista de lugares preto de aquí</string>
<string name="get_directions" fuzzy="true">OBTER DIRECCIÓNS</string>
<string name="read_article" fuzzy="true">LER ARTIGO</string>
<string name="get_directions">Obter direccións</string>
<string name="read_article">Ler artigo</string>
<string name="notifications_welcome">Benvido a Wikimedia Commons, %1$s! Alegrámonos de que estea aquí.</string>
<string name="notifications_talk_page_message">%1$s deixoulle unha mensaxe na súa páxina de conversa</string>
<string name="notifications_thank_you_edit">Grazas por realizar unha edición</string>
<string name="notifications_mention">%1$s mencionouno en %2$s.</string>
<string name="toggle_view_button">Cambiar modo de visualización</string>
<string name="nearby_directions" fuzzy="true">COMO CHEGAR</string>
<string name="nearby_wikidata" fuzzy="true">WIKIDATA</string>
<string name="nearby_wikipedia" fuzzy="true">WIKIPEDIA</string>
<string name="nearby_commons" fuzzy="true">COMMONS</string>
<string name="nearby_directions">Como chegar</string>
<string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Wikipedia</string>
<string name="nearby_commons">Commons</string>
<string name="about_rate_us">&lt;u&gt;Avalíenos&lt;/u&gt;</string>
<string name="about_faq">&lt;u&gt;FAQ&lt;/u&gt;</string>
<string name="welcome_skip_button">Saltar titorial</string>
<string name="no_internet">Internet non dispoñible</string>
<string name="internet_established">Internet dispoñible</string>
<string name="error_notifications">Erro ó recuperar as notificacións</string>
<string name="error_review">Houbo un erro ó recuperar a imaxe a revisar. Prema en refrescar para tentalo de novo.</string>
<string name="error_review_categories">Houbo un erro ó obter as categorías de imaxes a revisar. Prema en refrescar para tentalo de novo.</string>
<string name="no_notifications">Non se atopou ningunha notificación</string>
<string name="about_translate">&lt;u&gt;Traducir&lt;/u&gt;</string>
<string name="about_translate_title">Linguas</string>
@ -295,7 +307,7 @@
<string name="about_translate_cancel">Cancelar</string>
<string name="retry">Reintentar</string>
<string name="showcase_view_got_it_button">Entendido!</string>
<string name="showcase_view_whole_nearby_activity" fuzzy="true">Hai sitios preto de vostede que precisan fotos para ilustrar os seus artigos de Wikipedia</string>
<string name="showcase_view_whole_nearby_activity">Hai sitios preto de vostede que precisan fotos para ilustrar os seus artigos de Wikipedia.\n\nPremendo en \"Procurar nesta área\" bloquea a localización do mapa e comeza unha procura de lugares na área circundante.</string>
<string name="showcase_view_list_icon">Premendo neste botón aparecerá unha lista destes lugares</string>
<string name="showcase_view_plus_fab">Pode cargar unha imaxe de calquera lugar dende a galería ou a cámara</string>
<string name="no_images_found">Non se atopou ningunha imaxeǃ</string>
@ -312,8 +324,10 @@
<string name="provider_searches">Consultas buscadas recentemente</string>
<string name="error_loading_categories">Houbo un erro ó cargar categorías.</string>
<string name="error_loading_subcategories">Houbo un erro ó cargar subcategorías.</string>
<string name="search_tab_title_media" fuzzy="true">MULTIMEDIA</string>
<string name="search_tab_title_categories" fuzzy="true">CATEGORÍAS</string>
<string name="search_tab_title_media">Multimedia</string>
<string name="search_tab_title_categories">Categorías</string>
<string name="explore_tab_title_featured">Destacadas</string>
<string name="explore_tab_title_mobile">Cargada vía móbil</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">Poñer como imaxe de fondo</string>
@ -344,14 +358,16 @@
<string name="add_description">+ Engadir descrición</string>
<string name="no_recent_searches">Non hai procuras recentes</string>
<string name="delete_recent_searches_dialog">Está seguro de querer borrar o seu historial de procuras?</string>
<string name="delete_search_dialog">Queres borrar esta procura?</string>
<string name="search_history_deleted">Eliminouse o historial de procuras</string>
<string name="nominate_delete">Nomear para borrado</string>
<string name="delete">Borrar</string>
<string name="Achievements">Logros</string>
<string name="statistics" fuzzy="true">ESTATÍSTICAS</string>
<string name="statistics">Estatísticas</string>
<string name="statistics_thanks">Agradecementos recibidos</string>
<string name="statistics_featured">Imaxes destacadas</string>
<string name="statistics_wikidata_edits">Imaxes vía \"Lugares próximos\"</string>
<string name="level" fuzzy="true">NIVEL</string>
<string name="level">Nivel</string>
<string name="images_uploaded">Imaxes cargadas</string>
<string name="image_reverts">Imaxes non revertidas</string>
<string name="images_used_by_wiki">Imaxes usadas</string>
@ -403,8 +419,8 @@
<string name="deletion_reason_bad_for_my_privacy">Decateime de que prexudica a miña privacidade</string>
<string name="deletion_reason_no_longer_want_public">Cambiei de idea, non quero que siga sendo visible de forma pública</string>
<string name="deletion_reason_not_interesting">Desculpas, esta imaxe non é interesante para unha enciclopedia</string>
<string name="uploaded_by_myself" fuzzy="true">Cargada por min o</string>
<string name="no_uploads" fuzzy="true">Benvido a Commonsǃ\n\nCargue o seu primeiro ficheiro premendo na icona da cámara ou da galería enriba.</string>
<string name="uploaded_by_myself">Cargada por min o %1$s, usada en %2$d artigo(s).</string>
<string name="no_uploads">Dámoslle a benvida ó Commonsǃ\n\nCargue o seu primeiro ficheiro premendo no botón Engadir.</string>
<string name="desc_language_Worldwide">Mundial</string>
<string name="desc_language_America">América</string>
<string name="desc_language_Europe">Europa</string>
@ -429,6 +445,19 @@
<string name="this_function_needs_network_connection">Esta función require conexión de rede, verifique a súa configuración de conexión.</string>
<string name="bad_token_error_proposed_solution">Erro na suba debido a problemas co identificador de edición. Peche a sesión e volva a entrar.</string>
<string name="error_processing_image">Houbo un erro ó procesar a imaxe. Por favor, ténteo de novoǃ</string>
<string name="nominate_for_deletion_done">Feito</string>
<string name="notsure">Non seguro</string>
<string name="send_thank_success_title">Enviando agradecementos: Éxito</string>
<string name="send_thank_send">Enviando agradecementos</string>
<string name="send_thank_notification_title">Enviando agradecementos</string>
<string name="send_thank_toast">Enviando agradecementos por %1$s</string>
<string name="review_category_no_button_text">Parece ben</string>
<string name="review_spam_yes_button_text">Non, fóra de alcance</string>
<string name="review_spam_no_button_text">Parece ben</string>
<string name="review_copyright_yes_button_text">Non, violación de copyright</string>
<string name="review_copyright_no_button_text">Parece ben</string>
<string name="review_thanks_yes_button_text">Si, por que non</string>
<string name="review_thanks_no_button_text">Seguinte imaxe</string>
<plurals name="receiving_shared_content">
<item quantity="one">Recepción de contido compartido. O procesamento da imaxe pode tardar certo tempo, dependendo do tamaño da imaxe e do seu dispositivo</item>
<item quantity="other">Recepción de contido compartido. O procesamento das imaxes pode tardar certo tempo, dependendo do tamaño das imaxes e do seu dispositivo</item>
@ -436,12 +465,35 @@
<string name="no_image">Ningunha imaxe usada</string>
<string name="no_image_reverted">Ningunha imaxe revertida</string>
<string name="no_image_uploaded">Ningunha imaxe subida</string>
<string name="no_notification" fuzzy="true">Non ten ningunha notificación sen ler</string>
<string name="no_archived_notification" fuzzy="true">Non ten notificacións arquivadas</string>
<string name="no_notification">Non ten ningunha notificación sen ler</string>
<string name="no_archived_notification">Non ten notificacións arquivadas</string>
<string name="share_logs_using">Compartir os rexistros usando</string>
<string name="menu_option_archived">Ver arquivadas</string>
<string name="menu_option_unread">Ver as non lidas</string>
<string name="error_occurred_in_picking_images">Houbo un erro ó escoller as imaxes</string>
<string name="image_chooser_title">Escoller imaxes a subir</string>
<string name="please_wait">Por favor, agarde…</string>
<string name="skip_image">Saltar esta imaxe</string>
<string name="exif_tag_name_author">Autor</string>
<string name="exif_tag_name_copyright">Dereitos de autoría</string>
<string name="exif_tag_name_location">Localización</string>
<string name="exif_tag_name_cameraModel">Modelo da cámara</string>
<string name="exif_tag_name_lensModel">Modelo de lente</string>
<string name="exif_tag_name_serialNumbers">Números de serie</string>
<string name="exif_tag_name_software">Software</string>
<string name="share_via">Compartir a aplicación vía...</string>
<string name="image_info">Información da imaxe</string>
<string name="no_categories_found">Non se atoparon categorías</string>
<string name="upload_cancelled">Cancelouse a carga</string>
<string name="delete_helper_show_deletion_title_success">Todo correcto</string>
<string name="delete_helper_show_deletion_title_failed">Fallou</string>
<string name="delete_helper_ask_spam_selfie">Un autorretrato</string>
<string name="delete_helper_ask_spam_blurry">Borrosa</string>
<string name="delete_helper_ask_spam_nonsense">Sen sentido</string>
<string name="delete_helper_ask_spam_other">Outro</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Foto de prensa</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Foto aleatoria de internet</string>
<string name="delete_helper_ask_reason_copyright_logo">Logo</string>
<string name="delete_helper_ask_reason_copyright_other">Outro</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Porque é</string>
</resources>

View file

@ -2,6 +2,7 @@
<!-- Authors:
* Abijeet Patro
* Aefgh39622
* Afaz
* Dude1717
* Hinaloe
* Nicolas Raoul
@ -331,9 +332,9 @@
<string name="wikidata_edit_failure">対応するウィキデータの更新に失敗しました!</string>
<string name="menu_set_wallpaper">壁紙として設定</string>
<string name="wallpaper_set_successfully">壁紙の設定ができました!</string>
<string name="quiz">終了</string>
<string name="quiz" fuzzy="true">終了</string>
<string name="quiz_question_string">この画像をアップロードしてよいですか?</string>
<string name="question">質問</string>
<string name="question" fuzzy="true">質問</string>
<string name="result">結果</string>
<string name="quiz_back_button">削除が必要な画像のアップロードを今後も続けると、あなたのアカウントは禁止されます。クイズの終了に同意しますか?</string>
<string name="quiz_alert_message">あなたがアップロードした画像のうち、最低%1$s件がその後、削除されました。もし今後も削除が必要な画像のアップロードを続けるなら、あなたのアカウントは禁止される可能性があります。\n\nどんな画像をアップロードしてよいか禁止されているか覚えるため、もう一度チュートリアルを閲覧してクイズを受けますか</string>
@ -424,7 +425,7 @@
<string name="upload_flow_all_images_in_set">(画像全点を組み写真にする場合)</string>
<string name="search_this_area">この地域を検索</string>
<string name="nearby_card_permission_title">許可を申請</string>
<string name="nearby_card_permission_explanation">画像を募集している近くの場所を表示するため、ご自分の現在の位置を提供してもよいですか?</string>
<string name="nearby_card_permission_explanation">画像を募集している近くの場所を表示するため、あなたの現在の位置情報を提供してもよいですか?</string>
<string name="unable_to_display_nearest_place">位置情報の使用を許可していないため、近くの画像募集中の場所を表示できません</string>
<string name="never_ask_again">以後、表示しない</string>
<string name="display_location_permission_title">位置情報の許可の状態を表示</string>

View file

@ -49,7 +49,7 @@
<item quantity="one">%1$d bestand aan het uploaden</item>
<item quantity="other">%1$d bestanden aan het uploaden</item>
</plurals>
<string name="title_activity_contributions" fuzzy="true">Mijn uploads</string>
<string name="title_activity_contributions">Mijn recente uploads</string>
<string name="contribution_state_queued">In wachtrij</string>
<string name="contribution_state_failed">Mislukt</string>
<string name="contribution_state_in_progress">%1$d%% afgerond</string>
@ -60,7 +60,7 @@
<string name="provider_contributions">Mijn uploads</string>
<string name="menu_share">Delen</string>
<string name="menu_open_in_browser">In browser bekijken</string>
<string name="share_title_hint" fuzzy="true">Naam</string>
<string name="share_title_hint">Titel (verplicht)</string>
<string name="share_description_hint">Beschrijving</string>
<string name="login_failed_network">Aanmelden niet mogelijk. Er is een probleem met het netwerk</string>
<string name="login_failed_throttled">U hebt te vaak geprobeerd aan te melden. Probeer het over een aantal minuten opnieuw.</string>
@ -195,9 +195,9 @@
<string name="skip_login_message" fuzzy="true">Je kunt dan geen afbeeldingen plaatsen.</string>
<string name="login_alert_message">Meld je aan om deze functie te gebruiken</string>
<string name="nearby_directions" fuzzy="true">VERWIJZINGEN</string>
<string name="nearby_wikidata" fuzzy="true">WIKIDATA</string>
<string name="nearby_wikipedia" fuzzy="true">WIKIPEDIA</string>
<string name="nearby_commons" fuzzy="true">COMMONS</string>
<string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Wikipedia</string>
<string name="nearby_commons">Commons</string>
<string name="about_rate_us">&lt;u&gt;Waardeer ons&lt;/u&gt;</string>
<string name="about_faq">&lt;u&gt;Vraag en antwoord&lt;/u&gt;</string>
<string name="welcome_skip_button">Zelfstudie overslaan</string>

View file

@ -14,6 +14,7 @@
* Sp5uhe
* Ty221
* Vesihiisi
* WaldiSt
* Wojtas
* Woytecr
-->
@ -25,6 +26,7 @@
<string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Ustawienia</string>
<string name="intent_share_upload_label">Prześlij do Commons</string>
<string name="username">Nazwa użytkownika</string>
<string name="password">Hasło</string>
<string name="login">Zaloguj się</string>
@ -60,6 +62,7 @@
<string name="menu_share">Udostępnij</string>
<string name="menu_open_in_browser">Zobacz w przeglądarce</string>
<string name="share_title_hint">Tytuł (wymagany)</string>
<string name="add_title_toast">Podaj tytuł tego pliku</string>
<string name="share_description_hint">Opis</string>
<string name="login_failed_network">Nie można zalogować - błąd sieci</string>
<string name="login_failed_wrong_credentials">Nie można się zalogować - sprawdź swoją nazwę użytkownika i hasło</string>

View file

@ -492,17 +492,17 @@
<string name="review_copyright_explanation">Логотипы, снимки экрана, постеры фильмов часто нарушают копирайт.\n Нажмите НЕТ, чтобы номинировать это изображение к удалению.</string>
<string name="review_thanks_explanation">%1$s получит от вас благодарность</string>
<string name="review_no_category">Эй, да тут даже категорий нет!</string>
<string name="review_category_explanation">Это изображение отнесено к %1$s {{PLURAL:%1$s|категории|категориям}}.</string>
<string name="review_category_explanation">Это изображение отнесено к следующим категориям: %1$s</string>
<string name="review_spam_report_question">Файл не уместен на Викискладе, поскольку</string>
<string name="review_c_violation_report_question">Это нарушение авторских прав, поскольку</string>
<string name="review_category_yes_button_text">Неверно категоризировано</string>
<string name="review_category_no_button_text">Выглядит подходяще</string>
<string name="review_spam_yes_button_text">Не уместно</string>
<string name="review_spam_no_button_text">Выглядит подходяще</string>
<string name="review_category_no_button_text">Уместен</string>
<string name="review_spam_yes_button_text">Нет</string>
<string name="review_spam_no_button_text">Уместен</string>
<string name="review_copyright_yes_button_text">Нет, это нарушение авторского права</string>
<string name="review_copyright_no_button_text">Выглядит подходяще</string>
<string name="review_thanks_yes_button_text">Да, подходит</string>
<string name="review_thanks_no_button_text">Следующее изображение</string>
<string name="review_copyright_no_button_text">Уместен</string>
<string name="review_thanks_yes_button_text">Да</string>
<string name="review_thanks_no_button_text">Следующий файл</string>
<string name="skip_image_explanation">Нажатие этой кнопки приводит к показу следующего недавно загруженного изображения с Викисклада</string>
<string name="review_image_explanation">Вы можете проверить файлы, и, таким образом, улучшить их качество на Викискладе.\n Есть четыре проверки:\n - Уместен ли файл на Викискладе?\n - Соответствует ли файл правилам об авторском праве?\n - Правильно ли файл категоризирован?\n - Если всё хорошо, можете поблагодарить загрузившего этот файл.</string>
<plurals name="receiving_shared_content">

View file

@ -131,7 +131,7 @@
<string name="license_name_cc_zero">ڪڪ ٻڙي</string>
<string name="tutorial_1_text">وڪيپيڊيا تي استعمال ٿيندڙ گھڻن عڪسن جي وڪيميڊيا العام ميزباني ڪري ٿو.</string>
<string name="tutorial_1_subtext">توھان جا عڪس سڄي دنيا جي ماڻھن کي تعليم يافتا ڪرڻ ۾ مدد ڪن ٿا</string>
<string name="tutorial_2_text">براءِ مھرباني اھي تصويرون چاڙھيو مڪمل طور تي توھان پاران ڪڍيل يا تخليقيل آھن:</string>
<string name="tutorial_2_text">براءِ مھرباني اھي تصويرون چاڙھيو مڪمل طور تي توھان پاران ڪڍيل يا سرجيل آھن:</string>
<string name="tutorial_2_subtext_1">قدرتي شيون (گل، جانور، جبل)</string>
<string name="tutorial_2_subtext_2">استعمال جوڳيون شيون (سائيڪلون، ريل اسٽيشنون)</string>
<string name="tutorial_2_subtext_3">مشھور شخصيتون (توھان جو ناظم، اولمپڪ رانديگر جنھن سان توھان مليو)</string>
@ -254,5 +254,6 @@
<string name="search_history_deleted">ڳولا سوانح ڊاٿي وئي</string>
<string name="statistics" fuzzy="true">انگ اکر</string>
<string name="error_occurred">خلل ٿيو!</string>
<string name="contributions_fragment">ڀاڱيداريون</string>
<string name="write_storage_permission_rationale_for_image_share">اسان کي اوهان جي ڊوائس جي اسٽورج جي اجازت گھرجي جيئن تصويرون چاڙهي سگھجن.</string>
</resources>

View file

@ -11,6 +11,7 @@
<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_privacy">Privasi</string>
<string name="preference_category_location">Lokasi</string>
<string name="app_name">Commons</string>
<string name="bullet"></string>

View file

@ -533,7 +533,11 @@
<string name="review_is_uploaded_by">%1$s laddas upp av: %2$s</string>
<string name="default_description_language">Standardspråk för beskrivning</string>
<string name="delete_helper_make_deletion_toast">Försöker nominera %1$s för radering</string>
<string name="delete_helper_show_deletion_title">Nominerar för radering</string>
<string name="delete_helper_show_deletion_title_success">Genomfördes</string>
<string name="delete_helper_show_deletion_message_if">Nominaterades %1$s för radering.</string>
<string name="delete_helper_show_deletion_title_failed">Misslyckades</string>
<string name="delete_helper_show_deletion_message_else">Kunde inte begära radering.</string>
<string name="delete_helper_ask_spam_selfie">Ett självporträtt</string>
<string name="delete_helper_ask_spam_blurry">Suddig</string>
<string name="delete_helper_ask_spam_nonsense">Strunt</string>
@ -542,4 +546,5 @@
<string name="delete_helper_ask_reason_copyright_internet_photo">Slumpbild från Internet</string>
<string name="delete_helper_ask_reason_copyright_logo">Logotyp</string>
<string name="delete_helper_ask_reason_copyright_other">Annat</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Eftersom den är</string>
</resources>

View file

@ -10,6 +10,7 @@
* Hydra
* Kuailong
* Liuxinyu970226
* Looong
* Qiyue2001
* Shizhao
* Wxyveronica
@ -49,7 +50,7 @@
<string name="upload_completed_notification_text">点击查看您的上传</string>
<string name="upload_progress_notification_title_start">开始%1$s的上传</string>
<string name="upload_progress_notification_title_in_progress">%1$s正在上传</string>
<string name="upload_progress_notification_title_finishing">完成上传%1$s</string>
<string name="upload_progress_notification_title_finishing">正在完成上传%1$s</string>
<string name="upload_failed_notification_title">上传%1$s失败</string>
<string name="upload_failed_notification_subtitle">点击查看</string>
<plurals name="uploads_pending_notification_indicator">
@ -113,7 +114,7 @@
<string name="about_license">维基共享资源应用是由维基媒体社区的受助者和志愿者创建和维护的开源应用。维基媒体基金会不参与该应用程序的创立,开发或维护。</string>
<string name="about_improve">创建新的&lt;a href=\"%1$s\"&gt;GitHub问题&lt;/a&gt;以发送错误报告和建议。</string>
<string name="about_privacy_policy">&lt;u&gt;隐私政策&lt;/u&gt;</string>
<string name="about_credits">&lt;u&gt;制作人员&lt;/u&gt;</string>
<string name="about_credits">&lt;u&gt;信用&lt;/u&gt;</string>
<string name="title_activity_about">关于</string>
<string name="menu_feedback">发送反馈(通过电子邮件)</string>
<string name="no_email_client">未安装电子邮件客户端</string>
@ -134,9 +135,9 @@
<string name="allow_gps_summary">如果图片没有地理标记,以及地理标签图片的话,就取得当前位置。警告:这将暴露您的当前位置。</string>
<string name="preference_theme">夜间模式</string>
<string name="preference_theme_summary">使用黑暗主题</string>
<string name="license_name_cc_by_sa_four">署名-相同方式共享4.0</string>
<string name="license_name_cc_by_sa_four">署名-ShareAlike4.0</string>
<string name="license_name_cc_by_four">署名4.0</string>
<string name="license_name_cc_by_sa">署名-相同方式共享3.0</string>
<string name="license_name_cc_by_sa">署名-ShareAlike3.0</string>
<string name="license_name_cc_by">署名3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
@ -154,20 +155,20 @@
<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_zero">CC0</string>
<string name="tutorial_1_text">维基共享资源存储大用于维基百科的图片。</string>
<string name="tutorial_1_text">维基共享资源存储大部分用于维基百科的图片。</string>
<string name="tutorial_1_subtext">您的图像会帮助教育全世界的人!</string>
<string name="tutorial_2_text">请上传完全由您拍摄或创作的图片:</string>
<string name="tutorial_2_subtext_1">自然物(花、动物、山峰)</string>
<string name="tutorial_2_subtext_2">实用对象(自行车、火车站)</string>
<string name="tutorial_2_subtext_3">著名人物(您见的市长、奥运运动员)</string>
<string name="tutorial_2_subtext_3">著名人物(您见的市长、奥运运动员)</string>
<string name="tutorial_3_text">请不要上传:</string>
<string name="tutorial_3_subtext_1">您朋友的自拍照或图片</string>
<string name="tutorial_3_subtext_2">您从互联网下载的图片</string>
<string name="tutorial_3_subtext_3">应用的截图</string>
<string name="tutorial_3_subtext_3">应用的截图</string>
<string name="tutorial_4_text">示例上传:</string>
<string name="tutorial_4_subtext_1">标题:悉尼歌剧院</string>
<string name="tutorial_4_subtext_2">说明:穿过海湾看到的悉尼歌剧院</string>
<string name="tutorial_4_subtext_3">分类:来自西侧的悉尼歌剧院、悉尼歌剧院外观</string>
<string name="tutorial_4_subtext_3">分类:尼歌剧院西侧、悉尼歌剧院远景</string>
<string name="welcome_wikipedia_text">贡献您的图像。使维基百科的条目更加生动!</string>
<string name="welcome_wikipedia_subtext">维基百科上的图像来自维基共享资源。</string>
<string name="welcome_copyright_text">您的图像可以帮助教育世界各地的人。</string>
@ -212,7 +213,7 @@
<string name="maximum_limit_alert">无法显示超过500张</string>
<string name="enter_valid">输入有效数字</string>
<string name="cannot_be_zero">上传数量限制不能是 0</string>
<string name="set_limit">设置上传限制</string>
<string name="set_limit">最近上传限制</string>
<string name="login_failed_2fa_not_supported">目前不支持双因素验证。</string>
<string name="logout_verification">您真的想要退出么?</string>
<string name="commons_logo">共享资源标志</string>
@ -246,9 +247,9 @@
<string name="navigation_item_logout">退出</string>
<string name="navigation_item_info">教程</string>
<string name="navigation_item_notification">通知</string>
<string name="navigation_item_featured_images">特色</string>
<string name="navigation_item_featured_images">特色</string>
<string name="navigation_item_review">复核</string>
<string name="nearby_needs_permissions">附近地点不能在没有位置权限的情况下显示</string>
<string name="nearby_needs_permissions">没有位置权限的情况下不能显示附近地点</string>
<string name="no_description_found">找不到描述</string>
<string name="nearby_info_menu_commons_article">共享资源文件页面</string>
<string name="nearby_info_menu_wikidata_article">维基数据项</string>
@ -268,7 +269,7 @@
<string name="internet_downloaded">请仅上传由您自己拍摄的图像。请勿上传您从互联网下载的图像。</string>
<string name="give_permission">提供权限</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="send_log_file">发送日志文件</string>
<string name="send_log_file_description">通过电子邮件发送日志文件给开发人员,以帮助调试应用程序的问题。注意:日志可能包含标识信息。</string>
@ -307,6 +308,8 @@
<string name="no_internet">互联网不可用</string>
<string name="internet_established">互联网可用</string>
<string name="error_notifications">检索通知时出错</string>
<string name="error_review">获取审查图片错误。按刷新键重试。</string>
<string name="error_review_categories">获取审查图片类别错误。按刷新按键重试。</string>
<string name="no_notifications">找不到通知</string>
<string name="about_translate">&lt;u&gt;翻译&lt;/u&gt;</string>
<string name="about_translate_title">语言</string>
@ -315,7 +318,7 @@
<string name="about_translate_cancel">取消</string>
<string name="retry">重试</string>
<string name="showcase_view_got_it_button">明白了!</string>
<string name="showcase_view_whole_nearby_activity" fuzzy="true">这些是您附近需要图片以阐明维基百科条目的地方</string>
<string name="showcase_view_whole_nearby_activity">这些是您附近需要图片以阐明维基百科条目的地方。\n点击“检索这个区域”来锁定地图并启动定位功能来检索附近位置。</string>
<string name="showcase_view_list_icon">点按此按钮会出现这些地点的列表</string>
<string name="showcase_view_plus_fab">您可以从您的图库或照相机中上传任意地点的图片</string>
<string name="no_images_found">找不到图片!</string>
@ -366,6 +369,7 @@
<string name="add_description">+ 添加描述</string>
<string name="no_recent_searches">还没有最近搜索</string>
<string name="delete_recent_searches_dialog">您确认要清除您的搜索历史?</string>
<string name="delete_search_dialog">你想删除本次检索吗?</string>
<string name="search_history_deleted">搜索历史已删除</string>
<string name="nominate_delete">提名删除</string>
<string name="delete">删除</string>
@ -455,10 +459,24 @@
<string name="this_function_needs_network_connection">这个功能需要网络连接,请检查你的网络设置。</string>
<string name="bad_token_error_proposed_solution">因为编辑令牌失效上传失败。请尝试登出后重新登录。</string>
<string name="error_processing_image">处理图像时出错。请再试一次!</string>
<string name="getting_edit_token">获取编辑标记</string>
<string name="check_category_adding_template">添加类别检查模板</string>
<string name="check_category_notification_title">请求对%1$s进行类别检查</string>
<string name="check_category_edit_summary">请求类别检查</string>
<string name="check_category_success_title">已请求类别检查</string>
<string name="check_category_failure_title">类别检查请求不起作用</string>
<string name="check_category_success_message">%1$成功请求类别检查</string>
<string name="check_category_failure_message">%1$不能请求类别检查</string>
<string name="check_category_toast">正在请求对%1$进行类别检查</string>
<string name="nominate_for_deletion_edit_file_page">添加文件的删除信息</string>
<string name="nominate_for_deletion_done">完成</string>
<string name="nominate_for_deletion_notify_user">在讨论页上通知用户</string>
<string name="nominate_for_deletion_edit_deletion_request_log">正在添加文件到删除请求的日志文件中。</string>
<string name="nominate_for_deletion_create_deletion_request">创建删除请求子页面</string>
<string name="notsure">不确定</string>
<string name="send_thank_success_title">发送感谢成功</string>
<string name="send_thank_success_message">成功的给%1$发送感谢</string>
<string name="send_thank_failure_message">给%1$发送感谢失败</string>
<string name="send_thank_failure_title">发送感谢失败</string>
<string name="send_thank_send">发送感谢</string>
<string name="send_thank_notification_title">发送感谢</string>
@ -467,8 +485,11 @@
<string name="review_category">它是否被正确分类?</string>
<string name="review_spam">它是否在维基共享资源的收录范围内?</string>
<string name="review_thanks">您是否要感谢贡献者?</string>
<string name="review_spam_explanation">如果该图片无用,点击否来提议删除该文件。</string>
<string name="review_copyright_explanation">标志、屏幕截图和电影海报通常侵犯版权。\n提名删除候选请点击“否”。</string>
<string name="review_thanks_explanation">你的感谢会鼓励%1</string>
<string name="review_no_category">该文件未被分类!</string>
<string name="review_category_explanation">该图片是在%1类别下</string>
<string name="review_spam_report_question">该文件不在收录范围内,原因是</string>
<string name="review_c_violation_report_question">该文件侵犯版权,原因是</string>
<string name="review_category_yes_button_text">否,分类错误</string>
@ -479,38 +500,62 @@
<string name="review_copyright_no_button_text">看起来没问题</string>
<string name="review_thanks_yes_button_text">是,为什么不呢</string>
<string name="review_thanks_no_button_text">下一张图片</string>
<string name="skip_image_explanation">点击这个按钮会给你另外一个来自于Wikimedia Common上传的图片</string>
<string name="review_image_explanation">你可以审查图片病提高Wikimedia Commoms的质量。\n审查的四个参数是\n-图片尺寸是否在规定的范围\n-图片是否遵循版权规则\n-图片是否正确分类\n-如果一切正常你是否也可以感谢贡献者</string>
<plurals name="receiving_shared_content">
<item quantity="other">正在处理数据。处理时间取决于图片的尺寸和您的设备</item>
</plurals>
<string name="no_image">没有被使用的图片</string>
<string name="no_image_reverted">没有被撤回的图片</string>
<string name="no_image_uploaded">还没有上传图片</string>
<string name="no_notification" fuzzy="true">您没有未读通知</string>
<string name="no_archived_notification" fuzzy="true">您没有已存档的通知</string>
<string name="no_notification">您没有任何未读通知</string>
<string name="no_archived_notification">您没有已存档的通知</string>
<string name="share_logs_using">分享日志于</string>
<string name="menu_option_archived">查看已存档</string>
<string name="menu_option_unread">查看未读</string>
<string name="error_occurred_in_picking_images">选择图片时出错</string>
<string name="image_chooser_title">选择要上传的图片</string>
<string name="please_wait">请稍候……</string>
<string name="images_featured_explanation">特征图片是Wikimedia Commons社区选出的网站上的最高质量的图片中的一部分是来自于技术高超的摄影师和绘画师。</string>
<string name="images_via_nearby_explanation">通过附近位置上传的图片是指那些使用地图上发现位置功能上传的图片</string>
<string name="thanks_received_explanation">这些功能允许编辑人员给那些做出了有用编辑的用户发送感谢通知-感谢通知通过使用在历史页面或差分页面上的一个小的感谢链接实现的。</string>
<string name="previous_image_title_description">复制先前的标题及描述</string>
<string name="previous_button_tooltip_message">点击复用您在先前图片中填写的标题及描述并稍加修改来匹配当前图像。</string>
<string name="welcome_do_upload_content_description">上传好图片到Commons的例子</string>
<string name="welcome_dont_upload_content_description">不能上传图片的例子</string>
<string name="skip_image">跳过该图片</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">下载失败!!在没有外部存储权限时我们不能下载该文件。</string>
<string name="manage_exif_tags">管理EXIF标签</string>
<string name="manage_exif_tags_summary">选择保存在上传中的EXIF标签</string>
<string name="exif_tag_name_author">作者</string>
<string name="exif_tag_name_copyright">著作权</string>
<string name="exif_tag_name_location">位置</string>
<string name="exif_tag_name_cameraModel">相机型号</string>
<string name="exif_tag_name_lensModel">镜面模型</string>
<string name="exif_tag_name_serialNumbers">序列号</string>
<string name="exif_tag_name_software">软件</string>
<string name="share_text">上传照片到手机上的Wikimedia Commons应用 下载Commons应用%1</string>
<string name="share_via">分享到...</string>
<string name="image_info">图像信息</string>
<string name="no_categories_found">找不到分类</string>
<string name="upload_cancelled">取消上传</string>
<string name="previous_image_title_description_not_found">没有之前图片的标题或描述对应的数据</string>
<string name="dialog_box_text_nomination">%1$s为何应被删除</string>
<string name="review_is_uploaded_by">%1通过%2上传</string>
<string name="default_description_language">默认描述语言</string>
<string name="delete_helper_make_deletion_toast">尝试将%1作为删除的提案</string>
<string name="delete_helper_show_deletion_title">正在提出删除准备</string>
<string name="delete_helper_show_deletion_title_success">成功</string>
<string name="delete_helper_show_deletion_message_if">成功提出将%1删除</string>
<string name="delete_helper_show_deletion_title_failed">失败了</string>
<string name="delete_helper_show_deletion_message_else">不能请求删除</string>
<string name="delete_helper_ask_spam_selfie">自拍</string>
<string name="delete_helper_ask_spam_blurry">模糊</string>
<string name="delete_helper_ask_spam_nonsense">无意义</string>
<string name="delete_helper_ask_spam_other">其他</string>
<string name="delete_helper_ask_reason_copyright_press_photo">按压图片</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">来自网络的随机图片</string>
<string name="delete_helper_ask_reason_copyright_logo">标志</string>
<string name="delete_helper_ask_reason_copyright_other">其他</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">由于他是</string>
</resources>

View file

@ -70,6 +70,7 @@
<fr.free.nrw.commons.ui.LongTitlePreferences.LongTitleMultiSelectListPreference
android:entries="@array/pref_exifTag_entries"
android:entryValues="@array/pref_exifTag_values"
android:defaultValue="@array/pref_exifTag_values"
android:key="manageExifTags"
android:title="@string/manage_exif_tags"
android:summary="@string/manage_exif_tags_summary"/>

View file

@ -57,7 +57,9 @@ class CategoriesPresenterTest {
fun searchForCategoriesTest() {
Mockito.`when`(repository?.sortBySimilarity(ArgumentMatchers.anyString())).thenReturn(Comparator<CategoryItem> { _, _ -> 1 })
Mockito.`when`(repository?.selectedCategories).thenReturn(categoryItems)
Mockito.`when`(repository?.searchAll(ArgumentMatchers.anyString(), ArgumentMatchers.anyList())).thenReturn(Observable.empty())
Mockito.`when`(repository?.searchAll(ArgumentMatchers.anyString(), ArgumentMatchers.anyList())).thenReturn(testObservable)
Mockito.`when`(repository?.searchCategories(ArgumentMatchers.anyString(), ArgumentMatchers.anyList())).thenReturn(testObservable)
Mockito.`when`(repository?.getDefaultCategories(ArgumentMatchers.anyList())).thenReturn(testObservable)
categoriesPresenter?.searchForCategories("test")
verify(view)?.showProgress(true)
verify(view)?.showError(null)

View file

@ -64,7 +64,6 @@ class UploadPresenterTest {
verify(repository)?.prepareService()
verify(view)?.showProgress(false)
verify(view)?.showMessage(ArgumentMatchers.any(Int::class.java))
verify(view)?.finish()
true
}
}