Merge branch 'main' into fix/nearby-card-on-profile-activity

This commit is contained in:
Rohit Verma 2025-06-12 10:06:31 +05:30 committed by GitHub
commit 3d28c09756
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 132 additions and 38 deletions

View file

@ -1,5 +1,13 @@
# Wikimedia Commons for Android
## v5.4.1
### What's changed
* Custom picker now detects images that are already available on Commons
* Improve credit line in image list
* Show place cards with loaded names only in the Nearby list
* Fix the error that occurs while loading images in Explore
## v5.3.0
### What's changed

View file

@ -24,8 +24,8 @@ android {
applicationId = "fr.free.nrw.commons"
minSdk = 21
targetSdk = 34
versionCode = 1043
versionName = "5.1.2"
versionCode = 1052
versionName = "5.4.1"
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@ -442,4 +442,4 @@ fun getBranchName(): String? {
} catch (e: Exception) {
null
}
}
}

View file

@ -253,13 +253,14 @@ class ContributionController @Inject constructor(@param:Named("default_preferenc
*/
fun initiateCustomGalleryPickWithPermission(
activity: Activity,
resultLauncher: ActivityResultLauncher<Intent>
resultLauncher: ActivityResultLauncher<Intent>,
singleSelection: Boolean = false
) {
setPickerConfiguration(activity, true)
checkPermissionsAndPerformAction(
activity,
{ openCustomSelector(activity, resultLauncher, 0) },
{ FilePicker.openCustomSelector(activity, resultLauncher, 0, singleSelection) },
R.string.storage_permission_title,
R.string.write_storage_permission_rationale,
*PERMISSIONS_STORAGE

View file

@ -327,12 +327,17 @@ class ImageAdapter(
// Getting clicked index from all images index when show_already_actioned_images
// switch is on
if (singleSelection) {
// If single selection mode, clear previous selection and select only the new one
if (selectedImages.isNotEmpty() && (selectedImages[0] != images[position])) {
val prevIndex = images.indexOf(selectedImages[0])
selectedImages.clear()
notifyItemChanged(prevIndex, ImageUnselected())
}
}
val clickedIndex: Int =
if (showAlreadyActionedImages) {
ImageHelper.getIndex(selectedImages, images[position])
// Getting clicked index from actionable images when show_already_actioned_images
// switch is off
} else {
ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position])
}
@ -618,4 +623,13 @@ class ImageAdapter(
* Returns the text for showing inside the bubble during bubble scroll.
*/
override fun getSectionName(position: Int): String = images[position].date
private var singleSelection: Boolean = false
/**
* Set single selection mode
*/
fun setSingleSelection(single: Boolean) {
singleSelection = single
}
}

View file

@ -104,7 +104,7 @@ class CustomSelectorActivity :
/**
* Maximum number of images that can be selected.
*/
private val uploadLimit: Int = 20
private var uploadLimit: Int = 20
/**
* Flag that is marked true when the amount
@ -207,6 +207,9 @@ class CustomSelectorActivity :
CustomSelectorViewModel::class.java,
)
// Check for single selection extra
uploadLimit = if (intent.getBooleanExtra(EXTRA_SINGLE_SELECTION, false)) 1 else 20
setupViews()
if (prefs.getBoolean("customSelectorFirstLaunch", true)) {
@ -728,6 +731,7 @@ class CustomSelectorActivity :
const val FOLDER_ID: String = "FolderId"
const val FOLDER_NAME: String = "FolderName"
const val ITEM_ID: String = "ItemId"
const val EXTRA_SINGLE_SELECTION: String = "EXTRA_SINGLE_SELECTION"
}
}

View file

@ -212,6 +212,9 @@ class ImageFragment :
_binding = FragmentCustomSelectorBinding.inflate(inflater, container, false)
imageAdapter =
ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!)
// Set single selection mode if needed
val singleSelection = (activity as? CustomSelectorActivity)?.intent?.getBooleanExtra(CustomSelectorActivity.EXTRA_SINGLE_SELECTION, false) == true
imageAdapter.setSingleSelection(singleSelection)
gridLayoutManager = GridLayoutManager(context, getSpanCount())
with(binding?.selectorRv) {
this?.layoutManager = gridLayoutManager

View file

@ -30,7 +30,7 @@ import fr.free.nrw.commons.upload.depicts.DepictsDao
*/
@Database(
entities = [Contribution::class, Depicts::class, UploadedStatus::class, NotForUploadStatus::class, ReviewEntity::class, Place::class, BookmarksCategoryModal::class, BookmarksLocations::class],
version = 20,
version = 21,
exportSchema = false,
)
@TypeConverters(Converters::class)

View file

@ -25,6 +25,9 @@ object FilePicker : Constants {
private const val KEY_LAST_CAMERA_VIDEO = "last_video"
private const val KEY_TYPE = "type"
// Add extra for single selection
private const val EXTRA_SINGLE_SELECTION = "EXTRA_SINGLE_SELECTION"
/**
* Returns the uri of the clicked image so that it can be put in MediaStore
*/
@ -73,12 +76,17 @@ object FilePicker : Constants {
* CreateCustomSectorIntent, creates intent for custom selector activity.
* @param context
* @param type
* @param singleSelection If true, restricts to single image selection
* @return Custom selector intent
*/
@JvmStatic
private fun createCustomSelectorIntent(context: Context, type: Int): Intent {
private fun createCustomSelectorIntent(context: Context, type: Int, singleSelection: Boolean = false): Intent {
storeType(context, type)
return Intent(context, CustomSelectorActivity::class.java)
val intent = Intent(context, CustomSelectorActivity::class.java)
if (singleSelection) {
intent.putExtra(EXTRA_SINGLE_SELECTION, true)
}
return intent
}
@JvmStatic
@ -153,9 +161,10 @@ object FilePicker : Constants {
fun openCustomSelector(
activity: Activity,
resultLauncher: ActivityResultLauncher<Intent>,
type: Int
type: Int,
singleSelection: Boolean = false
) {
val intent = createCustomSelectorIntent(activity, type)
val intent = createCustomSelectorIntent(activity, type, singleSelection)
resultLauncher.launch(intent)
}

View file

@ -974,7 +974,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
} else if (bottomSheetDetailsBehavior!!.state
== BottomSheetBehavior.STATE_EXPANDED
) {
bottomSheetDetailsBehavior!!.state = BottomSheetBehavior.STATE_COLLAPSED
bottomSheetDetailsBehavior!!.setState(BottomSheetBehavior.STATE_COLLAPSED)
}
}
@ -2457,9 +2457,11 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
Timber.d("Gallery button tapped. Place: %s", selectedPlace.toString())
storeSharedPrefs(selectedPlace!!)
activity?.let {
// Pass singleSelection = true for Nearby flow
controller!!.initiateCustomGalleryPickWithPermission(
it,
customSelectorLauncherForResult
customSelectorLauncherForResult,
singleSelection = true
)
}
}

View file

@ -351,6 +351,7 @@ class NearbyParentFragmentPresenter
pic = repoPlace.pic ?: ""
exists = repoPlace.exists ?: true
longDescription = repoPlace.longDescription ?: ""
language = repoPlace.language
}
} else {
indicesToUpdate.add(i)

View file

@ -256,7 +256,7 @@
<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_nearby">Κοντινά</string>
<string name="navigation_item_about">Σχετικά</string>
<string name="navigation_item_settings">Ρυθμίσεις</string>
<string name="navigation_item_feedback">Ανατροφοδότηση</string>
@ -803,6 +803,7 @@
<string name="talk">Συζήτηση</string>
<string name="write_something_about_the_item">Γράψτε κάτι για το αντικείμενο \'%1$s\'. Θα είναι δημόσια ορατό.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">Το \'%1$s\' δεν υφίσταται πλέον, καμία φωτογραφία δεν μπορεί να εξαχθεί.</string>
<string name="is_at_a_different_place_wikidata">Το \'%1$s\' βρίσκεται σε διαφορετικό μέρος.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">Το \'%1$s\' βρίσκεται σε διαφορετική θέση. Παρακαλούμε προσδιορίστε τη σωστή θέση παρακαλώ, και αν είναι εφικτό, γράψτε το σωστό γεωγραφικό πλάτος και μήκος.</string>
<string name="other_problem_or_information_please_explain_below">Άλλο πρόβλημα ή πληροφορίες (παρακαλούμε εξηγήστε παρακάτω).</string>
<string name="feedback_destination_note">Τα σχόλιά σας δημοσιεύονται στην ακόλουθη σελίδα wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Εφαρμογή για κινητά/Σχόλια&lt;/a&gt;</string>
@ -828,4 +829,9 @@
<string name="account">Λογαριασμός</string>
<string name="caption">Λεζάντα</string>
<string name="caption_copied_to_clipboard">Η λεζάντα αντιγράφηκε στο πρόχειρο</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Συγχαρητήρια, όλες οι φωτογραφίες σε αυτό το άλμπουμ έχουν είτε μεταφορτωθεί είτε επισημανθεί για μη μεταφόρτωση.</string>
<string name="show_in_explore">Εμφάνιση στην Εξερεύνηση</string>
<string name="show_in_nearby">Εμφάνιση στα Κοντινά</string>
<string name="image_tag_line_created_and_uploaded_by">Δημιουργήθηκε και μεταφορτώθηκε από: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Δημιουργήθηκε από %1$s και μεταφορτώθηκε από %2$s</string>
</resources>

View file

@ -108,6 +108,7 @@
<string name="menu_from_camera">फ़ोटो लें</string>
<string name="menu_nearby">आसपास</string>
<string name="provider_contributions">मेरे अपलोड</string>
<string name="menu_copy_link">लिंक कॉपी करें</string>
<string name="menu_share">साझा करें</string>
<string name="share_title_hint" fuzzy="true">शीर्षक (आवश्यक)</string>
<string name="share_description_hint">विवरण</string>
@ -125,7 +126,7 @@
<string name="menu_save_categories">सहेजें</string>
<string name="refresh_button">ताजा करें</string>
<string name="display_list_button">सूची</string>
<string name="contributions_subtitle_zero" fuzzy="true">अभी तक कोई अपलोड नहीं</string>
<string name="contributions_subtitle_zero">(अभी तक कोई अपलोड नहीं)</string>
<string name="categories_not_found">%1$s से कोई श्रेणी मेल नहीं खाती</string>
<string name="categories_skip_explanation">विकिमीडिया कॉमन्स पर अपनी छवियों को अधिक खोजने योग्य बनाने के लिए श्रेणियां जोड़ें|\nश्रेणियां जोड़ने के लिए टाइप करना प्रारंभ करें|</string>
<string name="categories_activity_title">श्रेणियाँ</string>
@ -179,7 +180,7 @@
<string name="welcome_copyright_subtext">इंटरनेट से मिली कोई कॉपीराइट सामग्री के साथ साथ पोस्टर, पुस्तक के खड्डे आदि को भी अपलोड करने से बचें।</string>
<string name="welcome_final_text">क्या आपको लगता है कि आप समझ गए?</string>
<string name="welcome_final_button_text">हाँ!</string>
<string name="welcome_help_button_text" fuzzy="true">&lt;u&gt;अधिक जानकारी&lt;/u&gt;</string>
<string name="welcome_help_button_text">अधिक जानकारी</string>
<string name="detail_panel_cats_label">श्रेणियाँ</string>
<string name="detail_panel_cats_loading">लोड हो रहा है…</string>
<string name="detail_panel_cats_none">कुछ चयनित नहीं</string>
@ -193,7 +194,9 @@
<string name="upload">अपलोड करें</string>
<string name="yes">हाँ</string>
<string name="no">नहीं</string>
<string name="media_detail_caption">कैप्शन</string>
<string name="media_detail_title">शीर्षक</string>
<string name="media_detail_depiction">चित्रण</string>
<string name="media_detail_description">विवरण</string>
<string name="media_detail_discussion">चर्चा</string>
<string name="media_detail_author">लेखक</string>
@ -258,11 +261,11 @@
<string name="wikicode_copied">विकिटेक्सट क्लिपबोर्ड पर कॉपी किया जा चुका है</string>
<string name="nearby_location_not_available">स्थान उपलब्ध नहीं है।</string>
<string name="location_permission_rationale_nearby">आसपास के स्थान दिखाने के लिए अनुमति चाहिए</string>
<string name="nearby_directions" fuzzy="true">दिशा-निर्देश</string>
<string name="nearby_wikidata" fuzzy="true">विकीडाटा</string>
<string name="nearby_wikipedia" fuzzy="true">विकीपीडिया</string>
<string name="nearby_directions">दिशा-निर्देश</string>
<string name="nearby_wikidata">विकीडाटा</string>
<string name="nearby_wikipedia">विकीपीडिया</string>
<string name="nearby_commons">कॉमन्स</string>
<string name="about_rate_us" fuzzy="true">&lt;u&gt;हमें रेट करें&lt;/u&gt;</string>
<string name="about_rate_us">हमें रेट करें</string>
<string name="about_faq">अक्सर पूछे जाने वाले प्रश्न</string>
<string name="welcome_skip_button">प्रशिक्षण छोड़ें</string>
<string name="no_internet">इंटरनेट उपलब्ध नहीं</string>
@ -276,6 +279,7 @@
<string name="no_images_found">कोई चित्र नहीं मिला!</string>
<string name="error_loading_images">चित्र अपलोड करते समय त्रुटि उत्पन्न हुई।</string>
<string name="image_uploaded_by">अपलोड: %1$s</string>
<string name="block_notification_title">अवरोधित</string>
<string name="block_notification">कॉमन्स पर सम्पादन से आप अवरोधित हो चुके हैं</string>
<string name="app_widget_heading">आज का चित्र</string>
<string name="menu_search_button">खोजें</string>
@ -286,6 +290,7 @@
<string name="error_loading_categories">श्रेणी लोड करते समय त्रुटि उत्पन्न हुई।</string>
<string name="search_tab_title_media">मीडिया</string>
<string name="search_tab_title_categories">श्रेणियाँ</string>
<string name="search_tab_title_depictions">आयटम</string>
<string name="explore_tab_title_featured">निर्वाचित</string>
<string name="explore_tab_title_map">नक्शा</string>
<string name="successful_wikidata_edit" fuzzy="true">चित्र सफ़लतापूर्वक विकिडाटा के %1$s पर सफलतापूर्वक जोड़ दिया गया है।</string>
@ -312,10 +317,12 @@
<string name="nominate_delete">हटाने के लिये नामांकन करें</string>
<string name="delete">हटाएँ</string>
<string name="Achievements">उपलब्धियाँ</string>
<string name="Profile">प्रोफ़ाइल</string>
<string name="statistics">सांख्यिकी</string>
<string name="statistics_thanks">धन्यवाद प्राप्त किया</string>
<string name="statistics_featured">निर्वाचित चित्र</string>
<string name="level">स्तर %d</string>
<string name="profileLevel">%s (स्तर %s )</string>
<string name="images_uploaded">चित्र अपलोड हुआ</string>
<string name="image_reverts">चित्रों को वापस नहीं किया गया</string>
<string name="images_used_by_wiki">उपयोग हुए चित्र</string>
@ -353,7 +360,10 @@
<string name="ends_on">खत्म होगा:</string>
<string name="display_campaigns">दृश्य अभियान</string>
<string name="display_campaigns_explanation" fuzzy="true">वर्तमान में चल रहे अभियानों को जानने के लिये यहाँ दबायें</string>
<string name="option_allow">अनुमति दें</string>
<string name="option_dismiss">रद्द करें</string>
<string name="error_processing_image">छवि संसाधित करते समय त्रुटि आई। कृपया पुन: प्रयास करें!</string>
<string name="nominate_for_deletion_done">पूर्ण हुआ</string>
<string name="no_image">कोई चित्र उपयोग नहीं हुआ</string>
<string name="no_image_reverted">कोई चित्र वापस नहीं लाया</string>
<string name="no_image_uploaded">कोई चित्र अपलोड नहीं किया</string>

View file

@ -112,6 +112,7 @@
<string name="login_failed_throttled">Troppo de tentativas fallite. Per favor reproba in alcun minutas.</string>
<string name="login_failed_blocked">Iste usator ha essite blocate sur Commons</string>
<string name="login_failed_2fa_needed">Tu debe fornir tu codice de authentication bifactorial.</string>
<string name="login_failed_email_auth_needed">Un codice de verification de session ha essite inviate a tu adresse de e-mail. Per favor insere iste codice pro aperir session.</string>
<string name="login_failed_generic">Apertura de session fallite</string>
<string name="share_upload_button">Incargar</string>
<string name="multiple_share_base_title">Nomine de iste insimul</string>
@ -212,6 +213,7 @@
<string name="become_a_tester_title">Devenir testator beta</string>
<string name="become_a_tester_description">Abona te a nostre canal beta sur Google Play e sia le prime a ganiar accesso a nove functiones e correctiones de anomalias</string>
<string name="_2fa_code">Codice 2FA</string>
<string name="email_auth_code">Codice de verification in e-mail</string>
<string name="logout_verification">Vole tu vermente clauder session?</string>
<string name="mediaimage_failed">Imagine multimedial fallite</string>
<string name="no_subcategory_found">Necun subcategoria trovate</string>
@ -775,6 +777,7 @@
<string name="talk">Discussion</string>
<string name="write_something_about_the_item">Scribe qualcosa sur le elemento %1$s. Isto essera visibile publicamente.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">%1$s non existe plus, necun imagine pote jammais esser prendite de illo.</string>
<string name="is_at_a_different_place_wikidata">%1$s se trova in un altere loco.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">%1$s es in un altere loco. Per favor specifica le loco correcte hic infra, e si possibile, indica le latitude e longitude correcte.</string>
<string name="other_problem_or_information_please_explain_below">Altere problema o information (per favor explica hic infra).</string>
<string name="feedback_destination_note">Tu retroaction apparera sur le sequente pagina wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
@ -801,4 +804,16 @@
<string name="usages_on_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Altere wikis</string>
<string name="file_usages_container_heading">Usos del file</string>
<string name="title_activity_single_web_view">Activitate de singule visita web</string>
<string name="account">Conto</string>
<string name="vanish_account">Facer disparer le conto</string>
<string name="account_vanish_request_confirm_title">Advertimento concernente le disparition del conto</string>
<string name="account_vanish_request_confirm">Le disparition es un &lt;b&gt;ultime recurso&lt;/b&gt; e debe &lt;b&gt;solmente esser usate quando tu vole cessar de modificar pro sempre&lt;/b&gt; e celar le maximo possibile de tu associationes anterior.&lt;br/&gt;&lt;br/&gt;Le deletion del conto sur Wikipedia se effectua cambiante tu nomine de conto de maniera que alteres non pote recognoscer tu contributiones. Iste processo se appella le disparition del conto. &lt;b&gt;Le disparition non garanti le anonymitate complete ni remove contributiones al projectos.&lt;/b&gt;</string>
<string name="caption">Legenda</string>
<string name="caption_copied_to_clipboard">Legenda copiate al area de transferentia</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Felicitationes, tote le imagines in iste album ha essite incargate o marcate como non incargabile.</string>
<string name="show_in_explore">Monstrar in Explorar</string>
<string name="show_in_nearby">Monstrar in A proximitate</string>
<string name="image_tag_line_created_and_uploaded_by">Create e incargate per: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Create per %1$s e incargate per %2$s</string>
</resources>

View file

@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Vlad5250
-->
<resources>
<string name="crash_dialog_title">کامَنٕز گوو رُکِتھ</string>
<string name="crash_dialog_text">Oops. کیہہ تام گوو غلط!</string>

View file

@ -126,6 +126,7 @@
<string name="menu_from_camera">Tirar foto</string>
<string name="menu_nearby">Próximo</string>
<string name="provider_contributions">Meus envios</string>
<string name="menu_copy_link">Copiar link</string>
<string name="menu_share">Compartilhar</string>
<string name="menu_view_file_page">Ver página do arquivo</string>
<string name="share_title_hint">Legenda (Obrigatório)</string>
@ -694,6 +695,8 @@
<string name="custom_selector_info_text2">Diferente da imagem à esquerda, a da direita possui o logotipo do Commons, o que indica que o envio dela já está concluído.\n Toque e segure para pré-visualizar a imagem.</string>
<string name="welcome_custom_selector_ok">Ótimo</string>
<string name="custom_selector_already_uploaded_image_text">Esta imagem já foi enviada para Commons.</string>
<string name="custom_selector_dismiss_limit_warning_button_text">Ignorar</string>
<string name="custom_selector_button_limit_text">Máx.: %1$d</string>
<string name="place_state_wlm">WLM</string>
<string name="wlm_upload_info">Essa imagem será enviada ao concurso Wiki Loves Monuments</string>
<string name="display_monuments">Monumentos de exibição</string>
@ -755,6 +758,8 @@
<string name="similar_coordinate_description_auto_set">As coordenadas não são exatas, mas a pessoa que carregou essa imagem crê que sejam próximas o suficiente.</string>
<string name="storage_permissions_denied">Permissão de armazenamento negada</string>
<string name="unable_to_share_upload_item">Incapaz de compartilhar esse item</string>
<string name="edit_image">Editar imagem</string>
<string name="edit_location">Editar localização</string>
<string name="location_updated">Localização atualizada!</string>
<string name="remove_location">Remover localização</string>
<string name="location_removed">Localização removida!</string>
@ -771,4 +776,13 @@
<item quantity="other">%d imagens selecionadas</item>
</plurals>
<string name="write_something_about_the_item">Escreva algo sobre o item %1$s. Isso será visivel publicamente.</string>
<string name="uploads">Envios</string>
<string name="pending">Pendente</string>
<string name="failed">Falhou</string>
<string name="custom_selector_delete_folder">Excluir pasta</string>
<string name="custom_selector_confirm_deletion_title">Confirmar exclusão</string>
<string name="custom_selector_delete">Excluir</string>
<string name="custom_selector_cancel">Cancelar</string>
<string name="account">Conta</string>
<string name="caption">Legenda</string>
</resources>

View file

@ -16,6 +16,7 @@
* Mansil alfalb
* McDutchie
* Mirzali
* O andras
* Sarilho1
* Unamane
* Vitorvicentevalente
@ -90,7 +91,7 @@
<string name="logging_in_message">Aguarde, por favor…</string>
<string name="updating_caption_title">A atualizar legendas e descrições</string>
<string name="updating_caption_message">Aguarde, por favor…</string>
<string name="login_success" fuzzy="true">Sessão iniciada!</string>
<string name="login_success">Sessão iniciada!</string>
<string name="login_failed">O início de sessão falhou!</string>
<string name="upload_failed">O ficheiro não foi encontrado. Tente outro, por favor.</string>
<string name="retry_limit_reached">Limite máximo de novas tentativas atingido! Cancele o carregamento e tente novamente, por favor</string>
@ -117,13 +118,15 @@
<string name="menu_from_camera">Tirar foto</string>
<string name="menu_nearby">Nas redondezas</string>
<string name="provider_contributions">Carregamentos</string>
<string name="menu_copy_link">Copiar ligação</string>
<string name="menu_link_copied">A ligação foi copiada para a área de transferência</string>
<string name="menu_share">Partilhar</string>
<string name="menu_view_file_page">Ver página do ficheiro</string>
<string name="share_title_hint">Legenda (obrigatória)</string>
<string name="add_caption_toast">Forneça uma legenda para este ficheiro, por favor</string>
<string name="share_description_hint">Descrição</string>
<string name="share_caption_hint">Legenda</string>
<string name="login_failed_network" fuzzy="true">Não é possível iniciar uma sessão - falha de rede</string>
<string name="login_failed_network">Não foi possível iniciar sessão - falha de rede</string>
<string name="login_failed_throttled">Demasiadas tentativas mal sucedidas. Por favor, tente novamente dentro de minutos.</string>
<string name="login_failed_blocked">Desculpe, este utilizador foi bloqueado na wiki Commons</string>
<string name="login_failed_2fa_needed">Tem de fornecer o seu código de autenticação de dois fatores.</string>
@ -285,7 +288,7 @@
<string name="skip_login">Saltar</string>
<string name="navigation_item_login">Entrar</string>
<string name="skip_login_title">Pretende mesmo ignorar o início de sessão?</string>
<string name="skip_login_message" fuzzy="true">Terá de iniciar sessão para carregar fotografias mais tarde.</string>
<string name="skip_login_message">Terá de iniciar sessão para carregar fotografias no futuro.</string>
<string name="login_alert_message">Inicie uma sessão para usar esta funcionalidade</string>
<string name="copy_wikicode">Copiar o texto wiki para a área de transferência</string>
<string name="wikicode_copied">O texto wiki foi copiado para a área de transferência</string>
@ -359,7 +362,7 @@
<string name="quiz_screenshot_question">Esta captura de ecrã pode ser carregada?</string>
<string name="share_app_title">Partilhar aplicação</string>
<string name="rotate">Rodar</string>
<string name="error_fetching_nearby_places" fuzzy="true">Erro ao procurar locais próximos.</string>
<string name="error_fetching_nearby_places">Não foi possível carregar locais próximos</string>
<string name="no_nearby_places_around">Não existem locais próximos</string>
<string name="error_fetching_nearby_monuments">Erro ao procurar monumentos próximos.</string>
<string name="no_recent_searches">Não há pesquisas recentes</string>
@ -371,11 +374,13 @@
<string name="delete">Eliminar</string>
<string name="Achievements">Realizações</string>
<string name="Profile">Perfil</string>
<string name="badges">Medalhas</string>
<string name="statistics">Estatísticas</string>
<string name="statistics_thanks">Agradecimentos recebidos</string>
<string name="statistics_featured">Imagens destacadas</string>
<string name="statistics_wikidata_edits">Imagens via \"Locais próximos\"</string>
<string name="level" fuzzy="true">Nível</string>
<string name="level">Nível %d</string>
<string name="profileLevel">%s (Nível %s)</string>
<string name="images_uploaded">Imagens carregadas</string>
<string name="image_reverts">Imagens não revertidas</string>
<string name="images_used_by_wiki">Imagens usadas</string>
@ -407,6 +412,7 @@
<string name="map_application_missing">Não foi encontrada no seu dispositivo nenhuma aplicação de mapas compatível. Para usar esta funcionalidade instale uma aplicação de mapas, por favor.</string>
<string name="title_page_bookmarks_pictures">Fotografias</string>
<string name="title_page_bookmarks_locations">Locais</string>
<string name="title_page_bookmarks_categories">Categorias</string>
<string name="menu_bookmark">Adicionar ou remover dos marcadores</string>
<string name="provider_bookmarks">Marcadores</string>
<string name="bookmark_empty">Não adicionou nenhum marcador</string>
@ -450,7 +456,7 @@
<string name="open_document_photo_picker_explanation">O novo seletor de fotografias do Android corre o risco de perder informações de localização. Ativar se pensa vir a usá-lo.</string>
<string name="location_loss_warning">Desativar pode acionar o novo seletor de fotografias do Android. Este corre o risco de perder informações de localização.\n\nToque em \'Ler mais\' para mais informações.</string>
<string name="nearby_campaign_dismiss_message">Deixará de ver as campanhas. No entanto, pode reativar esta notificação nas configurações, se desejar.</string>
<string name="this_function_needs_network_connection" fuzzy="true">Esta função requer uma ligação de rede. Verifique as suas configurações de ligação, por favor.</string>
<string name="this_function_needs_network_connection">Esta função necessita de ligação à rede. Por favor, verifique as suas configurações de ligação.</string>
<string name="error_processing_image">Ocorreu um erro ao processar a imagem. Tente novamente, por favor!</string>
<string name="getting_edit_token">A obter chave para edição</string>
<string name="check_category_adding_template">A adicionar predefinição para verificação da categoria</string>
@ -488,6 +494,7 @@
<string name="no_notification">Não tem nenhuma notificação por ler</string>
<string name="no_read_notification">Não tem nenhuma notificação lida</string>
<string name="share_logs_using">Partilhar os registos usando</string>
<string name="check_your_email_inbox">Verifique sua caixa de entrada de e-mail</string>
<string name="menu_option_read">Ver lidas</string>
<string name="menu_option_unread">Ver não lidas</string>
<string name="error_occurred_in_picking_images">Ocorreu um erro ao escolher imagens</string>
@ -562,7 +569,7 @@
<string name="coordinates_edit_helper_edit_message_else">Não foi possível adicionar coordenadas.</string>
<string name="description_edit_helper_edit_message_else">Não foi possível adicionar as descrições.</string>
<string name="caption_edit_helper_edit_message_else">Não foi possível adicionar a legenda.</string>
<string name="coordinates_picking_unsuccessful" fuzzy="true">Não foi possível obter coordenadas.</string>
<string name="coordinates_picking_unsuccessful">Coordenadas da imagem não actualizadas</string>
<string name="descriptions_picking_unsuccessful">Não foi possível obter as descrições.</string>
<string name="description_activity_title">Editar descrições e legendas</string>
<string name="share_image_via">Partilhar imagem via</string>
@ -577,12 +584,13 @@
<string name="place_state_needs_photo">Necessita fotografia</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" fuzzy="true">Ocorreu algo de errado com a sessão, tem de redefinir a sua palavra-passe!</string>
<string name="you_must_reset_your_passsword">Ocorreu um erro ao iniciar sessão. Tem de redefinir a sua palavra-passe!</string>
<string name="title_for_media">MULTIMÉDIA</string>
<string name="title_for_child_classes">CLASSES DESCENDENTES</string>
<string name="title_for_parent_classes">CLASSES PROGENITORAS</string>
<string name="upload_nearby_place_found_title">Foi encontrado um local próximo</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Isto é uma fotografia de %1$s?</string>
<string name="upload_nearby_place_found_description_plural">Estas imagens são de %1$s?</string>
<string name="upload_nearby_place_found_description_singular">Isto é uma imagem de %1$s?</string>
<string name="title_app_shortcut_bookmark">Marcadores</string>
<string name="title_app_shortcut_setting">Definições</string>
<string name="remove_bookmark">Removido dos marcadores</string>
@ -597,7 +605,7 @@
<string name="recommend_high_accuracy_mode">Para obter os melhores resultados, escolha o modo Alta Precisão.</string>
<string name="ask_to_turn_location_on">Ativar a localização?</string>
<string name="nearby_needs_location">A funcionalidade de proximidade precisa que a localização esteja ativada para funcionar corretamente</string>
<string name="upload_map_location_access" fuzzy="true">Precisa de dar acesso à sua localização atual para gravar automaticamente a localização.</string>
<string name="upload_map_location_access">Precisa de dar permissão da sua localização geográfica para a gravar automaticamente.</string>
<string name="use_location_from_similar_image">Tirou estas duas fotos no mesmo lugar? Quer usar a latitude/longitude da fotografia da direita?</string>
<string name="load_more">Carregar mais</string>
<string name="nearby_no_results">Não foi encontrado nenhum local; tente alterar os seus critérios de pesquisa.</string>
@ -698,7 +706,7 @@
<string name="read_phone_state_permission_message">Os mapas de locais próximos precisam de ler ESTADO DO TELEFONE para funcionar devidamente</string>
<string name="contributions_of_user">Contribuições do utilizador: %s</string>
<string name="achievements_of_user">Realizações do utilizador: %s</string>
<string name="menu_view_user_page" fuzzy="true">Ver página de utilizador</string>
<string name="menu_view_user_page">Ver perfil de utilizador</string>
<string name="edit_depictions">Editar elementos retratados</string>
<string name="edit_categories">Editar categorias</string>
<string name="advanced_options">Opções avançadas</string>
@ -711,7 +719,7 @@
<string name="add_location">Adicionar localização</string>
<string name="feedback_sharing_data_alert">Remova desta mensagem de correio todas as informações que não se sinta à vontade em partilhar publicamente, por favor. Adicionalmente, esteja consciente de que o seu endereço de correio eletrónico, com o qual está a fazer esta publicação, e o nome e imagem de perfil a ele associados, serão visíveis pelo público geral.</string>
<string name="explore_map_details">Detalhes</string>
<string name="achievements_unavailable_beta" fuzzy="true">As realizações só estão disponíveis na versão de produção; consulte a documentação para programadores, por favor.</string>
<string name="achievements_unavailable_beta">As conquistas só estão disponíveis na versão de produção. Consulte a documentação para programadores.</string>
<string name="leaderboard_unavailable_beta">A tabela de classificação só está disponível na versão prod. Consulte a documentação do desenvolvedor.</string>
<string name="copyright_popup">Carregue somente fotografias tiradas por si. Os utilizadores que carregarem imagens cujos direitos de autor estão protegidos serão bloqueados. Isto também se aplica à versão beta. Obrigado por testar a aplicação!</string>
<string name="select_feedback_data_choice">Desmarque todas as informações que não se sente à vontade em tornar públicas.</string>
@ -756,6 +764,8 @@
<string name="see_your_achievements">Ver as suas realizações</string>
<string name="edit_image">Editar imagem</string>
<string name="edit_location">Editar localização</string>
<string name="location_updated">Localização actualizada!</string>
<string name="remove_location">Remover Localização</string>
<string name="send_thanks_to_author">Agradecer ao autor</string>
<string name="error_sending_thanks">Erro no envio de agradecimento ao autor.</string>
<plurals name="custom_picker_images_selected_title_appendix">