mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Merge branch 'master' into 2.12-release
This commit is contained in:
commit
bf4b73103f
18 changed files with 300 additions and 134 deletions
|
|
@ -1,7 +1,12 @@
|
|||
package fr.free.nrw.commons.campaigns;
|
||||
|
||||
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
|
||||
import static fr.free.nrw.commons.di.CommonsApplicationModule.MAIN_THREAD;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import io.reactivex.Scheduler;
|
||||
import javax.inject.Named;
|
||||
import org.wikipedia.util.DateUtil;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
|
@ -30,14 +35,18 @@ import timber.log.Timber;
|
|||
@Singleton
|
||||
public class CampaignsPresenter implements BasePresenter<ICampaignsView> {
|
||||
private final OkHttpJsonApiClient okHttpJsonApiClient;
|
||||
private final Scheduler mainThreadScheduler;
|
||||
private final Scheduler ioScheduler;
|
||||
|
||||
private ICampaignsView view;
|
||||
private Disposable disposable;
|
||||
private Campaign campaign;
|
||||
|
||||
@Inject
|
||||
public CampaignsPresenter(OkHttpJsonApiClient okHttpJsonApiClient) {
|
||||
public CampaignsPresenter(OkHttpJsonApiClient okHttpJsonApiClient, @Named(IO_THREAD)Scheduler ioScheduler, @Named(MAIN_THREAD)Scheduler mainThreadScheduler) {
|
||||
this.okHttpJsonApiClient = okHttpJsonApiClient;
|
||||
this.mainThreadScheduler=mainThreadScheduler;
|
||||
this.ioScheduler=ioScheduler;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -64,8 +73,8 @@ public class CampaignsPresenter implements BasePresenter<ICampaignsView> {
|
|||
return;
|
||||
}
|
||||
Single<CampaignResponseDTO> campaigns = okHttpJsonApiClient.getCampaigns();
|
||||
campaigns.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribeOn(Schedulers.io())
|
||||
campaigns.observeOn(mainThreadScheduler)
|
||||
.subscribeOn(ioScheduler)
|
||||
.subscribeWith(new SingleObserver<CampaignResponseDTO>() {
|
||||
|
||||
@Override public void onSubscribe(Disposable d) {
|
||||
|
|
@ -77,6 +86,7 @@ public class CampaignsPresenter implements BasePresenter<ICampaignsView> {
|
|||
if (campaigns == null || campaigns.isEmpty()) {
|
||||
Timber.e("The campaigns list is empty");
|
||||
view.showCampaigns(null);
|
||||
return;
|
||||
}
|
||||
Collections.sort(campaigns, (campaign, t1) -> {
|
||||
Date date1, date2;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
package fr.free.nrw.commons.media;
|
||||
|
||||
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||
import static android.content.Context.DOWNLOAD_SERVICE;
|
||||
import static fr.free.nrw.commons.Utils.handleWebUrl;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.DownloadManager;
|
||||
import android.content.Intent;
|
||||
|
|
@ -14,15 +18,10 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import fr.free.nrw.commons.Media;
|
||||
|
|
@ -42,12 +41,10 @@ import fr.free.nrw.commons.utils.ImageUtils;
|
|||
import fr.free.nrw.commons.utils.NetworkUtils;
|
||||
import fr.free.nrw.commons.utils.PermissionUtils;
|
||||
import fr.free.nrw.commons.utils.ViewUtil;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import timber.log.Timber;
|
||||
|
||||
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||
import static android.content.Context.DOWNLOAD_SERVICE;
|
||||
import static fr.free.nrw.commons.Utils.handleWebUrl;
|
||||
|
||||
public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager.OnPageChangeListener {
|
||||
|
||||
@Inject SessionManager sessionManager;
|
||||
|
|
@ -256,6 +253,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true);
|
||||
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(true).setVisible(true);
|
||||
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(true).setVisible(true);
|
||||
|
||||
// Initialize bookmark object
|
||||
bookmark = new Bookmark(
|
||||
|
|
@ -269,23 +267,35 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
Contribution c = (Contribution) m;
|
||||
switch (c.getState()) {
|
||||
case Contribution.STATE_FAILED:
|
||||
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false).setVisible(false);
|
||||
break;
|
||||
case Contribution.STATE_IN_PROGRESS:
|
||||
case Contribution.STATE_QUEUED:
|
||||
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false).setVisible(false);
|
||||
menu.findItem(R.id.menu_browser_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_share_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(false)
|
||||
.setVisible(false);
|
||||
break;
|
||||
case Contribution.STATE_COMPLETED:
|
||||
// Default set of menu items works fine. Treat same as regular media object
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
menu.findItem(R.id.menu_browser_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_share_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_download_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false)
|
||||
.setVisible(false);
|
||||
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(false)
|
||||
.setVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package fr.free.nrw.commons.nearby.fragments;
|
||||
|
||||
import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
|
|
@ -7,11 +9,9 @@ import android.util.AttributeSet;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
|
||||
|
||||
import com.mapbox.mapboxsdk.annotations.Icon;
|
||||
import com.mapbox.mapboxsdk.annotations.IconFactory;
|
||||
import com.mapbox.mapboxsdk.annotations.Marker;
|
||||
|
|
@ -26,13 +26,6 @@ import com.mapbox.mapboxsdk.maps.MapboxMap;
|
|||
import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
|
||||
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
|
||||
import com.mapbox.mapboxsdk.utils.MapFragmentUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao;
|
||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
||||
|
|
@ -48,10 +41,12 @@ import fr.free.nrw.commons.nearby.contract.NearbyParentFragmentContract;
|
|||
import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter;
|
||||
import fr.free.nrw.commons.utils.LocationUtils;
|
||||
import fr.free.nrw.commons.utils.UiUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import timber.log.Timber;
|
||||
|
||||
import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween;
|
||||
|
||||
/**
|
||||
* Support Fragment wrapper around a map view.
|
||||
* <p>
|
||||
|
|
@ -315,17 +310,21 @@ public class NearbyMapFragment extends CommonsDaggerSupportFragment
|
|||
*/
|
||||
@Override
|
||||
public void addCurrentLocationMarker(LatLng curLatLng) {
|
||||
if (null != curLatLng) {
|
||||
removeCurrentLocationMarker();
|
||||
Timber.d("Adds current location marker");
|
||||
|
||||
Icon icon = IconFactory.getInstance(getContext()).fromResource(R.drawable.current_location_marker);
|
||||
Icon icon = IconFactory.getInstance(getContext())
|
||||
.fromResource(R.drawable.current_location_marker);
|
||||
|
||||
MarkerOptions currentLocationMarkerOptions = new MarkerOptions()
|
||||
.position(new com.mapbox.mapboxsdk.geometry.LatLng(curLatLng.getLatitude(), curLatLng.getLongitude()));
|
||||
.position(new com.mapbox.mapboxsdk.geometry.LatLng(curLatLng.getLatitude(),
|
||||
curLatLng.getLongitude()));
|
||||
currentLocationMarkerOptions.setIcon(icon); // Set custom icon
|
||||
currentLocationMarker = mapboxMap.addMarker(currentLocationMarkerOptions);
|
||||
|
||||
List<com.mapbox.mapboxsdk.geometry.LatLng> circle = UiUtils.createCircleArray(curLatLng.getLatitude(), curLatLng.getLongitude(),
|
||||
List<com.mapbox.mapboxsdk.geometry.LatLng> circle = UiUtils
|
||||
.createCircleArray(curLatLng.getLatitude(), curLatLng.getLongitude(),
|
||||
curLatLng.getAccuracy() * 2, 100);
|
||||
|
||||
PolygonOptions currentLocationPolygonOptions = new PolygonOptions()
|
||||
|
|
@ -333,6 +332,9 @@ public class NearbyMapFragment extends CommonsDaggerSupportFragment
|
|||
.strokeColor(getResources().getColor(R.color.current_marker_stroke))
|
||||
.fillColor(getResources().getColor(R.color.current_marker_fill));
|
||||
currentLocationPolygon = mapboxMap.addPolygon(currentLocationPolygonOptions);
|
||||
} else {
|
||||
Timber.d("not adding current location marker..current location is null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package fr.free.nrw.commons.upload.mediaDetails;
|
||||
|
||||
import static fr.free.nrw.commons.utils.ImageUtils.getErrorMessageForResult;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
|
@ -11,29 +13,17 @@ import android.view.ViewGroup;
|
|||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatButton;
|
||||
import androidx.appcompat.widget.AppCompatImageButton;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.github.chrisbanes.photoview.PhotoView;
|
||||
import com.jakewharton.rxbinding2.widget.RxTextView;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import com.github.chrisbanes.photoview.PhotoView;
|
||||
import com.jakewharton.rxbinding2.widget.RxTextView;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.Utils;
|
||||
import fr.free.nrw.commons.filepicker.UploadableFile;
|
||||
|
|
@ -52,10 +42,14 @@ import fr.free.nrw.commons.utils.DialogUtil;
|
|||
import fr.free.nrw.commons.utils.ImageUtils;
|
||||
import fr.free.nrw.commons.utils.ViewUtil;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import timber.log.Timber;
|
||||
|
||||
import static fr.free.nrw.commons.utils.ImageUtils.getErrorMessageForResult;
|
||||
|
||||
public class UploadMediaDetailFragment extends UploadBaseFragment implements
|
||||
UploadMediaDetailsContract.View {
|
||||
|
||||
|
|
@ -179,7 +173,11 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
|
|||
etTitle.setOnTouchListener((v, event) -> {
|
||||
//2 is for drawable right
|
||||
float twelveDpInPixels = convertDpToPixel(12, getContext());
|
||||
if (event.getAction() == MotionEvent.ACTION_UP && etTitle.getCompoundDrawables()[2].getBounds().contains((int)(etTitle.getWidth()-(event.getX()+twelveDpInPixels)),(int)(event.getY()-twelveDpInPixels))){
|
||||
if (event.getAction() == MotionEvent.ACTION_UP && etTitle.getCompoundDrawables() != null
|
||||
&& etTitle.getCompoundDrawables().length > 2 && etTitle
|
||||
.getCompoundDrawables()[2].getBounds()
|
||||
.contains((int) (etTitle.getWidth() - (event.getX() + twelveDpInPixels)),
|
||||
(int) (event.getY() - twelveDpInPixels))) {
|
||||
showInfoAlert(R.string.media_detail_title, R.string.title_info);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -559,5 +559,10 @@
|
|||
<string name="text_copy">تم نسخ النص إلى الحافظة.</string>
|
||||
<string name="notification_mark_read">تم تعليم الإخطار كمقروء</string>
|
||||
<string name="some_error">ثمة خطأ ما!</string>
|
||||
<string name="place_state">حالة المكان:</string>
|
||||
<string name="place_state_exists">موجود</string>
|
||||
<string name="place_state_needs_photo">يحتاج صورة</string>
|
||||
<string name="place_type">نوع المكان:</string>
|
||||
<string name="nearby_search_hint">جسر، متحف، فندق، إلخ</string>
|
||||
<string name="you_must_reset_your_passsword">حدث خطأ ما عند الدخول، يجب عليك إعادة تعيين كلمة المرور!!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -549,5 +549,10 @@
|
|||
<string name="text_copy">Testu copiáu al cartafueyu</string>
|
||||
<string name="notification_mark_read">Notificación marcada como lleida</string>
|
||||
<string name="some_error">Hebo dalgún error</string>
|
||||
<string name="place_state">Estáu del llugar:</string>
|
||||
<string name="place_state_exists">Existe</string>
|
||||
<string name="place_state_needs_photo">Precisa foto</string>
|
||||
<string name="place_type">Tipu de llugar:</string>
|
||||
<string name="nearby_search_hint">Ponte, muséu, hotel etc.</string>
|
||||
<string name="you_must_reset_your_passsword">¡¡Falló daqué al aniciar sesión, tienes de reaniciar la contraseña!!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -222,9 +222,9 @@
|
|||
<string name="login_failed_2fa_not_supported">L’authentification à deux facteurs n’est pas prise en charge pour le moment.</string>
|
||||
<string name="logout_verification">Voulez-vous vraiment vous déconnecter ?</string>
|
||||
<string name="commons_logo">Logo de Commons</string>
|
||||
<string name="commons_website">Site web de Communs</string>
|
||||
<string name="commons_website">Site web de Commons</string>
|
||||
<string name="commons_facebook">Page Facebook de Commons</string>
|
||||
<string name="commons_github">Code source Github de Communs</string>
|
||||
<string name="commons_github">Code source Github de Commons</string>
|
||||
<string name="background_image">Image de fond</string>
|
||||
<string name="mediaimage_failed">Échec sur l’image du média</string>
|
||||
<string name="no_image_found">Aucune image trouvée</string>
|
||||
|
|
@ -235,11 +235,11 @@
|
|||
<string name="welcome_image_llamas">Lamas</string>
|
||||
<string name="welcome_image_rainbow_bridge">Pont Arc-en-ciel</string>
|
||||
<string name="welcome_image_tulip">Tulipe</string>
|
||||
<string name="welcome_image_no_selfies">Pas d’égoportraits</string>
|
||||
<string name="welcome_image_no_selfies">Aucun égoportrait</string>
|
||||
<string name="welcome_image_proprietary">Image privée</string>
|
||||
<string name="welcome_image_welcome_wikipedia">Bienvenue de Wikipédia</string>
|
||||
<string name="welcome_image_welcome_copyright">Droit d’auteur de bienvenue</string>
|
||||
<string name="welcome_image_sydney_opera_house">Maison de l’opéra de Sydney</string>
|
||||
<string name="welcome_image_sydney_opera_house">Maison de l’Opéra de Sydney</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<string name="navigation_drawer_open">Ouvrir</string>
|
||||
<string name="navigation_drawer_close">Fermer</string>
|
||||
|
|
@ -258,64 +258,64 @@
|
|||
<string name="no_description_found">aucune description trouvée</string>
|
||||
<string name="nearby_info_menu_commons_article">Page des fichiers de Commons</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Élément de Wikidata</string>
|
||||
<string name="nearby_info_menu_wikipedia_article">Article Wikipédia</string>
|
||||
<string name="nearby_info_menu_wikipedia_article">Article de Wikipédia</string>
|
||||
<string name="error_while_cache">Erreur en mettant les images en cache</string>
|
||||
<string name="title_info">Un titre descriptif unique pour le fichier, qui servira de nom de fichier. Vous pouvez utiliser un langage simple avec des espaces. N’incluez pas l’extension du fichier</string>
|
||||
<string name="description_info">Veuillez décrire le média autant que possible : Où a-t-il été enregistré ? Que montre-t-il ? Quel est le contexte ? Veuillez décrire les objets ou les personnes. Révélez les informations qui ne peuvent pas être devinées facilement, par exemple l’heure de la journée si c’est un paysage. Si le média montre quelque chose d’inhabituel, veuillez expliquer ce qui le rend exceptionnel.</string>
|
||||
<string name="upload_image_too_dark">Cette image est trop sombre, êtes-vous sûr de vouloir la téléverser ? Wikimedia Commons est réservé pour les images ayant une valeur encyclopédique.</string>
|
||||
<string name="description_info">Veuillez décrire le média autant que possible : Où a-t-il été enregistré ? Que montre-t-il ? Quel est le contexte ? Veuillez décrire les objets ou les personnes. Révélez les informations qui ne peuvent pas être devinées facilement, par exemple l’heure de la journée si c’est un paysage. Si le média montre quelque chose d’inhabituel, veuillez expliquer ce qui le rend exceptionnel.</string>
|
||||
<string name="upload_image_too_dark">Cette image est trop sombre, êtes-vous sûr de vouloir la téléverser ? Wikimedia Commons est réservé pour les images ayant une valeur encyclopédique.</string>
|
||||
<string name="upload_image_blurry">Cette image est floue, êtes-vous sûr de vouloir la téléverser ? Wikimedia Commons est réservé aux images ayant une valeur encyclopédique.</string>
|
||||
<string name="upload_problem_exist">Problèmes potentiels avec cette image.</string>
|
||||
<string name="upload_problem_image_dark">L\'image est trop sombre.</string>
|
||||
<string name="upload_problem_exist">Problèmes potentiels avec cette image :</string>
|
||||
<string name="upload_problem_image_dark">L’image est trop sombre.</string>
|
||||
<string name="upload_problem_image_blurry">L’image est floue.</string>
|
||||
<string name="upload_problem_image_duplicate">L\'image est déjà sur Commons.</string>
|
||||
<string name="upload_problem_image_duplicate">L’image est déjà sur Commons.</string>
|
||||
<string name="upload_problem_different_geolocation">Cette image a été prise à un emplacement différent.</string>
|
||||
<string name="upload_problem_fbmd">Veuillez ne téléverser que des images que vous avez prises vous-même. Ne téléversez pas d\'images prises sur les comptes Facebook d\'autres personnes.</string>
|
||||
<string name="upload_problem_do_you_continue">Voulez-vous tout de même téléverser cette image ?</string>
|
||||
<string name="internet_downloaded">Veuillez ne téléverser que des images que vous avez prises vous-même. Ne téléversez pas d’images que vous avez récupérées depuis Internet</string>
|
||||
<string name="upload_problem_fbmd">Veuillez ne téléverser que des images que vous avez prises vous-même. Ne téléversez aucune image prise sur les comptes Facebook d’autres personnes.</string>
|
||||
<string name="upload_problem_do_you_continue">Voulez-vous tout de même téléverser cette image ?</string>
|
||||
<string name="internet_downloaded">Veuillez ne téléverser que des images que vous avez prises vous-même. Ne téléversez aucune image que vous avez téléchargée depuis Internet.</string>
|
||||
<string name="give_permission">Accorder le droit</string>
|
||||
<string name="use_external_storage">Utiliser le stockage externe</string>
|
||||
<string name="use_external_storage_summary">Enregistrer les images prises avec l’appareil photo de votre appareil</string>
|
||||
<string name="login_to_your_account">Connectez-vous à votre compte</string>
|
||||
<string name="send_log_file">Envoyer le journal</string>
|
||||
<string name="send_log_file_description">Envoyer par courriel le journal aux développeurs pour aider à la correction des problèmes de l\'application. Note: les journaux peuvent potentiellement comporter des informations d\'identification</string>
|
||||
<string name="no_web_browser">Pas d\'afficheur web trouvé pour ouvrir l\'URL</string>
|
||||
<string name="null_url">Erreur! URL non trouvée</string>
|
||||
<string name="send_log_file_description">Envoyer par courriel le journal aux développeurs pour aider à la correction des problèmes de l’application. Note : les journaux peuvent potentiellement comporter des informations d’identification</string>
|
||||
<string name="no_web_browser">Aucun afficheur web trouvé pour ouvrir l’URL</string>
|
||||
<string name="null_url">Erreur ! URL non trouvée</string>
|
||||
<string name="nominate_deletion">Proposer pour suppression</string>
|
||||
<string name="nominated_for_deletion">Cette image a été citée pour suppression.</string>
|
||||
<string name="nominated_see_more"/>
|
||||
<string name="nominated_see_more"><u>Voir la page web pour les détails</u></string>
|
||||
<string name="nominating_file_for_deletion">Candidater %1$s pour la suppression.</string>
|
||||
<string name="nominating_for_deletion_status">Nommer un fichier pour la suppression: %1$s</string>
|
||||
<string name="nominating_for_deletion_status">Candidate un fichier pour la suppression : %1$s</string>
|
||||
<string name="view_browser">Afficher dans le navigateur</string>
|
||||
<string name="skip_login">Plus tard</string>
|
||||
<string name="skip_login">Passer</string>
|
||||
<string name="navigation_item_login">Se connecter</string>
|
||||
<string name="skip_login_title">Voulez-vous vraiment ne pas vous connecter ?</string>
|
||||
<string name="skip_login_message">Vous aurez à vous connecter à l\'avenir pour téléverser des images.</string>
|
||||
<string name="skip_login_title">Voulez-vous vraiment ne pas vous connecter ?</string>
|
||||
<string name="skip_login_message">Vous aurez à vous connecter à l’avenir pour téléverser des images.</string>
|
||||
<string name="login_alert_message">Veuillez vous connecter pour utiliser cette fonctionnalité</string>
|
||||
<string name="copy_wikicode">Copier le texte wiki dans le presse-papiers</string>
|
||||
<string name="wikicode_copied">Texte wiki copié dans le presse-papiers</string>
|
||||
<string name="nearby_location_has_not_changed">L\'emplacement n\'a pas changé.</string>
|
||||
<string name="nearby_location_has_not_changed">L’emplacement n’a pas changé.</string>
|
||||
<string name="nearby_location_not_available">Emplacement non disponible.</string>
|
||||
<string name="location_permission_rationale_nearby">Une permission est requise pour afficher une liste de lieux relatifs</string>
|
||||
<string name="location_permission_rationale_nearby">Une permission est requise pour afficher une liste de lieux à proximité</string>
|
||||
<string name="get_directions">Obtenir les directions</string>
|
||||
<string name="read_article">Lire l’article</string>
|
||||
<string name="notifications_welcome">Bienvenue sur Wikimedia Commons, %1$s! Nous sommes heureux que vous soyez venu.</string>
|
||||
<string name="notifications_welcome">Bienvenue, %1$s, sur Wikimedia Commons ! Nous sommes heureux que vous soyez venu.</string>
|
||||
<string name="notifications_talk_page_message">%1$s a laissé un message sur votre page de discussion</string>
|
||||
<string name="notifications_thank_you_edit">Merci de faire une modification</string>
|
||||
<string name="notifications_thank_you_edit">Merci pour votre modification</string>
|
||||
<string name="notifications_mention">%1$s vous a mentionné sur %2$s.</string>
|
||||
<string name="toggle_view_button">Basculer l’affichage</string>
|
||||
<string name="nearby_directions">Directions</string>
|
||||
<string name="nearby_wikidata">Wikidata</string>
|
||||
<string name="nearby_wikipedia">Wikipédia</string>
|
||||
<string name="nearby_commons">Commons</string>
|
||||
<string name="about_rate_us"><u>Votre appréciation</u></string>
|
||||
<string name="about_rate_us"><u>Évaluez-nous</u></string>
|
||||
<string name="about_faq"><u>FAQ</u></string>
|
||||
<string name="welcome_skip_button">Sauter le tutoriel</string>
|
||||
<string name="no_internet">Internet indisponible</string>
|
||||
<string name="internet_established">Internet disponible</string>
|
||||
<string name="error_notifications">Erreur sur recherche des notifications</string>
|
||||
<string name="error_review">Erreur durant l\'accès à l\'image pour relecture. Cliquer sur rafraîchir pour recommencer.</string>
|
||||
<string name="error_review_categories">Erreur de récupération des catégories d’image pour relecture. Veuillez rafraîchir pour réessayer.</string>
|
||||
<string name="no_notifications">Pas de notification trouvée</string>
|
||||
<string name="error_notifications">Erreur lors de la récupération des notifications</string>
|
||||
<string name="error_review">Erreur durant l’accès à l’image pour relecture. Cliquer sur rafraîchir pour recommencer.</string>
|
||||
<string name="error_review_categories">Erreur lors de la récupération des catégories d’image pour relecture. Veuillez rafraîchir pour réessayer.</string>
|
||||
<string name="no_notifications">Aucune notification trouvée</string>
|
||||
<string name="about_translate"><u>Traduire</u></string>
|
||||
<string name="about_translate_title">Langues</string>
|
||||
<string name="about_translate_message">Sélectionner la langue pour laquelle vous voulez soumettre des traductions</string>
|
||||
|
|
@ -323,34 +323,34 @@
|
|||
<string name="about_translate_cancel">Annuler</string>
|
||||
<string name="retry">Réessayer</string>
|
||||
<string name="showcase_view_got_it_button">C’est bon !</string>
|
||||
<string name="showcase_view_whole_nearby_activity">Ce sont les lieux autour de vous qui ont besoin d\'images pour illustrer leurs articles Wikipédia.\n\nEn cliquant sur \'CHERCHER DANS CETTE ZONE\' vous bloquez la carte et lancez une recherche de proximité autour de ce lieu.</string>
|
||||
<string name="showcase_view_list_icon">En cliquant sur ce bouton vous afficherez une liste de ces endroits</string>
|
||||
<string name="showcase_view_plus_fab">Vous pouvez téléverser une photo de n\'importe quel endroit de votre gallerie ou de votre appareil photo</string>
|
||||
<string name="no_images_found">Aucune images trouvée.</string>
|
||||
<string name="error_loading_images">Une erreur s\'est produite pendant le chargement des images.</string>
|
||||
<string name="image_uploaded_by">Téléversé par : %1$s</string>
|
||||
<string name="showcase_view_whole_nearby_activity">Ce sont les lieux autour de vous qui ont besoin d’images pour illustrer leurs articles sur Wikipédia.\n\nEn cliquant sur « CHERCHER DANS CETTE ZONE » vous verrouillez la carte et lancez une recherche à proximité de ce lieu.</string>
|
||||
<string name="showcase_view_list_icon">En cliquant sur ce bouton vous afficherez une liste de ces lieux</string>
|
||||
<string name="showcase_view_plus_fab">Vous pouvez téléverser une photo de n’importe quel lieu depuis votre galerie ou votre appareil photo</string>
|
||||
<string name="no_images_found">Aucune image trouvée !</string>
|
||||
<string name="error_loading_images">Une erreur s’est produite durant le chargement des images.</string>
|
||||
<string name="image_uploaded_by">Téléversé par : %1$s</string>
|
||||
<string name="block_notification_title">Bloqué{{GENDER:||e}}</string>
|
||||
<string name="block_notification">Vous avez été bloqué et ne pouvez plus modifier sur Commons</string>
|
||||
<string name="appwidget_img">Image du jour</string>
|
||||
<string name="app_widget_heading">Image du jour</string>
|
||||
<string name="menu_search_button">Chercher</string>
|
||||
<string name="search_commons">Chercher dans Commons</string>
|
||||
<string name="images_not_found">Aucune image trouvée concernant %1$s</string>
|
||||
<string name="title_activity_search">Chercher</string>
|
||||
<string name="search_recent_header">Dernières recherches :</string>
|
||||
<string name="provider_searches">Dernières requêtes de recherche</string>
|
||||
<string name="search_commons">Rechercher dans Commons</string>
|
||||
<string name="images_not_found">Aucune image trouvée correspondant à %1$s</string>
|
||||
<string name="title_activity_search">Rechercher</string>
|
||||
<string name="search_recent_header">Recherches récentes :</string>
|
||||
<string name="provider_searches">Requêtes de recherches récentes</string>
|
||||
<string name="error_loading_categories">Erreur durant le chargement des catégories.</string>
|
||||
<string name="error_loading_subcategories">Erreur durant le chargement des sous-catégories.</string>
|
||||
<string name="search_tab_title_media">Média</string>
|
||||
<string name="search_tab_title_categories">Catégories</string>
|
||||
<string name="explore_tab_title_featured">Mis en avant</string>
|
||||
<string name="explore_tab_title_featured">Remarquable</string>
|
||||
<string name="explore_tab_title_mobile">Téléversé via mobile</string>
|
||||
<string name="successful_wikidata_edit">Image bien ajoutée à %1$s sur Wikidata !</string>
|
||||
<string name="wikidata_edit_failure">Échec de la mise à jour de l\'entité Wikidata correspondante !</string>
|
||||
<string name="menu_set_wallpaper">Définir comme fond d\'écran</string>
|
||||
<string name="wallpaper_set_successfully">Papier-peint configuré avec succès!</string>
|
||||
<string name="wikidata_edit_failure">Échec de la mise à jour de l’entité Wikidata correspondante !</string>
|
||||
<string name="menu_set_wallpaper">Définir comme fond d’écran</string>
|
||||
<string name="wallpaper_set_successfully">Papier-peint configuré avec succès !</string>
|
||||
<string name="quiz">Quiz</string>
|
||||
<string name="quiz_question_string">Est-ce que cette photo est prête pour être téléversée ?</string>
|
||||
<string name="quiz_question_string">Est-ce que cette photo est prête pour être téléversée ?</string>
|
||||
<string name="question">Question</string>
|
||||
<string name="result">Résultat</string>
|
||||
<string name="quiz_back_button">Si vous continuez à téléverser des images qui nécessitent d\'être supprimées, votre compte pourra être bloqué. Etes-vous certain de vouloir terminer le questionnaire ?</string>
|
||||
|
|
@ -571,5 +571,10 @@
|
|||
<string name="text_copy">Texte copié dans le presse-papier</string>
|
||||
<string name="notification_mark_read">Notification marquée comme lue</string>
|
||||
<string name="some_error">Il y a eu une erreur !</string>
|
||||
<string name="place_state">État du lieu :</string>
|
||||
<string name="place_state_exists">Existe</string>
|
||||
<string name="place_state_needs_photo">Photo manquante</string>
|
||||
<string name="place_type">Type de lieu :</string>
|
||||
<string name="nearby_search_hint">Pont, musée, hôtel, etc.</string>
|
||||
<string name="you_must_reset_your_passsword">Quelque chose s’est mal passé lors de la connexion, vous devez réinitialiser votre mot de passe !!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -269,17 +269,17 @@
|
|||
<string name="nearby_location_has_not_changed">Staðsetning hefur ekki breyst.</string>
|
||||
<string name="nearby_location_not_available">Staðsetning ekki tiltæk.</string>
|
||||
<string name="location_permission_rationale_nearby">Heimild þarf til að birta lista yfir staði í nágrenninu</string>
|
||||
<string name="get_directions" fuzzy="true">FÁ LEIÐSÖGN</string>
|
||||
<string name="read_article" fuzzy="true">LESA GREIN</string>
|
||||
<string name="get_directions">Fá leiðsögn</string>
|
||||
<string name="read_article">Lesa grein</string>
|
||||
<string name="notifications_welcome">Velkomin á Wikimedia Commons, %1$s! Við erum ánægð með að þú skulir vera hérna.</string>
|
||||
<string name="notifications_talk_page_message">%1$s skildi eftir skilaboð á spjallsíðunni þinni</string>
|
||||
<string name="notifications_thank_you_edit">Takk fyrir að hafa gert breytingar</string>
|
||||
<string name="notifications_mention">%1$s minntist á þig á %2$s.</string>
|
||||
<string name="toggle_view_button">Víxla sýn</string>
|
||||
<string name="nearby_directions" fuzzy="true">STEFNUR</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">Leiðir</string>
|
||||
<string name="nearby_wikidata">Wikidata</string>
|
||||
<string name="nearby_wikipedia">Wikipedia</string>
|
||||
<string name="nearby_commons">Commons</string>
|
||||
<string name="about_rate_us"><u>Gefðu okkur einkunn</u></string>
|
||||
<string name="about_faq"><u>Algengar spurningar</u></string>
|
||||
<string name="welcome_skip_button">Sleppa kennslu</string>
|
||||
|
|
@ -300,6 +300,7 @@
|
|||
<string name="no_images_found">Engir myndir fundust!</string>
|
||||
<string name="error_loading_images">Villa kom upp við að hlaða inn myndum.</string>
|
||||
<string name="image_uploaded_by">Sent inn af: %1$s</string>
|
||||
<string name="block_notification_title">Bannað</string>
|
||||
<string name="block_notification">Þú ert útilokaður frá breytingum á Commons</string>
|
||||
<string name="appwidget_img">Mynd dagsins</string>
|
||||
<string name="app_widget_heading">Mynd dagsins</string>
|
||||
|
|
@ -311,11 +312,11 @@
|
|||
<string name="provider_searches">Nýlegar leitarbeiðnir</string>
|
||||
<string name="error_loading_categories">Villa kom upp við að hlaða inn flokkum.</string>
|
||||
<string name="error_loading_subcategories">Villa kom upp við að hlaða inn undirflokkum.</string>
|
||||
<string name="search_tab_title_media" fuzzy="true">MIÐILL</string>
|
||||
<string name="search_tab_title_categories" fuzzy="true">FLOKKAR</string>
|
||||
<string name="search_tab_title_media">Margmiðlun</string>
|
||||
<string name="search_tab_title_categories">Flokkar</string>
|
||||
<string name="explore_tab_title_featured" fuzzy="true">ÚRVAL</string>
|
||||
<string name="explore_tab_title_mobile" fuzzy="true">SENT INN ÚR SNJALLTÆKI</string>
|
||||
<string name="successful_wikidata_edit" fuzzy="true">Tókst að hlaða mynd inn í %1$s á Wikidata!</string>
|
||||
<string name="explore_tab_title_mobile">Sent inn úr snjalltæki</string>
|
||||
<string name="successful_wikidata_edit">Mynd bætt inn í %1$s á Wikidata!</string>
|
||||
<string name="wikidata_edit_failure">Mistókst að uppfæra samsvarandi Wikidata-einindi!</string>
|
||||
<string name="menu_set_wallpaper">Setja sem bakgrunnsmynd</string>
|
||||
<string name="wallpaper_set_successfully">Tókst að stilla bakgrunnsmynd!</string>
|
||||
|
|
@ -348,13 +349,13 @@
|
|||
<string name="delete_search_dialog">Viltu eyða þessari leit?</string>
|
||||
<string name="search_history_deleted">Leitarferli eytt</string>
|
||||
<string name="nominate_delete">Tilnefna til eyðingar</string>
|
||||
<string name="delete" fuzzy="true">EYÐA</string>
|
||||
<string name="delete">Eyða</string>
|
||||
<string name="Achievements">Frammistaða</string>
|
||||
<string name="statistics" fuzzy="true">TÖLFRÆÐI</string>
|
||||
<string name="statistics">Tölfræði</string>
|
||||
<string name="statistics_thanks">Mótteknar þakkir</string>
|
||||
<string name="statistics_featured">Áberandi myndir</string>
|
||||
<string name="statistics_wikidata_edits">Myndir gegnum \"Nálægir staðir\"</string>
|
||||
<string name="level" fuzzy="true">STIG</string>
|
||||
<string name="level">Stig</string>
|
||||
<string name="images_uploaded">Myndir sendar inn</string>
|
||||
<string name="image_reverts">Myndir ekki hafnað</string>
|
||||
<string name="images_used_by_wiki">Myndir notaðar</string>
|
||||
|
|
@ -437,14 +438,14 @@
|
|||
<string name="review_category">Er þetta rétt flokkað?</string>
|
||||
<string name="review_spam">Kemur þetta umfjöllunarefninu við?</string>
|
||||
<string name="review_c_violation_report_question">Það brýtur á móti höfundarrétti því það er</string>
|
||||
<string name="review_category_yes_button_text" fuzzy="true">NEI, RANGT FLOKKAÐ</string>
|
||||
<string name="review_category_no_button_text" fuzzy="true">LÍTUR VEL ÚT</string>
|
||||
<string name="review_spam_yes_button_text" fuzzy="true">NEI, KEMUR EFNINU EKKI VIÐ</string>
|
||||
<string name="review_spam_no_button_text" fuzzy="true">LÍTUR VEL ÚT</string>
|
||||
<string name="review_copyright_yes_button_text" fuzzy="true">NEI, HÖFUNDARRÉTTARBROT</string>
|
||||
<string name="review_copyright_no_button_text" fuzzy="true">LÍTUR VEL ÚT</string>
|
||||
<string name="review_thanks_yes_button_text" fuzzy="true">JÁ, ÞVÍ EKKI</string>
|
||||
<string name="review_thanks_no_button_text" fuzzy="true">NÆSTA MYND</string>
|
||||
<string name="review_category_yes_button_text">Nei, rangt flokkað</string>
|
||||
<string name="review_category_no_button_text">Lítur vel út</string>
|
||||
<string name="review_spam_yes_button_text">Nei, kemur efninu ekki við</string>
|
||||
<string name="review_spam_no_button_text">Lítur vel út</string>
|
||||
<string name="review_copyright_yes_button_text">Nei, höfundarréttarbrot</string>
|
||||
<string name="review_copyright_no_button_text">Lítur vel út</string>
|
||||
<string name="review_thanks_yes_button_text">Já, því ekki</string>
|
||||
<string name="review_thanks_no_button_text">Næsta mynd</string>
|
||||
<string name="no_image">Enagar myndir notaðar</string>
|
||||
<string name="no_image_reverted">Engar myndir endurstilltar</string>
|
||||
<string name="no_image_uploaded">Engar myndir sendar inn</string>
|
||||
|
|
@ -454,7 +455,7 @@
|
|||
<string name="error_occurred_in_picking_images">Villa kom upp við að velja myndir</string>
|
||||
<string name="image_chooser_title">Veldu myndir til að senda inn</string>
|
||||
<string name="please_wait">Bíddu aðeins…</string>
|
||||
<string name="skip_image" fuzzy="true">SLEPPA ÞESSARI MYND</string>
|
||||
<string name="skip_image">Sleppa þessari mynd</string>
|
||||
<string name="manage_exif_tags">Sýsla með EXIF-merki</string>
|
||||
<string name="exif_tag_name_author">Höfundur</string>
|
||||
<string name="exif_tag_name_copyright">Höfundarréttur</string>
|
||||
|
|
@ -464,4 +465,16 @@
|
|||
<string name="exif_tag_name_serialNumbers">Raðnúmer</string>
|
||||
<string name="exif_tag_name_software">Hugbúnaður</string>
|
||||
<string name="image_info">Upplýsingar í mynd</string>
|
||||
<string name="no_categories_found">Engir flokkar fundust</string>
|
||||
<string name="upload_cancelled">Hætt við innsendingu</string>
|
||||
<string name="review_is_uploaded_by">%1$s er sent inn af: %2$s</string>
|
||||
<string name="delete_helper_show_deletion_title_success">Tókst</string>
|
||||
<string name="delete_helper_show_deletion_title_failed">Mistókst</string>
|
||||
<string name="delete_helper_ask_spam_selfie">Sjálfsmynd</string>
|
||||
<string name="delete_helper_ask_spam_blurry">Móskuleg</string>
|
||||
<string name="delete_helper_ask_spam_nonsense">Vitleysa</string>
|
||||
<string name="delete_helper_ask_spam_other">Annað</string>
|
||||
<string name="delete_helper_ask_reason_copyright_logo">Táknmynd</string>
|
||||
<string name="delete_helper_ask_alert_set_positive_button_reason">Vegna þess að hún er</string>
|
||||
<string name="share_image_via">Deila mynd með</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -482,4 +482,5 @@
|
|||
<string name="text_copy">텍스트가 클립보드에 복사되었습니다</string>
|
||||
<string name="notification_mark_read">알림을 읽은 것으로 표시</string>
|
||||
<string name="some_error">오류가 있었습니다!</string>
|
||||
<string name="place_state_needs_photo">사진 필요</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -549,5 +549,10 @@
|
|||
<string name="text_copy">Текстот е ставен во меѓускладот</string>
|
||||
<string name="notification_mark_read">Известувањето е означено како прочитано</string>
|
||||
<string name="some_error">Се појави грешка!</string>
|
||||
<string name="place_state">Состојба на местото:</string>
|
||||
<string name="place_state_exists">Постои</string>
|
||||
<string name="place_state_needs_photo">Му треба слика</string>
|
||||
<string name="place_type">Вид на место:</string>
|
||||
<string name="nearby_search_hint">Мост, музеј, хотел и тн.</string>
|
||||
<string name="you_must_reset_your_passsword">Нешто не е во ред со најавата. Ќе мора да ставите нова лозинка!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -186,4 +186,9 @@
|
|||
<string name="about_translate_cancel">റദ്ദാക്കുക</string>
|
||||
<string name="retry">വീണ്ടും ശ്രമിക്കുക</string>
|
||||
<string name="ends_on">അവസാനിക്കുന്നത്:</string>
|
||||
<string name="place_state">സ്ഥലത്തിന്റെ സ്ഥിതി:</string>
|
||||
<string name="place_state_exists">നിലവിലുണ്ട്</string>
|
||||
<string name="place_state_needs_photo">ചിത്രം വേണം</string>
|
||||
<string name="place_type">സ്ഥലത്തിന്റെ തരം:</string>
|
||||
<string name="nearby_search_hint">പാലം, മ്യൂസിയം, ഹോട്ടൽ തുടങ്ങിയവ</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -548,5 +548,10 @@
|
|||
<string name="text_copy">Test copià an sla taulëtta</string>
|
||||
<string name="notification_mark_read">Notìfica marcà coma lesùa</string>
|
||||
<string name="some_error">A-i é staje n\'eror!</string>
|
||||
<string name="place_state">Stat dël pòst:</string>
|
||||
<string name="place_state_exists">A esist</string>
|
||||
<string name="place_state_needs_photo">A l\'ha damanca ëd na fòto</string>
|
||||
<string name="place_type">Sòrt ëd pòst:</string>
|
||||
<string name="nearby_search_hint">Pont, musé, obergi e via fòrt</string>
|
||||
<string name="you_must_reset_your_passsword">Cheicòs a l\'é andàit mal con la conession, a dev torna inissialisé soa ciav!!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -562,5 +562,10 @@
|
|||
<string name="text_copy">Texto copiado para a área de transferência</string>
|
||||
<string name="notification_mark_read">Notificação marcada como lida</string>
|
||||
<string name="some_error">Ocorreu algum erro!</string>
|
||||
<string name="place_state">Estado do local:</string>
|
||||
<string name="place_state_exists">Existe</string>
|
||||
<string name="place_state_needs_photo">Precisa de foto</string>
|
||||
<string name="place_type">Tipo de local:</string>
|
||||
<string name="nearby_search_hint">Ponte, museu, hotel etc.</string>
|
||||
<string name="you_must_reset_your_passsword">Algo deu errado com a entrada, você deve redefinir sua senha!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -554,5 +554,10 @@
|
|||
<string name="text_copy">Texten kopierades till urklipp</string>
|
||||
<string name="notification_mark_read">Avisering markerades som läst</string>
|
||||
<string name="some_error">Ett fel uppstod!</string>
|
||||
<string name="place_state">Platsstatus:</string>
|
||||
<string name="place_state_exists">Finns</string>
|
||||
<string name="place_state_needs_photo">Behöver foto</string>
|
||||
<string name="place_type">Platstyp:</string>
|
||||
<string name="nearby_search_hint">Bro, museum, hotell, etc.</string>
|
||||
<string name="you_must_reset_your_passsword">Någonting gick fel med inloggningen, du måste återställa ditt lösenord!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -566,5 +566,10 @@
|
|||
<string name="text_copy">Metin panoya kopyalandı</string>
|
||||
<string name="notification_mark_read">Bildirim okundu olarak işaretlendi</string>
|
||||
<string name="some_error">Bazı hatalar oldu!</string>
|
||||
<string name="place_state">Yer durumu:</string>
|
||||
<string name="place_state_exists">Var</string>
|
||||
<string name="place_state_needs_photo">Fotoğrafa İhtiyaç Var</string>
|
||||
<string name="place_type">Yer türü:</string>
|
||||
<string name="nearby_search_hint">Köprü, müze, otel vb.</string>
|
||||
<string name="you_must_reset_your_passsword">Giriş yaparken bir şeyler ters gitti, şifrenizi sıfırlamalısınız !!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -568,5 +568,10 @@
|
|||
<string name="text_copy">Текст скопійовано до буферу обміну</string>
|
||||
<string name="notification_mark_read">Сповіщення позначено прочитаним</string>
|
||||
<string name="some_error">Тут якась проблемка виникла :-(</string>
|
||||
<string name="place_state">Стан місця:</string>
|
||||
<string name="place_state_exists">Існує</string>
|
||||
<string name="place_state_needs_photo">Треба фото</string>
|
||||
<string name="place_type">Тип місця:</string>
|
||||
<string name="nearby_search_hint">Міст, музей, готель тощо</string>
|
||||
<string name="you_must_reset_your_passsword">Щось пішло не так із процесом входу, ви маєте скинути пароль !</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -558,5 +558,10 @@
|
|||
<string name="text_copy">文字已複製至剪貼簿</string>
|
||||
<string name="notification_mark_read">通知標記為已讀</string>
|
||||
<string name="some_error">發生一些錯誤!</string>
|
||||
<string name="place_state">地點狀態:</string>
|
||||
<string name="place_state_exists">存在</string>
|
||||
<string name="place_state_needs_photo">需要照片</string>
|
||||
<string name="place_type">地點類型:</string>
|
||||
<string name="nearby_search_hint">橋梁、美術館、旅館、其它。</string>
|
||||
<string name="you_must_reset_your_passsword">登入時發生一些問題,您必須重新設定您的密碼!!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
package fr.free.nrw.commons.campaigns
|
||||
|
||||
import com.nhaarman.mockito_kotlin.verify
|
||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
|
||||
import io.reactivex.Single
|
||||
import io.reactivex.schedulers.TestScheduler
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.MockitoAnnotations
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class CampaignsPresenterTest {
|
||||
@Mock
|
||||
var okHttpJsonApiClient: OkHttpJsonApiClient? = null
|
||||
|
||||
lateinit var campaignsPresenter: CampaignsPresenter
|
||||
|
||||
@Mock
|
||||
internal var view: ICampaignsView? = null
|
||||
|
||||
@Mock
|
||||
internal var campaignResponseDTO: CampaignResponseDTO? = null
|
||||
lateinit var campaignsSingle: Single<CampaignResponseDTO>
|
||||
|
||||
@Mock
|
||||
var campaign: Campaign? = null
|
||||
|
||||
lateinit var testScheduler: TestScheduler
|
||||
|
||||
/**
|
||||
* initial setup, test environment
|
||||
*/
|
||||
@Before
|
||||
@Throws(Exception::class)
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
testScheduler=TestScheduler()
|
||||
campaignsSingle= Single.just(campaignResponseDTO)
|
||||
campaignsPresenter= CampaignsPresenter(okHttpJsonApiClient,testScheduler,testScheduler)
|
||||
campaignsPresenter?.onAttachView(view)
|
||||
Mockito.`when`(okHttpJsonApiClient?.campaigns).thenReturn(campaignsSingle)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getCampaignsTestNoCampaigns() {
|
||||
campaignsPresenter.getCampaigns()
|
||||
verify(okHttpJsonApiClient)?.campaigns
|
||||
testScheduler.triggerActions()
|
||||
verify(view)?.showCampaigns(null)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getCampaignsTestNonEmptyCampaigns() {
|
||||
campaignsPresenter.getCampaigns()
|
||||
var campaigns= ArrayList<Campaign>()
|
||||
campaigns.add(campaign!!)
|
||||
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT)
|
||||
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
|
||||
Mockito.`when`(campaignResponseDTO?.campaigns).thenReturn(campaigns)
|
||||
var calendar = Calendar.getInstance()
|
||||
calendar.add(Calendar.DATE,-1)
|
||||
val startDateString = simpleDateFormat.format(calendar.time).toString()
|
||||
calendar= Calendar.getInstance()
|
||||
calendar.add(Calendar.DATE,3)
|
||||
val endDateString= simpleDateFormat.format(calendar.time).toString()
|
||||
Mockito.`when`(campaign?.endDate).thenReturn(endDateString)
|
||||
Mockito.`when`(campaign?.startDate).thenReturn(startDateString)
|
||||
Mockito.`when`(campaignResponseDTO?.campaigns).thenReturn(campaigns)
|
||||
verify(okHttpJsonApiClient)?.campaigns
|
||||
testScheduler.triggerActions()
|
||||
verify(view)?.showCampaigns(campaign)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue