diff --git a/CHANGELOG.md b/CHANGELOG.md index df55b1124..cd4e70b6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c74f95fb4..2d9e213b2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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 } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt index 296391c6d..29267452b 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt @@ -253,13 +253,14 @@ class ContributionController @Inject constructor(@param:Named("default_preferenc */ fun initiateCustomGalleryPickWithPermission( activity: Activity, - resultLauncher: ActivityResultLauncher + resultLauncher: ActivityResultLauncher, + 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 diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt index 20a2fe70a..62a440ff4 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt @@ -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 + } } diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt index f872d3044..7e7d7e4cd 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt @@ -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" } } diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageFragment.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageFragment.kt index 39d0d545a..6e08e30f1 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/ImageFragment.kt @@ -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 diff --git a/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt b/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt index 74ec9bc89..79a655223 100644 --- a/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt +++ b/app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt @@ -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) diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt index acf072f02..ccccfbd34 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt @@ -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, - type: Int + type: Int, + singleSelection: Boolean = false ) { - val intent = createCustomSelectorIntent(activity, type) + val intent = createCustomSelectorIntent(activity, type, singleSelection) resultLauncher.launch(intent) } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt index 56af614d7..5b52c0ce5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt @@ -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 ) } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/presenter/NearbyParentFragmentPresenter.kt b/app/src/main/java/fr/free/nrw/commons/nearby/presenter/NearbyParentFragmentPresenter.kt index b4639b14a..6ec1064be 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/presenter/NearbyParentFragmentPresenter.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/presenter/NearbyParentFragmentPresenter.kt @@ -351,6 +351,7 @@ class NearbyParentFragmentPresenter pic = repoPlace.pic ?: "" exists = repoPlace.exists ?: true longDescription = repoPlace.longDescription ?: "" + language = repoPlace.language } } else { indicesToUpdate.add(i) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 1d718ddd2..da816259e 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -256,7 +256,7 @@ Κλείσιμο Αρχική σελίδα Μεταφόρτωση αρχείου - Κοντά σας + Κοντινά Σχετικά Ρυθμίσεις Ανατροφοδότηση @@ -803,6 +803,7 @@ Συζήτηση Γράψτε κάτι για το αντικείμενο \'%1$s\'. Θα είναι δημόσια ορατό. Το \'%1$s\' δεν υφίσταται πλέον, καμία φωτογραφία δεν μπορεί να εξαχθεί. + Το \'%1$s\' βρίσκεται σε διαφορετικό μέρος. Το \'%1$s\' βρίσκεται σε διαφορετική θέση. Παρακαλούμε προσδιορίστε τη σωστή θέση παρακαλώ, και αν είναι εφικτό, γράψτε το σωστό γεωγραφικό πλάτος και μήκος. Άλλο πρόβλημα ή πληροφορίες (παρακαλούμε εξηγήστε παρακάτω). Τα σχόλιά σας δημοσιεύονται στην ακόλουθη σελίδα wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Εφαρμογή για κινητά/Σχόλια</a> @@ -828,4 +829,9 @@ Λογαριασμός Λεζάντα Η λεζάντα αντιγράφηκε στο πρόχειρο + Συγχαρητήρια, όλες οι φωτογραφίες σε αυτό το άλμπουμ έχουν είτε μεταφορτωθεί είτε επισημανθεί για μη μεταφόρτωση. + Εμφάνιση στην Εξερεύνηση + Εμφάνιση στα Κοντινά + Δημιουργήθηκε και μεταφορτώθηκε από: %1$s + Δημιουργήθηκε από %1$s και μεταφορτώθηκε από %2$s diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 7f742a319..dcb769ca1 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -108,6 +108,7 @@ फ़ोटो लें आसपास मेरे अपलोड + लिंक कॉपी करें साझा करें शीर्षक (आवश्यक) विवरण @@ -125,7 +126,7 @@ सहेजें ताजा करें सूची - अभी तक कोई अपलोड नहीं + (अभी तक कोई अपलोड नहीं) %1$s से कोई श्रेणी मेल नहीं खाती विकिमीडिया कॉमन्स पर अपनी छवियों को अधिक खोजने योग्य बनाने के लिए श्रेणियां जोड़ें|\nश्रेणियां जोड़ने के लिए टाइप करना प्रारंभ करें| श्रेणियाँ @@ -179,7 +180,7 @@ इंटरनेट से मिली कोई कॉपीराइट सामग्री के साथ साथ पोस्टर, पुस्तक के खड्डे आदि को भी अपलोड करने से बचें। क्या आपको लगता है कि आप समझ गए? हाँ! - <u>अधिक जानकारी</u> + अधिक जानकारी श्रेणियाँ लोड हो रहा है… कुछ चयनित नहीं @@ -193,7 +194,9 @@ अपलोड करें हाँ नहीं + कैप्शन शीर्षक + चित्रण विवरण चर्चा लेखक @@ -258,11 +261,11 @@ विकिटेक्सट क्लिपबोर्ड पर कॉपी किया जा चुका है स्थान उपलब्ध नहीं है। आसपास के स्थान दिखाने के लिए अनुमति चाहिए - दिशा-निर्देश - विकीडाटा - विकीपीडिया + दिशा-निर्देश + विकीडाटा + विकीपीडिया कॉमन्स - <u>हमें रेट करें</u> + हमें रेट करें अक्सर पूछे जाने वाले प्रश्न प्रशिक्षण छोड़ें इंटरनेट उपलब्ध नहीं @@ -276,6 +279,7 @@ कोई चित्र नहीं मिला! चित्र अपलोड करते समय त्रुटि उत्पन्न हुई। अपलोड: %1$s + अवरोधित कॉमन्स पर सम्पादन से आप अवरोधित हो चुके हैं आज का चित्र खोजें @@ -286,6 +290,7 @@ श्रेणी लोड करते समय त्रुटि उत्पन्न हुई। मीडिया श्रेणियाँ + आयटम निर्वाचित नक्शा चित्र सफ़लतापूर्वक विकिडाटा के %1$s पर सफलतापूर्वक जोड़ दिया गया है। @@ -312,10 +317,12 @@ हटाने के लिये नामांकन करें हटाएँ उपलब्धियाँ + प्रोफ़ाइल सांख्यिकी धन्यवाद प्राप्त किया निर्वाचित चित्र स्तर %d + %s (स्तर %s ) चित्र अपलोड हुआ चित्रों को वापस नहीं किया गया उपयोग हुए चित्र @@ -353,7 +360,10 @@ खत्म होगा: दृश्य अभियान वर्तमान में चल रहे अभियानों को जानने के लिये यहाँ दबायें + अनुमति दें + रद्द करें छवि संसाधित करते समय त्रुटि आई। कृपया पुन: प्रयास करें! + पूर्ण हुआ कोई चित्र उपयोग नहीं हुआ कोई चित्र वापस नहीं लाया कोई चित्र अपलोड नहीं किया diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index f12022169..386bddf2e 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -112,6 +112,7 @@ Troppo de tentativas fallite. Per favor reproba in alcun minutas. Iste usator ha essite blocate sur Commons Tu debe fornir tu codice de authentication bifactorial. + Un codice de verification de session ha essite inviate a tu adresse de e-mail. Per favor insere iste codice pro aperir session. Apertura de session fallite Incargar Nomine de iste insimul @@ -212,6 +213,7 @@ Devenir testator beta Abona te a nostre canal beta sur Google Play e sia le prime a ganiar accesso a nove functiones e correctiones de anomalias Codice 2FA + Codice de verification in e-mail Vole tu vermente clauder session? Imagine multimedial fallite Necun subcategoria trovate @@ -775,6 +777,7 @@ Discussion Scribe qualcosa sur le elemento ‘%1$s’. Isto essera visibile publicamente. ‘%1$s’ non existe plus, necun imagine pote jammais esser prendite de illo. + ‘%1$s’ se trova in un altere loco. ‘%1$s’ es in un altere loco. Per favor specifica le loco correcte hic infra, e si possibile, indica le latitude e longitude correcte. Altere problema o information (per favor explica hic infra). Tu retroaction apparera sur le sequente pagina wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> @@ -801,4 +804,16 @@ Commons Altere wikis Usos del file + Activitate de singule visita web + Conto + Facer disparer le conto + Advertimento concernente le disparition del conto + Le disparition es un <b>ultime recurso</b> e debe <b>solmente esser usate quando tu vole cessar de modificar pro sempre</b> e celar le maximo possibile de tu associationes anterior.<br/><br/>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. <b>Le disparition non garanti le anonymitate complete ni remove contributiones al projectos.</b> + Legenda + Legenda copiate al area de transferentia + Felicitationes, tote le imagines in iste album ha essite incargate o marcate como non incargabile. + Monstrar in Explorar + Monstrar in A proximitate + Create e incargate per: %1$s + Create per %1$s e incargate per %2$s diff --git a/app/src/main/res/values-x-invalidLanguageCode/error.xml b/app/src/main/res/values-ks/error.xml similarity index 95% rename from app/src/main/res/values-x-invalidLanguageCode/error.xml rename to app/src/main/res/values-ks/error.xml index f4e2fe125..838231c2b 100644 --- a/app/src/main/res/values-x-invalidLanguageCode/error.xml +++ b/app/src/main/res/values-ks/error.xml @@ -1,7 +1,4 @@ - کامَنٕز گوو رُکِتھ Oops. کیہہ تام گوو غلط! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6bc192c68..947d65ace 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -126,6 +126,7 @@ Tirar foto Próximo Meus envios + Copiar link Compartilhar Ver página do arquivo Legenda (Obrigatório) @@ -694,6 +695,8 @@ 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. Ótimo Esta imagem já foi enviada para Commons. + Ignorar + Máx.: %1$d WLM Essa imagem será enviada ao concurso Wiki Loves Monuments Monumentos de exibição @@ -755,6 +758,8 @@ As coordenadas não são exatas, mas a pessoa que carregou essa imagem crê que sejam próximas o suficiente. Permissão de armazenamento negada Incapaz de compartilhar esse item + Editar imagem + Editar localização Localização atualizada! Remover localização Localização removida! @@ -771,4 +776,13 @@ %d imagens selecionadas Escreva algo sobre o item %1$s. Isso será visivel publicamente. + Envios + Pendente + Falhou + Excluir pasta + Confirmar exclusão + Excluir + Cancelar + Conta + Legenda diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 0ae9736d5..15c5983c4 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -16,6 +16,7 @@ * Mansil alfalb * McDutchie * Mirzali +* O andras * Sarilho1 * Unamane * Vitorvicentevalente @@ -90,7 +91,7 @@ Aguarde, por favor… A atualizar legendas e descrições Aguarde, por favor… - Sessão iniciada! + Sessão iniciada! O início de sessão falhou! O ficheiro não foi encontrado. Tente outro, por favor. Limite máximo de novas tentativas atingido! Cancele o carregamento e tente novamente, por favor @@ -117,13 +118,15 @@ Tirar foto Nas redondezas Carregamentos + Copiar ligação + A ligação foi copiada para a área de transferência Partilhar Ver página do ficheiro Legenda (obrigatória) Forneça uma legenda para este ficheiro, por favor Descrição Legenda - Não é possível iniciar uma sessão - falha de rede + Não foi possível iniciar sessão - falha de rede Demasiadas tentativas mal sucedidas. Por favor, tente novamente dentro de minutos. Desculpe, este utilizador foi bloqueado na wiki Commons Tem de fornecer o seu código de autenticação de dois fatores. @@ -285,7 +288,7 @@ Saltar Entrar Pretende mesmo ignorar o início de sessão? - Terá de iniciar sessão para carregar fotografias mais tarde. + Terá de iniciar sessão para carregar fotografias no futuro. Inicie uma sessão para usar esta funcionalidade Copiar o texto wiki para a área de transferência O texto wiki foi copiado para a área de transferência @@ -359,7 +362,7 @@ Esta captura de ecrã pode ser carregada? Partilhar aplicação Rodar - Erro ao procurar locais próximos. + Não foi possível carregar locais próximos Não existem locais próximos Erro ao procurar monumentos próximos. Não há pesquisas recentes @@ -371,11 +374,13 @@ Eliminar Realizações Perfil + Medalhas Estatísticas Agradecimentos recebidos Imagens destacadas Imagens via \"Locais próximos\" - Nível + Nível %d + %s (Nível %s) Imagens carregadas Imagens não revertidas Imagens usadas @@ -407,6 +412,7 @@ 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. Fotografias Locais + Categorias Adicionar ou remover dos marcadores Marcadores Não adicionou nenhum marcador @@ -450,7 +456,7 @@ O novo seletor de fotografias do Android corre o risco de perder informações de localização. Ativar se pensa vir a usá-lo. 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. Deixará de ver as campanhas. No entanto, pode reativar esta notificação nas configurações, se desejar. - Esta função requer uma ligação de rede. Verifique as suas configurações de ligação, por favor. + Esta função necessita de ligação à rede. Por favor, verifique as suas configurações de ligação. Ocorreu um erro ao processar a imagem. Tente novamente, por favor! A obter chave para edição A adicionar predefinição para verificação da categoria @@ -488,6 +494,7 @@ Não tem nenhuma notificação por ler Não tem nenhuma notificação lida Partilhar os registos usando + Verifique sua caixa de entrada de e-mail Ver lidas Ver não lidas Ocorreu um erro ao escolher imagens @@ -562,7 +569,7 @@ Não foi possível adicionar coordenadas. Não foi possível adicionar as descrições. Não foi possível adicionar a legenda. - Não foi possível obter coordenadas. + Coordenadas da imagem não actualizadas Não foi possível obter as descrições. Editar descrições e legendas Partilhar imagem via @@ -577,12 +584,13 @@ Necessita fotografia Tipo de local: Ponte, museu, hotel, etc. - Ocorreu algo de errado com a sessão, tem de redefinir a sua palavra-passe! + Ocorreu um erro ao iniciar sessão. Tem de redefinir a sua palavra-passe! MULTIMÉDIA CLASSES DESCENDENTES CLASSES PROGENITORAS Foi encontrado um local próximo - Isto é uma fotografia de %1$s? + Estas imagens são de %1$s? + Isto é uma imagem de %1$s? Marcadores Definições Removido dos marcadores @@ -597,7 +605,7 @@ Para obter os melhores resultados, escolha o modo Alta Precisão. Ativar a localização? A funcionalidade de proximidade precisa que a localização esteja ativada para funcionar corretamente - Precisa de dar acesso à sua localização atual para gravar automaticamente a localização. + Precisa de dar permissão da sua localização geográfica para a gravar automaticamente. Tirou estas duas fotos no mesmo lugar? Quer usar a latitude/longitude da fotografia da direita? Carregar mais Não foi encontrado nenhum local; tente alterar os seus critérios de pesquisa. @@ -698,7 +706,7 @@ Os mapas de locais próximos precisam de ler ESTADO DO TELEFONE para funcionar devidamente Contribuições do utilizador: %s Realizações do utilizador: %s - Ver página de utilizador + Ver perfil de utilizador Editar elementos retratados Editar categorias Opções avançadas @@ -711,7 +719,7 @@ Adicionar localização 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. Detalhes - As realizações só estão disponíveis na versão de produção; consulte a documentação para programadores, por favor. + As conquistas só estão disponíveis na versão de produção. Consulte a documentação para programadores. A tabela de classificação só está disponível na versão prod. Consulte a documentação do desenvolvedor. 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! Desmarque todas as informações que não se sente à vontade em tornar públicas. @@ -756,6 +764,8 @@ Ver as suas realizações Editar imagem Editar localização + Localização actualizada! + Remover Localização Agradecer ao autor Erro no envio de agradecimento ao autor.