From c692766c4186e84970448d0ffd1afdb60d5bd577 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Apr 2024 15:05:54 +0530 Subject: [PATCH 001/499] CHANGELOG: fix diff link to appropriately use the v5.0.0 tag --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d09948950..84b88ebc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,7 +69,7 @@ ensuring only the selected picture is removed as expected. What's listed here is only a subset of all the changes. Check the full-list of -the changes in [this link](https://github.com/commons-app/apps-android-commons/compare/v4.2.1...v4.3.0). +the changes in [this link](https://github.com/commons-app/apps-android-commons/compare/v4.2.1...v5.0.0). Alternatively, checkout this release on GitHub releases page for an exhaustive list of changes and the various contributors who contributed the same. From 4cc5224556ec2d59e4a4276979efbf26c304be86 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Apr 2024 15:07:13 +0530 Subject: [PATCH 002/499] CHANGELOG: add link to the v5.0.0 GitHub release --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84b88ebc0..a9abdaa26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,8 +70,8 @@ What's listed here is only a subset of all the changes. Check the full-list of the changes in [this link](https://github.com/commons-app/apps-android-commons/compare/v4.2.1...v5.0.0). -Alternatively, checkout this release on GitHub releases page for an exhaustive -list of changes and the various contributors who contributed the same. +Alternatively, checkout [this release on GitHub releases page](https://github.com/commons-app/apps-android-commons/releases/tag/v5.0.0) +for an exhaustive list of changes and the various contributors who contributed the same. ## v4.2.1 From da0b2c28e39f61b64a981c8b114ab5e6d4be7406 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Apr 2024 16:21:14 +0530 Subject: [PATCH 003/499] app: adjust R8 rules to ensure our model classes are not obfuscated With refactoring of the dataclient module, the model classes now live within the app's source code itself. So, the existing R8 rules became obsolete and resulted in the prodRelease version of the app not working. So, adjust the R8 rules so that R8 doesn't obsfuscate the model classes that now live within the app. --- app/proguard-rules.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index 8a0b24e83..63981633b 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -32,13 +32,15 @@ # Retain declared checked exceptions for use by a Proxy instance. -keepattributes Exceptions -# Application classes that will be serialized/deserialized over Gson --keepclasseswithmembers class org.wikipedia.** { *; } # Note: The model package right now seems to include some other classes that # are not used for serialization / deserialization over Gson. Hopefully # that's not a problem since it only prevents R8 from avoiding trimming # of few more classes. -keepclasseswithmembers class fr.free.nrw.commons.*.model.** { *; } +-keepclasseswithmembers class fr.free.nrw.commons.actions.** { *; } +-keepclasseswithmembers class fr.free.nrw.commons.auth.csrf.** { *; } +-keepclasseswithmembers class fr.free.nrw.commons.auth.login.** { *; } +-keepclasseswithmembers class fr.free.nrw.commons.wikidata.mwapi.** { *; } # --- /Retrofit --- From af028cbddcd1f40deb41e44d6de98bd3369b8621 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Apr 2024 16:58:49 +0530 Subject: [PATCH 004/499] Version v5.0.1 (fix release variant of v5.0.0) The same as v5.0.0 except this fixes the release variants of the app for v5.0.0. --- CHANGELOG.md | 5 +++++ app/build.gradle | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9abdaa26..f4250ebd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Wikimedia Commons for Android +## v5.0.1 + +Same as v5.0.0 except this fixes some R8 rules to ensure that the release +variants of the app work as intended. + ## v5.0.0 ### What's Changed diff --git a/app/build.gradle b/app/build.gradle index 77eced3ae..19c570a6b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -191,8 +191,8 @@ android { defaultConfig { //applicationId 'fr.free.nrw.commons' - versionCode 1038 - versionName '5.0.0' + versionCode 1039 + versionName '5.0.1' setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) minSdkVersion 21 From 6aa9303d0f1d844ecb82b027796e255e390cce4c Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 29 Apr 2024 14:02:13 +0200 Subject: [PATCH 005/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-bg/strings.xml | 12 +- app/src/main/res/values-fi/strings.xml | 6 +- app/src/main/res/values-krc/strings.xml | 724 +++++++++++++++++++++++- app/src/main/res/values-zh/strings.xml | 1 + 4 files changed, 725 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index d4f1c871d..3522e165f 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -53,10 +53,10 @@ Регистриране Влизане в системата Изчакайте… - Успешно влизане. - Неуспешно влизане! + Успешно влизане. + Неуспешно влизане! Файлът не е намерен. Моля, опитайте с друг файл. - Заверката е неуспешна. Влезете отново. + Неуспешен опит за удостоверяване. Моля, влезете отново. Качването започна! Файл %1$s е качен! Докоснете, за да видите качения файл @@ -75,11 +75,11 @@ Споделяне Описание (задълж.) Описание - Неуспешно влизане – проблем в мрежата + Неуспешно влизане – проблем в мрежата Твърде много неуспешни опити. Моля, опитайте пак след няколко минути. За съжаление, потребителят е блокиран на Общомедия Трябва да предоставите кода на двуфакторната си автентикация. - Грешка при влизане + Грешка при влизане Качване Дайте име на този комплект Изменения @@ -294,7 +294,7 @@ Показване на кампании Вижте текущите кампании Вече няма да ви се показват кампаниите. Ако промените решението си, ще намерите тази настройка в Настройки. - Тази опция изисква да сте свързани към мрежата. Проверете настройките за връзка. + Тази опция изисква да сте свързани към мрежата. Моля, проверете настройките за връзка. Възникна грешка при обработката на картината. Моля, опитайте отново! Няма използвани изображения Няма върнати изображения diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index df86a6d0e..7eabea97d 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -343,7 +343,7 @@ Onko tämä kuvakaappaus OK tallennettavaksi? Jaa sovellus Kierrä - Virhe paikkoja haettaessa. + Virhe läheisiä paikkoja ladatessa Virhe läheisiä monumentteja haettaessa. Ei viimeaikaisia hakuja Haluatko varmasti tyhjentää hakuhistoriasi? @@ -669,6 +669,10 @@ Sijainti poistettu! Kiitä tekijää Tiedosto tallennettu onnistuneesti + Haluatko avata GPX-tiedoston? + Haluatko avata KML-tiedoston? + KML-tiedoston tallentaminen epäonnistui. + GPX-tiedoston tallentaminen epäonnistui. %d kuva valittu %d kuvaa valittu diff --git a/app/src/main/res/values-krc/strings.xml b/app/src/main/res/values-krc/strings.xml index 45cfafec5..1a1f83cde 100644 --- a/app/src/main/res/values-krc/strings.xml +++ b/app/src/main/res/values-krc/strings.xml @@ -5,60 +5,762 @@ * Къарачайлы --> - Викигёзен + Викигёзенни Facebook Бети + Викигёзенни Github Къайнакъ Коду + Викигёзен Лого + Викигёзен вебсайт + Локация сайлаучудан чыкъ + Джибер + Башха ачыкълау къош + Джангы къошум къош + Камерадан къошум къош + Фотосуратладан къошум къош + Алгъынгы къошумла галериядан къошум къош + Тюб джазыула + Тил ачыкълау + Тюб джазыу + Ачыкълау + Сурат + Барысы да + Ач/Джукълат + Кёрюнюу Изле + Джерни Болуму + Кюнню сураты + + %1$d файл джюкленеди + %1$d файл джюкленеди + + + (%1$d) + (%1$d) + + Джюклеуле Башланадыла + + %d джюклениу этиледи + %d джюклениу этиледи + + + %d джюклеу + %d джюклеу + + + Бу сурат %1$s лицензнияны тамалында боллукъду + Бу суратла %1$s лицензнияны тамалында боллукъдула + + + %1$d джюклеу + %1$d джюклеу + + + Юлюшленнген контент алынады. Суратны ишлению, суратны боюна эмда девайсыгъызгъа байламлы болуб, бираз заман алыргъа боллукъду. + Юлюшленнген контент алынады. Суратны ишлению, суратны боюна эмда девайсыгъызгъа байламлы болуб, бираз заман алыргъа боллукъду. + + Аула + Кёрюнюую + Баш + Кери билдириу + Ташалыкъ + Гёзен Джарашдырыўла + Гёзеннге джюкле + Джюклеу бардырыла турады Хайырланыучуну аты Пароль + Commons Beta хыйсабыгъыгъа киригиз Кир + Паролугъузнуму унутхансыз? + Регистрация эт Системагъа кириу Бираз сакълагъыз… + Тюб джазыула эмда ачыкълаула джангыртыладыла + Бираз сакълагъыз… Кириу джетишимлиди! - Системагъа кириуде халат - Аутентификацияда халат! + Системагъа кириуде халат! + Файл табылмады. Тилейбиз, башха файлны кёрюгюз. + Къайтарыб сынау лимитге джетгенди! Тилейбиз, джюклеуню тохтатыгъыз эмда джангыдан кёрюгюз + Батарейни оптимизациясы джукълатылсынмы? + Батарей оптимизация джукълатылса, 3-ден аслам сурат джюклеу ышангылы ётерикди. Тилейбиз, проблемасыз джюклеу ючюн, Викигёзенни къошагъыны джарашдырыуларында батарей оптимизацияны джукълатыгъыз.\n\nБатарей Оптимизацияны джукълатыр ючюн атыллыкъ атламла:\n\nАтлам 1: Энишгедеги кесегинде \"Джарашдырыула\" тиекге басыгъыз\n\nАтлам 2: \"Оптимизация этилмегенди\" сайлауну \"Бютеу къошакъла\" бла алмашдырыгъыз\n\nАтлам 3: \"Викигёзен\" неда \"fr.free.nrw.commons\" табыгъыз\n\nАтлам 4: Басыгъыз эмда \"Оптимизация Этме\" сайлауну сайлагъыз.\n\nАтлам 5: \"Этилди\" сайлаугъа басыгъыз. + Аутентификацияда халат! Тилейбиз, энтда бир кере киригиз. Джюклеу башланды! + Джюклеу кёзюуюн сакълайды (тимитли байланыу режим джандырылыбды) %1$s джюкленди! Джюкленнген файлгъа къарар ючюн басыгъыз - %1$s джюклениую башланды + Файл джюклене турады: %s %1$s джюклене турады %1$s джюклениб бошалды + %1$s джюклеу джетишимсиз болду + %1$s джюклеу туракълады Къарар ючюн басыгъыз - Джюклегенлерим - Джюклениу халат + Къарар ючюн басыгъыз + Ахыр Джюклеулерим + Кёзюуде + Джетишимсиз %1$d%% тамамланды Джюклениу Галереядан Суратха ал + Джуўукъда Джюклегенлерим - Башлыкъ + Юлюшле + Файлны бетине къара + Тюб джазыу (Амалсыз) + Бу файл ючюн тюб джазыу джазсагъыз Ачыкълау - Системагъа кириуде халат! + Тюб джазыу + Кириу джетишимсизди - аулауда халат + Кёб джетишимсиз сынау болду. Тилейбиз, талай минст сора энтда кёрюгюз. + Кечериксиз, бу хайырланыучу Гёзенде блок этилгенди + Эки факторлу аутентификация кодну берирге керексиз. + Системагъа кириуде халат Джюкле + Бу къауумха ат бер Тюрлениуле Джюкле Категорияланы изле + Медиагъызда суратланнган элементлени излегиз (тау, Тадж Махал э. а. к.) Сакъландыр + Джангырт + Тизме + (Алкъын джюклеуле джокъдула) + %1$s бла келишген категория табылмады + %1$s бла келишген Викибилгилени элементи табылмады + %1$s бала класс джокъду + %1$s ана класс джокъду + Суратлагъызны Викигёзенде тынчыракъ табылыр ючюн категория къошугъуз. Категория къошар ючюн джазыб башлагъыз. Категорияла Джарашдырыўла + Регистрация + Сайланнган Суратла + Хайырланыучуну Сайлаучусу + Категория + Эксперт Тинтиу Юсюнден + Викигёзен къошакъ, Викимедиа джамагъатны грантларыны къошулуучулары эмда волонтрла джаратылгъан, эмда бардырылгъан ачыкъ къайнакълы къошакъды. Викимедиа Фонд, къошакъны болдурууу, айнытыуу эмда баджарыуу бла байламлы тюлдю. + Халат отчетла эмда теджеуле ючюн джангы <a href=\"%1$s\">GitHub излем</a> болдуругъуз. + Ташалыкъ политика + Къошум этгенле Юсюнден Оюмунгу билдир (эл. почта бла) + Почта клиент къурулмагъанды + Кёб болмай хайырланнган категорияла + Биринчи синхронизацияны сакълаб турады... + Алкъын джюкленнген фотосуратыгъыз джокъду. + Джангыдан сына Ызына ал + Бу суратны джибериб, буну кесими урунуум болгъанын, автор хакъла бла къорууланнган материал неда селфи ичинде болмагъанын, эмда башха <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines/tr\">Викигёзен политикалагъа</a> келишгенин баямлайма. Эндир - Лицензия - CC Attribution-ShareAlike 3.0 - CC Attribution 3.0 + Тынгылау бла Лицензия + Аллындагъы башлыкъ эмда ачыкълауну хайырлан + Тема + Attribution-ShareAlike 4.0 + Attribution 4.0 + Attribution-ShareAlike 3.0 + Attribution 3.0 CC0 CC BY-SA 3.0 CC BY 3.0 + Викигёзен, Википедияда хайырланнган суратланы кёбюсюн ичинде тутар. + Суратларыгъыз, дунияны тёрт джанындагъы инсанлагъа окъуу алыуда болушлукъчу боллукъду. + Тилейбиз, тамамы бла кесигиз алгъан неда салгъан суратланы джюклегиз: + Табийгъат объектле (гоккала, джаныуарла, таула) + Хайырланнган объектле (аякъ мешинала, темирджол станцияла) + Белгили адамла (мэригиз, сиз тюбеген олимпиячы спортчула) + Тилейбиз, быланы ДЖЮКЛЕМЕГИЗ: + Селфиле неда шохларыгъызны картлары + Интернетден сиз эндирген суратла + Иелери болгъан къошакъланы скриншотлары + Юлгю джюклеу: + Башлыкъ: Синдей Опера Театр + Ачыкълау: Сидней Опера Театр, богъазны туурасындан кёрюнюую + Категорияла: Сидней Опера Театр кюнбатышдан, Сидней Опера Театр узакъдан кёрюнюмлери Кесинги суратларынгы къош. Википедиягъа статьяланы джанландырыргъа болуш! Википедиядагъы суратла Викигёзендендиле. + Суратларыгъыз, бютеу дуниядагъы инсанланы окъуу алыуда болушлукъчу боллукъду. + Интернетде табхан, автор хакъла бла къорууланнган материалладан, сёз ючюн, плакат, китаб тыш э. а. к. хайырланыудан джанлагъыз. Буну ангыладыгъызмы? Хоу! + Аслам Информация Категорияла Джюклениу… Бир зат да сайланмагъанды + Тюб джазыу джокъду Ачыкълау джокъду + Сюзюу джокъду Билинмеген лицензия Джангырт + Асырау Эркинлик Излем + Керекли эркинлик: Тыш асыраучудан окъуу. Къошакъ, бу болмагъанлай галереягъызгъа джетишалмаз. + Керекли эркинлик: Тыш асыраучудан окъуу. Къошакъ, бу болмагъанлай камерагъызгъа/галереягъызгъа джетишалмаз. + Локация Эркинлик Излем + Къошакъ ичинде локацияны суратха алыугъа джаздырыу + Девайс камераны джаздырмагъаны болса, локацияны къошакъны ичиндеги картха алыу бла сакъландырыр ючюн, буну джандырыгъыз + ОК + Эс бёлюгюз + Къайтарылгъан Файл Ат табылды + Джюкле + Хоу + Огъай + Тюб джазыу + Башлыкъ + Суратлаула + Ачыкълау + Сюзюу + Автор + Джюклениу дата + Лицензия + Координатла + Баджармагъанды + Бета-Тестер болугъуз + Google Play-де бета каналыбызгъа къошулугъуз эмда джангы функциялагъа эмда халат тюзетиулеге эртде джетишигиз + 2FA Код + Кертиден чыгъаргъа излеймисиз? + Медиа Сурат Джетишимсизди + Тюб категория табылмады + Ана категорияла табылмадыла + Зао Тау + Ламала + Джангкъылыч Кёпюр + Гюлханий + Википедиягъа Хош Келигиз + Автор Хакълагъа Хош Келигиз + Сидней Опера Театр + Ызына ал + Ач + Джаб + Баш бет + Джюкле + Джуўукъда + Юсюнден + Джарашдырыўла + Кери билдириу + GitHub юсю бла Кери билдириу + Чыкъ + Юретиучю + Хапарландырыула + Тинт + ачыкъланыу табылмагъанды + Гёзен файл бет + Викибилгилени элементи + Википедия статья + Тилейбиз, медианы къарыуугъузча ачыкълагъыз: Къайда алынды? Не кёргюзеди?Тилейбиз, объектлени эмда адамланы танытыгъыз. Тынч тюшюнюрча болмагъан информацияны кёргюзюгюз, сёз ючюн, ландшафт эсе, кюнню сагъатын. Медиада тюбей турмагъан зат эсе, тилейбиз, буну бир башха не шартлары болгъаны ангылатыгъыз. + Тилейбиз, суратны къысха ачыкълауун джазыгъыз. Биринчи сурат ачыкълау, суратны Башлыгъы болуб хайырланныкъды. 255 символгъа сыйындыр. + Бу сурат бла байламлы болургъа болгъан проблемала: + Сурат асыры къарангыды. + Сурат мутхузду. + Сурат алайсыз да Гёзендеди. + Бу сурат башха джерде алыннганды. + Тилейбиз, джангыз кесигиз алгъан суратланы джюклегиз. Башхаланы Фейсбук хыйсабларында табдыгъыз суратла эсе, джюклемегиз. + Алкъын бу суратны джюклерге излеймисиз? + Байланыу халат + Джюклеуге, интернет бла хайырланырча амал керекди. Тилейбиз, аулау байламыгъызны тинтигиз. + Суратда табылгъан проблемала + Тилейбиз, джангыз кесигиз алгъан суратланы джюклегиз. Интернертден эндирген суратланы джюклемегиз. + Къошакъда этилген суратланы сакъландыр + Къошакъда камера бла алыннган суратланы девайсыгъызны асыраучусуна сакъландырыгъыз. + Хыйсабыгъызгъа киригиз + Лог-файлны джибер + Къошакъ бла байламлы проблемаланы тюзетир ючюн, джаратыучулагъа лог-файлны электрон почта бла джибер. Эсгертиу: журналла потенциал халда энчи информация тутаргъа болурла + URL ачарча веб-браузер табылмады + Халат! URL табылмады + Кетериуге Теджерге + Бу сурат кетерир ючюн теджелди + Веб бетни толу билгилерин кёр + Атлат + Кир + Авторизацияны керти да атлатыргъамы излейсиз? + Боллукъ заманда сурат джюклер ючюн кирирге керек боллукъсуз. + Бу функцияны хайырланыр ючюн, тилейбиз, киригиз + Викитекстни алмашдырыу буферге копия эт + Викитекст алмашдырыу буферге копия этилди + Джууукъдагыла тюз ишлеялмайды, Локация хайырландырылалмайды. + Локациягъа джетишиу уналмады. Бу функцияны хайырланыр ючюн, тилейбиз, локациягъызны къолугъуз бла белгилегиз. + Джууукъдагъы джерле тизмени кёргюзюр ючююн, эркинлик берирге керекди + Джууукъдагъы суратла тизмени кёргюзюр ючююн, эркинлик берирге керекди + Буйрукъла + Викибилгиле + Википедия + Гёзен + Бизе багъа бич + FAQ + Хайырланыучуну юретиучю + Юретиучюню Атлат + Интернет хайырланалмайды + Хапарландырыу алыннганда халат + Тинтирге сурат алыуда халат болду. Джангыдан сынар ючюн джангырт тиекге басыгъыз. + Хапарарландырыу табылмады + Кёчюр + Тилле + Кёчюрюу джиберирге излеген тилигизни сайлагъыз + Бардыр + Ызына ал + Джангыдан сына + Была, Википедия статьяланы суратлы этер ючюн суратлагъа керек болгъан сизге джууукъ джерле.\n\n\n\'БУ БЁЛГЕДЕ ИЗЛЕ\'ни басыб, карта ачылыр эмда ол локацияны къатында излеуню башлар. + Былайда фотосурат керекди. + Былайда фотосурат алайсыз да барды. + Былайы энди джокъду. + Сурат табылалмады! + Суратла джюкленнген заманда халат болду. + Джюклеген: %1$s + Блок этилди + Гёзенни тюзетиуюгюз блок этилди + Кюнню сураты + Изле + Гёзенде изле + Изле + Ахыр излеуле: + Ахыр изленген соруула + Ахыр изленнген тилле + Категорияла джюкленнген заманда халат болду. + Суратлаула джюкленнген заманда халат болду. + Медиа + Категорияла + Элементле + Сайланнган + Мобил мадар бла джюкленди + Карта + Сурат, Викибилгиледе %1$s элементге къошулду! + Келишген Викибилгиле барлыкъ джангыртылалмады! + Къабыргъа къагъыт этиб сал + Къабыргъа къагъыт джетишимли салынды! + Соруулау + Бу сурат джюклеуге келишемиди? + Соруу + Эсеб + Кетерирге керекли суратланы андан ары да джюклеуню бардырсагъыз, хыйсабыгъыз блокга тюшериги ишексизди. Соруулауну битдирге излегенигизге ишексизмисиз? + Сиз джюклеген суратладан кетерилгенни саны: %1$s. Кетерилирге керек суратланы Кетерирге керекли суратланы андан ары да джюклеуню бардырсагъыз, хыйсабыгъыз блокга тюшериги ишексизди.\n\nЮретиучюню къайтарыб кёргюзюрге эмда ызындан къаллай типли суратланы джюклерге керек болгъаны бла болмагъанын билирге болушлукъ боллукъ тест этерге излеймисиз? + Селфилени энциклопедиялыкъ багъалары джокъду. Тилейбиз, сизни юсюгюзден Википедия статьягъыз джокъ эсе, кесигизни суратыгъызны джюклемегиз. + Эсгертме эмда ландшафт суратла къралланы кёбюсюнде джюкленирге джарайдыла. Тышындагъы болджаллы санат инсталляцияла асламысы бла автор хакълагъа иедиле, эмда джюклер ючюн келишмегенлерин унутмагъыз. + Вебсайтланы скриншотлары, чыгъармаланнган ишлеге саналгъанлары ючюн, вебсайтны кесинде белгиленнген автор хакъланы субъектиди. Скриншотла, вебсайтны авторундан алыннган эркинликден сора хайырланырча боладыла. Аллай эркинлик болмаса, чыгъармаланы тамалында сиз этген къаллай да болсун чыгъарма, тамал авторгъа хакълары берилген, лицензиясы болмагъан копиягъа саналады. + Гёзенни нюзюрлеринден бири агъачлары мийик суратланы джыйыуду. Ол себебден, мутхуз суратла джюкленмезге керекдиле. Хар заман иги джарыкъ бла ариу суратланы алыргъа кюрешигигз. + Гёзенде технололгия эмда культура санагъатда суратлагъа хар заманда да хош тюбейдиле. + %1$s тюз джууаб бердигиз. Алгъышлайбыз! + Сорууну джууаблар ючюн эки сайлауну бирин сайлагъыз. + Сессияны болджалы чыкъгъанды. Тилебиз, джангыдан киригиз. + Шохларыгъыз бла соруулауну юлюшлегиз! + Бардыр + Тюз Джууаб + Терс Джууаб + Бу скриншот джюклер ючюн келишемиди? + Къошакъны юлюшле + Бур + Къатындагъа джерлени джюклеу джетишимсиз + Былайда джукъ сурат джокъду + Джууукъда джер джокъду + Джууукъда эсгертмелени алгъан заманда халат. + Ахыр излеуле джокъдула + Излеу тарихни тазаларгъа излегенигизден ишексизмисиз? + Бу джюклеуню кери алыргъа излегенигизге ишексизмисиз? + Бу излеуню кетерирге излеймисиз? + Излеу тарих кетерилди + Кетериуге Теджерге + Кетер + Джетишимле + Профиль + Статистика + Бюсюреуле Алындыла + Сайланнган Суратла + \"Джууукъдагъы Джерле\" юсю бла суратла + Дараджа + Суратла Джюклендиле + Суратла Кери Алынмадыла + Суратла Хайырландыла + Джетишимлеригизни шохларыгъыз бла юлюшлегиз! + Бу излемлени шартларын тындырылгъанлары бла бирге дараджаггъыз ёсерикди. \"Статистика\" бёлюмюндеги элементле дараджагъыз бла байламлы тюлдюле. + минимум керекли: + Къаллай да болсун программа баджарыу бла Гёзеннге сиз джюклеген суратны саны + Гёзеннге сиз джюклеген кетерилмеген суратланы проценти + Гёзеннге сиз джюклеген эмда Викимедиа статьялада хайырланнган суратланы саны + Халат болду! + Гёзен Хапарландырыу + Энчи автор атны хайырлан + Фотосуратла джюклеген заманда хайырланыучу атыгъызны орнуна энчи автор ат хайырланыгъыз + Энчи автор ат + Къошумла + Джуўукъда + Хапарландырыула + Хапарландырыула (окъулгъан) + Джууукъдагъыла хапараландырыуну кёргюз + Суратла керек болгъан эм джууукъ джер ючюн къошакъ ичи хапарландырыу кёргюз + Тизме + Асыраучугъа Эркинлик + Суратланы джюклер ючюн девайсыгъызны тыш асыраучусуна джетиширге эркинлик алыргъа керекди. + Энди сизге эм джууукъ джерлени кёрлюк тюлсюз. Алай а излеген бу хапарландырыуну Джарашдырыулада джангыдан джандырырчасыз. + Атлам %1$d/%2$d: %3$s + Эндиги + Аллындагъы + %1$s атлы файл алайсыз да барды. Андан ары бардырыгъа излегенизге ишексизмисиз?\n\nЭсгертиу: файлны атына автомат халда келишген суффикс къошуллукъду. + Девайсыгъызда келишген картография къошакъ табылмады. Тилейбиз, бу энчиликни хайырландырыр ючюн картография къошакъ джюклегиз. + Суратла + Локацияла + Китаб белгилени къош/къорат + Китаб белгиле + Алкъын чырт китаб белги къошмадыгъыз + Китаб белгиле + Лог джыйыу башланнганды. Тилейбиз ДЖАНГЫЛАН БАШЛАТЫГЪЫЗ, журналгъа сакъландырыргъа излеген ишлеуню тындырыгъыз эмда ызындан джангыдан \'лог-файлны джибер\'ни басыгъыз + Джангылыч джюкледим + Буну хар ким кёрюрча боллугъун билмей эдим + Ташалыгъыма аман болгъанын ангыладым + Сагъышымы тюрлендирдим, энди хар кимге кёрюннюгюмю излемейме + Кечериксиз, бу сурат энциклопедия ючюн эс бёлюрча тюлдю + Кесим джюклеген %1$s сайтха джюкленди эмда %2$d статьяда хайырландырылды. + Гёзеннге Хош Келигиз!\n\nКъош тиекге басыб биринчи медиагъызны джюклегиз. + Категорияла Сайланмадыла + Категориясыз суратла аз хайырланадыла. Категория сайламай бардырыргъа излегенигизге ишексизмисиз? + Танытыула Сайланмадыла + Танытыулары болгъан суратланы табхан эмда хайырланнган тынчыракъ боллукъду. Танытыуу сайламай андан ары бардырыргъа излегенигизге ишексизмисиз? + Джюклеуню Ызына Ал + Кери тиекни хайырланыб, бу джюклеуню ызына аллыкъсыз эмда ишлеулеригизни тас этериксиз + Джюклеуню Бардыр + (Тобламадагъы бютеу сурат(ла) ючюн) + Бу бёлгеде изле + Эркинлик Излем + Суратла керекли эм джууукъ джерни кёргюзюр ючюн, болгъан локациягъызны хайырланырыбызны излеймисиз? + Локация эркинлик болмагъанлай, сурат керек болгъан эм джууукъ джер кёргюзтюрча тюлдю + Буну мындан сора сорма + Локация эркинлик излегиз + Джууукъдагъы хапарландырыу картны кёргюзюу функциясы ючюн керек болса локация эркинлик излегиз. + Не эсе да терс кетди, биз джетишимлеригизни алалмадыкъ + Джетишим эсеблеучю системабыз онглаямлазча, бек кёб къошум этдигиз. Бу уллу джетишимди. + Бошалады: + Компанияланы кёргюз + Баргъан компанияланы кёргюз + Камера джазмай эсе, къошакъгъа локацияны алыргъа эркинлик беригиз. Бир къауум девайс камерала локацияны джаздырмазла. Быллай болумлада къошакъны локация алыб эмда къошарына эркинлик бергенигиз, къошумугъузну андан да файдалы халгъа келтирир. Буну излеген заманыгъызда Джарашдырыулада тюрлендирирге боллукъсуз. + Эркинлик бер + Унама + Тилейбиз, Джарашдыруладан локациягъа джетишиуню ачыгъыз эмда энтда бир кере кёргюз.\n\nЭсгертиу: Къошакъ, къысха бир заман ичинде девайсдан локация алалмазса, джюклеуде локация информация болмазгъа болур. + EXIF-де локация болмаса, къошакъ ичи камераны локациягъызны суратларыгъызгъа къошалырча болур ючюн, локациягъа эркинлик керекди. Тилейбиз, къошакъны локациягъызгъа джетишалырча эркинлик беригиз эмда джангыдан кёрюгюз.\n\nЭсгертиу: Къошакъ, къысха бир заман ичинде девайсдан локация алалмазса, джюклеуде локация информация болмазгъа болур. + Къошакъ, локация эркинлик болмаса, картха алыула бла бирге локацияларын джаздырлыкъ тюлдю + GPS джукълатылгъаны себебли, къошакъ картла бла бирге локацияларын джаздырмайды. + Документ тамалында фото сайлаучуну хайырлан + Джангы Android фото сайлаучуну, локация информацияны тас этер къоркъуу барды. Аны хайырланыр акъылыгъыз бар эсе, джандырыгъыз. + Буну джукълатыу, джангы Android фото сайлаучуну джандырыр. Локация информацияны тас этер къоркъуу барды.\n\n\'Аслам бил\' тиекни басыб аслам информация алыгъыз. + Энди чырт компанияланы кёрлюк тюлсюз. Алай а излесегиз Джарашдырыулада джангыдан джандырырчасыз. + Бу функция нетаулау излеуди. Байламыгъызны джарашдырыуларын тинтигиз. + Сурат ишлеуде халат болду. Тилейбиз, джангыдан сынагъыз! + Тюзетиу ючюн токен алынады + Категория тинтиу ючюн шаблон къошуу + %1$s ючюн категория тинтиу излем барады + Категория тинтиу излем барады + Категория тинтиу излем этилди + Категория тинтиу излем ишге джарамады + %1$s ючюн излем болгъан категоря тинтиу + %1$s ючюн категория тинтиу излем болмады + %1$s ючюн категория тинтиу излем барады + Тындырылды + Бюсюреуле Джибериу: Джетишимли + %1$s бюсюреуле джиберилдиле + %1$s бюсюреуле джиберилалмадыла + Бюсюреуле Джибериу: Джетишимсиз + %1$s ючюн Бюсюреуле Джибериу + Бу автор хакълагъа келишемиди? + Бу тюз категориялашханмыды? + Бу келишемиди? + Къошулуучугъа бюсюрерге излеймисиз? + Чырт файдалы тюл эсе, бу суратны кетерирге теджеу джиберир ючюн ОГЪАЙ-ны басыгъыз. + Логола, скриншотла, фильм афишала асламысы бла автор хакъланы бузадыла. Бу суратны кетерирге теджеу джиберир ючюн ОГЪАЙ-ны басыгъыз. + %1$s бюсюреуюгюзню аллыкъды + Оу, бу таб энтда категориялашдырылмагъанды + Бу сурат %1$s категорияладанды. + Бу себебден келишмейди: + Бу себебден автор хакълары бузулубдула: + Эндиги сурат + Хоу, нек болмасын + Бу тиекге бассагъыз, Викигёзенден джангы джюклеген башха сурат аллыкъсыз + Викигёзенни агъачын иги этер ючюн суратланы тинтерге боллукъсуз.\nТинтиуню юч параметри быладыла:\n\n- Бу сурат келишемиди?\nОгъайны (келишмейди) бассагъыз, бу суратха кетериуге теджеу шаблон къошарыкъсыз.\n\n- Бу сурат автор хакъланы джорукъларына келишемиди?\nОгъайны (автор хакълагъа келишмейди) бассагъыз, бу суратха кетериуге теджеу шаблон къошарыкъсыз.\n\n- Бу сурат тюз категориялашханмыды?\nОгъайны (тюз категориялашмагъанды) бассагъыз, бу суратха категориялашыу излмем шаблон къошарыкъсыз.\n\nХар не джолунда эсе, суратха джукъ шаблон къошулмаз, эмда къошум этгеннге бюсюреу джиберир амал алырсыз. + Чырт сурат хайырланмады + Кери келтирилген сурат джокъду + Джюкленнген сурат джокъду + Окъулмагъана хапарландырыуугъуз джокъду + Окъулмагъан хапарландырыуугъуз барды + Логларыгъызны хайырланыб юлюшлегиз + Окъулгъанны кёргюз + Окъулмагъанланы кёргюз + Суратла сайланнган заманда халат болду. + Бираз сакълагъыз… + Сайланнган суратла, Викигёзен джамагъат, сайтдагъы эм мийик агъачы болгъанды деб сайлагъанды, эм фахмулу фотографла бла иллюстраторланы суратларыды. + Джууукъдагъы джерле юсю бла джюкленнген суратла, картадагъы джерлени табыб джюкленнген суратладыла. + Бу функция, редакторланы, тарих бетде неда версия башхалыкъ бетде, гитче бюсюреу джибериуню хайырланыб, файдалы тюзетиулени этген хайырланыучулагъа Бюсюреу хапарландырыу джиберирге амал береди. + Сорагъы медиагъа копия эт + Копия этилди + Гёзеннге джюкленник иги суратланы юлгюлери + Джюкленмезлик суратланы юлгюлери + Бу суратны атлат + Джюклеу Джетишимсиз Болду!! Тыш асыраучугъа эркинлик берилмей джюклеяллыкъ тюлбюз. + EXIF-тегле бла ишле + Джюклеуледе къайсы EXIF-теглени тутуллукъларын сайла + Автор + Автор хакъла + Локация + Камераны Модели + Линзаны Модели + Серия Номерлери + Программа баджарыу + Медиа локациягъа джетишиу уналмады + Джюклеген суратладан локация билгилени автомат халда алмазгъа боллукъбуз. Тилейбиз, джибериуден алгъа хар сурат ючюн келишген локацияны къошугъуз + Фотосуратланы телефонугъуздан туура Викигёзеннге джюклегиз. Гёзен Къошакъны энди эндиригиз: %1$s + Къошакъны буну бла юлюшле... + Сурат Информация + Категорияла табылмадыла + Танытыула табылмадыла + Джюклеу Ызына Алынды + Аллындагъы суратны башлыгъы неда ачыкълауу ючюн билги джокъду + %1$s нек кетерилирге керекди? + %1$s джюклеген: %2$s + Тынгылау бла ачыкълау тил + Кетериуге теджеу + Джетишимли + %1$s кетериуге теджелди. + Джетишимсиз + Кетериуге излем этилалмады. + чырт бир статьяда хайырланмагъан селфи + тамамы бла мутхуз + ангыламсыз, чырт бир статьяда хайырланырча тюлдю + Басым фото + Интернетден рандом фото + Лого + Панорманы Эркинлигини Бузуу + Ол себебден + Категорияланы джангыртыргъа кюрешеди. + Категория джангыртыу + Джетишимли + + %1$s категория къошулду. + %1$s категория къошулду. + + Категория къошулалмадыла. + Категорияланы джангырт + Танытыуланы джангыртыргъа кюрешеди. + Танытыуланы тюзет + + %1$s Танытыу къошулду. + %1$s Танытыу къошулду. + + Танытыула къошулалмадыла. + Координатланы джангыртыргъа кюрешеди. + Координатланы джангыртыу + Ачыкълауланы джангыртыу + Тюб джазыуланы джангыртыу + Джетишимли + %1$s координатла къошулдула. + Ачыкълаула къошулдула. + Тюб джазыу къошулду. + Координатла къошулалмадыла. + Ачыкълаула къошулалмадыла. + Тюб джазыу къошулалмады. + Суратны координатлары джангыртылмады + Ачыкълау алынырча тюлдю. + Ачыкълауланы эмда тюб джазыуланы тюзет + Суратны буну бла юлюшле + Алкъын чырт къошум этмедегиз + %s алкъын чырт къошум этмеди + Хыйсаб къуралды! + Текст алмашдырыу буферге копия этилгенди + Хапарландырыу окъулгъанча белгиленди + Бир халат болду! + Джерни болуму: + Барды + Фото Керекди + Джерни типи: + Кёпюр, музей, къонакъ юй эмда а. к. + Не эсе да терс кетди. Паролугъузну ташларгъа керексиз! + МЕДИА + БАЛА КЛАССЛА + АНА КЛАССЛА + Джууукъдагъы Джер Табылды + Бу %1$s суратмыды? + Китаб белгиле + Джарашдырыўла + Китаб белгиледен къоратылды + Китаб белгилеге къошулду + Не эсе да терс кетди. Къабыргъа къагъыт къурулалмады + Къабыргъа къагъыт эт + Къабыргъа Къагъыт къурула турады. Тилейбиз сакълагъыз... + Системаны джарашдыр + Къарангы + Джарыкъ + Локация джарашдырыула ачылалмадыла. Тилейбиз, локацияны къолугъуз бла джандырыгъыз. + Эм иги эсебле ючюн Мийик Кескинлик режимни сайлагъыз. + Локация джандырылсынмы? + Тилейбиз, къошакъ бусагъатдагъы локациягъызны кёргюзюр ючюн, локация къуллукъланы джандырыгъыз. + Джууукъдагъыланы тюз ишлерлери ючюн, локация джандырылыб турургъа керекди + Джууукъдагъы суратланы кёргюзюр ючюн Аулау картагъа локация эркинлик керекди + Локацияны автомат халда къурур ючюн, локация эркинлик алыргъа керекди. + Бу эки фотосуратны бир джердеми алдыгъыз? Онгдагъы суратны кенглик/узунлугъун хайырланыргъа излеймисиз? + Аслам Джюкле + Джер табылмады, излеу шартларыгъызны тюрлендириб кёрюгюз. + Теджелген маджаллашдырыула: + - Хайырланыуну таблыгъын ёсдюрюр ючюн бу суратха категорияла къошугъуз. + - Бу суратны, сураты болмагъан байламлы Википедия статьягъа къош. + Википедиягъа сурат къош + Бу суратны %1$s Википедия статьягъа къошаргъа излеймисиз? + Къабыл эт + Инструкцияла + 1. Быллай викитекстни хайырлан: + 2. Къабыл Эт тиекни басханлай, Википедия статья ачылыр + 3. Статьягъызда суратыгъыз ючюн келишимли бёлюм табыгъыз + 4. Бу бёлюм ючюн Тюзетиу белгиге (карандашха ушаш) басыгъыз. + 5. Викитекстни келишимли джерле салыгъыз. + 6. Керек болса викитекстни, келишимли орунландырыр ючюн тюзетигиз. Аслам информация ючюн <a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\">бери къарагъыз</a>. + 7. Статьяны басмалагъыз + Викикодну алмашдырыу буферге копия эт + туракълат + бардыр + Туракълатылды + Энтда + Китаб белгиле + Джетишимле + Алчыланы таблицасы + Ранг: + Саны: + Ранг + Хайырланыучу + Саны + Алчыланы таблицасында аватар этиб къур + Аватар этилиб къурула турады, тилейбиз сакълагъыз + Аватар къурулду + Джангы аватар къурулгъан заманда, халат болду, тилейбиз, джангыдан кёрюгюз + Аватар этиб къур + Джылгъа + Ыйыкъгъа + Бютеу заман + Джюкле + Джуўукъда + Хайырланнган + Рангым + Чекленнген байланыу режим джандырылгъанды! + Чекленнген байланыу режим джукъланнганды. Сакълаб тургъан джюклениуле энди андан ары бардырыллыкъдыла. + Чекленнген Байланыу Режим + Агъачлары Мийик Суратла + Агъачлы суратла, белгили агъач стандартларына (асламысыны техника халы болады) келишген эмда Викимедиа проектле ючюн багъалы болгъан диаграммала неда фотосуратладыла + Джюклениу андан ары бардырылады... + Джюклениу туракъланады... + Джюклениу ызына алынады... + Джюклеуню Ызына Ал + Чекли байланыу режимни джандырдыгъыз. Бютеу джюклениуле туракълатыллыкъдыла эмда бу режимни джукълатсагъыз, тохтагъан джерден башларыкъдыла. + Чекленнген байланыу режим джандырылгъанды. + Тилейбиз, суратыгъызны не кёргюзтгенин ангылатхан къысха тюб джазыу джазыгъыз. Ачыкълауда, суратны неси сейир, неда кёб тюбеучю, неда санда бир тюбеучю неси болгъанын ачыкълагъыз. Мадарыгъызча, кескин терминологияны хайырланыгъыз. + Тилейбиз, бу суратда сыфатланнган бютеу концептлени табыгъыз эмда сайлагъыз. Мадарыгъызгъа кёре кескин болугъуз. Сурат бирден кёб элементни сыфатлай эсе, барысын да керекли мардада сайлагъыз. Андан да кескин тегле бар эсе, ортакъ теглени сайламагъыз. + Тилейбиз, келишген категорияланы сайлагъыз. Танытыулача болмай, категорияла барысы да къуру ингилизчадыла. + Гёзен, суратларыгъызны хар ким да джангыдан хайырланырча эмда келишдирирча халгъа келтирликди. Бютеу хакълагъа иеликни унамазгъа излеймисиз? Авторлугъугъуз белгиленирин излеймисиз? Чыгъармаланнган ишле биягъы лицензияны хайырланырларын излеймисиз? + Кёргюзеди + Медиа Лицензия + Медианы Толу Билгилери + Категорияны бетине къара + Элемент бетни кёргюз + Къошакъны хайырланыучу интерфейсини тили + Тюб джазыуну эмда ачыкълауну къоратады + Энтда окъу + Бютеу тилледе + Локацияны сайла + Джарашдырыр ючюн панорама эт эмда джуукълашдыр + Локация сайла + Карта къошакъда кёргюз + Локацияны тюзет + Локация сайлаучуну сурат кёрюнюмю + \n\n Локация сайлаучуну сурат кёрюнюмюню кёлеккеси + Суратны Локациясы + Локацияны тюз болгъанын тинт + Белги + Ачыкълау + Элементле + Хайырланыучуну Сайлаучусу + Суратла джокъду + Тындырылды + Кери + Энчи Сурат Сайлаучугъа Хош Келигиз + Бу сайлаучу, Гёзенде къайсы суратланы джюклегенигизни кёргюзюр. + Солдагъы суратдан башха болуб, онгдагъы суратда алайсыз да джюкленнгенин белгилеген Гёзенни логосу барды. Суратны ал къарауу ючюн басыб туругъуз. + Сейирлик + Бу сурат Гёзеннге алайсыз да джюкленнгенди. + Техника чурумла бла къошакъ бир заманда %1$d фотосуратдан асламыны къоркъуусуз шекелде джюклеялмайды. %1$d болгъан джюклеу марда %2$d бла оздурулду. + Унама + Максимум: %1$d + Халат: Джюклеу Марда Оздурулду + Бу сурат Вики Эсгертмелени Сюеди эришиуге къошуллукъду + Эсгертмелени кёргюз + Вики Эсгертмелени Сюеди айы! + АСЛАМ БИЛ + Вики, Эсгертмелени Сюеди, Викимедиа джанындан къуралгъан эсгретмеле ючюн халкъла арасы фото эришиудю + Эркинлик Керекди + Джууукъдагъы картала тюз ишлер ючюн ТЕЛЕФОННУ БОЛУМУн окъургъа амал болургъа кереклиди + Хайырланыучуну къошумлары: %s + Хайырланыучуну джетишимлери: %s + Хайырланыучу бетни кёргюз + Танытыуланы тюзет + Категорияланы тюзет + Кенгленнген Сайлаула + Джууукъдагъыла излемини джарашдырыргъа боллукъсуз. Халат алсагъыз, ариулагъыз эмда къабыл этигиз. + Хайырландыр + Ариула + Локация билги Вики редакторлагъа суратыгъызны табханын тынч этиб, андан да иги хайырланырча этеди.\nКамера къошагъыгъызны джарашдырыуларында локацияны джандырлыгъызны теджейбиз. Джюклениу ючюн сау болугъуз! + Локация табылалмады + Бу сурат алыннган джерни къошууну юсюнден не дерсиз?\nЛокация билгиле, Вики тюзетиучюлени суратыгъызны табмасына болушлукъ болуб, аны андан да бек хайырланырча этер. \nСау болугъуз! + Локацияны къош + Тилейбиз, хар кимге ачыкъ болуб юлюшерге излемеген бютеу информацияны бу электрон мектубдан къоратыгъыз. Аны юсюне, юлюшледигиз электрон адресигизни эмда байламлы ат эмда профиль суратыгъызны хар кимге ачыкъ кёрюннюгюню унутмагъыз. + Толу ачыкълаула + Джетишимле къуру prod версияда джетиширчады, тилейбиз, джаратыучу документация бла танышыгъыз. + Алчыланы таблицасы къуру prod версияда джетиширчады, тилейбиз, джаратыучу документация бла танышыгъыз. + Тилейбиз, къуру кесигиз алгъан фотосуратланы джюклегиз. Автор хакъла бла къоруланнган суратланы джюклегенле блок этилликдиле. Бу бета ючюн да джараулуду. Къошакъны тест этгенигиз ючюн сау болугъуз! + Тилейбиз, хар кимге ачыкъ болуб юлюшерге излемеген бютеу информацияны саулаудан къоратыгъыз. + API дараджа + Андроид версия + Девайсны чыгъарыучусу + Девайсны модели + Девайсны аты + Нетаулауну типи + Кери билдириу бергенигиз ючюн сау болугъуз + Кери билдириу джиберген заман халат болду + Кери билдириугюз неди? + Кери билдириугюз + Джюклеу ючюн тюлдю деб белгиле + Джюклеу ючюн тюлдю белгини къорат + Джюклеу ючюн тюлдю деб белгиленеди + Джюклеу ючюн тюлдю деб белги къоратылады + Хазыр этилиб бошагъан суратланы кёргюз + Хазыр этилиб бошагъан суратланы джашыр + Башха сурат табылмады + Бу сурат алайсыз да джюкленнгенди + Бу сурат джюклер ючюн сайланалмайды + Сурат сайланды + Сурат джюклениу ючюн тюлдю деб белгиленди + Билдирме + Акъ аркъа планны къур + Къара аркъа планны къур + Бузууну юсюнден билдир + Бу хайырланыучудан тарыкъ + Бу контентге тарыкъ + Бу хайырланыучуну блок этилиуюн изле + Толу Экран Сайлау Режимге Хош Келигиз + Джууукълашдырыр эмда узакълашдырыр ючюн эки бармакъны хайырланыгъыз. Бу талай этиуню этер ючюн бир джанына дженгил эмда узун тартыгъыз:\n- Солгъа/онгнга: аллындагъыгъа/эндиге кёчюу\n- Башына: сайлагъыз\n- Тюбюне: Джюклеуге джораланмагъанча белгиле. + Алчылыкъ таблицада аватарыгъызны джарашдырыр, къайсы болса да суратны юч нохтасы болгъан менюсундагъы \"Аватар этиб къур\" пунктну басыгъыз. + Координатла, кескин координатла болмасала да, бу суратны джюклеген адам бу координатланы джетерча джууукъду деб турады. + Асыраучу Эркинлик Уналмады + Бу элемент юлюшленалмайды + Ишлерча болууу ючюн эркинликле керекдиле + Хайырланырча ачыкълау къалай джазаргъа керек болгъанын юренигиз + Хайырланырча тюб джазыуну къалай джазаргъа керек болгъанын юренигиз + Джетишимлеригизге къарагъыз + Суратны Тюзет + Локацияны Тюзет + Локация джангыртылды! + Локацияны Къорат + Локация Эсгертиуню Къорат + Локация, суратланы андан да файдалы эмда излерге тынч этеди. Бу суратдан локацияны къоратыргъа керти да излеймисиз? + Локация къоратылды! + Авторгъа бюсюреу + Авторгъа бюсюреу джибериуде халат. + Сессиягъызны болджалы чыкъгъанды. Тилебиз, джангыдан киригиз. + GPX файлланы ачаллыкъ джетиширча къошакъ джокъду + Файл Джетишимли Сакъланды + GPX файлны ачаргъа излеймисиз? + KML файлны ачаргъа излеймисиз? + KML файл сакъландырыу джетишимсиз болду. + GPX файл сакъландырыу джетишимсиз болду. + KML файлны сакъланыуу + GPX файлны сакъланыуу + + %d сурат сайланды + %d сурат сайланды + diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index ba9cc8832..391f208a6 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -633,6 +633,7 @@ 无法打开位置设置。请手动打开位置 选择高精确度模式以获得最佳结果。 打开位置? + 请开启定位服务,以便应用显示您当前的位置 附近需要启用位置才能正常工作 您需要授予位置权限才能自动设置位置。 您是在同一地点拍摄这两张图片的吗?您想要使用右侧图片的纬度/经度吗? From c178c5de419296e8abad3fead8174bacb9369cdd Mon Sep 17 00:00:00 2001 From: Evangelos Talos <115378448+vtalos@users.noreply.github.com> Date: Thu, 2 May 2024 14:12:32 +0300 Subject: [PATCH 006/499] Enhancing Multi-Upload Functionality for Consistent Depiction Categorization (#5700) * Add AlertDialog for categories and modularize receiveSharedItems * Improve nearby-place search function for a multi-upload Enhance the depiction consistency of a multi-upload by ensuring that it corresponds to a single place * Add javadoc * Update strings.xml * Renamed setImageTobeUploaded to setImageToBeUploaded * Make uploadIsOnPlace private & add a setter * Rename uploadIsOnPlace to uploadIsOfAPlace * Use singular when there is only one picture * Add a 'Do not show again' checkbox on the dialog * Update strings.xml --------- Co-authored-by: Giannis Karyotakis <110292528+karyotakisg@users.noreply.github.com> Co-authored-by: Nicolas Raoul --- .../commons/contributions/MainActivity.java | 1 + .../nrw/commons/upload/UploadActivity.java | 199 ++++++++++++------ .../UploadMediaDetailFragment.java | 54 +++-- .../UploadMediaDetailsContract.java | 2 +- .../mediaDetails/UploadMediaPresenter.java | 32 ++- .../activity_upload_categories_dialog.xml | 16 ++ app/src/main/res/values/strings.xml | 5 +- 7 files changed, 210 insertions(+), 99 deletions(-) create mode 100644 app/src/main/res/layout/activity_upload_categories_dialog.xml diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java index 7862493fd..63bde1be9 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java @@ -142,6 +142,7 @@ public class MainActivity extends BaseActivity } else { if (applicationKvStore.getBoolean("firstrun", true)) { applicationKvStore.putBoolean("hasAlreadyLaunchedBigMultiupload", false); + applicationKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", false); } if(savedInstanceState == null){ //starting a fresh fragment. diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 6b46a103f..707bf1363 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -20,8 +20,11 @@ import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.provider.Settings; import android.util.DisplayMetrics; +import android.view.LayoutInflater; import android.view.View; +import android.widget.CheckBox; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; @@ -100,6 +103,7 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, private Place place; private LatLng prevLocation; private LatLng currLocation; + private static boolean uploadIsOfAPlace = false; private boolean isInAppCameraUpload; private List uploadableFiles = Collections.emptyList(); private int currentSelectedPosition = 0; @@ -123,10 +127,8 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, * when necessary. Initially, it is set to `true`, indicating that the permissions dialog * should be displayed if permissions are missing and it is first time calling * `checkStoragePermissions` method. - * * This variable is used in the `checkStoragePermissions` method to determine whether to * show a permissions dialog to the user if the required permissions are not granted. - * * If `showPermissionsDialog` is set to `true` and the necessary permissions are missing, * a permissions dialog will be displayed to request the required permissions. If set * to `false`, the dialog won't be shown. @@ -438,6 +440,15 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, } } + /** + * Sets the flag indicating whether the upload is of a specific place. + * + * @param uploadOfAPlace a boolean value indicating whether the upload is of place. + */ + public static void setUploadIsOfAPlace(boolean uploadOfAPlace) { + uploadIsOfAPlace = uploadOfAPlace; + } + private void receiveSharedItems() { thumbnailsAdapter.context=this; Intent intent = getIntent(); @@ -452,8 +463,14 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, handleNullMedia(); } else { //Show thumbnails - if (uploadableFiles.size() - > 1) {//If there is only file, no need to show the image thumbnails + if (uploadableFiles.size() > 1){ + if(!defaultKvStore.getBoolean("hasAlreadyLaunchedCategoriesDialog")){//If there is only file, no need to show the image thumbnails + showAlertDialogForCategories(); + } + if (uploadableFiles.size() > 3 && + !defaultKvStore.getBoolean("hasAlreadyLaunchedBigMultiupload")){ + showAlertForBattery(); + } thumbnailsAdapter.setUploadableFiles(uploadableFiles); } else { binding.llContainerTopCard.setVisibility(View.GONE); @@ -467,77 +484,17 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, } - /* Suggest users to turn battery optimisation off when uploading more than a few files. - That's because we have noticed that many-files uploads have - a much higher probability of failing than uploads with less files. - - Show the dialog for Android 6 and above as - the ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS intent was added in API level 23 - */ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (uploadableFiles.size() > 3 - && !defaultKvStore.getBoolean("hasAlreadyLaunchedBigMultiupload")) { - // When battery-optimisation dialog is shown don't show the image quality dialog - UploadMediaPresenter.isBatteryDialogShowing = true; - DialogUtil.showAlertDialog( - this, - getString(R.string.unrestricted_battery_mode), - getString(R.string.suggest_unrestricted_mode), - getString(R.string.title_activity_settings), - getString(R.string.cancel), - () -> { - /* Since opening the right settings page might be device dependent, using - https://github.com/WaseemSabir/BatteryPermissionHelper - directly appeared like a promising idea. - However, this simply closed the popup and did not make - the settings page appear on a Pixel as well as a Xiaomi device. - - Used the standard intent instead of using this library as - it shows a list of all the apps on the device and allows users to - turn battery optimisation off. - */ - Intent batteryOptimisationSettingsIntent = new Intent( - Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); - startActivity(batteryOptimisationSettingsIntent); - // calling checkImageQuality after battery dialog is interacted with - // so that 2 dialogs do not pop up simultaneously - presenter.checkImageQuality(0); - UploadMediaPresenter.isBatteryDialogShowing = false; - }, - () -> { - presenter.checkImageQuality(0); - UploadMediaPresenter.isBatteryDialogShowing = false; - } - ); - defaultKvStore.putBoolean("hasAlreadyLaunchedBigMultiupload", true); - } - } for (UploadableFile uploadableFile : uploadableFiles) { UploadMediaDetailFragment uploadMediaDetailFragment = new UploadMediaDetailFragment(); - LocationPermissionsHelper locationPermissionsHelper = new LocationPermissionsHelper( - this, locationManager, null); - if (locationPermissionsHelper.isLocationAccessToAppsTurnedOn()) { - currLocation = locationManager.getLastLocation(); + if (!uploadIsOfAPlace) { + handleLocation(); + uploadMediaDetailFragment.setImageToBeUploaded(uploadableFile, place, currLocation); + locationManager.unregisterLocationManager(); + } else { + uploadMediaDetailFragment.setImageToBeUploaded(uploadableFile, place, currLocation); } - if (currLocation != null) { - float locationDifference = getLocationDifference(currLocation, prevLocation); - boolean isLocationTagUnchecked = isLocationTagUncheckedInTheSettings(); - /* Remove location if the user has unchecked the Location EXIF tag in the - Manage EXIF Tags setting or turned "Record location for in-app shots" off. - Also, location information is discarded if the difference between - current location and location recorded just before capturing the image - is greater than 100 meters */ - if (isLocationTagUnchecked || locationDifference > 100 - || !defaultKvStore.getBoolean("inAppCameraLocationPref") - || !isInAppCameraUpload) { - currLocation = null; - } - } - uploadMediaDetailFragment.setImageToBeUploaded(uploadableFile, place, currLocation); - locationManager.unregisterLocationManager(); - UploadMediaDetailFragmentCallback uploadMediaDetailFragmentCallback = new UploadMediaDetailFragmentCallback() { @Override public void deletePictureAtIndex(int index) { @@ -930,4 +887,106 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, this::finish ); } + + /** + * If the user uploads more than 1 file informs that + * depictions/categories apply to all pictures of a multi upload. + * This method takes no arguments and does not return any value. + * It shows the AlertDialog and continues the flow of uploads. + */ + private void showAlertDialogForCategories() { + UploadMediaPresenter.isCategoriesDialogShowing = true; + // Inflate the custom layout + LayoutInflater inflater = getLayoutInflater(); + View view = inflater.inflate(R.layout.activity_upload_categories_dialog, null); + CheckBox checkBox = view.findViewById(R.id.categories_checkbox); + // Create the alert dialog + AlertDialog alertDialog = new AlertDialog.Builder(this) + .setView(view) + .setTitle(getString(R.string.multiple_files_depiction_header)) + .setMessage(getString(R.string.multiple_files_depiction)) + .setPositiveButton("OK", (dialog, which) -> { + if (checkBox.isChecked()) { + // Save the user's choice to not show the dialog again + defaultKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", true); + } + presenter.checkImageQuality(0); + + UploadMediaPresenter.isCategoriesDialogShowing = false; + }) + .setNegativeButton("", null) + .create(); + alertDialog.show(); + } + + + /** Suggest users to turn battery optimisation off when uploading + * more than a few files. That's because we have noticed that + * many-files uploads have a much higher probability of failing + * than uploads with less files. Show the dialog for Android 6 + * and above as the ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS + * intent was added in API level 23 + */ + private void showAlertForBattery(){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + // When battery-optimisation dialog is shown don't show the image quality dialog + UploadMediaPresenter.isBatteryDialogShowing = true; + DialogUtil.showAlertDialog( + this, + getString(R.string.unrestricted_battery_mode), + getString(R.string.suggest_unrestricted_mode), + getString(R.string.title_activity_settings), + getString(R.string.cancel), + () -> { + /* Since opening the right settings page might be device dependent, using + https://github.com/WaseemSabir/BatteryPermissionHelper + directly appeared like a promising idea. + However, this simply closed the popup and did not make + the settings page appear on a Pixel as well as a Xiaomi device. + Used the standard intent instead of using this library as + it shows a list of all the apps on the device and allows users to + turn battery optimisation off. + */ + Intent batteryOptimisationSettingsIntent = new Intent( + Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); + startActivity(batteryOptimisationSettingsIntent); + // calling checkImageQuality after battery dialog is interacted with + // so that 2 dialogs do not pop up simultaneously + + UploadMediaPresenter.isBatteryDialogShowing = false; + }, + () -> { + UploadMediaPresenter.isBatteryDialogShowing = false; + } + ); + defaultKvStore.putBoolean("hasAlreadyLaunchedBigMultiupload", true); + } + } + + /** + * If the permission for Location is turned on and certain + * conditions are met, returns current location of the user. + */ + private void handleLocation(){ + LocationPermissionsHelper locationPermissionsHelper = new LocationPermissionsHelper( + this, locationManager, null); + if (locationPermissionsHelper.isLocationAccessToAppsTurnedOn()) { + currLocation = locationManager.getLastLocation(); + } + + if (currLocation != null) { + float locationDifference = getLocationDifference(currLocation, prevLocation); + boolean isLocationTagUnchecked = isLocationTagUncheckedInTheSettings(); + /* Remove location if the user has unchecked the Location EXIF tag in the + Manage EXIF Tags setting or turned "Record location for in-app shots" off. + Also, location information is discarded if the difference between + current location and location recorded just before capturing the image + is greater than 100 meters */ + if (isLocationTagUnchecked || locationDifference > 100 + || !defaultKvStore.getBoolean("inAppCameraLocationPref") + || !isInAppCameraUpload) { + currLocation = null; + } + } + } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 3d1305023..2cf284705 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -374,8 +374,7 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace); if (response) { if (callback != null) { - presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace, - indexOfFragment); + presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace); } } } else { @@ -395,19 +394,41 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements final View customLayout = getLayoutInflater().inflate(R.layout.custom_nearby_found, null); ImageView nearbyFoundImage = customLayout.findViewById(R.id.nearbyItemImage); nearbyFoundImage.setImageURI(uploadItem.getMediaUri()); - DialogUtil.showAlertDialog(getActivity(), - getString(R.string.upload_nearby_place_found_title), - String.format(Locale.getDefault(), - getString(R.string.upload_nearby_place_found_description), - place.getName()), - () -> { - UploadActivity.nearbyPopupAnswers.put(place, true); - presenter.onUserConfirmedUploadIsOfPlace(place, indexOfFragment); - }, - () -> { - UploadActivity.nearbyPopupAnswers.put(place, false); - }, - customLayout, true); + + final Activity activity = getActivity(); + + if (activity instanceof UploadActivity) { + final boolean isMultipleFilesSelected = ((UploadActivity) activity).getIsMultipleFilesSelected(); + + // Determine the message based on the selection status + String message; + if (isMultipleFilesSelected) { + // Use plural message if multiple files are selected + message = String.format(Locale.getDefault(), + getString(R.string.upload_nearby_place_found_description_plural), + place.getName()); + } else { + // Use singular message if only one file is selected + message = String.format(Locale.getDefault(), + getString(R.string.upload_nearby_place_found_description_singular), + place.getName()); + } + + // Show the AlertDialog with the determined message + DialogUtil.showAlertDialog(getActivity(), + getString(R.string.upload_nearby_place_found_title), + message, + () -> { + // Execute when user confirms the upload is of the specified place + UploadActivity.nearbyPopupAnswers.put(place, true); + presenter.onUserConfirmedUploadIsOfPlace(place); + }, + () -> { + // Execute when user cancels the upload of the specified place + UploadActivity.nearbyPopupAnswers.put(place, false); + }, + customLayout, true); + } } @Override @@ -440,8 +461,7 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements if (UploadActivity.nearbyPopupAnswers.containsKey(nearbyPlace)) { final boolean response = UploadActivity.nearbyPopupAnswers.get(nearbyPlace); if (response) { - presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace, - indexOfFragment); + presenter.onUserConfirmedUploadIsOfPlace(nearbyPlace); } } else { showNearbyPlaceFound(nearbyPlace); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java index 21c7eae9f..9b789e046 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java @@ -109,7 +109,7 @@ public interface UploadMediaDetailsContract { void onEditButtonClicked(int indexInViewFlipper); - void onUserConfirmedUploadIsOfPlace(Place place, int uploadItemPosition); + void onUserConfirmedUploadIsOfPlace(Place place); } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java index 4f9fe7d7c..7152d4d8f 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java @@ -76,6 +76,8 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt */ public static boolean isBatteryDialogShowing; + public static boolean isCategoriesDialogShowing; + @Inject public UploadMediaPresenter(UploadRepository uploadRepository, @Named("default_preferences") JsonKvStore defaultKVStore, @@ -329,18 +331,28 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt view.showEditActivity(repository.getUploads().get(indexInViewFlipper)); } + /** + * Updates the information regarding the specified place for uploads + * when the user confirms the suggested nearby place. + * + * @param place The place to be associated with the uploads. + */ @Override - public void onUserConfirmedUploadIsOfPlace(Place place, int uploadItemPosition) { - final List uploadMediaDetails = repository.getUploads() - .get(uploadItemPosition) - .getUploadMediaDetails(); - UploadItem uploadItem = repository.getUploads() - .get(uploadItemPosition); - uploadItem.setPlace(place); - uploadMediaDetails.set(0, new UploadMediaDetail(place)); - view.updateMediaDetails(uploadMediaDetails); + public void onUserConfirmedUploadIsOfPlace(Place place) { + final List uploads = repository.getUploads(); + for (UploadItem uploadItem : uploads) { + uploadItem.setPlace(place); + final List uploadMediaDetails = uploadItem.getUploadMediaDetails(); + // Update UploadMediaDetail object for this UploadItem + uploadMediaDetails.set(0, new UploadMediaDetail(place)); + } + // Now that all UploadItems and their associated UploadMediaDetail objects have been updated, + // update the view with the modified media details of the first upload item + view.updateMediaDetails(uploads.get(0).getUploadMediaDetails()); + UploadActivity.setUploadIsOfAPlace(true); } + /** * Calculates the image quality * @@ -410,7 +422,7 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt } if (uploadItemIndex == 0) { - if (!isBatteryDialogShowing) { + if (!isBatteryDialogShowing && !isCategoriesDialogShowing) { // if battery-optimisation dialog is not being shown, call checkImageQuality checkImageQuality(uploadItem, uploadItemIndex); } else { diff --git a/app/src/main/res/layout/activity_upload_categories_dialog.xml b/app/src/main/res/layout/activity_upload_categories_dialog.xml new file mode 100644 index 000000000..fd1620f6e --- /dev/null +++ b/app/src/main/res/layout/activity_upload_categories_dialog.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 04aa6af9b..017404d2c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -610,7 +610,8 @@ Upload your first media by tapping on the add button. PARENT CLASSES Nearby Place Found - Is this a photo of %1$s? + Are these pictures of %1$s? + Is this a picture of %1$s? Bookmarks Settings Removed from bookmarks @@ -815,4 +816,6 @@ Upload your first media by tapping on the add button. %d image selected %d images selected + Please remember that all images in a multi-upload get the same categories and depictions. If the images do not share depictions and categories, please perform several separate uploads. + Note about multi-uploads From d6ac307f63973ba4d9c317ae342546b57bacd34a Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 2 May 2024 14:02:36 +0200 Subject: [PATCH 007/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-br/strings.xml | 1 + app/src/main/res/values-ms/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 9 ++++++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index cc8073eb7..bb16ca5d7 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -216,6 +216,7 @@ Diwar-benn Arventennoù Evezhiadennoù + Reiñ hoc\'h ali gant GitHub Digevreañ Tutorial Kemennoù diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index 69a0ed52c..f4b1508da 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -25,6 +25,7 @@ Gambar ini akan dilesenkan di bawah %1$s Jelajah + Penampilan Maklum balas Privasi Commons diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a4a16e2b4..1ced6a0d6 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -299,6 +299,7 @@ In de buurt werkt mogelijk niet naar behoren. Locatie niet beschikbaar. Locatietoegang geweigerd. Stel uw locatie handmatig in om deze functie te gebruiken. Toestemming vereist om een lijst van nabije plaatsen weer te geven + Toestemming vereist om een lijst van nabije afbeeldingen weer te geven Routebeschrijving Wikidata Wikipedia @@ -366,7 +367,7 @@ Is deze screenshot OK om te uploaden? Toepassing delen Draaien - Fout bij het ophalen van plaatsen in de buurt. + Kan plaatsen in de buurt niet laden Geen foto\'s in dit gebied. Geen plaatsen in de buurt Fout bij het ophalen van monumenten. @@ -570,7 +571,7 @@ Kan geen coördinaten toevoegen. Kon beschrijvingen niet toevoegen. Kon bijschrift niet toevoegen. - Kan coördinaten niet opvragen. + De coördinaten van de afbeelding zijn niet bijgewerkt Kon beschrijvingen niet ophalen Bewerk beschrijvingen en bijschriften. Deel afbeelding via @@ -604,8 +605,10 @@ Kan locatie-instellingen niet openen. Schakel locatie handmatig in Kies voor de beste resultaten de modus van hoge nauwkeurigheid. Locatie inschakelen? + Schakel locatiediensten in zodat de app uw huidige locatie toont In de Buurt heeft locatie nodig om correct te werken - U moet toegang geven tot uw huidige locatie om de locatie automatisch in te stellen. + Voor de verkenningskaart is locatietoestemming nodig om afbeeldingen in de buurt weer te geven + U moet locatietoestemming geven om de locatie automatisch in te stellen. Heeft u deze twee foto\'s op dezelfde plek gemaakt? Wilt u de breedtegraad/lengtegraad van de afbeelding rechts gebruiken? Laad meer Geen plaatsen gevonden, probeer uw zoekcriteria te wijzigen. From 6b93c34f9ed0e1ab24af98f45012efcf4d3e8cea Mon Sep 17 00:00:00 2001 From: Kanahia <114223204+kanahia1@users.noreply.github.com> Date: Fri, 3 May 2024 03:53:19 +0530 Subject: [PATCH 008/499] Changed Unknown to Wikidata Description (#5697) * Delete app/src/main/res/values-yue-hant directory * Changed Unknown to description --- .../fragments/NearbyParentFragment.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index e4bc8ad7b..d3f555b4d 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -1770,7 +1770,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment ArrayList items = new ArrayList<>(); Drawable icon = ContextCompat.getDrawable(getContext(), getIconFor(place, isBookMarked)); GeoPoint point = new GeoPoint(place.location.getLatitude(), place.location.getLongitude()); - OverlayItem item = new OverlayItem(place.name, null, point); + OverlayItem item = new OverlayItem(place.name, + containsParentheses(place.getLongDescription()) ? getTextBetweenParentheses( + place.getLongDescription()) : place.getLongDescription(), point); item.setMarker(icon); items.add(item); ItemizedOverlayWithFocus overlay = new ItemizedOverlayWithFocus(items, @@ -1813,7 +1815,11 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment GeoPoint point = new GeoPoint( nearbyBaseMarkers.get(i).getPlace().location.getLatitude(), nearbyBaseMarkers.get(i).getPlace().location.getLongitude()); - OverlayItem item = new OverlayItem(nearbyBaseMarkers.get(i).getPlace().name, null, + OverlayItem item = new OverlayItem(nearbyBaseMarkers.get(i).getPlace().name, + containsParentheses(nearbyBaseMarkers.get(i).getPlace().getLongDescription()) + ? getTextBetweenParentheses( + nearbyBaseMarkers.get(i).getPlace().getLongDescription()) + : nearbyBaseMarkers.get(i).getPlace().getLongDescription(), point); item.setMarker(icon); items.add(item); @@ -1844,6 +1850,32 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment binding.map.getOverlays().add(overlay); } + /** + * Extracts text between the first occurrence of '(' and its corresponding ')' in the input string. + * + * @param input The input string from which to extract text between parentheses. + * @return The text between parentheses if found, or {@code null} if no parentheses are found. + */ + public static String getTextBetweenParentheses(String input) { + int startIndex = input.indexOf('('); + int endIndex = input.indexOf(')', startIndex); + if (startIndex != -1 && endIndex != -1) { + return input.substring(startIndex + 1, endIndex); + } else { + return null; + } + } + + /** + * Checks if the given text contains '(' or ')'. + * + * @param input The input text to check. + * @return {@code true} if '(' or ')' is found, {@code false} otherwise. + */ + public static boolean containsParentheses(String input) { + return input.contains("(") || input.contains(")"); + } + private void removeMarker(Place place){ List overlays = binding.map.getOverlays(); for (int i = 0; i < overlays.size();i++){ From c67cf4b07ebb93ae98007db49cfa5c5af86474af Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 6 May 2024 14:02:07 +0200 Subject: [PATCH 009/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-af/strings.xml | 2 +- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-ast/strings.xml | 2 +- app/src/main/res/values-b+sr+Latn/strings.xml | 2 +- app/src/main/res/values-bn/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-eo/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 5 ++++- app/src/main/res/values-eu/strings.xml | 8 ++++---- app/src/main/res/values-fi/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-ia/strings.xml | 2 +- app/src/main/res/values-in/strings.xml | 4 ++-- app/src/main/res/values-io/strings.xml | 2 +- app/src/main/res/values-is/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-iw/strings.xml | 7 +++++-- app/src/main/res/values-ja/strings.xml | 3 ++- app/src/main/res/values-ko/strings.xml | 4 +++- app/src/main/res/values-krc/strings.xml | 2 +- app/src/main/res/values-kus/strings.xml | 2 +- app/src/main/res/values-lb/strings.xml | 3 ++- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-mk/strings.xml | 5 ++++- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 5 ++++- app/src/main/res/values-nqo/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pms/strings.xml | 5 ++++- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-qq/strings.xml | 14 ++++++++++++++ app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 5 ++++- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 2 +- app/src/main/res/values-sr/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-te/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values-vec/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 5 ++++- app/src/main/res/values-zh/strings.xml | 3 ++- 45 files changed, 89 insertions(+), 49 deletions(-) diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index 046087b2c..5c01e2a74 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -363,5 +363,5 @@ Kategorie-tjekversoek het nie gewerk nie Versoek kategorie-toets vir %1$s Nabygeleë plek gevind - Is dit \'n foto van Plek %1$s? + Is dit \'n foto van Plek %1$s? diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 6279c9f5c..cb84b39d4 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -624,7 +624,7 @@ تصنيف الأطفال تصنيف أولياء الأمور تم العثور على مكان قريب - هل هذه صورة للمكان %1$؟ + هل هذه صورة للمكان %1$؟ العلامات الإعدادات أزل من العلامات diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml index 1e7e86834..628e9d083 100644 --- a/app/src/main/res/values-ast/strings.xml +++ b/app/src/main/res/values-ast/strings.xml @@ -518,7 +518,7 @@ CLASES FÍES CLASES PADRES Llugar cercanu alcontráu - ¿Ye esta una foto del Llugar %1$s? + ¿Ye esta una foto del Llugar %1$s? Marcadores Configuración Desaniciáu de los marcadores diff --git a/app/src/main/res/values-b+sr+Latn/strings.xml b/app/src/main/res/values-b+sr+Latn/strings.xml index a543bc5f4..2c133f464 100644 --- a/app/src/main/res/values-b+sr+Latn/strings.xml +++ b/app/src/main/res/values-b+sr+Latn/strings.xml @@ -545,7 +545,7 @@ Most, muzej, hotel itd. Došlo je do greške sa prijavljivanjem, morate da promenite vašu lozinku !! Obližnje mesto je pronađeno - Da li je ovo fotografija %1$s? + Da li je ovo fotografija %1$s? Obeleživači Podešavanja Uklonjeno iz obeleživača diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 85756fdca..d6cd15b61 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -430,7 +430,7 @@ সেতু, জাদুঘর, হোটেল ইত্যাদি। মিডিয়া কাছাকাছি স্থান পাওয়া গেছে - এটি কি %1$s-এর একটি চিত্র? + এটি কি %1$s-এর একটি চিত্র? বুকমার্ক সেটিং বুকমার্ক থেকে সরানো হয়েছে diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ec7e402f7..788c166a4 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -488,7 +488,7 @@ Most, muzeum, hotel atd. Při přihlášení nastala chyba, musíte si resetovat vaše heslo! Místo v okolí nalezeno - Je toto fotka místa %1$s? + Je toto fotka místa %1$s? Nastavení Něco se pokazilo. Tapetu se nepodařilo nastavit Nastavit jako tapetu diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a93c547a9..2cc15092b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -599,7 +599,7 @@ CHILD CLASSES PARENT CLASSES Ort in der Nähe gefunden - Ist das ein Foto von %1$s? + Ist das ein Foto von %1$s? Lesezeichen Einstellungen aus den Lesezeichen entfernt diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 47bf06051..96cf751ae 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -574,7 +574,7 @@ SUBKLASOJ PLI ALTAJ KLASOJ Oni trovis lokon en proksimo - Ĉu ĉi tio estas foto de %1$s? + Ĉu ĉi tio estas foto de %1$s? Legosignoj Agordoj Forigi el legosignoj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 91730fc44..0fbebb5f6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -615,7 +615,8 @@ CLASES HIJAS CLASES PADRES Lugar cercano encontrado - ¿Esta foto es de %1$s? + ¿Son estas imágenes de %1$s? + ¿Es esta una imagen de %1$s? Marcadores Configuración removido de marcadores @@ -804,4 +805,6 @@ %d imagen seleccionada %d imagenes seleccionadas + Recuerde que todas las imágenes en una carga múltiple tienen la misma categoría y representación. Si las imágenes no comparten representación y categoría, haga varias cargas por separado. + Nota sobre cargas múltiples diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index a2b2cf4f9..6dcbc546b 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -86,7 +86,7 @@ Igotzen Galeriatik Argazkia egin - Gertukoak + Hurbilekoak Nire igoerak Partekatu Ikusi fitxategiaren orria @@ -202,7 +202,7 @@ Itxi Hasiera Igo - Gertukoak + Hurbilekoak Honi buruz Ezarpenak Feedback @@ -316,7 +316,7 @@ Errorea gertatu da! Commons Jakinarazpena Ekarpenak - Gertukoak + Hurbilekoak Jakinarazpenak Jakinarazpenak (irakurriak) Zerrenda @@ -357,5 +357,5 @@ Erabiltzailea Zenbaketa Igo - Gertukoak + Hurbilekoak diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 7eabea97d..938fceb04 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -540,7 +540,7 @@ Jokin meni pieleen kirjautumisessa. Sinun on nollattava salasanasi! MEDIA Lähipaikka löytyi - Onko tämä kuva paikasta %1$s? + Onko tämä kuva paikasta %1$s? Kirjanmerkit Asetukset Poistettu kirjanmerkeistä diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index cfa74f498..eb251448c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -604,7 +604,7 @@ CLASSES ENFANTS CLASSES PARENTES Lieu à proximité trouvé - Est-ce une photo de « %1$s » ? + Est-ce une photo de « %1$s » ? Signets Paramètres Retiré des favoris diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index a63f0df01..21ab3c0b5 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -562,7 +562,7 @@ CLASSES FILIO CLASSES GENITOR Loco a proximitate trovate - Es isto un photo de %1$s? + Es isto un imagine de %1$s? Marcapaginas Configurationes Removite del marcapaginas diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 9c8ce4122..4374eeb0b 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -180,7 +180,7 @@ Cuplikan layar suatu aplikasi Contoh unggahan: Judul: Gedung Opera Sydney - Deskripsi: Gedung Opera Sydney dilihat dari seberang teluk + Deskripsi: Gedung Opera Sydney yang dilihat dari seberang teluk Kategori: Opera House Sydney dari arah barat, pemandangan Opera House Sydney Sumbangkan gambar-gambar Anda. Bantu hidupkan artikel Wikipedia! Gambar di Wikipedia diambil dari Wikimedia Commons. @@ -559,7 +559,7 @@ KELAS ANAK KELAS INDUK Tempat di sekitar ditemukan - Apakah ini foto %1$s? + Apakah ini gambar %1$s? Markah Pengaturan \nDihapus dari pembatas diff --git a/app/src/main/res/values-io/strings.xml b/app/src/main/res/values-io/strings.xml index 3b71ae580..2d70e08bc 100644 --- a/app/src/main/res/values-io/strings.xml +++ b/app/src/main/res/values-io/strings.xml @@ -458,7 +458,7 @@ SUBKLASI KLASI PLU ABSTRAKTA Loko proxima trovesis - Ka to esas fotografuro pri %1$s? + Ka to esas fotografuro pri %1$s? Marko-rubandi Ajusti Adjuntita marko-rubandi diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index aa761fff4..ceade1663 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -546,7 +546,7 @@ AFLEIDDIR FLOKKAR YFIRFLOKKAR Staður í nágrenninu fannst - Er þetta mynd af staðnum %1$s? + Er þetta mynd af staðnum %1$s? Bókamerki Stillingar Fjarlægt úr bókamerkjum diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 253372305..1d9c34e56 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -579,7 +579,7 @@ CLASSI FIGLIE CLASSI SUPERIORI Rinvenuto luogo nei pressi - Questa è una foto di %1$s? + Questa è una foto di %1$s? Segnalibri Impostazioni Rimuovi dai preferiti diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 442e49a25..fbd6a60e9 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -604,7 +604,8 @@ מחלקות יורשות מחלקות מורישות נמצא בקרבת מקום - האם זאת תמונה של %1$s? + האם אלו תמונות של %1$s? + האם זאת תמונה של %1$s? סימניות הגדרות הוסר מסימניות @@ -679,7 +680,7 @@ נא למצוא ולבחור את כל העקרונות שהתמונה הזאת מתארת. נא לשמור על דיוק מרבי. אם התמונה מתארת מגוון פריטים, נא לבחור אותם בגבולות הסביר. לא לבחור תגיות גנריות אם יש תגיות יותר נקודתית זמינות. נא לבחור את הקטגוריות המתאימות. בניגוד למאפייני \"מציג\", הקטגוריות כתובות רק באנגלית. ויקישיתוף הופך את התמונות שלך לזמינות לשימוש חוזר ולהתאמה על ידי כל אחד. בא לך לוותר על כל הזכויות? שייחסו את היצירה אליך? שההתאמות ישתמשו באותו הרישיון? - מציג + מוצג רישיון מדיה פרטי מדיה הצגת דף הקטגוריה @@ -804,4 +805,6 @@ נבחרו %d תמונות נבחרו %d תמונות + נא לזכור שכשמועלות כמה תמונות, כולן מקבלות את אותן הקטגוריות והמוצגים. אם התמונות אינן חולקות מוצגים וקטגוריות, נא לעשות כמה העלאות נפרדות. + הערה על העלאות מרובות diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 51bb17f24..62f645ddf 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -535,7 +535,7 @@ 子分類 親クラス 付近の場所が見つかりました - これは%1$sの写真ですか? + これは%1$sの写真ですか? ブックマーク 設定 ブックマークから除去 @@ -622,6 +622,7 @@ 項目 完了 戻る + 権限が必要です 題材を編集する カテゴリを編集 適用 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 705936285..920fdaf13 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -507,7 +507,8 @@ 자식 클래스 부모 클래스 주변 장소 발견 - %1$s의 사진이 맞습니까? + %1$s의 사진이 맞습니까? + %1$s의 사진이 맞습니까? 북마크 설정 북마크에서 제거됨 @@ -595,4 +596,5 @@ GPX 파일을 저장하지 못했습니다. KML 파일을 저장 중 GPX 파일을 저장 중 + 다중 업로드에 대한 참고사항 diff --git a/app/src/main/res/values-krc/strings.xml b/app/src/main/res/values-krc/strings.xml index 1a1f83cde..7a0acc6ed 100644 --- a/app/src/main/res/values-krc/strings.xml +++ b/app/src/main/res/values-krc/strings.xml @@ -567,7 +567,7 @@ БАЛА КЛАССЛА АНА КЛАССЛА Джууукъдагъы Джер Табылды - Бу %1$s суратмыды? + Бу %1$s суратмыды? Китаб белгиле Джарашдырыўла Китаб белгиледен къоратылды diff --git a/app/src/main/res/values-kus/strings.xml b/app/src/main/res/values-kus/strings.xml index 3416b2287..437ba44dc 100644 --- a/app/src/main/res/values-kus/strings.xml +++ b/app/src/main/res/values-kus/strings.xml @@ -485,7 +485,7 @@ CHILD\n CLASSES PARENT CLASSES Gban\'e zin\'ibanɛ bɛ yamma - Nɛ\' anɛ %1$s footo? + Nɛ\' anɛ %1$s footo? Bookmark nam Maalʋg Yisi yi Bookmarknamin diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index fd47043c4..ac8249bc3 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -393,7 +393,8 @@ Bréck, Musée, Hotel etc. Beim Aloggen ass eppes schif gaang. Dir musst Äert Passwuert zrécksetzen! Plaz nobäi fonnt - Ass dëst eng Foto vun %1$s? + Sinn dëst Biller vun %1$s? + Ass dëst e Bild vun %1$s? Lieszeechen Astellungen Vun de Lieszeechen ewechgeholl diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 2d4f060b5..aa2518028 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -517,7 +517,7 @@ Kažkas nepavyko prisijungiant, turite iš naujo nustatyti slaptažodį !! MEDIJA Netoliese rasta vieta - Ar tai vietos %1$s nuotrauka? + Ar tai vietos %1$s nuotrauka? Žymės Nustatymai Pašalinta iš žymių diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 785bc8b85..fb48f11f9 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -570,7 +570,8 @@ ЗАВИСНИ КЛАСИ МАТИЧНИ КЛАСИ Пронајдено околно место - Дали ова е слика од %1$s? + Дали ова се слики на %1$s? + Дали ова е слика на %1$s? Обележани Нагодувања Отстрането од обележани @@ -768,4 +769,6 @@ Избрана е %d слика Избрани се %d слики + Запомнете дека сите слики што ги подигате наеднаш се очекуваат да ја прикажуваат истата работа и ги добиваат истите категории и описи. Ако сликите прикажуваат различни нешта и треба да имаат различни категории, извршете неколку одделни подигања. + Напомена за подигање повеќе слики наеднаш diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index e645b2b47..cc82b3b9e 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -554,7 +554,7 @@ UNDERKLASSER OVERKLASSER Sted i nærheten funnet - Er dette et bilde av %1$s? + Er dette et bilde av %1$s? Bokmerker Innstillinger Fjernet fra bokmerker diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 1ced6a0d6..863c62d0b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -591,7 +591,8 @@ SUBKLASSEN HOOFDKLASSEN Plaats in de buurt gevonden - Is dit een foto van %1$s? + Zijn dit afbeeldingen van %1$s? + Is dit een afbeelding van %1$s? Bladwijzers Instellingen Bladwijzer verwijderd @@ -789,4 +790,6 @@ %d afbeelding geselecteerd %d afbeeldingen geselecteerd + Houd er rekening mee dat alle afbeeldingen in een multi-upload dezelfde categorieën krijgen en geacht worden hetzelfde weer te geven. Als deze gegevens per afbeelding moeten verschillen, voer dan meerdere afzonderlijke uploads uit. + Opmerking over multi-uploads diff --git a/app/src/main/res/values-nqo/strings.xml b/app/src/main/res/values-nqo/strings.xml index d25b93fb8..fa91a14d5 100644 --- a/app/src/main/res/values-nqo/strings.xml +++ b/app/src/main/res/values-nqo/strings.xml @@ -479,7 +479,7 @@ ߘߋ߲ ߠߎ߬ ߟߊ߫ ߛߊ߯ߘߊ ߟߎ߫ ߡߏߦߌߓߊ߮ ߟߎ߬ ߟߊ߫ ߛߊ߯ߘߊ ߟߎ߫ ߛߌ߰ߢߐ߲߰ ߦߙߐ ߦߴߊ߬ ߘߐ߫ - ߊ߬ ߝߐ߫ %1$s ߖߌ߬ߦߊ߬ߓߍ ߟߋ߬ ߦߋ߫ ߣߌ߲߬ ߘߌ߫؟ + ߊ߬ ߝߐ߫ %1$s ߖߌ߬ߦߊ߬ߓߍ ߟߋ߬ ߦߋ߫ ߣߌ߲߬ ߘߌ߫؟ ߟߊ߬ߡߊ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߊߕߊ߲߬ߞߌ߫ ߞߊ߬ ߓߐ߫ ߟߊ߬ߡߊ ߘߐ߫ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index fa1806f92..6d2a15299 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -601,7 +601,7 @@ KLASY POTOMNE KLASY NADRZĘDNE Znaleziono miejsce w pobliżu - Czy to zdjęcie %1$s? + Czy to zdjęcie %1$s? Zakładki Ustawienia Usunięto z zakładek diff --git a/app/src/main/res/values-pms/strings.xml b/app/src/main/res/values-pms/strings.xml index e861e3a39..e5ada8700 100644 --- a/app/src/main/res/values-pms/strings.xml +++ b/app/src/main/res/values-pms/strings.xml @@ -568,7 +568,8 @@ CLASSE MASNÀ CLASSE CE Trovà un pòst davzin - É-lo na fòto ëd %1$s? + Son-lo le fòto ëd %1$s? + É-lo na fòto ëd %1$s? Marcapàgine Paràmeter Gavà dai marca-pàgina @@ -764,4 +765,6 @@ %d plancia selessionà %d plance selessionà + Ch\'a ten-a da ment che tute le plance ant un cariament mùltipl a pijo j\'istesse categorìe e descrission. Si le plance a partagio nen descrission e categorìe, për piasì ch\'a fasa tanti cariament separà. + Nòta an sij cariament mùltipl diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 089a5bc5e..550072366 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -590,7 +590,7 @@ CLASSES INFANTIS CLASSES PAIS Local próximo encontrado - Esta é uma foto de %1$s? + Esta é uma foto de %1$s? Favoritos Configurações Removido dos favoritos diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 7c0ac8a1a..316cb2e9b 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -583,7 +583,7 @@ CLASSES DESCENDENTES CLASSES PROGENITORAS Foi encontrado um local próximo - Isto é uma fotografia de %1$s? + Isto é uma fotografia de %1$s? Marcadores Definições Removido dos marcadores diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index d3298e6cf..0e7cc31c4 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -71,6 +71,7 @@ {{Identical|Modification}} Hint text on menu item to upload a single image.\n{{Identical|Upload}} This message is followed by a list of the categories.\n{{Identical|Search category}} + {{Doc-commons-app-depicts}} Hint text on menu item to save selected categories.\n{{Identical|Save}} {{Identical|Refresh}} This is an action button, usually a verb (just like Continue, Cancel, Delete, Search, and so on).\n{{Identical|List}} @@ -121,6 +122,7 @@ {{Identical|Yes}} {{Identical|No}} {{Identical|Title}} + {{Doc-commons-app-depicts}} {{Identical|Description}} {{Identical|Discussion}} {{Identical|Author}} @@ -159,6 +161,7 @@ \"Search this area\" refers to {{msg-wm|Commons-android-strings-search this area}}. {{Identical|Search}} {{Identical|Search}} + {{Doc-commons-app-depicts}} {{Identical|Map}} Message shown in a dialog (\"success toast\") after a contribution by the user.\n\nParameter:\n* %1$s - title of the target page on Wikidata {{Identical|Question}} @@ -170,23 +173,34 @@ Refers to the next \'\'\'step\'\'\' in the uploading process. Refers to the previous \'\'\'step\'\'\' in the uploading process. \"Send log file\" is {{msg-wm|Commons-android-strings-send log file}}. + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} \"Read more\" is {{msg-wm|Commons-android-strings-read help link}}. {{Identical|Done}} \'%1$s\' is replaced by a formatted number (of categories). {{Identical|Please wait}} {{Identical|Author}} {{Identical|Location}} + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} {{identical|Bookmark}} Option to make the app\'s theme follow the global system setting. {{Identical|More}} {{Optional}}\n<code>&amp;#169;</code> is the copyright symbol (©). + {{Doc-commons-app-depicts}} + {{Doc-commons-app-depicts}} Panning means moving the map left/right/up/down, typically by touching the screen with one finger and moving it.\n\nZooming means making the map\'s scale bigger or smaller, typically by pinching with two fingers.\n\nExample in other app:\nhttps://igss.schneider-electric.com/features/pan-and-zoom-in-definition/ A description of a visual element, location picker image shadow. Used for accesibility usually. {{Identical|Label}} {{Identical|Description}}\n\nDescription of the picture. It ends up on Wikimedia Commons as the \"Description\" field. {{Identical|Item}} {{identical|Done}} + {{Doc-commons-app-depicts}} {{Identical|Advanced options}} {{Identical|Detail}} \"Set as avatar\" should be translated the same as {{msg-wm|Commons-android-strings-menu set avatar}}. + {{Doc-commons-app-depicts}} diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index ac6c76d17..e8806b3ca 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -532,7 +532,7 @@ CLASE COPIl CLASE PĂRINTE Locație Găsită în Apropiere - Este o fotografie a Locului %1$s? + Este o fotografie a Locului %1$s? Semne de carte Setări Eliminat din semne de carte diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c04863075..d63f8e013 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -628,7 +628,8 @@ ДЕТСКИЕ КЛАССЫ РОДИТЕЛЬСКИЕ КЛАССЫ Место поблизости найдено - На этом фото %1$s? + На этих изображениях %1$s? + На этом изображении %1$s? Закладки Настройки Удалено из закладок @@ -828,4 +829,6 @@ выбрано %d изображений + Помните, что все изображения при мультизагрузке получают одинаковые категории и описания. Если изображения не имеют одинаковых описаний и категорий, выполните несколько отдельных загрузок. + Замечание о мультизагрузках diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index fd72247a6..dbdc4e3e7 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -569,7 +569,7 @@ DETSKÉ TRIEDY RODIČOVSKÉ TRIEDY Miesto v okolí nájdené - Je toto fotka miesta %1$s? + Je toto fotka miesta %1$s? Záložky Nastavenia Odstránené zo záložiek diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 64d9bf2d2..b1cdd6c7a 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -586,7 +586,7 @@ PODREJENI RAZREDI NADREJENI RAZREDI Najden bližnji kraj - Ali je to fotografija kraja %1$s? + Ali je to fotografija kraja %1$s? Zaznamki Nastavitve Odstranjeno iz zaznamkov diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index d2547fa1c..d2c17b4f3 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -555,7 +555,7 @@ Мост, музеј, хотел итд. Дошло је до грешке са пријављивањем. Морате да промените Вашу лозинку! Оближње место је пронађено - Да ли је ово фотографија %1$s? + Да ли је ово фотографија %1$s? Обележивачи Подешавања Уклоњено из обележивача diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 8b389878f..0d59618af 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -575,7 +575,7 @@ UNDERORDNADE KLASSER ÖVERORDNADE KLASSER Hittade platser i närheten - Är detta ett foto på %1$s? + Är detta ett foto på %1$s? Bokmärken Inställningar Togs bort från bokmärken diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 8f938efa9..9be193bde 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -517,7 +517,7 @@ చైల్డ్ క్లాస్ పేరెంట్ క్లాస్ సమీపంలోని స్థలాలు కనబడ్డాయి - ఇది %1$s ప్రాంతపు ఫొటోనా? + ఇది %1$s ప్రాంతపు ఫొటోనా? ఇష్టాంశాలు అమరికలు బుక్‌మార్కుల నుండి తీసేసాం diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index fe7c7a2e3..dbf420902 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -593,7 +593,7 @@ ALT SINIFLAR ÜST SINIFLAR Yakındaki Yer Bulundu - Bu bir %1$s fotoğrafı mı? + Bu bir %1$s fotoğrafı mı? Yer imleri Ayarlar Yer işaretlerinden kaldırıldı diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 07917a49a..f1188bf13 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -601,7 +601,7 @@ ДОЧІРНІ КЛАСИ БАТЬКІВСЬКІ КЛАСИ Знайдено місце поблизу - На цьому фото %1$s? + На цьому фото %1$s? Закладки Налаштування Вилучено з закладок diff --git a/app/src/main/res/values-vec/strings.xml b/app/src/main/res/values-vec/strings.xml index a71c0384b..f6c68cf71 100644 --- a/app/src/main/res/values-vec/strings.xml +++ b/app/src/main/res/values-vec/strings.xml @@ -454,7 +454,7 @@ Ponti, muxei, alberghi etc. Se ga verifegà on erore co te jeri drio entrare n\'te l\'utensa, xé neçesario rinpostar ła ciave. Posto cuà rente catà - Sta cuà ła xé na foto del posto %1$s? + Sta cuà ła xé na foto del posto %1$s? Segnałibri Inpostasion Cava dai favorii diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 9e0c71de2..05ad5ca25 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -591,7 +591,8 @@ 子類別 父類別 找到附近地點 - 這是%1$s的照片嗎? + 這些是%1$s的圖片嗎? + 這是%1$s的圖片嗎? 書籤 設定 已從書籤刪除 @@ -789,4 +790,6 @@ 已選 %d 張圖片 已選 %d 張圖片 + 請記住,多重上傳中的所有圖片都會取得相同的分類和描述。如果圖片不要共享描述和分類,請執行多次單筆上傳。 + 關於多次上傳的註釋 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 391f208a6..3bd870044 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -619,7 +619,8 @@ 子类别 父类别 找到附近地点 - 这是%1$s的照片吗? + 这些是%1$s的图片吗? + 这是%1$s的图片吗? 书签 设置 已从书签中移除 From 7e84a447d49ece17b2dee1cf1e794f42e67bc1aa Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 9 May 2024 14:02:10 +0200 Subject: [PATCH 010/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ia/strings.xml | 3 +++ app/src/main/res/values-it/strings.xml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 21ab3c0b5..ae062dee0 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -562,6 +562,7 @@ CLASSES FILIO CLASSES GENITOR Loco a proximitate trovate + Es istes imagines de %1$s? Es isto un imagine de %1$s? Marcapaginas Configurationes @@ -758,4 +759,6 @@ %d imagine seligite %d imagines seligite + Nota ben que tote le imagines in un multi-incargamento habera le mesme categorias e representationes. Si le imagines non condivide representationes e categorias, per favor exeque plure incargamentos separate. + Aviso sur le multi-incargamentos diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1d9c34e56..9c41f4de3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -579,7 +579,7 @@ CLASSI FIGLIE CLASSI SUPERIORI Rinvenuto luogo nei pressi - Questa è una foto di %1$s? + Questa è un\'immagine di %1$s? Segnalibri Impostazioni Rimuovi dai preferiti From 454505903520bfcd4a678091f182a05409decf1f Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 16 May 2024 14:03:00 +0200 Subject: [PATCH 011/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ko/strings.xml | 2 ++ app/src/main/res/values-ms/strings.xml | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 920fdaf13..797e67f67 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -14,6 +14,7 @@ * Nuevo Paso * Ohw0zuz4 * Revi +* Suleiman the Magnificent Television * Theshinster123 * Ykhwong * YuzaTea @@ -25,6 +26,7 @@ 공용 GitHub 소스 코드 공용 로고 공용 웹사이트 + 출구 위치 선택기 제출 다른 설명 추가 새 기여 추가 diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index f4b1508da..f079d57cb 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -229,6 +229,7 @@ Sepanjang masa Muat naik Berdekatan + Undur Sunting kategori Butiran From 041c2938084b9d3eacbdbd68006ff06127363ce1 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 20 May 2024 14:01:58 +0200 Subject: [PATCH 012/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ar/strings.xml | 47 ++++++++++++++++---------- app/src/main/res/values-io/strings.xml | 19 ++++++++--- 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index cb84b39d4..f1fff8164 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -126,13 +126,13 @@ الرجاء الانتظار… تحديث التسميات التوضيحية والأوصاف يرجى الانتظار... - تم الدخول بشكل صحيح! - فشل تسجيل الدخول + نجاح تسجيل الدخول! + فشل تسجيل الدخول الملف غير موجود. فضلا اختر ملفا آخر. تم الوصول إلى الحد الأقصى لإعادة المحاولة! يرجى إلغاء التحميل والمحاولة مرة أخرى هل تريد إيقاف تشغيل تحسين البطارية؟ يعمل رفع أكثر من 3 صور بشكل أكثر موثوقية عند إيقاف تشغيل تحسين البطارية. يرجى إيقاف تشغيل تحسين البطارية لتطبيق كومنز من الإعدادات للحصول على تجربة تحميل سلسة. \n\nالخطوات الممكنة لإيقاف تشغيل تحسين البطارية:\n\nالخطوة 1: اضغط على زر \'الإعدادات\' أدناه.\n\nالخطوة 2: التبديل من \'غير محسّن\" إلى \'الكل التطبيقات\'.\n\nالخطوة 3: ابحث عن \'كومنز\' أو \'fr.free.nrw.commons\'.\n\nالخطوة 4: اضغط عليها وحدد \'عدم التحسين\'.\n\nالخطوة 5: اضغط على \'تم\'. - فشلت المصادقة; الرجاء تسجيل الدخول مرة أخرى + فشلت المصادقة، الرجاء تسجيل الدخول مرة أخرى بدأ الرفع! تحميل في قائمة الانتظار (وضع الاتصال المحدود ممكّن) رُفع %1$s! @@ -159,11 +159,11 @@ يُرجَى تقديم عنوان لهذا الملف الوصف التعليق - لا يمكن تسجيل الدخول - فشل في شبكة الاتصال + لا يمكن تسجيل الدخول - فشل في شبكة الاتصال الكثير من المحاولات غير الناجحة. الرجاء المحاولة مرة أخرى في بضع دقائق. عذراً، لقد تم منع هذا المستخدم على كومنز يجب توفير رمز التحقق المزدوج. - فشل تسجيل الدخول + فشل تسجيل الدخول ارفع اسم هذه المجموعة تعديلات @@ -320,7 +320,7 @@ انظر صفحة الويب للتفاصيل تجاوز تسجيل الدخول - هل تريد حقا تخطي تسجيل الدخول؟ + هل تريد حقا تخطي تسجيل الدخول؟ يجب عليك تسجيل الدخول لرفع الصور في المستقبل. الرجاء تسجيل الدخول لاستخدام هذه الميزة انسخ نص الويكي إلى الكليب بورد @@ -328,6 +328,7 @@ قد لا تعمل الأجهزة المجاورة بشكل صحيح، الموقع غير متوفر. رُفض الوصول إلى الموقع. يرجى ضبط موقعك يدويًا لاستخدام هذه الميزة. صلاحية مطلوبة لعرض قائمة بالأماكن القريبة + الإذن مطلوب لعرض قائمة الصور القريبة الاتجاهات ويكي بيانات ويكيبيديا @@ -387,7 +388,7 @@ الصور التي تظهر التكنولوجيا أو الثقافة موضع ترحيب كبير في كومنز. لقد حصلت عل %1$s من الإجابات الصحيحة، تهانينا! حدد أحد الخيارين للإجابة على السؤال - انتهت صلاحية جلسة تسجيل الدخول; يُرجَى تسجيل الدخول مرة أخرى. + انتهت صلاحية جلسة تسجيل الدخول. يُرجَى تسجيل الدخول مرة أخرى. تبادل سؤالك مع أصدقائك! استمرار إجابة صحيحة @@ -395,7 +396,7 @@ هل هذه الصورة موافقة للرفع؟ شارك التطبيق تدوير - خطأ في جلب الأماكن المجاورة. + تعذر تحميل الأماكن القريبة لا توجد صور في هذه المنطقة لا توجد أماكن قريبة بالجوار خطأ في جلب المعالم القريبة. @@ -471,7 +472,7 @@ لا تسأل هذا مرة أخرى اطلب إذن الموقع اطلب إذن الموقع عند الحاجة إلى ميزة عرض بطاقة التنبيه القريبة. - حدث خطأ ما; لم نتمكن من جلب إنجازاتك + حدث خطأ ما، لم نتمكن من جلب إنجازاتك لقد قدمت الكثير من المساهمات لا يستطيع نظامنا لحساب الإنجازات التعامل معها. هذا هو الإنجاز النهائي. ينتهي في: عرض الحملات @@ -483,10 +484,11 @@ تحتاج الكاميرا داخل التطبيق إلى إذن تحديد الموقع لإرفاقها بصورك في حالة عدم توفر الموقع في EXIF. يرجى السماح للتطبيق بالوصول إلى موقعك والمحاولة مرة أخرى.\n\nملاحظة: قد لا يكون للتحميل موقع إذا كان التطبيق غير قادر على استرداد الموقع من الجهاز خلال فترة زمنية قصيرة. لن يسجل التطبيق الموقع مع اللقطات بسبب عدم وجود إذن بالموقع لن يسجل التطبيق الموقع مع اللقطات أثناء إيقاف تشغيل نظام تحديد المواقع (GPS). + استخدم منتقي ألوان الصور القائم على المستندات يخاطر منتقي الصور الجديد لنظام Android بفقدان معلومات الموقع. قم بالتمكين إذا بدا أنك تستخدمه. قد يؤدي إيقاف تشغيل هذا إلى تشغيل منتقي صور Android الجديد. ويخاطر بفقدان معلومات الموقع.\n\nاضغط على \"اقرأ المزيد\" لمزيد من المعلومات. لن ترى الحملات بعد الآن، ومع ذلك، يمكنك إعادة تمكين هذا الإشعار في الإعدادات إذا كنت ترغب. - تتطلب هذه الوظيفة الاتصال بالشبكة; يُرجَى التحقق من إعدادات اتصالك. + تتطلب هذه الوظيفة الاتصال بالشبكة. يُرجَى التحقق من إعدادات اتصالك. حدث خطأ أثناء معالجة الصورة. رجاءً حاول مرة أخرى! الحصول على رمز للتحرير تجري إضافة قالب لفخص التصنيف @@ -547,6 +549,7 @@ الأرقام التسلسلية برمجية رفض الوصول إلى موقع الوسائط + قد لا نتمكن من الحصول تلقائيًا على بيانات الموقع من الصور التي تقوم برفعها. يرجى إضافة الموقع المناسب لكل صورة قبل الإرسال ارفع الصور لويكيميديا ​​كومنز مباشرة من هاتفك. قم بتنزيل تطبيق كومنز الآن: %1$s مشاركة التطبيق عبر... معلومات الصورة @@ -568,6 +571,7 @@ اضغط على الصورة صورة عشوائية من الإنترنت شعار + انتهاك حرية البانوراما لأنها محاولة تحديث التصنيفات. تحديث التصنيف @@ -604,7 +608,7 @@ لا يمكن إضافة الإحداثيات. تعذر إضافة الأوصاف. تعذرت إضافة الشرح. - غير قادر على الحصول على الإحداثيات. + لم تُحدث إحداثيات الصورة تعذر الحصول على الأوصاف. تحرير الأوصاف والتعليقات مشاركة الصور عبر @@ -619,12 +623,13 @@ يحتاج صورة نوع المكان: جسر، متحف، فندق، إلخ - حدث خطأ ما عند الدخول، يجب عليك إعادة تعيين كلمة المرور!! + حدث خطأ ما أثناء تسجيل الدخول. يجب عليك إعادة تعيين كلمة المرور الخاصة بك! وسائل الإعلام تصنيف الأطفال تصنيف أولياء الأمور تم العثور على مكان قريب - هل هذه صورة للمكان %1$؟ + هل هذه الصور لـ %1$s ؟ + هل هذه صورة %1$s ؟ العلامات الإعدادات أزل من العلامات @@ -638,7 +643,10 @@ فشل في فتح إعدادات الموقع. يرجى تشغيل الموقع يدويا للحصول على أفضل النتائج، اختر وضع High Accuracy. تشغيل الموقع؟ + يرجى تشغيل خدمات الموقع ليظهر التطبيق موقعك الحالي خدمة قريب من هنا تحتاج إلى تفعيل خدمة الموقع للعمل بشكل صحيح + يحتاج استكشاف الخريطة إلى إذن الموقع لعرض الصور القريبة + تحتاج إلى منح إذن الموقع لتعيين الموقع تلقائيًا. هل قمت بتصوير هاتين الصورتين في نفس المكان؟ هل تريد استخدام دائرة العرض / خط الطول للصورة على اليمين؟ تحميل المزيد لم يتم العثور على أي أماكن، جرب تغيير محددات بحثك. @@ -726,6 +734,10 @@ على عكس الصورة الموجودة على اليسار ، فإن الصورة الموجودة على اليمين بها شعار كومنز يشير إلى أنه تم تحميلها بالفعل. !ن! المس مع الاستمرار لمعاينة الصورة. رائع تم تحميل هذه الصورة بالفعل إلى العموم. + لأسباب فنية، لا يمكن للتطبيق تحميل أكثر من %1$d من الصور مرة واحدة بشكل موثوق. تم تجاوز حد التحميل %1$d بواسطة %2$d . + رفض + الحد الأقصى: %1$d + خطأ: تجاوز حد التحميل سيتم إدخال هذه الصورة في مسابقة Wiki Loves Monuments عرض الآثار إنه شهر Wiki Loves Monuments! @@ -743,14 +755,14 @@ يمكنك تخصيص استعلام قريب. إذا حصلت على أخطاء ، قم بإعادة التعيين والتطبيق. تطبيق إعادة ضبط - تساعد بيانات الموقع محرري Wiki في العثور على صورتك ، مما يجعلها أكثر فائدة.! N! لا يوجد موقع لعمليات التحميل الأخيرة.! N! نقترح عليك تشغيل الموقع في إعدادات تطبيق الكاميرا. + تساعد بيانات الموقع محرري ويكي في العثور على صورتك، مما يجعلها أكثر فائدة.\nلا تحتوي مرفوعاتك الأخيرة على موقع.\nنقترح عليك تشغيل الموقع في إعدادات تطبيق الكاميرا.\nشكرًا لك على الرفع! لم يتم العثور على موقع - ماذا عن إضافة المكان الذي تم التقاط هذه الصورة فيه؟! N! تساعد بيانات الموقع محرري Wiki في العثور على صورتك ، مما يجعلها أكثر فائدة.! N! شكرًا لك! + ماذا عن إضافة المكان الذي التقطت فيه هذه الصورة؟\nتساعد بيانات الموقع محرري ويكي في العثور على صورتك، مما يجعلها أكثر فائدة.\nشكرًا لك! أضف الموقع يُرجى إزالة أي معلومات لا تشعر بالارتياح عند مشاركتها علنًا من هذا البريد الإلكتروني. أيضًا ، يرجى العلم أن عنوان بريدك الإلكتروني الذي تنشر به ، والاسم المرتبط وصورة الملف الشخصي ، سيكونان مرئيين للجمهور. التفاصيل - الإنجازات متوفرة فقط في نكهة المنتج ، يرجى مراجعة وثائق المطور. - لوحة الصدارة متوفرة فقط في نكهة المنتج ، يرجى مراجعة وثائق المطور. + الإنجازات متوفرة فقط في نكهة المنتج. يرجى مراجعة وثائق المطور. + لوحة الصدارة متوفرة فقط في نكهة المنتج. يرجى مراجعة وثائق المطور. يرجى فقط تحميل الصور التي قمت بالتقاطها بنفسك. المحملين من صور لديها حقوق النسخ سيتم منعهم من التحميل. وهذا ينطبق على مفضلي استخدام بيتا ايضا. شكرا لمشاركتكم في فحص هذ التطبيق يرجى إلغاء تحديد أي معلومات لا تشعر بالارتياح لمشاركتها علنًا. مستوى API @@ -765,6 +777,7 @@ تعليقاتك وضع علامة على أنه ليس للتحميل إلغاء علامة على أنه ليس للتحميل + إلغاء علامة على أنه ليس للرفع عرض الصور بالفعل إخفاء الصور بالفعل لم يتم العثور على المزيد من الصور diff --git a/app/src/main/res/values-io/strings.xml b/app/src/main/res/values-io/strings.xml index 2d70e08bc..b662d5c6e 100644 --- a/app/src/main/res/values-io/strings.xml +++ b/app/src/main/res/values-io/strings.xml @@ -73,8 +73,8 @@ Voluntez vartar... Aktualiganta etiketi e deskripturi Voluntez vartar... - Eniro sucesoza! - Eniro faliis! + Eniro sucesoza! + Eniro faliis! Arkivo ne trovita. Voluntez probar altr arkivo. Vu atingis la maxim granda quanto di probi por sendar arkivo permisata! Voluntez interuptar la kargajo, e probez itere! Ka desmuntar l\'optimizo di la baterio? @@ -210,6 +210,7 @@ Koordinati Nulu furnisita Divenez probero di \'\'Beta\'\'-versioni + Enirez nia kanalo \'\'beta\'\' che Google Play ed anticipez aceso a nova resursi e korektigo di erori Kodexo 2FA Ka vu deziras ekirar? Faliis montrar imajo @@ -231,6 +232,7 @@ Pri Ajusti Retro-informo + Respondi per GitHub Ekirar Helpilo Avizi @@ -252,21 +254,26 @@ Por sendar arkivi l\'Interreto mustas esar konektata. Voluntez verifikar vua Interreto-konekto. Trovesis problemo en l\'imajo Atencez pri nur sendar imaji quin vu propra facis. Ne sendez imaji quin vu descharjis de Interreto. + Konservar fotografuri che \'\'app\'\' + Konservar en vua enmagaziniguro la fotografuri obtenita uzanta fotografilo del utensilo (\'\'app\'\') Enirez en vua konto Sendez arkivo \'\'log\'\' + Nula retnavigilo trovita, por apertar la URL Eroro! URL ne trovita Propozar efaco Ca imajo indikesis por efaco. Videz retpagino por detali Saltar Enirar - Ka vu deziras ne enirar? + Ka vu deziras ne enirar? Vu mustus facar \'\'log in\'\' por sendor imaji future. Voluntez enirar por uzar ca utensilo Kopiez Wiki-texto a \'clipboard\' Wiki-texto kopiesis a \'clipboard\' Proximeso povas ne funcionar korekte, nam Lokizo ne esas disponebla. Aceso a lokizo ne permisita. Voluntez informar manuale vua lokizo por uzar ca resurso*. + Permiso bezonata por montrar listo pri vicina loki + Permiso bezonata por montrar listo pri vicina imaji Quale arivar Wikidata Wikipedio @@ -276,6 +283,8 @@ Guidolibro por l\'uzero Saltez instrukti Interreto ne funcionas + Eventis eroro dum rekupero di informi. + Eventis eroro dum rekupero di imajo por revizo. Voluntez probar itere. Nula avizi trovita Tradukar Lingui @@ -324,7 +333,7 @@ Fotografuri pri teknologio o kultural aspekti esas sempre bonvenanta che Commons. Vu respondis korekte %1$s de la questioni. Gratuli! Selektez un ek la du opcioni por respondar la questiono - Sesiono di \'\'log in\'\' finis, voluntez enirar itere. + Eniro-sesiono finis, voluntez enirar itere. Partigez vua quizo kun vua amiki! Durigez Korekta respondo @@ -332,7 +341,7 @@ Ka ica skreno-kopiuro esas \'OK\' por sendar? Partigez \'\'app\'\' Rotacar - Eroro adportanta informi pri loki proxima. + Ne probis montrar loki proxima. Nula pikturi en ca areo Nula loki proxima trovesis Eroro adportanta informi pri monumenti proxima. From 9a2a56c1cfb86dc514224ade3ec6e861647a203b Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 23 May 2024 14:03:04 +0200 Subject: [PATCH 013/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-de/strings.xml | 9 +- app/src/main/res/values-el/strings.xml | 212 +++++++++++++++++++++++-- app/src/main/res/values-fr/strings.xml | 40 +++-- app/src/main/res/values-ko/strings.xml | 57 ++++++- app/src/main/res/values-sv/strings.xml | 14 +- 5 files changed, 297 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2cc15092b..bafb9002a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -16,6 +16,7 @@ * Kghbln * Killarnee * ManuelFranz +* Mcliquid * Metalhead64 * Nekky-chan * Ngschaider @@ -311,6 +312,7 @@ „In der Nähe“ arbeiten möglicherwiese nicht richtig. Der Standort ist nicht verfügbar. Standortzugriff verweigert. Bitte lege deinen Standort manuell fest, um diese Funktion nutzen zu können. Berechtigung zur Anzeige einer Liste mit Orten in der Nähe erforderlich + Berechtigung zur Anzeige einer Liste mit Orten in der Nähe erforderlich Richtungen Wikidata Wikipedia @@ -599,7 +601,8 @@ CHILD CLASSES PARENT CLASSES Ort in der Nähe gefunden - Ist das ein Foto von %1$s? + Sind das Bilder von %1$s ? + Ist das ein Foto von %1$s? Lesezeichen Einstellungen aus den Lesezeichen entfernt @@ -613,7 +616,9 @@ Die Standorteinstellungen konnten nicht geöffnet werden. Bitte schalte den Standort manuell ein Die besten Ergebnisse erzielst du, wenn du den Modus „Hohe Genauigkeit“ wählst. Standort einschalten? + Bitte aktiviere die Ortungsdienste für die App, damit Dein aktueller Standort angezeigt wird Für die Funktion „in der Nähe“ muss der Standort aktiviert sein, um richtig zu funktionieren + Zur Anzeige von Bildern in der Nähe ist eine Standortberechtigung für die Karte „Erkunden“ erforderlich. Um den Standort automatisch festlegen zu können, musst du die Berechtigung dazu erteilen. Hast du diese beiden Bilder am selben Ort aufgenommen? Möchtest du den Breiten- und Längengrad des rechten Bildes verwenden? Mehr laden @@ -793,4 +798,6 @@ Ein Bild ausgewählt %d Bilder ausgewählt + Bitte beachte, dass bei einem Multiupload alle Bilder die gleichen Kategorien und Bezeichnungen erhalten. Sollten die Bilder keine gemeinsamen Bezeichnungen und Kategorien haben, führe bitte mehrere separate Uploads durch. + Hinweis zu Mehrfach-Uploads diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 42744a5bb..99e9e95ad 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -144,6 +144,8 @@ (Καμία μεταφόρτωση ακόμα) Δεν βρέθηκαν κατηγορίες που ταιριάζουν %1$s Δεν βρέθηκαν στοιχεία Wikidata που να ταιριάζουν στο %1$s + Το %1$s δεν έχει κλάσεις παιδιά + %1$s δεν έχει κλάσεις γονείς Προσθέστε κατηγορίες για να κάνετε τις εικόνες σας πιο ανιχνεύσιμες στα Wikimedia Commons.\n\nΑρχίστε να γράφετε για να προσθέσετε κατηγορίες.\nΠατήστε αυτό το μήνυμα (ή πατήστε επιστροφή) για να παραλείψετε αυτό το βήμα. Κατηγορίες Ρυθμίσεις @@ -153,7 +155,7 @@ Κατηγορία Αναθεώρηση από Ομότιμους Σχετικά - Λογισμικό ανοικτού κωδικού που κυκλοφορεί υπό την <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Άδεια Apache v2</a>. Το Wikimedia Commons και το λογότυπο είναι εμπορικά σήματα του Ιδρύματος Wikimedia και χρησιμοποιούνται με άδεια από το Ίδρυμα Wikimedia. Δεν συμμετέχουμε στην δημιουργία, ανάπτυξη ή συντήρηση του Ιδρύματος Wikimedia. + Λογισμικό ανοικτού κωδικού που κυκλοφορεί υπό την <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Άδεια Apache v2</a>. Το Wikimedia Commons και το λογότυπο είναι εμπορικά σήματα του Ιδρύματος Wikimedia και χρησιμοποιούνται με άδεια από το Ίδρυμα Wikimedia. Δεν συμμετέχουμε στην δημιουργία, ανάπτυξη ή συντήρηση του Ιδρύματος Wikimedia. Δημιουργήστε ένα νέο <a href=\"%1$s\">GitHub θέμα</a> για αναφορές σφαλμάτων και προτάσεις. Πολιτική ιδιωτικότητας <u>Συντελεστές</u> @@ -165,7 +167,7 @@ Ακόμα δεν έχετε ανεβάσει φωτογραφίες. Ξαναπροσπαθήστε Ακύρωση - Αποστέλλοντας αυτήν την εικόνα, δηλώνω πως αυτή η εργασία είναι δική μου, και δεν περιέχει υλικό άλλου συγγραφέα, και εκτός αυτού πρόσκειται στο , thathref=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Κοινές πολιτικές της Wikipedia</a>. + Αποστέλλοντας αυτήν την εικόνα, δηλώνω πως αυτή η εργασία είναι δική μου, και δεν περιέχει υλικό άλλου συγγραφέα, και εκτός αυτού πρόσκειται στο , thathref=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Κοινές πολιτικές της Wikipedia</a>. Λήψη Προεπιλεγμένη άδεια Χρήση προηγούμενου τίτλου και περιγραφής @@ -229,7 +231,7 @@ Ημερομηνία μεταφόρτωσης Άδεια Συντεταγμένες - Δεν δόθηκε τίποτα + Δεν δόθηκε τίποτα Γίνετε Δοκιμαστής Beta Συμμετέχετε στο κανάλι beta μας στο Google Play και αποκτήστε πρώιμη πρόσβαση σε νέες λειτουργίες και διορθώσεις σφαλμάτων Κωδικός 2FA @@ -238,12 +240,12 @@ Δεν βρέθηκαν υποκατηγορίες Δεν βρέθηκαν γονικές κατηγορίες Όρος Ζάο - Llamas + Llamas Γέφυρα Ουρανίου Τόξου Τουλίπα - Καλωσόρισες Βικιπαίδεια - Καλωσορίστε το Δικαίωμα Αντιγραφής - Κτίρια Όπερας Sidney + Καλωσήρθατε στη Βικιπαίδεια + Καλωσορίστε το Δικαίωμα Αντιγραφής + Κτίρια Όπερας Sidney Ακυρώστε Ανοίξτε Κλείστε @@ -255,12 +257,12 @@ Ανατροφοδότηση Ανατροφοδότηση μέσω Github Αποσύνδεση - Σεμινάριο + Σεμινάριο Ενημερώσεις Επιθεώρηση - δεν βρέθηκε περιγραφή - Σελίδα φακέλλου κοινής χρήσης - Τεμάχιο Wikidata + δεν βρέθηκε περιγραφή + Σελίδα αρχείου Commons + Αντικείμενο Wikidata Λήμμα Βικιπαίδειας Παρακαλώ περιγράψετε τα μέσα όσο το δυνατόν περισσότερο : Πού λήφθηκε; Τι δείχνει; Ποιο είναι το περιεχόμενο του; Παρακαλώ περιγράψετε τα αντικείμενα ή τα πρόσωπα. Αποκαλύψετε πληροφορίες που δεν είναι εύκολο να μαντέψει κανείς, για παράδειγμα την ώρα εντός της ημέρας αν πρόκειται για τοπίο. Αν τα μέσα δείξουν κάτι ασύνηθες, παρακαλώ εξηγήστε τι το καθιστούν μη συνηθισμένα. Γράψτε μια σύντομη περιγραφή της εικόνας. Η πρώτη λεζάντα θα χρησιμοποιηθεί ως τίτλος για την εικόνα. Όριο 255 χαρακτήρες. @@ -278,7 +280,7 @@ Αποθηκεύστε φωτογραφίες εντός εφαρμογής Αποθηκεύστε φωτογραφίες που τραβήξατε με την κάμερα εντός εφαρμογής στο χώρο αποθήκευσης της συσκευής σας Συνδεθείτε στο λογαριασμό σας. - Αποστείλατε τον φάκελλο σύνδεσης + Αποστολή αρχείου καταγραφής Στείλτε το αρχείο καταγραφής στους προγραμματιστές μέσω email για να βοηθήσετε τη διόρθωση σφαλμάτων της εφαρμογής. Σημείωση: οι καταγραφές ενδέχεται να περιλαμβάνουν αναγνωριστικές πληροφορίες Δεν βρέθηκε φυλλομετρητής για το άνοιγμα της διευθύνσεως URL Σφάλμα! Η διεύθυνση URL δεν βρέθηκε @@ -287,13 +289,15 @@ Δείτε την ιστοσελίδα για λεπτομέρειες Παράβλεψη Είσοδος - Θέλετε πραγματικά να παραβλέψετε τη σύνδεση; + Θέλετε πραγματικά να παραβλέψετε τη σύνδεση; Θα χρειάζεται να συνδεθείτε για να ανεβάζετε εικόνες στο μέλλον. Παρακαλούμε συνδεθείτε για να χρησιμοποιήσετε αυτό το χαρακτηριστικό Αντιγράψτε το wikitext στο πρόχειρο + Το wikitext αντιγράφηκε στο πρόχειρο Ο τόπος δεν είναι διαθέσιμος. Δεν επιτρέπεται η πρόσβαση στην τοποθεσία. Ρυθμίστε την τοποθεσία σας με χειροκίνητο τρόπο για να χρησιμοποιήσετε αυτήν τη δυνατότητα. Απαιτείται άδεια για την εμφάνιση λίστας κοντινών σημείων + Απαιτείται άδεια για την εμφάνιση λίστας κοντινών εικόνων Κατευθύνσεις Δεδομένα wiki Βικιπαίδεια @@ -329,9 +333,11 @@ Πρόσφατα αναζητημένα ερωτήματα Πρόσφατα ερωτήματα γλώσσας Συνέβη σφάλμα κατά τη φόρτωση κατηγοριών. + Παρουσιάστηκε σφάλμα κατά τη φόρτωση των απεικονίσεων. Μέσα Κατηγορίες Αντικείμενα + Χαρακτηριστικά Μεταφορτώθηκε μέσω κινητού Χάρτης Η εικόνα προστέθηκε επιτυχώς στο %1$s στο Wikidata! @@ -359,7 +365,7 @@ Αυτό το στιγμιότυπο είναι εντάξει για ανέβασμα; Κοινοποίηση εφαρμογής Γυρίστε - Σφάλμα κατά την εύρεση κοντινών μερών. + Σφάλμα κατά την εύρεση κοντινών μερών. Δεν υπάρχουν φωτογραφίες σε αυτήν την περιοχή Δεν υπάρχουν μέρη κοντά Σφάλμα κατά την εύρεση κοντινών μνημείων. @@ -423,6 +429,7 @@ Δεν επιλέχθηκαν κατηγορίες Εικόνες χωρίς κατηγορίες χρησιμοποιούνται σπάνια. Θέλετε πράγματι να συνεχίσετε δίχως να επιλέξετε κατηγορίες? Δεν έχουν επιλεγεί αποτυπώσεις + Οι εικόνες με απεικονίσεις βρίσκονται πιο εύκολα και πιο πιθανό να χρησιμοποιηθούν. Είστε βέβαιοι ότι θέλετε να συνεχίσετε χωρίς να επιλέξετε απεικονίσεις; Ακύρωση Μεταφόρτωσης Η χρήση του κουμπιού \"πίσω\" θα ακυρώσει αυτήν τη μεταφόρτωση και θα χάσετε την πρόοδό σας Συνέχιση Μεταφόρτωσης @@ -434,6 +441,7 @@ Μην το ρωτήσετε ξανά αυτό Ζητήστε άδεια τοποθεσίας Ζητήστε άδεια τοποθεσίας όταν χρειάζεται για τη λειτουργία προβολής κοντινής κάρτας ειδοποιήσεων. + Κάτι πήγε στραβά. Δεν μπορέσαμε να ανακτήσουμε επιτεύγματα Έχετε κάνει τόσες πολλές συνεισφορές που δεν μπορεί να αντεπεξέλθει το σύστημα υπολογισμού των επιτευγμάτων μας. Αυτό είναι το απόλυτο επίτευγμα. Τελειώνει σε: Προβολή καμπανιών @@ -447,7 +455,7 @@ Η εφαρμογή δεν θα καταγράψει την τοποθεσία μαζί με τις φωτογραφίες καθώς το GPS είναι απενεργοποιημένο Χρησιμοποιήστε εργαλείο επιλογής φωτογραφιών βάσει εγγράφων Το νέο εργαλείο επιλογής φωτογραφιών Android κινδυνεύει να χάσει τις πληροφορίες τοποθεσίας. Ενεργοποιήστε εάν φαίνεται ότι το χρησιμοποιείτε. - Παρακαλώ σιγουρευτείτε ότι αύτος ο κανούριος επιλογέας Android δεν αφαιρεί την τοποθεσία από τις εικόνες. + Παρακαλώ σιγουρευτείτε ότι αύτος ο κανούριος επιλογέας Android δεν αφαιρεί την τοποθεσία από τις εικόνες.\n\nΠατήστε στο \'Διαβάστε περισσότερα\' για περισσότερες πληροφορίες. Δεν θα βλέπετε πλέον τις καμπάνιες. Ωστόσο, μπορείτε να ενεργοποιήσετε ξανά αυτήν την ειδοποίηση στις Ρυθμίσεις εάν το επιθυμείτε. Αυτή η λειτουργία απαιτεί σύνδεση δικτύου. Ελέγξτε τις ρυθμίσεις της σύνδεσής σας. Παρουσιάστηκε σφάλμα κατά την επεξεργασία της εικόνας. Παρακαλώ προσπαθησε ξανα! @@ -485,7 +493,7 @@ Δεν έγινε επαναφορά εικόνων Δεν έχουν ανεβεί εικόνες Δεν έχετε αδιάβαστες ενημερώσεις - Δεν έχετε αρχειοθετημένες ενημερώσεις + Δεν έχετε αδιάβαστες ενημερώσεις Κοινή χρήση αρχείων καταγραφής χρησιμοποιώντας Προβολή αναγνωσμένων Προβολή μη αναγνωσμένων @@ -496,6 +504,7 @@ Αυτή η δυνατότητα επιτρέπει στους συντάκτες να στέλνουν μια ειδοποίηση ευχαριστιών σε χρήστες που κάνουν χρήσιμες επεξεργασίες – χρησιμοποιώντας έναν μικρό σύνδεσμο ευχαριστιών στη σελίδα ιστορικού ή στη σελίδα διαφορών. Αντιγραφή σε επόμενα μέσα Αντιγράφηκε με επιτυχία + Παραδείγματα καλών εικόνων για να ανεβάσετε στο Commons Παραδείγματα εικόνων που δεν πρέπει να ανεβάζονται Παραλείψτε αυτήν την εικόνα Η λήψη απέτυχε!!. Δεν μπορούμε να κατεβάσουμε το αρχείο χωρίς άδεια εξωτερικού χώρου αποθήκευσης. @@ -509,25 +518,129 @@ Σειριακός αριθμός Λογισμικό Δεν επιτρέπεται η πρόσβαση στην τοποθεσία πολυμέσων + Ενδέχεται να μην μπορούμε να λάβουμε αυτόματα δεδομένα τοποθεσίας από φωτογραφίες που ανεβάζετε. Προσθέστε την κατάλληλη τοποθεσία για κάθε εικόνα πριν την υποβολή + Ανεβάστε φωτογραφίες στα Wikimedia Commons απευθείας από το τηλέφωνό σας. Κάντε λήψη της εφαρμογής Commons τώρα: %1$s + Κοινή χρήση εφαρμογής μέσω... Πληροφορίες Εικόνας + Δεν βρέθηκαν Κατηγορίες + Δεν βρέθηκαν απεικονίσεις Ακυρώθηκε η μεταφόρτωση Δεν υπάρχουν δεδομένα για τον τίτλο ή την περιγραφή της προηγούμενης εικόνας Γιατί πρέπει να διαγραφεί το %1$s; %1$s μεταφορτώνεται από: %2$s + Προεπιλεγμένη γλώσσα περιγραφής + Υποψήφια για διαγραφή + Επιτυχία + Προτάθηκε %1$s για διαγραφή. Απέτυχε + Δεν ήταν δυνατή η αίτηση διαγραφής. + μια selfie που δεν χρησιμοποιείται σε κανένα άρθρο + εντελώς θολή + ανοησίες, απολύτως άχρηστες σε οποιοδήποτε άρθρο + Πατήστε φωτογραφία + Τυχαία φωτογραφία από το διαδίκτυο + Λογότυπο + Παραβίαση της Ελευθερίας του Πανοράματος + Επειδή είναι + Προσπάθεια ενημέρωσης κατηγοριών. + Ενημέρωση κατηγορίας + Επιτυχία + + Προστέθηκε η κατηγορία %1$s . + Προστέθηκαν οι κατηγορίες %1$s . + + Δεν ήταν δυνατή η προσθήκη κατηγοριών. + Ενημέρωση κατηγοριών + Προσπάθεια ενημέρωσης απεικονίσεων. + Επεξεργασία απεικονίσεων + + Προστέθηκε η απεικόνιση %1$s . + Προστέθηκαν οι απεικονίσεις %1$s . + + Δεν ήταν δυνατή η προσθήκη απεικονίσεων. + Προσπάθεια ενημέρωσης συντεταγμένων. + Ενημέρωση συντεταγμένων + Ενημέρωση περιγραφής + Ενημέρωση λεζάντας + Επιτυχία + Προστίθενται οι συντεταγμένες %1$s . + Προστίθενται περιγραφές. + Προστίθεται λεζάντα. + Δεν ήταν δυνατή η προσθήκη συντεταγμένων. + Δεν ήταν δυνατή η προσθήκη περιγραφών. + Δεν ήταν δυνατή η προσθήκη λεζάντας. + Οι συντεταγμένες της εικόνας δεν ενημερώθηκαν + Δεν είναι δυνατή η λήψη περιγραφών. + Επεξεργαστείτε περιγραφές και λεζάντες + Κοινή χρήση εικόνας μέσω + Δεν έχετε κάνει ακόμη συνεισφορές + %s δεν έχει συνεισφέρει ακόμα + Ο λογαριασμός δημιουργήθηκε! + Το κείμενο αντιγράφτηκε στο πρόχειρο. + Η ειδοποίηση επισημάνθηκε ως αναγνωσμένη + Υπήρξε κάποιο σφάλμα! + Κατάσταση τοποθεσίας: + Υπάρχει + Χρειάζεται Φωτογραφία + Τύπος τοποθεσίας: + Γέφυρα, μουσείο, ξενοδοχείο κ.λπ. + Κάτι πήγε στραβά με την σύνδεση. Πρέπει να επαναφέρετε το κωδικό πρόσβασης σας! + ΜΕΣΑ + ΥΠΟΚΛΑΣΕΙΣ + ΥΠΕΡΚΛΑΣΕΙΣ + Βρέθηκε Κοντινό Μέρος + Είναι αυτές φωτογραφίες από %1$s; + Είναι αυτή εικόνα του %1$s ; + Σελιδοδείκτες Ρυθμίσεις + Καταργήθηκε από τους σελιδοδείκτες + Προστέθηκε στους σελιδοδείκτες + Κάτι πήγε στραβά. Δεν ήταν δυνατή η ρύθμιση της ταπετσαρίας + Ορισμός ως Ταπετσαρία + Ρύθμιση ταπετσαρίας. Παρακαλώ περιμένετε… + Ακολουθήστε το σύστημα Σκοτεινό Φωτεινό Αποτυχία ανοίγματος ρυθμίσεων τοποθεσίας. Παρακαλούμε ενεργοποιήστε την τοποθεσία χειροκίνητα Για καλύτερα αποτελέσματα, επιλέξτε τη λειτουργία υψηλής ακρίβειας. Ενεργοποίηση τοποθεσίας; + Παρακαλούμε ενεργοποιήστε τις υπηρεσίες τοποθεσίας για την εφαρμογή που δείχνει την τρέχουσα τοποθεσία σας + Το Nearby χρειάζεται ενεργοποιημένη τοποθεσία για να λειτουργεί σωστά + Η Εξερεύνηση χάρτη χρειάζεται άδεια τοποθεσίας για την εμφάνιση κοντινών εικόνων + Πρέπει να δώσετε άδεια τοποθεσίας για αυτόματη ρύθμιση της τοποθεσίας. + Τραβήξατε αυτές τις δύο φωτογραφίες στο ίδιο μέρος; Θέλετε να χρησιμοποιήσετε το γεωγραφικό πλάτος/μήκος της εικόνας στα δεξιά; Εμφάνιση περισσότερων + Δεν βρέθηκαν μέρη, δοκιμάστε να αλλάξετε τα κριτήρια αναζήτησής σας. Προτεινόμενες βελτιώσεις: + - Προσθέστε κατηγορίες σε αυτήν την εικόνα για να βελτιώσετε τη χρηστικότητα. + - Προσθέστε αυτήν την εικόνα στο σχετικό άρθρο της Wikipedia που δεν έχει εικόνες. + Προσθήκη εικόνας στη Wikipedia + Θέλετε να προσθέσετε αυτήν την εικόνα στο άρθρο της Wikipedia στη γλώσσα %1$s ; + Επιβεβαίωση + Οδηγίες + 1. Χρησιμοποιήστε το ακόλουθο wikitext: + 2. Κάνοντας κλικ στο Επιβεβαίωση θα ανοίξει το άρθρο της Wikipedia + 3. Βρείτε μια κατάλληλη ενότητα στο άρθρο για την εικόνα σας + 4. Κάντε κλικ στο εικονίδιο Επεξεργασία (αυτό που μοιάζει με μολύβι) για αυτήν την ενότητα. + 5. Επικολλήστε το wikitext στην κατάλληλη θέση. + 6. Επεξεργαστείτε το wikitext για κατάλληλη τοποθέτηση, εάν είναι απαραίτητο. Για περισσότερες πληροφορίες, δείτε <a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\">εδώ</a> . + 7. Δημοσιεύστε το άρθρο + Αντιγράψτε τον wikicode στο πρόχειρο + παύση + συνέχεια + Σε παύση + Περισσότερα + Σελιδοδείκτες Κατορθώματα Λίστα κατάταξης Κατάταξη: + Αριθμός Κατάταξη Χρήστης + Μέτρηση + Ορισμός ως avatar του leaderboard + Ετοιμάζομαι ως avatar, περιμένετε παρακαλώ. + Σετ Avatar Σφάλμα ορισμού νέου άβαταρ, παρακαλούμε δοκιμάστε ξανά. Ορισμός ως άβαταρ Ετήσια @@ -536,12 +649,77 @@ Ανέβασμα Γειτονικά Σε χρήση + Η κατάταξή μου + Ενεργοποιήθηκε η λειτουργία περιορισμένης σύνδεσης! + Η λειτουργία περιορισμένης σύνδεσης είναι απενεργοποιημένη. Οι εκκρεμείς μεταφορτώσεις θα συνεχιστούν τώρα. + Λειτουργία περιορισμένης σύνδεσης + Ποιοτικές εικόνες + Οι ποιοτικές εικόνες είναι διαγράμματα ή φωτογραφίες που πληρούν ορισμένα πρότυπα ποιότητας (τα οποία είναι κυρίως τεχνικού χαρακτήρα) και είναι πολύτιμες για έργα Wikimedia + Συνέχιση μεταφόρτωσης… + Παύση μεταφόρτωσης… + Ακύρωση μεταφόρτωσης… Ακύρωση Μεταφόρτωσης + Έχετε ενεργοποιήσει τη λειτουργία περιορισμένης σύνδεσης. Όλες οι μεταφορτώσεις έχουν τεθεί σε παύση και θα συνεχιστούν μόλις απενεργοποιήσετε αυτήν τη λειτουργία. + Η λειτουργία περιορισμένης σύνδεσης είναι ενεργοποιημένη. + Γράψτε μια σύντομη λεζάντα που να λέει τι δείχνει η φωτογραφία σας. Στην περιγραφή, πείτε τι κάνει την εικόνα ενδιαφέρουσα ή τυπική ή σπάνια και εξηγήστε το πλαίσιο, ορατό ή όχι. Χρησιμοποιήστε την ακριβή ορολογία όσο μπορείτε. + Βρείτε και επιλέξτε όλα τα στοιχεία που απεικονίζει αυτή η εικόνα. Γίνετε όσο πιο συγκεκριμένοι μπορείτε. Εάν η εικόνα απεικονίζει πολλά στοιχεία, επιλέξτε όλα όσα σχετίζονται. Μην επιλέγετε γενικές ετικέτες εάν είναι διαθέσιμες πιο συγκεκριμένες ετικέτες. + Επιλέξτε τις κατάλληλες κατηγορίες. Σε αντίθεση με τις απεικονίσεις, οι κατηγορίες είναι μόνο στα αγγλικά. + Το Commons κάνει τις φωτογραφίες σας επαναχρησιμοποιήσιμες και ανοιχτές σε όλους. Θέλετε να παραιτηθείτε από όλα τα δικαιώματα; Θέλετε να σας αποδοθούν; Θέλετε προσαρμογές για χρήση της ίδιας άδειας; + Απεικονίζει + Άδεια πολυμέσων + Λεπτομέρειες πολυμέσων + Προβολή σελίδας κατηγορίας + Προβολή σελίδας αντικειμένου + Γλώσσα διεπαφής χρήστη + Αφαιρεί μια λεζάντα και μια περιγραφή + Διαβάστε περισσότερα Για όλες τις γλώσσες + Επιλέξτε μια τοποθεσία + Μετακίνηση και μεγέθυνση για προσαρμογή + Επιλέξτε τοποθεσία + Εμφάνιση στην εφαρμογή χάρτη + Επεξεργασία τοποθεσίας + Η προβολή εικόνας του εργαλείου επιλογής τοποθεσίας + Η σκιά της προβολής εικόνας του εργαλείου επιλογής τοποθεσίας + Τοποθεσία εικόνας + Ελέγξτε εάν η τοποθεσία είναι σωστή + Ετικέτα + Περιγραφή + Αντικείμενα + Προσαρμοσμένος Επιλογέας + Δεν υπάρχουν εικόνες + Ολοκληρώθηκε + Πίσω + Καλώς ορίσατε στον Προσαρμοσμένο Επιλογέα Εικόνων + Αυτό το εργαλείο επιλογής σάς δείχνει ποιες εικόνες έχετε ήδη ανεβάσει στα Commons. + Σε αντίθεση με την εικόνα στα αριστερά, η εικόνα στα δεξιά έχει το λογότυπο Commons που υποδεικνύει ότι έχει ήδη μεταφορτωθεί. Αγγίξτε παρατεταμένα για προεπισκόπηση εικόνας. + Περίφημα! + Αυτή η εικόνα έχει ήδη μεταφορτωθεί στο Commons. + Για τεχνικούς λόγους, η εφαρμογή δεν μπορεί να ανεβάσει αξιόπιστα περισσότερες από %1$d φωτογραφίες ταυτόχρονα. Το όριο μεταφόρτωσης του %1$d έχει ξεπεραστεί κατά %2$d . + Απόρριψη + Μέγιστο: %1$d + Σφάλμα: Υπέρβαση ορίου μεταφόρτωσης + Αυτή η εικόνα θα συμμετάσχει στον διαγωνισμό Wiki Loves Monuments + Εμφάνιση μνημείων + Είναι ο μήνας Wiki Loves Monuments! + Μάθετε Περισσότερα + Το Wiki Loves Monuments είναι ένας διεθνής διαγωνισμός φωτογραφίας για μνημεία που διοργανώνεται από το Wikimedia + Χρειάζεται άδεια + Οι κοντινοί χάρτες πρέπει να διαβάζουν PHONE STATE για να λειτουργούν σωστά + Συνεισφορές χρήστη: %s + Επιτεύγματα χρήστη: %s + Προβολή σελίδας χρήστη + Επεξεργασία απεικονίσεων + Επεξεργασία κατηγοριών + Σύνθετες Επιλογές + Μπορείτε να προσαρμόσετε την κοντινή αναζήτηση. Αν λάβετε λάθη, κάντε επαναφορά και εφαρμόστε. Εφαρμογή Επαναφορά + Τα δεδομένα τοποθεσίας βοηθούν τους συντάκτες του Wiki να βρουν την εικόνα σας, καθιστώντας την πολύ πιο χρήσιμη. Οι πρόσφατες μεταφορτώσεις σας δεν έχουν τοποθεσία. Σας προτείνουμε να ενεργοποιήσετε την τοποθεσία στις ρυθμίσεις της εφαρμογής της κάμεράς σας.\nΣας ευχαριστούμε για τη μεταφόρτωση! Δεν βρέθηκε τοποθεσία + Τι θα λέγατε να προσθέσετε το μέρος όπου τραβήχτηκε αυτή η εικόνα; Τα δεδομένα τοποθεσίας βοηθούν τους συντάκτες του Wiki να βρουν την εικόνα σας, καθιστώντας την πολύ πιο χρήσιμη.\nΕυχαριστούμε! Προσθήκη τοποθεσίας + Αφαιρέστε από αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου οποιεσδήποτε πληροφορίες δεν θα θέλατε να κοινοποιήσετε δημόσια. Επίσης, λάβετε υπόψη ότι η διεύθυνση email σας με την οποία δημοσιεύετε, καθώς και το σχετικό όνομα και η εικόνα προφίλ, θα είναι ορατά δημόσια. Λεπτομέρειες Τα επιτεύγματα είναι διαθέσιμα μόνο στο prod flavor. Ελέγξτε την τεκμηρίωση προγραμματιστή. Το leaderboard είναι διαθέσιμο μόνο στο prod flavor. Ελέγξτε την τεκμηρίωση προγραμματιστή. @@ -608,4 +786,6 @@ %d επιλεγμένη εικόνα Επιλέχθηκαν %d εικόνες + Να θυμάστε ότι όλες οι εικόνες σε μια πολλαπλή μεταφόρτωση έχουν τις ίδιες κατηγορίες και απεικονίσεις. Εάν οι εικόνες δεν μοιράζονται απεικονίσεις και κατηγορίες, πραγματοποιήστε πολλές ξεχωριστές μεταφορτώσεις. + Σημείωση για τις πολλαπλές μεταφορτώσεις diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index eb251448c..28d643e6a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -111,7 +111,7 @@ Veuillez patienter... Mise à jour des légendes et des descriptions Veuillez patienter... - Connexion réussie ! + Connexion réussie ! Échec de la connexion ! Fichier non trouvé. Veuillez en essayer un autre. Limite maximale de nouvel essai atteinte ! Veuillez annuler le téléchargement et réessayer @@ -144,7 +144,7 @@ Veuillez fournir une légende pour ce fichier. Description Légende - Impossible de se connecter — panne du réseau + Impossible de se connecter — panne du réseau Trop de tentatives infructueuses. Veuillez réessayer dans quelques minutes. Désolé, cet utilisateur a été bloqué sur Commons Vous devez fournir votre code d’authentification à deux facteurs. @@ -272,6 +272,7 @@ À propos Paramètres Commentaire + Avis via GitHub Déconnexion Tutoriel Notifications @@ -313,6 +314,7 @@ « À proximité » pourrait ne pas fonctionner correctement, votre emplacement étant indisponible. Refus d’accès à la localisation. Veuillez définir manuellement votre localisation pour utiliser cette fonctionnalité. Une permission est requise pour afficher une liste de lieux à proximité + Permission nécessaire pour afficher une liste d’images à proximité Directions Wikidata Wikipédia @@ -380,7 +382,7 @@ Cette copie d’écran est-elle correcte pour être téléversée ? Partager l’application Pivoter - Erreur durant la recherche d’endroits proches. + Impossible de charger les endroits proches Aucune image dans cette zone Aucun lieu à proximité Erreur de récupération des monuments à proximité. @@ -472,7 +474,7 @@ Le nouveau sélecteur de photos de Android risque de perdre des informations de localisation. Activez-le si vous semblez l’utiliser. Le désactiver pourrait déclencher le nouveau sélecteur de photos de Android. Il risque de perdre des informations de localisation.\n\nTaper sur \'En savoir plus\' pour plus d’informations. Vous ne verrez plus les campagnes. Néanmoins, vous pouvez réactiver cette notification dans vos paramètres de configuration, si vous le souhaitez. - Cette fonction nécessite une connexion réseau, veuillez consulter vos paramètres de connexion. + Cette fonction nécessite une connexion réseau. Veuillez consulter vos paramètres de connexion. Une erreur est survenue durant le traitement de l’image. Veuillez recommencer ! Obtenir un jeton de modification Ajouter un modèle pour le contrôle de catégorie @@ -584,7 +586,7 @@ Impossible d’ajouter des coordonnées. Impossible d’ajouter des descriptions. Impossible d’ajouter la légende. - Impossible d’obtenir les coordonnées. + Coordonnées de l’image non mises à jour Impossible d’obtenir les descriptions. Modifier les descriptions et les légendes Partager l’image via @@ -599,12 +601,13 @@ Photo manquante Type de lieu : Pont, musée, hôtel, etc. - Quelque chose s’est mal passé lors de la connexion, vous devez réinitialiser votre mot de passe !! + Quelque chose s’est mal passé lors de la connexion. Vous devez réinitialiser votre mot de passe ! MÉDIA CLASSES ENFANTS CLASSES PARENTES Lieu à proximité trouvé - Est-ce une photo de « %1$s » ? + Ces images sont-elles de %1$s ? + Est-ce une image de %1$s ? Signets Paramètres Retiré des favoris @@ -618,8 +621,10 @@ Échec d’ouverture des paramètres d’emplacement. Veuillez activer la localisation manuellement. Pour de meilleurs résultats, choisir le mode Haute Précision. Activer la localisation ? + Veuillez activer la localisation des services pour l’application montrant votre emplacement actuel « Lieux à proximité » nécessite que la localisation soit activée pour fonctionner correctement. - Vous devez donner accès à votre emplacement actuel pour définir automatiquement la localisation. + Explorer les cartes nécessite le droit de localisation pour afficher les images proches + Vous devez donner le droit de localisation pour définir automatiquement la localisation. Avez-vous pris ces deux photos au même lieu ? Voulez-vous utiliser la latitude et la longitude de l’image de droite ? Charger davantage Aucun lieu trouvé, essayez de modifier vos critères de recherche. @@ -735,7 +740,7 @@ Ajouter un lieu Veuillez supprimer de ce courriel toute information que vous n’aimeriez pas diffuser publiquement. Également, veuillez prendre conscience du fait que votre adresse de messagerie avec laquelle vous publiez, ainsi que le nom et l’image de profil associés, seront visibles publiquement. Détails - Les réalisations ne sont disponibles que dans la version de production, veuillez consulter la documentation du développeur. + Les réalisations ne sont disponibles que dans la version de production. Veuillez consulter la documentation du développeur. Le classement n’est disponible que dans la version de production, veuillez consulter la documentation du développeur. Veuillez ne téléverser que des images que vous avez créées vous-même. Ceux qui téléversent des images soumises aux droits d’auteur seront bloqués. Ceci s’applique également à la version bêta. Merci pour votre test de l’application ! Veuillez désélectionner toute information que vous ne vous sentez pas à l’aise de partager publiquement. @@ -780,11 +785,26 @@ Voir vos réalisations Modifier l’image Modifier l’emplacement + Emplacement mis à jour ! + Supprimer l’emplacement + Supprimer l’avertissement de localisation + La localisation rend les images plus utiles et faciles à trouver. Voulez-vous vraiment supprimer l’emplacement de cette image ? + Emplacement supprimé ! Remercier l’auteur Erreur en envoyant un remerciement à l’auteur. - Votre connexion a expiré, veuillez vous reconnecter. + Votre connexion a expiré. Veuillez vous reconnecter. + Aucune application disponible pour ouvrir les fichiers GPX + Fichier bien enregistré + Voulez-vous ouvrir le fichier GPX ? + Voulez-vous ouvrir le fichier KML ? + Échec d’enregistrement du fichier KML. + Échec d’enregistrement du fichier GPX. + Fichier KML enregistré + Fichier GPX enregistré %d image sélectionnée %d images sélectionnées + Souvenez-vous que toutes les images dans une importation multiple prennent les mêmes catégories et descriptions. Si les images de partagent pas les descriptions et catégories, veuillez effectuer plusieurs importations séparées. + Note au sujet des importations multiples diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 797e67f67..0aec6d835 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -19,6 +19,7 @@ * Ykhwong * YuzaTea * 그냥기여자 +* 밥풀떼기 * 아라 --> @@ -88,8 +89,9 @@ 로그인 성공! 로그인 실패! 파일을 찾을 수 없습니다. 다른 파일을 사용해 주십시오. - 인증을 실패했습니다. 다시 로그인해 주십시오 + 인증 실패. 다시 로그인해 주십시오 올리기를 시작했습니다! + 업로드 대기 중 (제한 연결 모드 활성화됨) %1$s 파일을 올렸습니다! 올린 것을 보려면 탭하세요 %1$s 파일 올리는 중 @@ -272,7 +274,7 @@ 상세 내용은 웹페이지를 참고하십시오 건너뛰기 로그인 - 로그인을 정말로 건너뛰시겠습니까? + 로그인을 건너뛰시겠습니까? 나중에 사진을 업로드하려면 로그인해야 합니다. 이 기능을 사용하려면 로그인해 주십시오 위키텍스트를 클립보드에 복사 @@ -338,7 +340,7 @@ 기술이나 문화를 보여주는 사진은 공용에서 기꺼이 환영합니다. 정답 %1$s개를 맞추셨습니다. 축하드립니다! 질문에 답하기 위해 옵션 2개 중 하나를 선택하십시오 - 로그인 세션이 만료되었으므로 다시 로그인해 주십시오. + 로그인 세션 만료. 다시 로그인해 주십시오. 친구들과 퀴즈를 공유하세요! 계속 정답 @@ -347,7 +349,9 @@ 앱 공유 회전 주변 장소를 불러오지 못했습니다 + 이 지역에는 사진이 없습니다 근처에 장소가 없습니다 + 주변 명소를 가져오는 중에 오류가 발생했습니다. 최근 검색 없음 검색 기록을 지우겠습니까? 이 업로드를 취소하시겠습니까? @@ -432,7 +436,10 @@ 감사 표현 보내기: 실패 알맞게 분류됐습니까? 기여자에게 감사를 표하시겠습니까? + 앗, 분류가 달리지 않은 것 같습니다! 이 이미지는 %1$s 분류에 속해 있습니다. + 범위 밖이며 사유는 + 저작권 위반이며 사유는 다음 이미지 이 버튼을 클릭하면 위키미디어 공용으로부터 최근 업로드된 다른 이미지를 제공합니다 @@ -547,8 +554,13 @@ 매년 매주 업로드 + 근처 내 순위 제한된 연결 모드 + 고품질 사진 + 고품질 사진은 품질 상의 몇가지 기준 (대부분 기술적 특성)을 충족하고 위키미디어 프로젝트에 가치가 있는 사진이나 도해를 말합니다. + 업로드를 재개하는 중… + 업로드를 중단하는 중… 올리기를 취소하는 중… 올리기 취소 연결 제한 모드를 사용 중입니다. 모든 업로드는 일시 중단되며 이 모드를 끄면 재개됩니다. @@ -568,6 +580,13 @@ 이미지 위치 위치가 올바른지 확인 항목 + 완료 + 뒤로 + 커스텀 사진 선택기에 오신 것을 환영합니다. + 이 선택기는 당신이 지금까지 커먼즈에 업로드한 사진을 보여줍니다. + 왼쪽 사진과 달리 오른쪽 사진에는 이미 업로드되었음을 나타내는 커먼즈 로고가 있습니다. \n이미지를 미리 보시려면 길게 터치하세요. + 훌륭합니다 + 이 이미지는 이미 커먼즈에 업로드되었습니다. 권한 필요 사용자의 기여: %s 사용자 문서 보기 @@ -575,6 +594,9 @@ 고급 옵션 적용 재설정 + 위치를 찾을 수 없습니다 + 이 사진을 찍은 장소를 추가해 보는 것은 어떨까요?\n위치 정보는 위키 편집자가 사진을 찾는 데 도움이 되며, 훨씬 더 유용하게 사용됩니다.\n감사합니다! + 위치 추가 자세한 사항 당신이 찍은 사진만 올려 주십시오. 저작권이 있는 이미지를 올린 사람은 차단됩니다. 양질의 이미지에도 해당합니다. 앱을 테스트해 주셔서 고맙습니다! API 레벨 @@ -588,9 +610,36 @@ 당신의 피드백은 무엇입니까? 피드백 업로드 대상이 아닌 것으로 표시 + 업로드 대상 아님 표시 해제하기 + 업로드 대상 아님으로 표시 더 이상 이미지를 찾을 수 없습니다 이 이미지는 이미 업로드되었습니다 - 로그인이 만료되었습니다. 다시 로그인해 주십시오. + 이 이미지는 업로드 대상으로 선택할 수 없습니다. + 선택한 이미지 + 업로드 대상이 아닌 것으로 표시한 이미지 + 신고 + 흰 배경 설정 + 검은 배경 설정 + 규정위반 신고 + 이 사용자 신고 + 이 콘텐츠 신고 + 이 사용자 차단 요청 + 전체 화면 선택 모드에 오신 것을 환영합니다 + 두 손가락으로 확대 / 축소하세요. + 다음 방향으로 길고 재빠르게 넘겨보세요. \n- 왼쪽/오른쪽: 이전/다음으로 이동 \n- 위쪽: 선택\n- 아래쪽: 비업로드용으로 표시 + 유용한 설명을 추가하는 법 알아보기 + 유용한 캡션을 추가하는 법 알아보기 + 업적 보기 + 그림 편집 + 위치 편집 + 위치가 갱신되었습니다! + 위치 제거 + 위치 경고 제거 + 위치를 표시하면 그림이 더욱 찾기 쉽고 유용해집니다. 정말로 이 그림에서 위치를 제거하시겠습니까? + 위치가 삭제되었습니다! + 작성자에게 감사 표시하기 + 작성자에게 감사를 표하던 도중에 오류가 발생하였습니다. + 로그인 세션 만료. 다시 로그인해 주십시오. 파일이 성공적으로 저장되었습니다 GPX 파일을 여시겠습니까? KML 파일을 여시겠습니까? diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0d59618af..cca67239e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -284,6 +284,7 @@ \"I närheten\" kanske inte fungerar ordentligt. Platsen är inte tillgänglig. Platsåtkomst nekad. Ange din plats manuellt för att använda den här funktionen. Behörighet krävs för att visa en lista över platser i närheten + Behörighet krävs för att visa en lista över bilder i närheten Vägbeskrivning Wikidata Wikipedia @@ -351,7 +352,7 @@ Är det okej att ladda upp denna skärmdump? Dela app Rotera - Fel uppstod när platser i närheten hämtades. + Kunde inte ladda in platser i närheten Inga bilder i detta område Inga platser i närheten Fel uppstod när monument i närheten hämtades. @@ -555,7 +556,7 @@ Kunde inte lägga till koordinater. Kunde inte lägga till beskrivningar. Kunde inte lägga till bildtext. - Kunde inte hämta koordinater. + Bildens koordinater är inte uppdaterade Kunde inte hämta beskrivningar. Redigera beskrivningar och bildtexter Dela bild via @@ -575,7 +576,8 @@ UNDERORDNADE KLASSER ÖVERORDNADE KLASSER Hittade platser i närheten - Är detta ett foto på %1$s? + Föreställer de här bilderna %1$s? + Är detta en bild på %1$s? Bokmärken Inställningar Togs bort från bokmärken @@ -589,8 +591,10 @@ Misslyckades att öppna platsinställningar. Aktivera plats manuellt För bästa resultat väljer du alternativet \"Öka precisionen\". Aktivera plats? + Aktivera platstjänster för appen för att visa din aktuella plats \"I närheten\" behöver ha plats aktiverat för att fungera ordentligt - Du måste ge åtkomst till din nuvarande plats för att ange platsen automatiskt. + Utforska kartan behöver platsbehörighet för att visa bilder i närheten + Du måste ge platsbehörighet för att automatiskt ange plats. Tog du dessa två bilder på samma plats? Vill du använda den högra bildens latitud/longitud? Läs in fler Inga platser hittades, försök ändra dina sökkriterier. @@ -769,4 +773,6 @@ %d markerad bild %d markerade bilder + Kom ihåg att när du laddar upp flera bilder får alla bilder samma kategorier och motiv. Om bilder inte bör dela beskrivningar och motiv bör du ladda upp de en och en istället. + Anmärkning om att ladda upp flera bilder From cd045a2a2ad1f56a699f095c7a70aa239c8c0147 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 27 May 2024 14:01:46 +0200 Subject: [PATCH 014/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-pa/strings.xml | 57 ++++++++++++++++++++++++- app/src/main/res/values-qq/strings.xml | 1 + app/src/main/res/values-xmf/strings.xml | 21 ++++++++- app/src/main/res/values-zh/strings.xml | 4 +- 4 files changed, 77 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index ab4cf5006..85d1fc6fd 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -2,6 +2,7 @@ ਕਾਮਨਜ਼ ਲੋਗੋ + ਇੱਕ ਹੋਰ ਵੇਰਵਾ ਸ਼ਾਮਲ ਕਰੋ + ਨਵਾਂ ਯੋਗਦਾਨ ਸ਼ਾਮਲ ਕਰੋ + ਵੇਰਵਾ + ਤਸਵੀਰ + ਸਾਰੇ + ਦਿਨ ਦੀ ਤਸਵੀਰ ੧ ਫ਼ਾਈਲ ਚੜ੍ਹਾਈ ਜਾ ਰਹੀ ਹੈ %1$d ਫ਼ਾਈਲਾਂ ਚੜ੍ਹਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ @@ -27,6 +34,9 @@ %1$d ਅੱਪਲੋਡਾਂ ਇਹ ਤਸਵੀਰ ਦਾ %1$s ਹੇਠ ਲਸੰਸ ਜਾਰੀ ਕੀਤੀ ਜਾਵੇਗਾ + ਪੜਚੋਲ ਕਰੋ + ਦਿੱਖ + ਆਮ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਸੈਟਿੰਗ ਵਰਤੋਂਕਾਰ ਨਾਂ @@ -34,6 +44,7 @@ ਦਾਖ਼ਲ ਹੋਵੋ ਦਾਖ਼ਲਾ ਹੋ ਰਿਹਾ ਹੈ ਉਡੀਕੋ ਜੀ… + ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ... ਦਾਖ਼ਲ ਹੋਣਾ ਸਫ਼ਲ! ਦਾਖ਼ਲ ਹੋਣਾ ਅਸਫ਼ਲ! ਫ਼ਾਇਲ ਦੀ ਖੋਜ ਨਹੀਂ ਹੋ ਸਕੀ। ਕਿਰਪਾ ਕਰਕੇ ਹੋਰ ਫ਼ਾਇਲ ਖੋਜੋ। @@ -69,12 +80,14 @@ ਸ਼੍ਰੇਣੀਆਂ ਖੋਜੋ ਸਾਂਭੋ ਤਾਜ਼ਾ ਕਰੋ + ਸੂਚੀ ਫ਼ਿਲਹਾਲ ਕੋਈ ਅੱਪਲੋਡ ਨਹੀਂ %1$s ਨਾਲ਼ ਮੇਲ ਖਾਂਦੀ ਕੋਈ ਸ਼੍ਰੇਣੀ ਨਹੀਂ ਲੱਭੀ ਆਪਣੀਆਂ ਤਸਵੀਰਾਂ ਨੂੰ ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼ ਵਿਚ ਜ਼ਿਆਦਾ ਲੱਭਣਯੋਗ ਬਣਾਉਣ ਲਈ ਸ਼੍ਰੇਣੀਆਂ ਜੋੜੋ।\n\nਸ਼੍ਰੇਣੀਆਂ ਜੋੜਨ ਲਈ ਟਾਈਪ ਕਰਨ ਅਰੰਭ ਕਰੋ।\nਇਸ ਕਾਰਜ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਨ ਲਈ ਇਹ ਸੁਨੇਹਾ ਥਪੇੜੋ (ਜਾਂ ਵਾਪਸੀ ਬਟਨ ਦਬਾਓ)। ਸ਼੍ਰੇਣੀਆਂ ਸੈਟਿੰਗ ਸਾਈਨ ਅੱਪ + ਸ਼੍ਰੇਣੀ ਇਸ ਬਾਰੇ ਅਜ਼ਾਦ ਸਰੋਤ ਸਾਫ਼ਟਵੇਅਰ ਨੂੰ <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a> ਅਧੀਨ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ ਸਰੋਤ <a href=\"https://github.com/commons-app/apps-android-commons\">GitHub</a> ਉੱਤੇ। ਮੁਸ਼ਕਲਾਂ <a href=\" https://github.com/commons-app/apps-android-commons/issues\">Github</a> ਉੱਤੇ। @@ -117,6 +130,7 @@ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ... ਕੋਈ ਵੀ ਨਹੀਂ ਚੁਣਿਆ ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ + ਕੋਈ ਚਰਚਾ ਨਹੀਂ ਅਣਜਾਣ ਲਸੰਸ ਤਾਜ਼ਾ ਕਰੋ ਆਗਿਆ ਚਾਹੀਦੀ ਹੈ: ਬਾਹਰੀ ਸਟੋਰੇਜ ਬਾਰੇ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਐਪ ਕਾਰਜ ਨਹੀਂ ਕਰ ਸਕੇਗੀ। @@ -126,6 +140,8 @@ ਨਹੀਂ ਸਿਰਲੇਖ ਵੇਰਵਾ + ਚਰਚਾ + ਲਿਖਾਰੀ ਅਪਲੋਡ ਦੀ ਮਿਤੀ ਲਸੰਸ ਗੁਣਕ @@ -137,14 +153,51 @@ ਰੱਦ ਕਰੋ ਖੋਲ੍ਹੋ ਬੰਦ ਕਰੋ - ਮੁੱਖ ਸਫ਼ਾ + ਮੁੱਢਲਾ ਸਫ਼ਾ ਚੜ੍ਹਾਉ ਨੇੜੇ-ਤੇੜੇ ਬਾਰੇ ਸੈਟਿੰਗਾਂ - ਫ਼ੀਡਬੈਕ + ਸੁਝਾਅ ਬਾਹਰ ਆਉ ਟਿਊਟੋਰਿਅਲ + ਸੂਚਨਾਵਾਂ + ਪਰਖੋ + ਵਿਕੀਪੀਡੀਆ ਲੇਖ + ਤਸਵੀਰ ਬਹੁਤ ਗੂੜ੍ਹੀ ਹੈ। + ਤਸਵੀਰ ਧੁੰਦਲੀ ਹੈ। + ਛੱਡੋ + ਵਿਕੀਡੇਟਾ + ਵਿਕੀਪੀਡੀਆ + ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸੁਆਲ + ਸਿਖਲਾਈ ਛੱਡੋ + ਤਰਜਮਾ ਕਰੋ + ਬੋਲੀਆਂ + ਅੱਗੇ ਵਧੋ + ਰੱਦ ਕਰੋ + ਲੱਭੋ + ਲੱਭੋ + ਸ਼੍ਰੇਣੀਆਂ + ਨਕਸ਼ਾ + ਸਵਾਲ + ਜਾਰੀ ਰੱਖੋ + ਮਿਟਾਓ + ਪ੍ਰਾਪਤੀਆਂ + ਅੰਕੜੇ + ਧੰਨਵਾਦ ਪ੍ਰਾਪਤ ਹੋਏ + ਸੂਚਨਾਵਾਂ (ਪੜ੍ਹਿਆਂ) + ਸੂਚੀ + ਅੱਗੇ + ਪਿਛਲਾ + ਟਿਕਾਣਾ + ਨੂੰ ਮਿਆਦ ਪੁਗਦੀ + ਮੁਹਿੰਮਾਂ ਵੇਖਾਓ + ਇਜਾਜ਼ਤ ਦਿਓ + ਖ਼ਾਰਜ ਕਰੋ + ਧੰਨਵਾਦ ਭੇਜਣਾ: ਸਫਲ ਹੋਇਆ ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ... + ਉਤਾਰਾ ਕੀਤਾ + ਟਿਕਾਣਾ + ਲਿਖਤ ਛਾਪੋ ਤੁਹਾਡੇ ਦਾਖਲੇ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਦਾਖਲ ਹੋਵੋ। diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 0e7cc31c4..e06969dc2 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -2,6 +2,7 @@ @@ -11,6 +12,22 @@ Kod Sumber Github Commons Logo Commons Tapak Sesawang Commons + Keluar dari pemilih lokasi + Hantar + Tambah penerangan lain + Tambah sumbangan baru + Tambah sumbangan dari kamera + Tambah sumbangan dari Foto + Tambah sumbangan dari galeri sumbangan sebelumnya + Kapsyen + Keterangan Bahasa + Kapsyen + Keterangan + Imej + Semua + Togol Atas + Paparan Carian + Gambar untuk Hari ini %d fail sedang dimuat naik Belum ada muatnaik @@ -26,31 +43,41 @@ Gambar ini akan dilesenkan di bawah %1$s Jelajah Penampilan + Umum Maklum balas Privasi Commons Tetapan Muat naik ke Commons + Muat naik sedang dijalankan Nama pengguna Kata laluan Log masuk ke akaun Commons Beta anda Log masuk Lupa Kata Laluan? + Daftar masuk Sedang log masuk Sila tunggu… + Mengemas kini kapsyen dan keterangan Sila tunggu… - Berjaya log masuk! - Gagal log masuk! + Log masuk berjaya! + Log masuk gagal! Fail tidak dijumpai. Sila cuba fail lain. - Pendaftaran gagal, sila log masuk lagi + Had percubaan maksimum dicapai! Sila batalkan muat naik dan cuba semula + Matikan pengoptimuman bateri? + Muat naik lebih dari 3 imej berfungsi dengan lebih berkesan jika mod pengoptimuman bateri dimatikan. Sila matikan mod pengoptimuman bateri bagi aplikasi Commons dari tetapan untuk pengalaman muat naik yang lebih lancar.\n\nLangkah-langkah mungkin bagi mematikan pengoptimuman bateri:\n\nLangkah 1: Sentuh pada butang \'Settings\' di bawah.\n\nLangkah 2: Tukar dari \'Not optimized\' ke \'All apps\'\n\nLangkah 3: Cari \"Commons\" atau \"fr.free.nrw.commons\".\n\nLangkah 4: Sentuh padanya dan pilih \'Don\'t optimize\'.\n\nLangkah 5: Tekan \'Done\' + Pengesahan gagal. Sila log masuk semula. Pemuatnaikan telah bermula! + Muat naik menunggu (mod sambungan terhad diaktifkan) %1$s telah dimuat naik! Ketik untuk melihat muatan naik anda - Mula memuat naik %1$s + Memuat naik fail: %s %1$s sedang dimuat naik %1$s akan siap dimuat naik - %1$s gagal dimuat naik + Gagal untuk muat naik %1$s + Muat naik %1$s tertunda Ketik untuk lihat + Sentuh untuk lihat Muat Naik Terbaru Saya Dibaris gilir Gagal @@ -62,31 +89,37 @@ Muatan naik saya Kongsi Lihat laman fail - Tajuk + Kapsyen (wajib) + Sila berikan kapsyen untuk fail ini Keterangan Kapsyen - Tidak boleh log masuk - kegagalan rangkaian - Terlalu banyak cubaan yang tidak berjaya. Sila cuba lagi dalam beberapa minit + Tidak boleh log masuk - kegagalan rangkaian + Terlalu banyak cubaan yang tidak berjaya. Sila cuba lagi dalam beberapa minit. Maaf, pengguna ini telah disekat di Commons - Log masuk gagal + Anda perlu berikan kod penyahihan dua-faktor anda. + Log masuk gagal Muat naik Namakan set ini Pengubahsuaian Muat naik Cari dalam kategori Simpan + Segarkan Senarai + (Tiada muat naik lagi) Tiada kategori yang sepadan dengan %1$s dijumpai Tambahkan kategori supaya gambar-gambar anda lebih senang ditemui di Wikimedia Commons.\n\nMula menaip untuk menambahkan kategori.\nKetik mesej ini (atau tekan butang undur) untuk melangkau langkah ini. Kategori Tetapan Kategori Perihal - Perisian Sumber Terbuka yang dikeluarkan dengan <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Lesen Apache v2</a> - Sumber di <a href=\"https://github.com/commons-app/apps-android-commons\">GitHub</a>. Pepijat di <a href=\" https://github.com/commons-app/apps-android-commons/issues\">Github</a>. - Wikimedia:Commons-android-strings-about privacy policy/ms + Aplikasi Wikimedia Commons ialah aplikasi sumber terbuka yang dicipta dan diselenggara oleh penerima geran dan sukarelawan komuniti Wikimedia. Yayasan Wikimedia tidak terlibat dalam penciptaan, pembangunan atau penyelenggaraan aplikasi ini. + Cipta <a href=\"%1$s\">isu GitHub</a> baru bagi melaporkan pepijat dan cadangan. + Dasar privasi + Kredit Perihal Hantar Maklum Balas (secara e-mel) + Tiada klien emel dipasang Kategori yang baru digunakan Menunggu penyegerakan pertama… Anda belum memuat naik sebarang gambar. @@ -211,6 +244,7 @@ Tamat pada: Imej berikutnya Ya, kenapa tidak + Pengarang Akses lokasi media ditolak Kami mungkin tidak dapat memperolehi data tempat dari gambar yang anda muat naik secara automatik. Sila tambah tempat sewajarnya pada setiap gambar sebelum menyerahnya Kemas kini kategori diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a8fce35c8..8cce2456b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -292,7 +292,7 @@ Overslaan Aanmelden Weet u zeker dat u het aanmelden wilt overslaan? - U moet zich dan later wel aanmelden om afbeeldingen te kunnen uploaden. + U moet zich dan later wel aanmelden om afbeeldingen te kunnen uploaden. Meld u aan om deze functie te gebruiken Kopieer de wikitekst naar het klembord De wikitekst is gekopieerd naar het klembord @@ -792,4 +792,5 @@ Houd er rekening mee dat alle afbeeldingen in een multi-upload dezelfde categorieën krijgen en geacht worden hetzelfde weer te geven. Als deze gegevens per afbeelding moeten verschillen, voer dan meerdere afzonderlijke uploads uit. Opmerking over multi-uploads + Uw feedback wordt op de volgende wikipagina geplaatst: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 4b7cdc4f4..ab3d3a28b 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -130,7 +130,7 @@ ਲੱਦ ਰਿਹਾ ਹੈ... ਕੋਈ ਵੀ ਨਹੀਂ ਚੁਣਿਆ ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ - ਕੋਈ ਚਰਚਾ ਨਹੀਂ + ਕੋਈ ਗੱਲਬਾਤ ਨਹੀਂ ਅਣਜਾਣ ਲਸੰਸ ਤਾਜ਼ਾ ਕਰੋ ਆਗਿਆ ਚਾਹੀਦੀ ਹੈ: ਬਾਹਰੀ ਸਟੋਰੇਜ ਬਾਰੇ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਐਪ ਕਾਰਜ ਨਹੀਂ ਕਰ ਸਕੇਗੀ। @@ -140,7 +140,7 @@ ਨਹੀਂ ਸਿਰਲੇਖ ਵੇਰਵਾ - ਚਰਚਾ + ਗੱਲਬਾਤ ਲਿਖਾਰੀ ਅਪਲੋਡ ਦੀ ਮਿਤੀ ਲਸੰਸ @@ -153,7 +153,7 @@ ਰੱਦ ਕਰੋ ਖੋਲ੍ਹੋ ਬੰਦ ਕਰੋ - ਮੁੱਢਲਾ ਸਫ਼ਾ + ਘਰ ਚੜ੍ਹਾਉ ਨੇੜੇ-ਤੇੜੇ ਬਾਰੇ diff --git a/app/src/main/res/values-pms/strings.xml b/app/src/main/res/values-pms/strings.xml index 28a4a4b26..96e21e87c 100644 --- a/app/src/main/res/values-pms/strings.xml +++ b/app/src/main/res/values-pms/strings.xml @@ -269,7 +269,7 @@ Sauté Intré ant ël sistema Veul-lo për da bon sauté la procedura d\'intrada ant ël sistema? - A l\'avnì a dovrà rintré ant ël sistema për carié \'d fòto. + A l\'avnì a dovrà rintré ant ël sistema për carié \'d fòto. Për piasì, ch\'a rintra ant ël sistema për podèj dovré costa fonsionalità Copié ël test wiki ant ël pògia-feuj Ël test wiki a l\'é stàit copià ant ël pògia-feuj @@ -767,4 +767,5 @@ Ch\'a ten-a da ment che tute le plance ant un cariament mùltipl a pijo j\'istesse categorìe e descrission. Si le plance a partagio nen descrission e categorìe, për piasì ch\'a fasa tanti cariament separà. Nòta an sij cariament mùltipl + Ij sò sugeriment a saran giontà a coste pàgine wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b753806d5..a36df69f7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -325,7 +325,7 @@ Пропустить Войти Вы действительно хотите пропустить авторизацию? - Вам следует залогиниться чтобы загружать изображения. + Вам придётся войти в систему, чтобы загружать фотографии в будущем. Войдите, чтобы использовать эту функцию Копирование викикода в буфер обмена Викикод скопирован в буфер обмена @@ -831,4 +831,5 @@ Помните, что все изображения при мультизагрузке получают одинаковые категории и описания. Если изображения не имеют одинаковых описаний и категорий, выполните несколько отдельных загрузок. Замечание о мультизагрузках + Ваш отзыв будет опубликован на следующей вики-странице: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index f69aa3f0e..92fa25f3e 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -1,9 +1,9 @@ කොමන්ස් ෆේස්බුක් පිටුව diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index b2b242929..a4ed17c02 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1,6 +1,7 @@ 共享资源Facebook页面 From 68df749ad2ae4679093ab66aa92cf9163d46c39a Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 13 Jun 2024 14:02:35 +0200 Subject: [PATCH 026/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ia/strings.xml | 3 +- app/src/main/res/values-mk/strings.xml | 3 +- app/src/main/res/values-ne/strings.xml | 54 +++++++++++++++++++++- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 3 +- 5 files changed, 59 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index f3d15985e..18739c8c5 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -263,7 +263,7 @@ Saltar Aperir session Vole tu vermente saltar le apertura de session? - Tu debera alora aperir session pro incargar imagines plus tarde. + Tu debera aperir session pro incargar imagines in le futuro. Per favor aperi session pro usar iste function Copiar le wikitexto al area de transferentia Le wikitexto ha essite copiate al area de transferentia @@ -761,4 +761,5 @@ Nota ben que tote le imagines in un multi-incargamento habera le mesme categorias e representationes. Si le imagines non condivide representationes e categorias, per favor exeque plure incargamentos separate. Aviso sur le multi-incargamentos + Tu retroaction apparera sur le sequente pagina wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 3eb6d10e3..28034afee 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -271,7 +271,7 @@ Прескокни Најава Дали навистина сакате да ја прескокнете најавата? - Ќе морате да се најавите за да подигате слики во иднина. + Ќе морате да се најавите за да подигате слики во иднина. Најавете се за да ја користите оваа можност. Прекопирај го викитекстот во меѓускладот Викитекстот е прекопиран во меѓускладот @@ -771,4 +771,5 @@ Запомнете дека сите слики што ги подигате наеднаш се очекуваат да ја прикажуваат истата работа и ги добиваат истите категории и описи. Ако сликите прикажуваат различни нешта и треба да имаат различни категории, извршете неколку одделни подигања. Напомена за подигање повеќе слики наеднаш + Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 1d2a28606..a5fcde85c 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -12,6 +12,7 @@ --> कमन्सकाे फेसबुक पृष्ठ + कमन्सकाे Github स्रोत कोड कमन्सकाे लाेगाे कमन्सकाे वेबसाइट बुझाउनुहोस् @@ -37,6 +38,7 @@ खाता खाेल्नुहाेस् प्रवेश गर्दै कृपया प्रतीक्षा गर्नुहोस् … + कृपया प्रतीक्षा गर्नुहोस् … प्रवेश सफल! प्रवेश सफल हुन सकेन! चित्र भेटिएन। कृपया अर्को चित्र प्रयास गर्नुहोस्। @@ -46,9 +48,10 @@ तपाईको उर्ध्वभरण हेर्नको लागि ट्याप गर्नुहोस् %1$s उर्ध्वभरण सुरू गर्दैै %1$s उर्ध्वभरण गरिँदै - %1$s उर्ध्वभरण सकाउँदै + %1$s उर्ध्वभरण सकाउँदै %1$s उर्ध्वभरण असफल भयो हेर्नको लागि ट्याप गर्नुहोस् + हेर्नको लागि ट्याप गर्नुहोस् मेरा हालैका उर्ध्वभरणहरू लाममा राखियो असफल भयो @@ -205,6 +208,7 @@ प्रश्नोत्तरी प्रश्न नतिजा + लग इनको म्याद सकियो। कृपया पुन: लग इन गर्नुहाेस्। निरन्तरता दिनुहोस् गलत उत्तर अनुप्रयाेग साझेदारी गर्नुहाेस् @@ -248,6 +252,8 @@ एउटा सेल्फी जुन कुनै पनि लेखहरूमा प्रयोग गरिएको छैन् पुरै धमिलो लोगो + सफल + सफल तपाईले हालसम्म कुनैपनि सम्पादन गर्नु भएकाे छैन खाता सृजना गरियो! नजिकैको स्थान भेटियो @@ -255,10 +261,54 @@ मेरो अभिरुचिहरू पुस्तक चिनाेमा थपियाे भित्तेपत्रकाे रूपमा चयन गर्नुहोस् + वालपेपर सेट गर्दै। कृपया प्रतीक्षा गर्नुहोस् … पुनर्निर्धारित गाढा हल्का + पुस्तक चिनोहरू + उपलब्धिहरू + उर्ध्वभरण गर्ने + निकटस्थ + विवरण + वस्तुहरू + सम्पन्न भयो + + थप जान्नुहोस् + विकी लभ्स मोनुमेन्टस् + अनुमति आवश्यक + प्रयोगकर्ता पृष्ठ हेर्नुहोस् + सम्पादन श्रेणीहरू + उन्नत विकल्प + तपाईँले निकटता क्वेरी अनुकूलन गर्न सक्नुहुन्छ। त्रुटी भएमा पूर्ववत् गर्नुभएर लागू गर्नुहोस्। + लागू गर्नुहोस् + पूर्वस्थितिमा फर्काउनुहोस् + + कुनै पनि स्थान फेला परेन । + तस्विर खिचिएको स्थान थप्ने हो?\nस्थानको डेटाले विकी सम्पादकहरूलाई तस्विर भेटाउन मद्दत गर्छ र यसलाई धेरै उपयोगी गराउँछ।\nधन्यवाद! + स्थान थप्नुहोस् + विवरणहरू + कृपया आफैँले खिच्नुभएको तस्विर मात्र अपलोड गर्नुहोस्। प्रतिलिपि अधिकार हनन् गर्ने अपलोडकर्तालाई रोकगाइने छ। यो बिटाएपमा पनि लागू हुन्छ। एप परीक्षण गर्नुभएकोमा धन्यवाद! + एन्ड्रोइड संस्करण + उपकरण निर्माता + उपकरण मोडल + उपकरणको नाम + सञ्जालको प्रकार + प्रतिक्रिया दिनुभएकोमा धन्यवाद + प्रतिक्रिया पठाउँदा त्रुटि भयो + तपाईँको प्रतिक्रिया के छ? + छानिएको चित्र + रिपोेर्ट गर्नुहोस् यस प्रयोगकर्तालाई उजुरी गर्नुहोस् - यस प्रतिवेदनलाई उजुरी गर्नुहोस् + यस सामग्रीलाई उजुरी गर्नुहोस् यस प्रयोगकर्तालाई रोक लगाउन अनुरोध गर्नुहोस् + तस्विर सम्पादन गर्नुहोस् + स्थान सम्पादन गर्नुहोस् + स्थान अपडेट गरियो! + यो स्थान हटाउनुहोस् + स्थान चेतावनी हटाउनुहोस् + स्थान हटाइयो! + सर्जकलाई धन्यवाद दिनुहोस् + सर्जकलाई धन्यवाद पठाउँदा त्रुटि भयो। + तपाईँको लग इनको म्याद सकियो। कृपया पुन: लग इन गर्नुहाेस्। + फाइल सफलतापूर्वक सङ्ग्रह गरियो। diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 8cce2456b..57fa519b2 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -292,7 +292,7 @@ Overslaan Aanmelden Weet u zeker dat u het aanmelden wilt overslaan? - U moet zich dan later wel aanmelden om afbeeldingen te kunnen uploaden. + In de toekomst moet u zich aanmelden om afbeeldingen te kunnen uploaden. Meld u aan om deze functie te gebruiken Kopieer de wikitekst naar het klembord De wikitekst is gekopieerd naar het klembord diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e083b2f4b..25ed6ffc9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -292,7 +292,7 @@ 略過 登入 您確定要略過登入嗎? - 之後您需要登入才能上傳圖片。 + 您之後需要登入才能上傳圖片。 請登入來使用此功能 複製 wikitext 到剪貼簿 Wikitext 已複製到剪貼簿 @@ -792,4 +792,5 @@ 請記住,多重上傳中的所有圖片都會取得相同的分類和描述。如果圖片不要共享描述和分類,請執行多次單筆上傳。 關於多次上傳的註釋 + 您的回饋已發布到以下 wiki 頁面:<a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> From c2ac0f659a815cdc5e11afe1fe17bef5f2104d1f Mon Sep 17 00:00:00 2001 From: Adam English <64763007+AdamTWEnglish@users.noreply.github.com> Date: Sun, 16 Jun 2024 05:47:28 +0930 Subject: [PATCH 027/499] Add code on line 340. Replace the 'Add location' button with 'Edit location' button when user clicks yes in similar image dialog (#5756) Co-authored-by: starrain --- .../upload/mediaDetails/UploadMediaDetailFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 2cf284705..105df1837 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -333,6 +333,13 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements uploadMediaDetailAdapter.getItems().get(0).setDescriptionText( getString(R.string.similar_coordinate_description_auto_set)); updateMediaDetails(uploadMediaDetailAdapter.getItems()); + + // Replace the 'Add location' button with 'Edit location' button when user clicks + // yes in similar image dialog + // fixing: https://github.com/commons-app/apps-android-commons/issues/5669 + Drawable mapTick = getResources().getDrawable(R.drawable.ic_map_available_20dp); + binding.locationImageView.setImageDrawable(mapTick); + binding.locationTextView.setText(R.string.edit_location); } @Override From 0e39d937210bc828d60881051068c6b7e604b95f Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 17 Jun 2024 14:02:06 +0200 Subject: [PATCH 028/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-fa/error.xml | 1 + app/src/main/res/values-fa/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 3 ++ app/src/main/res/values-lb/strings.xml | 17 +++++-- app/src/main/res/values-tr/strings.xml | 63 ++++++++++++++++++++------ 6 files changed, 70 insertions(+), 19 deletions(-) diff --git a/app/src/main/res/values-fa/error.xml b/app/src/main/res/values-fa/error.xml index a938aa881..56981759b 100644 --- a/app/src/main/res/values-fa/error.xml +++ b/app/src/main/res/values-fa/error.xml @@ -1,5 +1,6 @@ + + ilo Commons li pakala + ijo li pakala a! + o pana e sona ni lon lipu Email: sina pali e seme? pana la mi ken pona e pakala. + sina pona a! + From 923acd802ce1b31a1a0d7185ae9981eece3acd98 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 1 Jul 2024 14:01:39 +0200 Subject: [PATCH 033/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-af/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index e4a2e392e..1da8b3101 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -1,5 +1,6 @@ - - - - - - - - + + + + + + + + + + - - + + - + - + - + - + - + - - - + - - + + + - + + - - + - - - + + - + + + - - - - - + - + + + + + - - - - - - - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + + + + + + - - - + - + + + - + - + - + - + - + - - - - + - - + + + + - + + - + - + + + \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.kt b/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.kt index cb153b7cb..93e833c15 100644 --- a/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.kt +++ b/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.kt @@ -4,6 +4,7 @@ import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException import io.reactivex.Observable import io.reactivex.Single import fr.free.nrw.commons.auth.csrf.CsrfTokenClient +import timber.log.Timber /** * This class acts as a Client to facilitate wiki page editing @@ -27,7 +28,41 @@ class PageEditClient( fun edit(pageTitle: String, text: String, summary: String): Observable { return try { pageEditInterface.postEdit(pageTitle, summary, text, csrfTokenClient.getTokenBlocking()) - .map { editResponse -> editResponse.edit()!!.editSucceeded() } + .map { editResponse -> + editResponse.edit()!!.editSucceeded() + } + } catch (throwable: Throwable) { + if (throwable is InvalidLoginTokenException) { + throw throwable + } else { + Observable.just(false) + } + } + } + + /** + * Creates a new page with the given title, text, and summary. + * + * @param pageTitle The title of the page to be created. + * @param text The content of the page in wikitext format. + * @param summary The edit summary for the page creation. + * @return An observable that emits true if the page creation succeeded, false otherwise. + * @throws InvalidLoginTokenException If an invalid login token is encountered during the process. + */ + fun postCreate(pageTitle: String, text: String, summary: String): Observable { + return try { + pageEditInterface.postCreate( + pageTitle, + summary, + text, + "text/x-wiki", + "wikitext", + true, + true, + csrfTokenClient.getTokenBlocking() + ).map { editResponse -> + editResponse.edit()!!.editSucceeded() + } } catch (throwable: Throwable) { if (throwable is InvalidLoginTokenException) { throw throwable diff --git a/app/src/main/java/fr/free/nrw/commons/actions/PageEditInterface.kt b/app/src/main/java/fr/free/nrw/commons/actions/PageEditInterface.kt index 070aaaa64..1aa0bbfce 100644 --- a/app/src/main/java/fr/free/nrw/commons/actions/PageEditInterface.kt +++ b/app/src/main/java/fr/free/nrw/commons/actions/PageEditInterface.kt @@ -36,6 +36,33 @@ interface PageEditInterface { @Field("token") token: String ): Observable + /** + * This method creates or edits a page for nearby items. + * + * @param title Title of the page to edit. Cannot be used together with pageid. + * @param summary Edit summary. Also used as the section title when section=new and sectiontitle is not set. + * @param text Text of the page. + * @param contentformat Format of the content (e.g., "text/x-wiki"). + * @param contentmodel Model of the content (e.g., "wikitext"). + * @param minor Whether the edit is a minor edit. + * @param recreate Whether to recreate the page if it does not exist. + * @param token A "csrf" token. This should always be sent as the last field of form data. + */ + @FormUrlEncoded + @Headers("Cache-Control: no-cache") + @POST(MW_API_PREFIX + "action=edit") + fun postCreate( + @Field("title") title: String, + @Field("summary") summary: String, + @Field("text") text: String, + @Field("contentformat") contentformat: String, + @Field("contentmodel") contentmodel: String, + @Field("minor") minor: Boolean, + @Field("recreate") recreate: Boolean, + // NOTE: This csrf shold always be sent as the last field of form data + @Field("token") token: String + ): Observable + /** * This method posts such that the Content which the page * has will be appended with the value being passed to the diff --git a/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java b/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java index 6a9277906..0df9685c1 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java @@ -14,6 +14,7 @@ import fr.free.nrw.commons.description.DescriptionEditActivity; import fr.free.nrw.commons.explore.depictions.WikidataItemDetailsActivity; import fr.free.nrw.commons.explore.SearchActivity; import fr.free.nrw.commons.media.ZoomableActivity; +import fr.free.nrw.commons.nearby.WikidataFeedback; import fr.free.nrw.commons.notification.NotificationActivity; import fr.free.nrw.commons.profile.ProfileActivity; import fr.free.nrw.commons.review.ReviewActivity; @@ -79,4 +80,7 @@ public abstract class ActivityBuilderModule { @ContributesAndroidInjector abstract ZoomableActivity bindZoomableActivity(); + + @ContributesAndroidInjector + abstract WikidataFeedback bindWikiFeedback(); } diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index cbbf1f0c5..1390bd8ef 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -2,9 +2,11 @@ package fr.free.nrw.commons.di; import com.google.gson.Gson; +import fr.free.nrw.commons.actions.PageEditClient; import fr.free.nrw.commons.explore.categories.CategoriesModule; import fr.free.nrw.commons.navtab.MoreBottomSheetFragment; import fr.free.nrw.commons.navtab.MoreBottomSheetLoggedOutFragment; +import fr.free.nrw.commons.nearby.NearbyController; import fr.free.nrw.commons.upload.worker.UploadWorker; import javax.inject.Singleton; @@ -68,6 +70,9 @@ public interface CommonsApplicationComponent extends AndroidInjector" + "\n"; - List placeBindings = runQuery(leftLatLng,rightLatLng); + List placeBindings = runQuery(leftLatLng, rightLatLng); if (placeBindings != null) { for (PlaceBindings item : placeBindings) { if (item.getItem() != null && item.getLabel() != null && item.getClas() != null) { diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt b/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt new file mode 100644 index 000000000..ca21f25ad --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt @@ -0,0 +1,108 @@ +package fr.free.nrw.commons.nearby + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.View.OnLongClickListener +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.annotation.NonNull +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import fr.free.nrw.commons.R +import fr.free.nrw.commons.nearby.model.BottomSheetItem + +/** + * RecyclerView Adapter for displaying items in a bottom sheet. + * + * @property context The context used for inflating layout resources. + * @property itemList The list of BottomSheetItem objects to display. + * @constructor Creates an instance of BottomSheetAdapter. + */ +class BottomSheetAdapter(context: Context?, private val itemList: List) : + RecyclerView.Adapter() { + private val layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var itemClickListener: ItemClickListener? = null + + @NonNull + override fun onCreateViewHolder(@NonNull parent: ViewGroup, viewType: Int): ViewHolder { + val view: View = layoutInflater.inflate(R.layout.bottom_sheet_item_layout, parent, false) + return ViewHolder(view) + } + + override fun onBindViewHolder(@NonNull holder: ViewHolder, position: Int) { + val item = itemList[position] + holder.imageView.setImageDrawable( + ContextCompat.getDrawable( + getContext(), + item.imageResourceId + ) + ) + holder.title.setText(item.title) + } + + /** + * Returns the total number of items in the data set held by the adapter. + * + * @return The total number of items in this adapter. + */ + override fun getItemCount(): Int { + return itemList.size + } + + /** + * Updates the icon for bookmark item. + * + * @param icon The resource ID of the new icon to set. + */ + fun updateBookmarkIcon(icon: Int) { + itemList.forEachIndexed { index, item -> + if (item.imageResourceId == R.drawable.ic_round_star_filled_24px || item.imageResourceId == R.drawable.ic_round_star_border_24px) { + item.imageResourceId = icon + this.notifyItemChanged(index) + return + } + } + } + + inner class ViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView), + View.OnClickListener, OnLongClickListener { + var imageView: ImageView = itemView.findViewById(R.id.buttonImage) + var title: TextView = itemView.findViewById(R.id.buttonText) + + init { + itemView.setOnClickListener(this) + itemView.setOnLongClickListener(this) + } + + override fun onClick(view: View) { + if (itemClickListener != null) itemClickListener!!.onBottomSheetItemClick( + view, + adapterPosition + ) + } + + override fun onLongClick(view: View): Boolean { + if (itemClickListener != null) itemClickListener!!.onBottomSheetItemLongClick( + view, + adapterPosition + ) + return true + } + } + + fun setClickListener(itemClickListener: ItemClickListener?) { + this.itemClickListener = itemClickListener + } + + fun getContext(): Context { + return layoutInflater.context + } + + interface ItemClickListener { + fun onBottomSheetItemClick(view: View?, position: Int) + fun onBottomSheetItemLongClick(view: View?, position: Int) + } +} + diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PageEditHelper.java b/app/src/main/java/fr/free/nrw/commons/nearby/PageEditHelper.java new file mode 100644 index 000000000..9d4b1069c --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PageEditHelper.java @@ -0,0 +1,164 @@ +package fr.free.nrw.commons.nearby; + + +import static fr.free.nrw.commons.notification.NotificationHelper.NOTIFICATION_DELETE; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.Uri; +import androidx.appcompat.app.AlertDialog; +import fr.free.nrw.commons.BuildConfig; +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.actions.PageEditClient; +import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException; +import fr.free.nrw.commons.notification.NotificationHelper; +import fr.free.nrw.commons.utils.ViewUtilWrapper; +import io.reactivex.Observable; +import io.reactivex.Single; +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; +import timber.log.Timber; + +/** + * Singleton class for making edits to wiki pages asynchronously using RxJava. + * + * @property notificationHelper A helper class for displaying notifications. + * @property pageEditClient A client for making page edit requests. + * @property viewUtil A utility class for common view operations. + * @property username The username used for page edits. + * @constructor Initializes the PageEditHelper with required dependencies. + */ +@Singleton +public class PageEditHelper { + + private final NotificationHelper notificationHelper; + private final PageEditClient pageEditClient; + private final ViewUtilWrapper viewUtil; + private final String username; + private AlertDialog d; + private DialogInterface.OnMultiChoiceClickListener listener; + + @Inject + public PageEditHelper(NotificationHelper notificationHelper, + @Named("wikidata-page-edit") PageEditClient pageEditClient, + ViewUtilWrapper viewUtil, + @Named("username") String username) { + this.notificationHelper = notificationHelper; + this.pageEditClient = pageEditClient; + this.viewUtil = viewUtil; + this.username = username; + } + + /** + * Public interface to make a page edit request asynchronously. + * + * @param context The context for displaying messages. + * @param title The title of the page to edit. + * @param preText The existing content of the page. + * @param description The description of the issue to be fixed. + * @param details Additional details about the issue. + * @param lat The latitude of the location related to the page. + * @param lng The longitude of the location related to the page. + * @return A Single emitting true if the edit was successful, false otherwise. + */ + public Single makePageEdit(Context context, String title, String preText, + String description, + String details, Double lat, Double lng) { + viewUtil.showShortToast(context, "Trying to edit " + title); + + return editPage(title, preText, description, details, lat, lng) + .flatMapSingle(result -> Single.just(showNotification(context, title, result))) + .firstOrError() + .onErrorResumeNext(throwable -> { + if (throwable instanceof InvalidLoginTokenException) { + return Single.error(throwable); + } + return Single.error(throwable); + }); + } + + /** + * Creates the text content for the page edit based on provided parameters. + * + * @param title The title of the page to edit. + * @param preText The existing content of the page. + * @param description The description of the issue to be fixed. + * @param details Additional details about the issue. + * @param lat The latitude of the location related to the page. + * @param lng The longitude of the location related to the page. + * @return An Observable emitting true if the edit was successful, false otherwise. + */ + private Observable editPage(String title, String preText, String description, + String details, Double lat, Double lng) { + Timber.d("thread is edit %s", Thread.currentThread().getName()); + String summary = "Please fix this item"; + String text = ""; + String marker = "Please anyone fix the item accordingly, then reply to mark this section as fixed. Thanks a lot for your cooperation!"; + int markerIndex = preText.indexOf(marker); + if (preText == "" || markerIndex == -1) { + text = "==Please fix this item==\n" + + "Someone using the [[Commons:Mobile_app|Commons Android app]] went to this item's geographical location (" + + lat + "," + lng + + ") and noted the following problem(s):\n" + + "* " + description + "\n" + + "\n" + + "Details: " + details + "\n" + + "\n" + + "Please anyone fix the item accordingly, then reply to mark this section as fixed. Thanks a lot for your cooperation!\n" + + "\n" + + "~~~~"; + } else { + text = preText.substring(0, markerIndex); + text = text + "* " + description + "\n" + + "\n" + + "Details: " + details + "\n" + + "\n" + + "Please anyone fix the item accordingly, then reply to mark this section as fixed. Thanks a lot for your cooperation!\n" + + "\n" + + "~~~~"; + } + + return pageEditClient.postCreate(title, text, summary); + } + + /** + * Displays a notification based on the result of the page edit. + * + * @param context The context for displaying the notification. + * @param title The title of the page edited. + * @param result The result of the edit operation. + * @return true if the edit was successful, false otherwise. + */ + private boolean showNotification(Context context, String title, boolean result) { + String message; + + if (result) { + message = title + " Edited Successfully"; + } else { + message = context.getString(R.string.delete_helper_show_deletion_message_else); + } + + String url = BuildConfig.WIKIDATA_URL + "/wiki/" + title; + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + notificationHelper.showNotification(context, title, message, NOTIFICATION_DELETE, + browserIntent); + return result; + } + + /** + * returns the instance of shown AlertDialog, used for taking reference during unit test + */ + public AlertDialog getDialog() { + return d; + } + + /** + * returns the instance of shown DialogInterface.OnMultiChoiceClickListener, used for taking + * reference during unit test + */ + public DialogInterface.OnMultiChoiceClickListener getListener() { + return listener; + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt b/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt new file mode 100644 index 000000000..7c62b3646 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt @@ -0,0 +1,96 @@ +package fr.free.nrw.commons.nearby + +import android.annotation.SuppressLint +import android.os.Bundle +import android.widget.RadioButton +import android.widget.Toast +import fr.free.nrw.commons.R +import fr.free.nrw.commons.databinding.ActivityWikidataFeedbackBinding +import fr.free.nrw.commons.theme.BaseActivity +import io.reactivex.Single +import io.reactivex.SingleSource +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers +import timber.log.Timber +import java.util.concurrent.Callable +import javax.inject.Inject + +/** + * Activity for providing feedback about Wikidata items. + */ +class WikidataFeedback : BaseActivity() { + private lateinit var binding: ActivityWikidataFeedbackBinding + var place: String = "" + var wikidataQId: String = "" + var pageTitle: String = "" + var preText: String = "" + var lat: Double = 0.0 + var lng: Double = 0.0 + + @Inject + lateinit var pageEditHelper: PageEditHelper + + @Inject + lateinit var nearbyController: NearbyController + + @SuppressLint("CheckResult") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityWikidataFeedbackBinding.inflate(layoutInflater) + setContentView(binding.root) + lat = intent.getDoubleExtra("lat", 0.0) + lng = intent.getDoubleExtra("lng", 0.0) + place = intent.getStringExtra("place") ?: "" + wikidataQId = intent.getStringExtra("qid") ?: "" + pageTitle = getString(R.string.talk) + ":" + wikidataQId + binding.toolbarBinding.toolbar.title = pageTitle + binding.textHeader.text = + getString(R.string.write_something_about_the) + "'$place'" + getString(R.string.item_it_will_be_publicly_visible) + binding.radioButton1.setText( + getString( + R.string.does_not_exist_anymore_no_picture_can_ever_be_taken_of_it, + place + )) + binding.radioButton2.setText( + getString( + R.string.is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude, + place + )) + binding.radioButton3.setText(getString(R.string.other_problem_or_information_please_explain_below)) + setSupportActionBar(binding.toolbarBinding.toolbar) + supportActionBar!!.setDisplayHomeAsUpEnabled(true) + + binding.appCompatButton.setOnClickListener { + var desc = findViewById(binding.radioGroup.checkedRadioButtonId).text + var det = binding.detailsEditText.text.toString() + if (binding.radioGroup.checkedRadioButtonId == R.id.radioButton3 && binding.detailsEditText.text.isNullOrEmpty()) { + Toast.makeText( + this, + getString(R.string.please_enter_some_comments), Toast.LENGTH_SHORT + ).show() + } else { + binding.radioGroup.clearCheck() + binding.detailsEditText.setText("") + Single.defer(Callable> { + pageEditHelper.makePageEdit( + this, pageTitle, preText, + desc.toString(), + det, lat, lng + ) + } as Callable>) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ aBoolean: Boolean? -> + }, { throwable: Throwable? -> + Timber.e(throwable!!) + }) + } + } + } + + override fun onSupportNavigateUp(): Boolean { + onBackPressed() + return true + } + +} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index 877f22f5a..d1e28eb7e 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -48,6 +48,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.snackbar.Snackbar; @@ -70,6 +71,7 @@ import fr.free.nrw.commons.location.LocationPermissionsHelper; import fr.free.nrw.commons.location.LocationPermissionsHelper.LocationPermissionCallback; import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.location.LocationUpdateListener; +import fr.free.nrw.commons.nearby.BottomSheetAdapter; import fr.free.nrw.commons.nearby.CheckBoxTriStates; import fr.free.nrw.commons.nearby.Label; import fr.free.nrw.commons.nearby.MarkerPlaceGroup; @@ -77,8 +79,10 @@ import fr.free.nrw.commons.nearby.NearbyController; import fr.free.nrw.commons.nearby.NearbyFilterSearchRecyclerViewAdapter; import fr.free.nrw.commons.nearby.NearbyFilterState; import fr.free.nrw.commons.nearby.Place; +import fr.free.nrw.commons.nearby.WikidataFeedback; import fr.free.nrw.commons.nearby.contract.NearbyParentFragmentContract; import fr.free.nrw.commons.nearby.fragments.AdvanceQueryFragment.Callback; +import fr.free.nrw.commons.nearby.model.BottomSheetItem; import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter; import fr.free.nrw.commons.upload.FileUtils; import fr.free.nrw.commons.utils.DialogUtil; @@ -131,7 +135,7 @@ import timber.log.Timber; public class NearbyParentFragment extends CommonsDaggerSupportFragment implements NearbyParentFragmentContract.View, WikidataEditListener.WikidataP18EditListener, LocationUpdateListener, - LocationPermissionCallback { + LocationPermissionCallback, BottomSheetAdapter.ItemClickListener { FragmentNearbyParentBinding binding; @@ -189,6 +193,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment private NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback; private boolean isAdvancedQueryFragmentVisible = false; private Place nearestPlace; + private GridLayoutManager gridLayoutManager; + private List dataList; + private BottomSheetAdapter bottomSheetAdapter; private ActivityResultLauncher inAppCameraLocationPermissionLauncher = registerForActivityResult( new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback>() { @@ -203,7 +210,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment controller.locationPermissionCallback.onLocationPermissionGranted(); } else { if (shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) { - controller.handleShowRationaleFlowCameraLocation(getActivity(), inAppCameraLocationPermissionLauncher); + controller.handleShowRationaleFlowCameraLocation(getActivity(), + inAppCameraLocationPermissionLauncher); } else { controller.locationPermissionCallback.onLocationPermissionDenied( getActivity().getString( @@ -434,10 +442,10 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment moveCameraToPosition(lastMapFocus); initRvNearbyList(); onResume(); - binding.tvAttribution.setText(Html.fromHtml(getString(R.string.map_attribution))); - binding.tvAttribution.setMovementMethod(LinkMovementMethod.getInstance()); + binding.tvAttribution.setText(Html.fromHtml(getString(R.string.map_attribution))); + binding.tvAttribution.setMovementMethod(LinkMovementMethod.getInstance()); binding.nearbyFilterList.btnAdvancedOptions.setOnClickListener(v -> { - binding.nearbyFilter.searchViewLayout.searchView.clearFocus(); + binding.nearbyFilter.searchViewLayout.searchView.clearFocus(); showHideAdvancedQueryFragment(true); final AdvanceQueryFragment fragment = new AdvanceQueryFragment(); final Bundle bundle = new Bundle(); @@ -473,7 +481,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment .commit(); }); - binding.tvLearnMore.setOnClickListener(v ->onLearnMoreClicked()); + binding.tvLearnMore.setOnClickListener(v -> onLearnMoreClicked()); binding.nearbyFilter.ivToggleChips.setOnClickListener(v -> onToggleChipsClicked()); if (!locationPermissionsHelper.checkLocationPermission(getActivity())) { @@ -510,7 +518,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } private void initRvNearbyList() { - binding.bottomSheetNearby.rvNearbyList.setLayoutManager(new LinearLayoutManager(getContext())); + binding.bottomSheetNearby.rvNearbyList.setLayoutManager( + new LinearLayoutManager(getContext())); adapter = new PlaceAdapter(bookmarkLocationDao, place -> { moveCameraToPosition( @@ -566,7 +575,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment locationManager.requestLocationUpdatesFromProvider(LocationManager.GPS_PROVIDER); setProgressBarVisibility(true); } else { - locationPermissionsHelper.showLocationOffDialog(getActivity(), R.string.ask_to_turn_location_on_text); + locationPermissionsHelper.showLocationOffDialog(getActivity(), + R.string.ask_to_turn_location_on_text); } presenter.onMapReady(); registerUnregisterLocationListener(false); @@ -591,7 +601,6 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment * Starts the map without GPS and without permission By default it points to 51.50550,-0.07520 * coordinates, other than that it points to the last known location which can be get by the key * "LastLocation" from applicationKvStore - * */ private void startMapWithoutPermission() { if (applicationKvStore.getString("LastLocation") != null) { @@ -649,7 +658,6 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment initBottomSheets(); loadAnimations(); setBottomSheetCallbacks(); - decideButtonVisibilities(); addActionToTitle(); if (!Utils.isMonumentsEnabled(new Date())) { NearbyFilterState.setWlmSelected(false); @@ -673,26 +681,46 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment bottomSheetListBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); } + /** + * Determines the number of spans (columns) in the RecyclerView based on device orientation + * and adapter item count. + * + * @return The number of spans to be used in the RecyclerView. + */ + private int getSpanCount() { + int orientation = getResources().getConfiguration().orientation; + if (bottomSheetAdapter != null) { + return (orientation == Configuration.ORIENTATION_PORTRAIT) ? 3 + : bottomSheetAdapter.getItemCount(); + } else { + return (orientation == Configuration.ORIENTATION_PORTRAIT) ? 3 : 6; + } + } + public void initNearbyFilter() { binding.nearbyFilterList.getRoot().setVisibility(View.GONE); hideBottomSheet(); - binding.nearbyFilter.searchViewLayout.searchView.setOnQueryTextFocusChangeListener((v, hasFocus) -> { - LayoutUtils.setLayoutHeightAllignedToWidth(1.25, binding.nearbyFilterList.getRoot()); - if (hasFocus) { - binding.nearbyFilterList.getRoot().setVisibility(View.VISIBLE); - presenter.searchViewGainedFocus(); - } else { - binding.nearbyFilterList.getRoot().setVisibility(View.GONE); - } - }); - binding.nearbyFilterList.searchListView.setHasFixedSize(true); - binding.nearbyFilterList.searchListView.addItemDecoration(new DividerItemDecoration(getContext(), - DividerItemDecoration.VERTICAL)); + binding.nearbyFilter.searchViewLayout.searchView.setOnQueryTextFocusChangeListener( + (v, hasFocus) -> { + LayoutUtils.setLayoutHeightAllignedToWidth(1.25, + binding.nearbyFilterList.getRoot()); + if (hasFocus) { + binding.nearbyFilterList.getRoot().setVisibility(View.VISIBLE); + presenter.searchViewGainedFocus(); + } else { + binding.nearbyFilterList.getRoot().setVisibility(View.GONE); + } + }); + binding.nearbyFilterList.searchListView.setHasFixedSize(true); + binding.nearbyFilterList.searchListView.addItemDecoration( + new DividerItemDecoration(getContext(), + DividerItemDecoration.VERTICAL)); final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); - binding.nearbyFilterList.searchListView.setLayoutManager(linearLayoutManager); + binding.nearbyFilterList.searchListView.setLayoutManager(linearLayoutManager); nearbyFilterSearchRecyclerViewAdapter = new NearbyFilterSearchRecyclerViewAdapter( - getContext(), new ArrayList<>(Label.valuesAsList()), binding.nearbyFilterList.searchListView); + getContext(), new ArrayList<>(Label.valuesAsList()), + binding.nearbyFilterList.searchListView); nearbyFilterSearchRecyclerViewAdapter.setCallback( new NearbyFilterSearchRecyclerViewAdapter.Callback() { @Override @@ -711,18 +739,20 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment return isDarkTheme; } }); - binding.nearbyFilterList.getRoot().getLayoutParams().width = (int) LayoutUtils.getScreenWidth(getActivity(), + binding.nearbyFilterList.getRoot() + .getLayoutParams().width = (int) LayoutUtils.getScreenWidth(getActivity(), 0.75); - binding.nearbyFilterList.searchListView.setAdapter(nearbyFilterSearchRecyclerViewAdapter); + binding.nearbyFilterList.searchListView.setAdapter(nearbyFilterSearchRecyclerViewAdapter); LayoutUtils.setLayoutHeightAllignedToWidth(1.25, binding.nearbyFilterList.getRoot()); - compositeDisposable.add(RxSearchView.queryTextChanges( binding.nearbyFilter.searchViewLayout.searchView) - .takeUntil(RxView.detaches(binding.nearbyFilter.searchViewLayout.searchView)) - .debounce(500, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(query -> { - ((NearbyFilterSearchRecyclerViewAdapter) binding.nearbyFilterList.searchListView.getAdapter()).getFilter() - .filter(query.toString()); - })); + compositeDisposable.add( + RxSearchView.queryTextChanges(binding.nearbyFilter.searchViewLayout.searchView) + .takeUntil(RxView.detaches(binding.nearbyFilter.searchViewLayout.searchView)) + .debounce(500, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(query -> { + ((NearbyFilterSearchRecyclerViewAdapter) binding.nearbyFilterList.searchListView.getAdapter()).getFilter() + .filter(query.toString()); + })); initFilterChips(); } @@ -739,9 +769,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void setFilterState() { - binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setChecked(NearbyFilterState.getInstance().isNeedPhotoSelected()); - binding.nearbyFilter.chipView.choiceChipExists.setChecked(NearbyFilterState.getInstance().isExistsSelected()); - binding.nearbyFilter.chipView.choiceChipWlm.setChecked(NearbyFilterState.getInstance().isWlmSelected()); + binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setChecked( + NearbyFilterState.getInstance().isNeedPhotoSelected()); + binding.nearbyFilter.chipView.choiceChipExists.setChecked( + NearbyFilterState.getInstance().isExistsSelected()); + binding.nearbyFilter.chipView.choiceChipWlm.setChecked( + NearbyFilterState.getInstance().isWlmSelected()); if (NearbyController.currentLocation != null) { presenter.filterByMarkerType(nearbyFilterSearchRecyclerViewAdapter.selectedLabels, binding.nearbyFilterList.checkboxTriStates.getState(), true, false); @@ -749,44 +782,53 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } private void initFilterChips() { - binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setOnCheckedChangeListener((buttonView, isChecked) -> { - if (NearbyController.currentLocation != null) { - binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); - NearbyFilterState.setNeedPhotoSelected(isChecked); - presenter.filterByMarkerType(nearbyFilterSearchRecyclerViewAdapter.selectedLabels, - binding.nearbyFilterList.checkboxTriStates.getState(), true, true); - updatePlaceList( binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), - binding.nearbyFilter.chipView.choiceChipExists.isChecked(), binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); - } else { - binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setChecked(!isChecked); - } - }); + binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + if (NearbyController.currentLocation != null) { + binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); + NearbyFilterState.setNeedPhotoSelected(isChecked); + presenter.filterByMarkerType( + nearbyFilterSearchRecyclerViewAdapter.selectedLabels, + binding.nearbyFilterList.checkboxTriStates.getState(), true, true); + updatePlaceList(binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), + binding.nearbyFilter.chipView.choiceChipExists.isChecked(), + binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); + } else { + binding.nearbyFilter.chipView.choiceChipNeedsPhoto.setChecked(!isChecked); + } + }); - binding.nearbyFilter.chipView.choiceChipExists.setOnCheckedChangeListener((buttonView, isChecked) -> { - if (NearbyController.currentLocation != null) { - binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); - NearbyFilterState.setExistsSelected(isChecked); - presenter.filterByMarkerType(nearbyFilterSearchRecyclerViewAdapter.selectedLabels, - binding.nearbyFilterList.checkboxTriStates.getState(), true, true); - updatePlaceList( binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), - binding.nearbyFilter.chipView.choiceChipExists.isChecked(), binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); - } else { - binding.nearbyFilter.chipView.choiceChipExists.setChecked(!isChecked); - } - }); + binding.nearbyFilter.chipView.choiceChipExists.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + if (NearbyController.currentLocation != null) { + binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); + NearbyFilterState.setExistsSelected(isChecked); + presenter.filterByMarkerType( + nearbyFilterSearchRecyclerViewAdapter.selectedLabels, + binding.nearbyFilterList.checkboxTriStates.getState(), true, true); + updatePlaceList(binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), + binding.nearbyFilter.chipView.choiceChipExists.isChecked(), + binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); + } else { + binding.nearbyFilter.chipView.choiceChipExists.setChecked(!isChecked); + } + }); - binding.nearbyFilter.chipView.choiceChipWlm.setOnCheckedChangeListener((buttonView, isChecked) -> { - if (NearbyController.currentLocation != null) { - binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); - NearbyFilterState.setWlmSelected(isChecked); - presenter.filterByMarkerType(nearbyFilterSearchRecyclerViewAdapter.selectedLabels, - binding.nearbyFilterList.checkboxTriStates.getState(), true, true); - updatePlaceList( binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), - binding.nearbyFilter.chipView.choiceChipExists.isChecked(), binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); - } else { - binding.nearbyFilter.chipView.choiceChipWlm.setChecked(!isChecked); - } - }); + binding.nearbyFilter.chipView.choiceChipWlm.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + if (NearbyController.currentLocation != null) { + binding.nearbyFilterList.checkboxTriStates.setState(CheckBoxTriStates.CHECKED); + NearbyFilterState.setWlmSelected(isChecked); + presenter.filterByMarkerType( + nearbyFilterSearchRecyclerViewAdapter.selectedLabels, + binding.nearbyFilterList.checkboxTriStates.getState(), true, true); + updatePlaceList(binding.nearbyFilter.chipView.choiceChipNeedsPhoto.isChecked(), + binding.nearbyFilter.chipView.choiceChipExists.isChecked(), + binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); + } else { + binding.nearbyFilter.chipView.choiceChipWlm.setChecked(!isChecked); + } + }); } /** @@ -838,7 +880,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } adapter.setItems(updatedPlaces); - binding.bottomSheetNearby.noResultsMessage.setVisibility(updatedPlaces.isEmpty() ? View.VISIBLE : View.GONE); + binding.bottomSheetNearby.noResultsMessage.setVisibility( + updatedPlaces.isEmpty() ? View.VISIBLE : View.GONE); } /** @@ -867,8 +910,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } }); - binding.bottomSheetNearby.bottomSheet.getLayoutParams().height = getActivity().getWindowManager() - .getDefaultDisplay().getHeight() / 16 * 9; + binding.bottomSheetNearby.bottomSheet.getLayoutParams().height = + getActivity().getWindowManager() + .getDefaultDisplay().getHeight() / 16 * 9; bottomSheetListBehavior = BottomSheetBehavior.from(binding.bottomSheetNearby.bottomSheet); bottomSheetListBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); bottomSheetListBehavior.setBottomSheetCallback(new BottomSheetBehavior @@ -897,26 +941,13 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment rotate_backward = AnimationUtils.loadAnimation(getActivity(), R.anim.rotate_backward); } - /** - * Fits buttons according to our layout - */ - private void decideButtonVisibilities() { - // Remove button text if they exceed 1 line or if internal layout has not been built - // Only need to check for directions button because it is the longest - if ( binding.bottomSheetDetails.directionsButtonText.getLineCount() > 1 || binding.bottomSheetDetails.directionsButtonText.getLineCount() == 0) { - binding.bottomSheetDetails.wikipediaButtonText.setVisibility(View.GONE); - binding.bottomSheetDetails.wikidataButtonText.setVisibility(View.GONE); - binding.bottomSheetDetails.commonsButtonText.setVisibility(View.GONE); - binding.bottomSheetDetails.directionsButtonText.setVisibility(View.GONE); - } - } - /** * */ private void addActionToTitle() { binding.bottomSheetDetails.title.setOnLongClickListener(view -> { - Utils.copy("place", binding.bottomSheetDetails.title.getText().toString(), getContext()); + Utils.copy("place", binding.bottomSheetDetails.title.getText().toString(), + getContext()); Toast.makeText(getContext(), R.string.text_copy, Toast.LENGTH_SHORT).show(); return true; }); @@ -963,7 +994,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment public void updateListFragment(final List placeList) { places = placeList; adapter.setItems(placeList); - binding.bottomSheetNearby.noResultsMessage.setVisibility(placeList.isEmpty() ? View.VISIBLE : View.GONE); + binding.bottomSheetNearby.noResultsMessage.setVisibility( + placeList.isEmpty() ? View.VISIBLE : View.GONE); } @Override @@ -1006,7 +1038,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public fr.free.nrw.commons.location.LatLng getMapFocus() { fr.free.nrw.commons.location.LatLng mapFocusedLatLng = new fr.free.nrw.commons.location.LatLng( - binding.map.getMapCenter().getLatitude(), binding.map.getMapCenter().getLongitude(), 100); + binding.map.getMapCenter().getLatitude(), binding.map.getMapCenter().getLongitude(), + 100); return mapFocusedLatLng; } @@ -1077,8 +1110,10 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void populatePlaces(final fr.free.nrw.commons.location.LatLng currentLatLng) { - IGeoPoint screenTopRight = binding.map.getProjection().fromPixels(binding.map.getWidth(), 0); - IGeoPoint screenBottomLeft = binding.map.getProjection().fromPixels(0, binding.map.getHeight()); + IGeoPoint screenTopRight = binding.map.getProjection() + .fromPixels(binding.map.getWidth(), 0); + IGeoPoint screenBottomLeft = binding.map.getProjection() + .fromPixels(0, binding.map.getHeight()); fr.free.nrw.commons.location.LatLng screenTopRightLatLng = new fr.free.nrw.commons.location.LatLng( screenBottomLeft.getLatitude(), screenBottomLeft.getLongitude(), 0); fr.free.nrw.commons.location.LatLng screenBottomLeftLatLng = new fr.free.nrw.commons.location.LatLng( @@ -1135,8 +1170,10 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment populatePlaces(currentLatLng); return; } - IGeoPoint screenTopRight = binding.map.getProjection().fromPixels(binding.map.getWidth(), 0); - IGeoPoint screenBottomLeft = binding.map.getProjection().fromPixels(0, binding.map.getHeight()); + IGeoPoint screenTopRight = binding.map.getProjection() + .fromPixels(binding.map.getWidth(), 0); + IGeoPoint screenBottomLeft = binding.map.getProjection() + .fromPixels(0, binding.map.getHeight()); fr.free.nrw.commons.location.LatLng screenTopRightLatLng = new fr.free.nrw.commons.location.LatLng( screenBottomLeft.getLatitude(), screenBottomLeft.getLongitude(), 0); fr.free.nrw.commons.location.LatLng screenBottomLeftLatLng = new fr.free.nrw.commons.location.LatLng( @@ -1250,7 +1287,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment (isGPX) ? getString(R.string.do_you_want_to_open_gpx_file) : getString(R.string.do_you_want_to_open_kml_file); Runnable runnable = () -> openFile(context, fileName, isGPX); - DialogUtil.showAlertDialog(getActivity(), title, message, runnable,() -> {}); + DialogUtil.showAlertDialog(getActivity(), title, message, runnable, () -> { + }); } private void openFile(Context context, String fileName, Boolean isGPX) { @@ -1418,9 +1456,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void setProgressBarVisibility(final boolean isVisible) { if (isVisible) { - binding.mapProgressBar.setVisibility(View.VISIBLE); + binding.mapProgressBar.setVisibility(View.VISIBLE); } else { - binding.mapProgressBar.setVisibility(View.GONE); + binding.mapProgressBar.setVisibility(View.GONE); } } @@ -1444,7 +1482,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } private void showFABs() { - NearbyFABUtils.addAnchorToBigFABs(binding.fabPlus, binding.bottomSheetDetails.getRoot().getId()); + NearbyFABUtils.addAnchorToBigFABs(binding.fabPlus, + binding.bottomSheetDetails.getRoot().getId()); binding.fabPlus.show(); NearbyFABUtils.addAnchorToSmallFABs(binding.fabGallery, getView().findViewById(R.id.empty_view).getId()); @@ -1576,17 +1615,17 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public void setFABRecenterAction(final View.OnClickListener onClickListener) { - binding.fabRecenter.setOnClickListener(onClickListener); + binding.fabRecenter.setOnClickListener(onClickListener); } @Override public void disableFABRecenter() { - binding.fabRecenter.setEnabled(false); + binding.fabRecenter.setEnabled(false); } @Override public void enableFABRecenter() { - binding.fabRecenter.setEnabled(true); + binding.fabRecenter.setEnabled(true); } /** @@ -1865,7 +1904,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } /** - * Extracts text between the first occurrence of '(' and its corresponding ')' in the input string. + * Extracts text between the first occurrence of '(' and its corresponding ')' in the input + * string. * * @param input The input string from which to extract text between parentheses. * @return The text between parentheses if found, or {@code null} if no parentheses are found. @@ -1890,14 +1930,17 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment return input.contains("(") || input.contains(")"); } - private void removeMarker(Place place){ + private void removeMarker(Place place) { List overlays = binding.map.getOverlays(); - for (int i = 0; i < overlays.size();i++){ - if (overlays.get(i) instanceof ItemizedOverlayWithFocus){ - ItemizedOverlayWithFocus item = (ItemizedOverlayWithFocus)overlays.get(i); + for (int i = 0; i < overlays.size(); i++) { + if (overlays.get(i) instanceof ItemizedOverlayWithFocus) { + ItemizedOverlayWithFocus item = (ItemizedOverlayWithFocus) overlays.get(i); OverlayItem overlayItem = item.getItem(0); - fr.free.nrw.commons.location.LatLng diffLatLang = new fr.free.nrw.commons.location.LatLng(overlayItem.getPoint().getLatitude(),overlayItem.getPoint().getLongitude(),100); - if (place.location.getLatitude() == overlayItem.getPoint().getLatitude() && place.location.getLongitude() == overlayItem.getPoint().getLongitude()){ + fr.free.nrw.commons.location.LatLng diffLatLang = new fr.free.nrw.commons.location.LatLng( + overlayItem.getPoint().getLatitude(), overlayItem.getPoint().getLongitude(), + 100); + if (place.location.getLatitude() == overlayItem.getPoint().getLatitude() + && place.location.getLongitude() == overlayItem.getPoint().getLongitude()) { binding.map.getOverlays().remove(i); binding.map.invalidate(); break; @@ -2020,50 +2063,33 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment */ private void passInfoToSheet(final Place place) { selectedPlace = place; + dataList = new ArrayList<>(); + // TODO: Decide button text for fitting in the screen + dataList.add(new BottomSheetItem(R.drawable.ic_round_star_border_24px, "")); + dataList.add(new BottomSheetItem(R.drawable.ic_directions_black_24dp, + getResources().getString(R.string.nearby_directions))); + if (place.hasWikidataLink()) { + dataList.add(new BottomSheetItem(R.drawable.ic_wikidata_logo_24dp, + getResources().getString(R.string.nearby_wikidata))); + } + dataList.add(new BottomSheetItem(R.drawable.ic_feedback_black_24dp, + getResources().getString(R.string.nearby_wikitalk))); + if (place.hasWikipediaLink()) { + dataList.add(new BottomSheetItem(R.drawable.ic_wikipedia_logo_24dp, + getResources().getString(R.string.nearby_wikipedia))); + } + if (selectedPlace.hasCommonsLink()) { + dataList.add(new BottomSheetItem(R.drawable.ic_commons_icon_vector, + getResources().getString(R.string.nearby_commons))); + } + int spanCount = getSpanCount(); + gridLayoutManager = new GridLayoutManager(this.getContext(), spanCount); + binding.bottomSheetDetails.bottomSheetRecyclerView.setLayoutManager(gridLayoutManager); + bottomSheetAdapter = new BottomSheetAdapter(this.getContext(), dataList); + bottomSheetAdapter.setClickListener(this); + binding.bottomSheetDetails.bottomSheetRecyclerView.setAdapter(bottomSheetAdapter); updateBookmarkButtonImage(selectedPlace); - binding.bottomSheetDetails.bookmarkButton.setOnClickListener(view -> { - final boolean isBookmarked = bookmarkLocationDao.updateBookmarkLocation(selectedPlace); - updateBookmarkButtonImage(selectedPlace); - updateMarker(isBookmarked, selectedPlace, locationManager.getLastLocation()); - binding.map.invalidate(); - }); - binding.bottomSheetDetails.bookmarkButton.setOnLongClickListener(view -> { - Toast.makeText(getContext(), R.string.menu_bookmark, Toast.LENGTH_SHORT).show(); - return true; - }); - - binding.bottomSheetDetails.wikipediaButton.setVisibility(place.hasWikipediaLink() ? View.VISIBLE : View.GONE); - binding.bottomSheetDetails.wikipediaButton.setOnClickListener( - view -> Utils.handleWebUrl(getContext(), selectedPlace.siteLinks.getWikipediaLink())); - binding.bottomSheetDetails.wikipediaButton.setOnLongClickListener(view -> { - Toast.makeText(getContext(), R.string.nearby_wikipedia, Toast.LENGTH_SHORT).show(); - return true; - }); - - binding.bottomSheetDetails.wikidataButton.setVisibility(place.hasWikidataLink() ? View.VISIBLE : View.GONE); - binding.bottomSheetDetails.wikidataButton.setOnClickListener( - view -> Utils.handleWebUrl(getContext(), selectedPlace.siteLinks.getWikidataLink())); - binding.bottomSheetDetails.wikidataButton.setOnLongClickListener(view -> { - Toast.makeText(getContext(), R.string.nearby_wikidata, Toast.LENGTH_SHORT).show(); - return true; - }); - - binding.bottomSheetDetails.directionsButton.setOnClickListener(view -> Utils.handleGeoCoordinates(getActivity(), - selectedPlace.getLocation())); - binding.bottomSheetDetails.directionsButton.setOnLongClickListener(view -> { - Toast.makeText(getContext(), R.string.nearby_directions, Toast.LENGTH_SHORT).show(); - return true; - }); - - binding.bottomSheetDetails.commonsButton.setVisibility(selectedPlace.hasCommonsLink() ? View.VISIBLE : View.GONE); - binding.bottomSheetDetails.commonsButton.setOnClickListener( - view -> Utils.handleWebUrl(getContext(), selectedPlace.siteLinks.getCommonsLink())); - binding.bottomSheetDetails.commonsButton.setOnLongClickListener(view -> { - Toast.makeText(getContext(), R.string.nearby_commons, Toast.LENGTH_SHORT).show(); - return true; - }); - binding.bottomSheetDetails.icon.setImageResource(selectedPlace.getLabel().getIcon()); binding.bottomSheetDetails.title.setText(selectedPlace.name); @@ -2074,7 +2100,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment descriptionText = (descriptionText.equals(selectedPlace.getLongDescription()) ? descriptionText : descriptionText.replaceFirst(".$", "")); // Set the short description after we remove place name from long description - binding.bottomSheetDetails.description.setText(descriptionText); + binding.bottomSheetDetails.description.setText(descriptionText); binding.fabCamera.setOnClickListener(view -> { if (binding.fabCamera.isShown()) { @@ -2088,7 +2114,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment if (binding.fabGallery.isShown()) { Timber.d("Gallery button tapped. Place: %s", selectedPlace.toString()); storeSharedPrefs(selectedPlace); - controller.initiateGalleryPick(getActivity(), binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); + controller.initiateGalleryPick(getActivity(), + binding.nearbyFilter.chipView.choiceChipWlm.isChecked()); } }); @@ -2115,9 +2142,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } else { bookmarkIcon = R.drawable.ic_round_star_border_24px; } - if ( binding.bottomSheetDetails.bookmarkButtonImage != null) { - binding.bottomSheetDetails.bookmarkButtonImage.setImageResource(bookmarkIcon); - } + bottomSheetAdapter.updateBookmarkIcon(bookmarkIcon); } @Override @@ -2295,6 +2320,83 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment binding.map.getController().animateTo(geoPoint); } + @Override + public void onBottomSheetItemClick(@Nullable View view, int position) { + BottomSheetItem item = dataList.get(position); + boolean isBookmarked = bookmarkLocationDao.findBookmarkLocation(selectedPlace); + switch (item.getImageResourceId()) { + case R.drawable.ic_round_star_border_24px: + bookmarkLocationDao.updateBookmarkLocation(selectedPlace); + updateBookmarkButtonImage(selectedPlace); + isBookmarked = bookmarkLocationDao.findBookmarkLocation(selectedPlace); + updateMarker(isBookmarked, selectedPlace, locationManager.getLastLocation()); + binding.map.invalidate(); + break; + case R.drawable.ic_round_star_filled_24px: + bookmarkLocationDao.updateBookmarkLocation(selectedPlace); + updateBookmarkButtonImage(selectedPlace); + isBookmarked = bookmarkLocationDao.findBookmarkLocation(selectedPlace); + updateMarker(isBookmarked, selectedPlace, locationManager.getLastLocation()); + binding.map.invalidate(); + break; + case R.drawable.ic_directions_black_24dp: + Utils.handleGeoCoordinates(this.getContext(), selectedPlace.getLocation()); + break; + case R.drawable.ic_wikidata_logo_24dp: + Utils.handleWebUrl(this.getContext(), selectedPlace.siteLinks.getWikidataLink()); + break; + case R.drawable.ic_feedback_black_24dp: + Intent intent = new Intent(this.getContext(), WikidataFeedback.class); + intent.putExtra("lat", selectedPlace.location.getLatitude()); + intent.putExtra("lng", selectedPlace.location.getLongitude()); + intent.putExtra("place", selectedPlace.name); + intent.putExtra("qid", selectedPlace.getWikiDataEntityId()); + startActivity(intent); + break; + case R.drawable.ic_wikipedia_logo_24dp: + Utils.handleWebUrl(this.getContext(), selectedPlace.siteLinks.getWikipediaLink()); + break; + case R.drawable.ic_commons_icon_vector: + Utils.handleWebUrl(this.getContext(), selectedPlace.siteLinks.getCommonsLink()); + break; + default: + break; + } + } + + @Override + public void onBottomSheetItemLongClick(@Nullable View view, int position) { + BottomSheetItem item = dataList.get(position); + String message; + switch (item.getImageResourceId()) { + case R.drawable.ic_round_star_border_24px: + message = getString(R.string.menu_bookmark); + break; + case R.drawable.ic_round_star_filled_24px: + message = getString(R.string.menu_bookmark); + break; + case R.drawable.ic_directions_black_24dp: + message = getString(R.string.nearby_directions); + break; + case R.drawable.ic_wikidata_logo_24dp: + message = getString(R.string.nearby_wikidata); + break; + case R.drawable.ic_feedback_black_24dp: + message = getString(R.string.nearby_wikitalk); + break; + case R.drawable.ic_wikipedia_logo_24dp: + message = getString(R.string.nearby_wikipedia); + break; + case R.drawable.ic_commons_icon_vector: + message = getString(R.string.nearby_commons); + break; + default: + message = "Long click"; + break; + } + Toast.makeText(this.getContext(), message, Toast.LENGTH_SHORT).show(); + } + public interface NearbyParentFragmentInstanceReadyCallback { void onReady(); @@ -2312,9 +2414,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment rlBottomSheetLayoutParams.height = getActivity().getWindowManager().getDefaultDisplay().getHeight() / 16 * 9; binding.bottomSheetNearby.bottomSheet.setLayoutParams(rlBottomSheetLayoutParams); + int spanCount = getSpanCount(); + if (gridLayoutManager != null) { + gridLayoutManager.setSpanCount(spanCount); + } } - public void onLearnMoreClicked() { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(WLM_URL)); @@ -2322,11 +2427,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } public void onToggleChipsClicked() { - if ( binding.nearbyFilter.chipView.getRoot().getVisibility() == View.VISIBLE) { - binding.nearbyFilter.chipView.getRoot().setVisibility(View.GONE); + if (binding.nearbyFilter.chipView.getRoot().getVisibility() == View.VISIBLE) { + binding.nearbyFilter.chipView.getRoot().setVisibility(View.GONE); } else { - binding.nearbyFilter.chipView.getRoot().setVisibility(View.VISIBLE); + binding.nearbyFilter.chipView.getRoot().setVisibility(View.VISIBLE); } - binding.nearbyFilter.ivToggleChips.setRotation(binding.nearbyFilter.ivToggleChips.getRotation() + 180); + binding.nearbyFilter.ivToggleChips.setRotation( + binding.nearbyFilter.ivToggleChips.getRotation() + 180); } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/model/BottomSheetItem.kt b/app/src/main/java/fr/free/nrw/commons/nearby/model/BottomSheetItem.kt new file mode 100644 index 000000000..bf30be6ec --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/model/BottomSheetItem.kt @@ -0,0 +1,3 @@ +package fr.free.nrw.commons.nearby.model + +class BottomSheetItem(var imageResourceId: Int, val title: String) diff --git a/app/src/main/res/layout/activity_wikidata_feedback.xml b/app/src/main/res/layout/activity_wikidata_feedback.xml new file mode 100644 index 000000000..5f6647efe --- /dev/null +++ b/app/src/main/res/layout/activity_wikidata_feedback.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_details.xml b/app/src/main/res/layout/bottom_sheet_details.xml index a8889aafa..8c354daae 100644 --- a/app/src/main/res/layout/bottom_sheet_details.xml +++ b/app/src/main/res/layout/bottom_sheet_details.xml @@ -53,169 +53,21 @@ android:layout_width="match_parent" android:layout_height="@dimen/tiny_height" android:layout_marginTop="@dimen/small_height" - android:layout_marginBottom="@dimen/activity_margin_horizontal" - android:background="@android:color/darker_gray"/> - + android:layout_marginBottom="@dimen/activity_margin_horizontal" + android:background="@android:color/darker_gray" /> - - - - + - - - - - - - - - - - - - - - - - - - + android:layout_width="match_parent" + android:layout_height="@dimen/tiny_height" + android:layout_marginTop="@dimen/small_height" + android:layout_marginBottom="@dimen/activity_margin_horizontal" + android:background="@android:color/darker_gray" /> + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fb73dd694..21741f6dc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -818,5 +818,13 @@ Upload your first media by tapping on the add button. Please remember that all images in a multi-upload get the same categories and depictions. If the images do not share depictions and categories, please perform several separate uploads. Note about multi-uploads + Report a problem about this item to Wikidata + Please enter some comments + Talk + "Write something about the " + " item. It will be publicly visible." + \'%1$s\' does not exist anymore, no picture can ever be taken of it. + \'%1$s\' is at a different place (please specify the correct place below, if possible tell us the correct latitude/longitude). + Other problem or information (please explain below). Your feedback gets posted to the following wiki page: Commons:Mobile app/Feedback ]]> From 018a924c533f2371e7b794dcdf14dd9981ae13dc Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 8 Jul 2024 14:02:00 +0200 Subject: [PATCH 037/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 48 +++++++++++++++----------- app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-iw/strings.xml | 8 ++++- app/src/main/res/values-mk/strings.xml | 8 +++++ app/src/main/res/values-qq/strings.xml | 2 ++ app/src/main/res/values-sr/strings.xml | 2 ++ 7 files changed, 50 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 866bf63d0..d5e83a2c7 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -88,6 +88,7 @@ Müzakirə Müəllif Lisenziya + Vikidata Vikipediya Təşəkkür uğurla göndərildi Təşəkkür göndərilə bilmədi %1$s diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 3041fc8fa..a50318b2d 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -64,7 +64,7 @@ Udforsk Udseende Generelt - Tilbagemelding + Feedback Privatliv Commons @@ -90,11 +90,11 @@ Godkendelse mislykkedes. Log venligst ind igen. Upload påbegyndt! Upload i kø (begrænset forbindelsestilstand aktiveret) - %1$s overført! + %1$s uploadet! Tryk for at få vist dit upload Uploader fil: %s - %1$s overføres - Afslutter uploadning af %1$s + %1$s uploades + Afslutter upload af %1$s Upload af %1$s mislykkedes Upload af %1$s sat på pause Tryk for at se @@ -103,8 +103,8 @@ I kø Mislykkedes %1$d%% færdig - Overfører - Fra galleriet + Uploader + Fra galleri Tag billede I nærheden Mine uploads @@ -147,7 +147,7 @@ Privatlivspolitik Tak til Om - Send tilbagemelding (med e-mail) + Send feedback (via e-mail) Ingen e-mail-klient installeret Nyligt anvendte kategorier Venter på den første synkronisering… @@ -203,7 +203,7 @@ Anmoder om placeringstilladelse Registrer placering for billeder, der tages i appen Aktiver dette for at registrere placering for billeder i appen, i tilfælde af at enhedens kamera ikke gør det - O.k. + Ok Advarsel Dublet filnavn fundet Overfør @@ -214,7 +214,7 @@ Afbildning Beskrivelse Diskussion - Ophavsmand + Forfatter Upload-dato Licens Koordinater @@ -241,7 +241,7 @@ I nærheden Om Indstillinger - Tilbagemelding + Feedback Feedback via GitHub Log af Vejledning @@ -381,9 +381,9 @@ Antallet af billeder, du har uploadet til Commons, som blev brugt i Wikimedia-artikler Der opstod en fejl! Commons-notifikationer - Brug brugerdefineret navn for ophavsmand - Brug et brugerdefineret navn for ophavsmand i stedet for dit brugernavn, når du uploader billeder - Brugerdefineret ophavsmandsnavn + Brug brugerdefineret forfatternavn + Brug et brugerdefineret forfatternavn i stedet for dit brugernavn, når du uploader billeder + Brugerdefineret forfatternavn Bidrag I nærheden Notifikationer @@ -413,7 +413,7 @@ Beklager dette billede er ikke interessant for en encyklopædi Uploadet af mig selv på %1$s , brugt i %2$d artikel(er). Velkommen til Commons!\n\nUpload dit første medie ved at trykke på Tilføj-knappen. - Ingen valgte kategorier + Ingen kategorier valgt Billeder uden kategorier er sjældent brugbare. Er du sikker på, at du vil fortsætte uden at vælge kategorier? Ingen afbildninger valgt Billeder med afbildninger er lettere at finde og mere tilbøjelige til at blive brugt. Er du sikker på, at du vil fortsætte uden at vælge afbildninger? @@ -497,7 +497,7 @@ Download mislykkedes!!. Vi kan ikke downloade filen uden tilladelse til ekstern lagring. Administrer EXIF-tags Vælg hvilke EXIF-tags, der skal beholdes i uploads - Ophavsmand + Forfatter Ophavsret Placering Kameramodel @@ -609,7 +609,7 @@ 2. Hvis du klikker på Bekræft, åbnes Wikipedia-artiklen 3. Find en passende sektion i artiklen til dit billede 4. Klik på Rediger-ikonet (det som ligner en blyant) for den sektion. - 5. Indsæt wikiteksten på det rigtige sted. + 5. Indsæt wikiteksten på det rette sted. 6. Rediger wikiteksten for passende placering, hvis det er nødvendigt. For mere information, se <a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\">her</a>. 7. Udgiv artiklen Kopier wikikode til udklipsholder @@ -660,7 +660,7 @@ Appens brugergrænsefladesprog Fjerner en billedtekst og beskrivelse Læs mere - For alle sprog + På alle sprog Vælg en placering Panorer og zoom for at justere Vælg placering @@ -718,7 +718,7 @@ Enhedsmodel Enhedsnavn Netværkstype - Tak for tilbagemeldingen + Tak for din feedback Fejl under afsendelse af feedback Hvad er din feedback? Din feedback @@ -758,8 +758,8 @@ Fjern placering-advarsel Placering gør billeder mere nyttige og nemmere at finde. Ønsker du virkelig at fjerne placering fra dette billede? Placering fjernet! - Tak ophavsmanden - Fejl ved afsendelse af tak til ophavsmand. + Tak forfatteren + Fejl ved afsendelse af tak til forfatter. Login udløb. Log venligst ind igen. Der er ingen tilgængelig applikation til at åbne GPX-filer Fil gemt @@ -775,5 +775,13 @@ Husk, at alle billeder i et multi-upload får de samme kategorier og afbildninger. Hvis billederne ikke deler afbildninger og kategorier, skal du udføre flere separate uploads. Bemærkning om at uploade flere billeder + Rapporter et problem med dette element til Wikidata + Skriv nogle kommentarer + Tal + \"Skriv noget om\" + \" elementet. Det vil være offentligt synligt.\" + \'%1$s\' eksisterer ikke længere, der kan aldrig tages et billede af det. + \'%1$s\' ligger et andet sted (angiv venligst det korrekte sted nedenfor, fortæl os om muligt den korrekte breddegrad/længdegrad). + Andet problem eller anden information (forklar venligst nedenfor). Din feedback bliver slået op på følgende wiki-side: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index da7c9c317..3c74f41a9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -11,6 +11,7 @@ * FF11 * Ferdinand0101 * Icke +* Ignatgg * Inkowik * Justman10000 * Kghbln @@ -800,4 +801,5 @@ Bitte beachte, dass bei einem Multiupload alle Bilder die gleichen Kategorien und Bezeichnungen erhalten. Sollten die Bilder keine gemeinsamen Bezeichnungen und Kategorien haben, führe bitte mehrere separate Uploads durch. Hinweis zu Mehrfach-Uploads + Ihr Feedback wird auf der folgenden Wiki-Seite veröffentlicht: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile App/Feedback</a> diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 70288b1cc..257188b11 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -707,7 +707,7 @@ חזרה ברוך בואך לבוחר התמונות המותאמות הבורר מציג לך אילו תמונות כבר העלית לוויקישיתוף. - בניגוד לתמונה מימין, על התמונה שמשמאל יש את הלוגו של ויקישיתוף שמעיד שהיא כבר הועלתה. יש לגעת ולהחזיר לקבלת תצוגה מקדימה של התמונה. + בניגוד לתמונה מימין, על התמונה שמשמאל מופיע הסמל של ויקישיתוף שמציין שהיא כבר הועלתה. יש לגעת ולהחזיק לקבלת תצוגה מקדימה של התמונה. מגניב התמונה הזאת כבר הועלתה לוויקישיתוף. מסיבות טכניות, היישום לא יכול להעלות יותר מ־%1$d תמונות בבת אחת בצורה מהימנה. חרגת ממגבלת ההעלאה על סך %1$d ב־%2$d. @@ -807,5 +807,11 @@ נא לזכור שכשמועלות כמה תמונות, כולן מקבלות את אותן הקטגוריות והמוצגים. אם התמונות אינן חולקות מוצגים וקטגוריות, נא לעשות כמה העלאות נפרדות. הערה על העלאות מרובות + דווח על בעיה בפריט הזה לוויקינתונים + נא להזין הערות כלשהן + שיחה + \"נא לכתוב משהו על הפריט \" + \" . זה יהיה גלוי לציבור.\" + \"%1$s\" כבר לא קיים, אי־אפשר לצלם אותו. המשוב שלך מתפרסם בדף הוויקי הבא: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 28034afee..1440c6a90 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -771,5 +771,13 @@ Запомнете дека сите слики што ги подигате наеднаш се очекуваат да ја прикажуваат истата работа и ги добиваат истите категории и описи. Ако сликите прикажуваат различни нешта и треба да имаат различни категории, извршете неколку одделни подигања. Напомена за подигање повеќе слики наеднаш + Пријавете проблем со овој предмет на Википодатоци + Внесете коментар + Разговор + „Напишете нешто за предметот “ + “. Ова ќе биде јавно видливо.“ + „%1$s“ повеќе не постои, нема да може да се фотографира. + „%1$s“ се наоѓа на друго место (подолу укажете го сегашното место, ако е можно со географска ширина и должина). + Друг проблем или информација (објаснете подолу). Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index e06969dc2..2753ee09b 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -204,4 +204,6 @@ {{Identical|Detail}} \"Set as avatar\" should be translated the same as {{msg-wm|Commons-android-strings-menu set avatar}}. {{Doc-commons-app-depicts}} + Shown before {{msg-wm|Commons-android-strings-item it will be publicly visible}}. Between them, the item name is shown. + Shown after {{msg-wm|Commons-android-strings-write something about the}}. Between them, the item name is shown. diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 4313d05fd..f05487488 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -731,4 +731,6 @@ %d слика је одабрана %d слика је одабрано + Разговор + „%1$s” не постоји више, и није га могуће више сликати. From 5bcbaa1bebf7cb3f6ad355e5ca0560ef96b2c647 Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Mon, 8 Jul 2024 10:16:26 -0400 Subject: [PATCH 038/499] Improve the messages about being in a different place (#5764) Remove parentheses and comma splice, and replace them with more straightforward grammar. --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 21741f6dc..82be02da2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -824,7 +824,7 @@ Upload your first media by tapping on the add button. "Write something about the " " item. It will be publicly visible." \'%1$s\' does not exist anymore, no picture can ever be taken of it. - \'%1$s\' is at a different place (please specify the correct place below, if possible tell us the correct latitude/longitude). + \'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude. Other problem or information (please explain below). Your feedback gets posted to the following wiki page: Commons:Mobile app/Feedback ]]> From 4d8a7dc138d3f8c26becfa231b6b8a53e08b087b Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 11 Jul 2024 14:02:14 +0200 Subject: [PATCH 039/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-da/strings.xml | 10 +++++----- app/src/main/res/values-ia/strings.xml | 8 ++++++++ app/src/main/res/values-iw/strings.xml | 2 ++ app/src/main/res/values-lb/strings.xml | 1 + app/src/main/res/values-mk/strings.xml | 2 +- app/src/main/res/values-ne/strings.xml | 3 +++ app/src/main/res/values-nl/strings.xml | 8 ++++++++ app/src/main/res/values-pms/strings.xml | 8 ++++++++ app/src/main/res/values-ru/strings.xml | 4 ++++ app/src/main/res/values-se/strings.xml | 12 ++++++------ app/src/main/res/values-skr/strings.xml | 1 + app/src/main/res/values-sl/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 8 ++++++++ 13 files changed, 56 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index a50318b2d..be15a53dd 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -133,7 +133,7 @@ Der blev ikke fundet nogen Wikidata-elementer, der matcher %1$s %1$s har ingen underklasser %1$s har ingen forældreklasser - Tilføj kategorier for at gøre billederne mere synlig på Wikimedia Commons. Tast for at tilføje kategorier. + Tilføj kategorier for at gøre dine billeder mere synlig på Wikimedia Commons. Begynd at taste for at tilføje kategorier. Kategorier Indstillinger Opret konto @@ -142,7 +142,7 @@ Kategori Gennemsyn Om - Wikimedia Commons-programmet oprettet og udviklet af frivillige i Wikimediafællesskabet. Wikimedia Foundation er ikke involveret i oprettelse, udvikling eller vedligeholdelse af programmet. + Wikimedia Commons-appen oprettet og udviklet af frivillige i Wikimedia-fællesskabet. Wikimedia Foundation er ikke involveret i oprettelse, udvikling eller vedligeholdelse af appen. Opret en ny <a href=\"%1$s\">GitHub-sag</a> for fejlrapporter og forslag. Privatlivspolitik Tak til @@ -775,13 +775,13 @@ Husk, at alle billeder i et multi-upload får de samme kategorier og afbildninger. Hvis billederne ikke deler afbildninger og kategorier, skal du udføre flere separate uploads. Bemærkning om at uploade flere billeder - Rapporter et problem med dette element til Wikidata + Rapporter et problem omkring dette element til Wikidata Skriv nogle kommentarer Tal \"Skriv noget om\" \" elementet. Det vil være offentligt synligt.\" - \'%1$s\' eksisterer ikke længere, der kan aldrig tages et billede af det. - \'%1$s\' ligger et andet sted (angiv venligst det korrekte sted nedenfor, fortæl os om muligt den korrekte breddegrad/længdegrad). + \'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det. + \'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad. Andet problem eller anden information (forklar venligst nedenfor). Din feedback bliver slået op på følgende wiki-side: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 18739c8c5..79f29007b 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -761,5 +761,13 @@ Nota ben que tote le imagines in un multi-incargamento habera le mesme categorias e representationes. Si le imagines non condivide representationes e categorias, per favor exeque plure incargamentos separate. Aviso sur le multi-incargamentos + Signalar a Wikidata un problema sur iste elemento + Per favor insere alcun commentos + Discussion + \"Scribe qualcosa sur le elemento \" + \". Illo essera visibile publicamente.\" + ‘%1$s’ non existe plus, necun imagine pote jammais esser prendite de illo. + \'%1$s\' es in un altere loco (per favor specifica le loco correcte hic infra, si possibile indica le latitude/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> diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 257188b11..e5295e6b6 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -813,5 +813,7 @@ \"נא לכתוב משהו על הפריט \" \" . זה יהיה גלוי לציבור.\" \"%1$s\" כבר לא קיים, אי־אפשר לצלם אותו. + \"%1$s\" נמצא במקום אחר. נא לציין את המקום הנכון למטה, ואם אפשר, לכתוב את קו הרוחב ואת קו האורך הנכונים. + בעיה אחרת או מידע אחר (נא להסביר הלאה). המשוב שלך מתפרסם בדף הוויקי הבא: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index 2d00d414d..baca7c4ba 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -509,4 +509,5 @@ %d Bild ausgewielt %d Biller ausgewielt + \'%1$s\' gëtt et net méi, et kann keng Foto méi dovunner gemaach ginn. diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 1440c6a90..9d6ba6d32 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -777,7 +777,7 @@ „Напишете нешто за предметот “ “. Ова ќе биде јавно видливо.“ „%1$s“ повеќе не постои, нема да може да се фотографира. - „%1$s“ се наоѓа на друго место (подолу укажете го сегашното место, ако е можно со географска ширина и должина). + „%1$s“ се наоѓа на друго место (подолу укажете го сегашното место, ако е можно со географска ширина и должина). Друг проблем или информација (објаснете подолу). Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 1acf3d670..c386c4b57 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -268,6 +268,9 @@ हल्का पुस्तक चिनोहरू उपलब्धिहरू + क्रम: + क्रम + वार्षिक उर्ध्वभरण गर्ने निकटस्थ विवरण diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 57fa519b2..6ea280497 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -792,5 +792,13 @@ Houd er rekening mee dat alle afbeeldingen in een multi-upload dezelfde categorieën krijgen en geacht worden hetzelfde weer te geven. Als deze gegevens per afbeelding moeten verschillen, voer dan meerdere afzonderlijke uploads uit. Opmerking over multi-uploads + Een probleem met dit item melden aan Wikidata + Voer enkele opmerkingen in + Overleg + \"Schrijf iets over het item \" + \". Het zal publiekelijk zichtbaar zijn.\" + ‘%1$s’ bestaat niet meer, er kan nooit een foto van gemaakt worden. + ‘%1$s’ bevindt zich ergens anders. Geef hieronder de juiste plaats aan en noteer, indien mogelijk, de juiste breedte- en lengtegraad. + Ander probleem of andere informatie (verklaar hieronder). Uw feedback wordt op de volgende wikipagina geplaatst: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-pms/strings.xml b/app/src/main/res/values-pms/strings.xml index 96e21e87c..d1cdc80e0 100644 --- a/app/src/main/res/values-pms/strings.xml +++ b/app/src/main/res/values-pms/strings.xml @@ -767,5 +767,13 @@ Ch\'a ten-a da ment che tute le plance ant un cariament mùltipl a pijo j\'istesse categorìe e descrission. Si le plance a partagio nen descrission e categorìe, për piasì ch\'a fasa tanti cariament separà. Nòta an sij cariament mùltipl + Signalé un problema su cost element a Wikidata + Për piasì, ch\'a buta dij coment + Ciaciarade + «Scrive cheicòs a propòsit ëd » + « l\'element. A sarà visìbil da tuti.» + \'%1$s\' a esist pi nen, a peul pa esse fotografà. + \'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste. + Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota). Ij sò sugeriment a saran giontà a coste pàgine wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a36df69f7..396adb696 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -831,5 +831,9 @@ Помните, что все изображения при мультизагрузке получают одинаковые категории и описания. Если изображения не имеют одинаковых описаний и категорий, выполните несколько отдельных загрузок. Замечание о мультизагрузках + Сообщить о проблеме с этим элементом в Викиданные + Пожалуйста, добавьте какие-то комментарии + Обсуждение + Другая проблема или информация (пожалуйста, объясните ниже). Ваш отзыв будет опубликован на следующей вики-странице: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-se/strings.xml b/app/src/main/res/values-se/strings.xml index 19b5593d6..76c9f5e4f 100644 --- a/app/src/main/res/values-se/strings.xml +++ b/app/src/main/res/values-se/strings.xml @@ -47,10 +47,10 @@ Vuordil... Ođasmáhttá govvateavsttaid ja govvádusaid Vuordil... - Sisačáliheapmi lihkostuvai! - Sisačáliheapmi ii lihkostuvvan! + Sisačáliheapmi lihkostuvai! + Sisačáliheapmi ii lihkostuvvan! Fiila ii gávdnon. Geahččal áinnas eará fiilla. - Autentiseren ii doaibman, čálit mes oktii vel sisa + Autentiseren ii doaibman. Čálit mes oktii vel sisa. Bajásluđen álggahuvvui! Bajásluđen ráiduduvvon (ráddjejuvvon čatnasanvuohki doaimmas) %1$s bajásluđejuvvon! @@ -77,11 +77,11 @@ Atte mes govvateavstta dán fiilii Govvádus Govvateaksta - Ii sáhte čálihit sisa - fierpmádagas feaila + Ii sáhte čálihit sisa - fierpmádagas feaila Beare máŋga eahpelihkostuvvan geahččaleami. Geahččal mat fas moatti minuvtta geahčen Dađibahábuht, dát geavaheaddji lea hehttejuvvon Commons:is Fertet addit iežat guovtteceahkat dovddaldatkoda. - Sisačáliheapmi ii lihkostuvvan + Sisačáliheapmi ii lihkostuvvan Vurke Nammat dán ráiddu Rievdadusat @@ -190,7 +190,7 @@ Wikipedia-artihkal Čálit sisa du dovddaldahkii Čálit sisa - Áiggutgo don duođaid joatkit čálitkeahttá sisa? + Áiggutgo don duođaid joatkit čálitkeahttá sisa? Wikidata Wikipedia Commons diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index 1faaa4df8..e20998561 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -269,4 +269,5 @@ تصویر چݨیج ڳئی رپورٹ مصنف کوں شکریہ بھیڄݨ وچ خرابی۔ + ڳالھ مہاڑ diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 5da5b4d5f..d5dd1d04a 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -770,4 +770,5 @@ %d izbranih slik %d izbranih slik + »%1$s« je na drugem kraju. Spodaj navedite pravi kraj in, če je mogoče, napišite pravilno zemljepisno širino in dolžino. diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 25ed6ffc9..e8e4931c2 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -792,5 +792,13 @@ 請記住,多重上傳中的所有圖片都會取得相同的分類和描述。如果圖片不要共享描述和分類,請執行多次單筆上傳。 關於多次上傳的註釋 + 向維基數據回報關於此項目的問題 + 請輸入一些意見。 + 討論 + \"寫一些關於\" + \"項目。這將公開可見。\" + 「%1$s」已不存在,無法拍攝它的照片。 + 「%1$s」位於不同的位置(請在下面指定正確的位置,可以的話請告訴我們正確的經緯度)。 + 其他問題或資訊(請在下方解釋)。 您的回饋已發布到以下 wiki 頁面:<a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> From 73e9ed8e264685ba97f7e46810e97cda464ca9da Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 15 Jul 2024 14:02:06 +0200 Subject: [PATCH 040/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ce/strings.xml | 407 +++++++++++++++++++++++++ app/src/main/res/values-da/strings.xml | 4 +- app/src/main/res/values-ms/strings.xml | 2 +- 3 files changed, 410 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/values-ce/strings.xml diff --git a/app/src/main/res/values-ce/strings.xml b/app/src/main/res/values-ce/strings.xml new file mode 100644 index 000000000..829161e94 --- /dev/null +++ b/app/src/main/res/values-ce/strings.xml @@ -0,0 +1,407 @@ + + + + Викилармера Facebook-агӀо + Викилармин йуьхьанцара кодаш гитхабехь + Викилармин логотип + Викилармин веб-сайт + Лаьтта меттиг хоржучу корера ара вала(йала) + ДӀадахьийта + ТӀетоха кхин хаам + ТӀетоха керла къинхьегам + ТӀетоха камера тӀера къинхьегам + ТӀетоха суьртан тӀера къинхьегам + ТӀетоха галерей тӀера къинхьегам хьалхарчу къинхьегамашкара + Куьйгаш + Маттах лаьцна + Куьг + Цуьнах лаьцна + Сурт + Йерриге + агIо хийца + Тайпа лахар + Меттиган хьал + Дийнан сурт + + %1$d файл чуйокхуш йу + %1$d файл чуйокхуш йу + + + (%1$d) + (%1$d) + + Чуйаккхар долор + + Чуйаккхар %d кечдар + Чуйаккхар %d кечдар + + + %d чуйаккхар + %d чуйаккхар + + + ХIара суртан лицензи йийра йу кху бухахь %1$s + ХIокху сурташна лицензи йийра йу кху бухахь %1$s + + + %1$d ДӀахӀоттор + %1$d ДӀахӀиттор + + + Чулацам схьаэцар. Суьртан болх бан цхьа хан йала тарло, суьртан бараме а, хьан гӀирсе а хьаьжжина + Чулацам схьаэцар. Суьртан болх бан цхьа хан йала тарло, суьртан бараме а, хьан гӀирсе а хьаьжжина + + Гайта + Арахьара хатӀ + Йукъара + Йуханехьа зӀе + Къайлаха + Викиларма + Параметраш + Викиларма чуйаккха + ДӀадоьдуш ду чуйаккхар... + Декъашхочун цӀе + Пароль + Commons Beta тӀехь хьай цӀарца чугӀо + ЧугӀо + Йицйелла пароль? + ДӀайаздалар + Системин чудахар + Дехар до, собарде… + титраш ​​а, йийцарш а карладохуш ду.. + Дехар до, собарде… + Довзийтар кхиамца кхочушдина! + Системин довзийтарца гӀалат! + Файл цакарина. Хьажа кхий файл. + Максимум йуха хьажаран доза кхаьчна! Дехар ду, чуйаккхар дӀайаккхна, йуха хьажар + Баттарейкан оптимизаци дӀаяккхий? + кхааннал сов суртал чудаийтаро дика болх бо\n кхин а тешаме хир ду батарейн оптимизаци дӀаяьккхича. Дехар ду, дӀаяккха батарейн оптимизаци Викиларма Ӏалашонан нисъйарашчура, дика чуйакхара хилийта.\n\nБатарейн оптимизаци дӀаяккхаран хила тарлуш йолу гӀулчаш:\n\n1-ра гӀулч: Нуьйда \'Нисъйар\' тӀе тӀетаӀа йе.\n\n2-гIа гӀулч: \'Оптимизаци йина яц\' тӀера \'Ерриг приложениш\' тӀе хийца.\n\n3-гIа гӀулч: Хьалаха \"Викиларма\" йе «fr.free.nrw.commons».\n\n4-гIа гӀулч: Цун тӀе тӀетаӀа йе, йуха \'Оптимизаци ма йе\' харжа. \n\n5-гIа гӀулч: ТӀе тӀетаӀа йе \'Кийча\'. + Аутентификацин гӀалат. Дехар до, йуха чугӀо. + Чуйаккхар доладелла! + Чуйакхар рогӀехь йу (зӀенан режим, доза тоьхна дӀахӀоттийна) + %1$s чуйаьккхина! + Чуйаьккхина файле хьажа тӀетаӀайe + %1$s чуйаккхар долина + %1$s чуйоккхуш йу + %1$s чуйаккхар чекхдолуш ду + %1$s чуяккхуш гӀалат даьлла + Чуйакхар %1$s сацийна + ТӀетаӀайe хьажархьама + ТӀетаӀайe хьажархьама + Ас чуяьхарш + РогӀехь + Чуйаккхаран гӀалат. + %1$d%% чекхделла + Чуйолуш йу + Галерей чуьра + Сурт даккха + Уллехь + Ас чуйаьхарш + Йекъа + Хьажа файлан агӀоне + Куьг йазор (ТIедилина ду) + Дехар ду, хӀокху файлан цIе гайта + Цуьнах лаьцна + Куьг + Чувала(йала) тара цало — сетан гӀалат + ТӀех дукха кхиаме боцу гӀертарш. Дехар ду масех минот йаьлча йуха а хьажа. + Бехк ма билла, амма иштта цIе йолу декъашхочун блок тоьхна Викилармичохь + Ахь шинафакторийн аутентификацин код йазо йеза + Системин довзийтарца гӀалат! + Чуйолуш йу + ДӀайазйе хӀокху файлийн тобан цӀе + Хийцамаш + Чуйолуш йу + Категори харжар + Хьан суьрташ тIехь гойтуш йолу, элементаш лахар (лам, Тадж-Махал, и. дӀ. кх. а) + Ӏалашйан + Карлайаккха + МогӀам + Чуйохуш хӀинца а йац! + %1$s йогIуш йол, категореш ца карийна + Категореш + Параметраш + ДӀайаздалар + Хаьржина суьрташ + Категори + Таллам + ТӀетохарх лаьцна + Къайлаха политика + Кхоллархой + ТӀетохарх лаьцна + Йухадан + Цаоьшу + Схьаэца + Ӏадйитаран кепаца йолу лицензи + Кечйар + Attribution 4.0 + Attribution-ShareAlike 3.0 + Attribution 3.0 + Чуйаккхаран масала: + ЦӀе: Сиднейн операн театр + ХӀаъ! + Категореш + Чуйолуш... + ХӀума хаьржина йац + Куьг доцуш + Хаамаш бац + Дийцарш дац + Йевзаш йоцу лицензи + Карлайаккха + ХӀаъ + Тергам бе + Чуйаккха + ХӀаъ + ХӀан-хӀа + Куьг + ЦӀе + Цуьнах лаьцна + Цуьнах лаьцна + Дийцар + Автор + Чуйаьккхина терахь + Лицензи + Координаташ + Ламаш + Марша догӀийла Википеди чу + Марша догӀийла — авторийн бакъонаш + Сиднейн операн театр + Йухайаккхар + Схьайелла + ДӀачӀагӀа + Коьрта + Схьаэца + Йуххехь + Программех лаьцна + Нисдаран гӀирс + Йуханехьа зӀе + Аравала(йала) + Куьйгалла дар + ДӀахаийтарш + Таллар + Некъ + Викихаамаш + Википеди + Викиларма + Тхуна мах хадабе + СиХХ + Декъашхочун хьехам + Хьехам дӀабаккха + Интернет йац + Хаам схьаэцарехь гӀалат + Таллам бан сурт схьаоьцуш гӀалат нисделла. \"Карлайаккха\" тӀетаӀайе, йуха хьажархьама. + Цхьа а хаам бац + Гочйан + Меттанаш + Локализацин мотт схьахаржа, цу чу гочбан йиш йолуш программан интерфейсан элементаш + Гочдаре гӀо + Йухайаккхар + ЙухагӀорта + Декъашхочо чудаьккхина %1$s + Блоктохар + Викилармин тӀехь хийцамаш бар блоктоьхна ду хьуна + Дийнан сурт + Лахар + Викилармин тӀехь лаха + Лахар + ТӀаьххьара лехамаш: + ТӀаьххьара дехарш + ТӀаьххьара меттан дехарш + Категореш чуйохуш гӀалат нисделла. + Хаамаш чубохуш гӀалат нисделла. + Мультимедиа + Категореш + Элементаш + Хаьржинарг + Карарчу программаца чудаьккхина + Карта + Сурт тӀетоьхна %1$s Викихаамийн агӀонна! + Цуьнца йогӀуш йолу Викихаамийн агӀо карлайаккха аьтто ца баьлла! + Фонан сурт санна хӀоттайе + Фонан сурт кхиамца дӀахӀоттийна! + Хеттарш + ХӀара сурт нийса дуй сервер чудаккха? + Хаттар + Хилам + Кхин дӀа + Нийса жоп + Нийса доцу жоп + ХӀара скриншот Викилармин чуйаккха йогӀий? + Апп декъа + ДӀадерзаде + ДӀайаккхар + Кхиамаш + Профиль + Статистика + Баркаллаш кхаьчна + Хаьржина суьрташ + Локхалла + Суьрташ чудаьхна + Йуха ца дерзийна суьрташ + Суьрташ лелийна + Хьайн кхиамаш доттагӀашна бовзийта! + оьшу минимум: + Цхьа гӀалат даьлла! + Викилармин дӀахаийтарш + Авторан алтернативан цӀе лелайе + Авторан алтернативан цӀе + Къинхьегам + Йуххехь + ДӀахаийтарш + ДӀахаийтарш (деша) + МогӀам + Кхин дӀа + ТӀехьа + Сурт + Меттигаш + Чуйаккхар йухадаккхар + «ЙухагӀо» нуьйда лелорца хӀара чуйаккхар йухадоккхур ду, хьан кхиамаш дӀабохур бу + Кхин дӀа а чуйаккха + (Гуламехь долчу массо а суьрташна) + ХӀокху декъехь леха + Бакъо йеха + Хьуна лаьий, карарчу хенахь хьо лаьтта меттиг лелош, гергара меттиг гайта, хӀинца а цхьа а суьрташ доцуш? + Геолокацин бакъо йоцуш суьрташ оьшуш йолу гергара меттиг гайта йиш йац + Кхин ма хатта + Чекхдолуш ду: + Кампанеш гайтар + Карара кампанеш хьажар + Магаде + Йухадаккха + ХӀуна кхий гура йац кампанеш. Делахь, хьайна лаахь, хьа йиш йу кампанех лаьцна нотификаци лато нисдаран гӀирс чохь. + Кийчча йу + Баркалла дӀадахьийтар: Кхиамца + Файл нийса йуй Викилармин тӀехь? + Декъашхочунна баркалла ала лаьий хьуна? + ХӀаъ + РогӀера файл + Лог-файлаш йекъа + Хьажа ахьа дешначуьнга + Хьажа ца дешначарга + Суьрташ чудохуш гӀалат даьлла + Дехар до, собарде… + РогӀерчу гӀирсашка копеш йар + Копийина + ХӀара сурт чекхдалийта + EXIF тегашца болх бар + Автор + Авторийн бакъонаш + Лаьтта меттиг + Камеран модель + Объективан модель + Серийн лоьмар + Программан кхачам + Файл йолу меттиган тӀекхача бакъо ца ло + Йекъа программа, гӀоьнца... + Суьртан информаци + Цхьа а категори ца карийна. + Цхьа а хаам ца карийна. + Чуйаккхар йухадаккхар + ХӀунда дӀайаккха йеза %1$s? + %1$s чуйаьккхина гӀоьнца: %2$s + Хаамийн Ӏад битаран кепаца мотт + ДӀайаккха кховдор + Кхиамца + Тар цаделира + Керланийн сурт + Интернет чуьра ларамаза сурт + Логотип + Кхиамца + + %1$s категори тӀетоьхна. + %1$s категореш тӀетоьхна. + + Категореш тӀетоха аьтто ца баьлла. + Категореш карлайаха + Суьрташ карладаха гӀерта со. + Суьрташна хийцамаш бе + + %1$s хаам тӀетоьхна. + %1$s хаамаш тӀетоьхна. + + Суьрташ тӀетоха аьтто ца баьлла. + Координаташ карлайаха гӀертар. + Координатийн карладаккхар + Хаамаш карлабахар + Куьйг йаздар карладаккхар + Кхиамца + %1$s координаташ тӀетоьхна. + Хаам тӀетоьхна + Куьйг йаздар тӀетоьхна. + Координаташ тӀетоха аьтто ца баьлла. + Хаамаш тӀетоха аьтто ца баьлла. + Куьг йаздар тӀетоха аьтто ца баьлла. + Координаташ схьаэца аьтто ца баьлла. + Хаамаш схьаэца аьтто ца баьлла. + Хаамашна а, куьг йаздарна а хийцамаш бар + Сурт декъа гӀоьнца + Цкъачунна ахьа къинхьегам ца бина. + %s цкъачунна къинхьегам бац + Аккаунт кхоьллина! + Текст буфере копийина + Хаамаш \"бешна\" аьлла билгалбаьхна + Цхьа проблема йу кхузахь :-( + Меттиган хьал: + Йолуш йу + Сурт оьшу + Меттиган тайпа: + ТӀай, музей, отел, и.дӀ.кх. + Цхьа хӀума галдаьлла логинца. Хьайн пароль меттахӀотто йеза ахьа! + МЕДИА + БЕРИЙН КЛАССАШ + ДАЙ-НЕНАН КЛАССАШ + Уллехь меттиг карийна + ХӀокху суьрташ тӀехь %1$s? + ХӀокху сурт тӀехь %1$s? + Нисдаран гӀирс + ДӀайаьккхина закладки йукъара + Цхьа хӀума галдаьлла. Фонан сурт хӀотто аьтто ца баьлла + Фонан сурт санна хӀоттайе + Фонан сурт дӀахӀоттош ду... + Системин нисдаран гӀирс + Бодане + Сирла + Чуйаха кхин а + Кховдийна тодарш: + — ХӀокху суьртана категореш тӀетоха, лело атта хилийта. + — ХӀара сурт тӀетоха гергарчу Википедин йаззамашна, иллюстрацеш йоцуш. + Википеди тӀе сурт тӀетоха + ХӀара сурт Википедин %1$s декъан тӀетоха лаьий хьуна? + Бакъдан + Инструкцеш + 1. Лелайе рогӀера вики-код: + 2. «Бакъдан» нуьйдин тӀетаӀийча Википедин йаззам схьабоьллур бу + 3. Хьайн суьртана догӀу йаззаман дакъа лаха + 4. «Хийца» иконкин тӀетаӀайе (къоламах тера йу) хӀокху декъана + 5. Вики-код йогӀучу метте дӀайазйе + 7. Йаззам дӀайазбе + Вики-код буфер чу копийе + пауза + кхидӀа + Сацийна + Кхин а + Кхиамаш + Лидерийн таблица + Ранг: + Дукхалла: + Ранг + Декъашхо + Дукхалла + Лидерийн таблицин чохь аватарка санна дӀахӀоттайе + Аватарка дӀахӀоттош йу, дехар до, собар де + Аватар дӀахӀоттийна + Аватар хӀоттош гӀалат даьлла, дехар до, йуха хьажа + Аватар санна хӀоттайе + Цхьана шарахь + Цхьана кӀиранахь + Йерриге хенахь + Чуйаккха + Йуххехь + Лелина + Сан ранг + diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index be15a53dd..3be97d687 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -220,7 +220,7 @@ Koordinater Ingen angivet Bliv betatester - Registrer dig på vores betakanal på Google Play og få tidlig tilgang til nye funktioner og feilrettelser + Registrer dig på vores betakanal på Google Play og få tidlig adgang til nye funktioner og fejlrettelser 2FA-kode Ønsker du at logge ud? Mediebillede mislykkedes @@ -265,7 +265,7 @@ Problemer fundet på billedet Upload kun billeder, som du selv har taget. Upload ikke billeder, som du har downloadet fra internettet. Gem billeder taget i appen - Gem billeder, taget med kameraet i appen, på din enhed + Gem billeder taget med kameraet i appen på din enhed Log ind på din konto Send logfil Send logfilen til udviklerne via e-mail for at hjælpe med at fejlfinde problemer med appen. Bemærk: logfiler kan potentielt indeholde identificerende oplysninger diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml index ac31d67b9..fd0932027 100644 --- a/app/src/main/res/values-ms/strings.xml +++ b/app/src/main/res/values-ms/strings.xml @@ -42,7 +42,7 @@ Gambar ini akan dilesenkan di bawah %1$s Jelajah - Penampilan + Paparan Umum Maklum balas Privasi From 5be76044b179ada81424c5ec307f91d4d149ce32 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 17 Jul 2024 12:52:41 +0530 Subject: [PATCH 041/499] wikidata-feedback: avoid sentence lego (#5775) Fixes #5763 --- .../main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt | 2 +- app/src/main/res/values/strings.xml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt b/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt index 7c62b3646..060547d40 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/WikidataFeedback.kt @@ -45,7 +45,7 @@ class WikidataFeedback : BaseActivity() { pageTitle = getString(R.string.talk) + ":" + wikidataQId binding.toolbarBinding.toolbar.title = pageTitle binding.textHeader.text = - getString(R.string.write_something_about_the) + "'$place'" + getString(R.string.item_it_will_be_publicly_visible) + getString(R.string.write_something_about_the_item, place) binding.radioButton1.setText( getString( R.string.does_not_exist_anymore_no_picture_can_ever_be_taken_of_it, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 82be02da2..c636ccb0a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -821,8 +821,7 @@ Upload your first media by tapping on the add button. Report a problem about this item to Wikidata Please enter some comments Talk - "Write something about the " - " item. It will be publicly visible." + "Write something about the \'%1$s\' item. It will be publicly visible." \'%1$s\' does not exist anymore, no picture can ever be taken of it. \'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude. Other problem or information (please explain below). From 34addbe33ade49c61a4f5005ffc52d657559667e Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Wed, 17 Jul 2024 22:47:03 -0400 Subject: [PATCH 042/499] Remove unnecessary double quotes from a message (#5777) --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c636ccb0a..163ee7374 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -821,7 +821,7 @@ Upload your first media by tapping on the add button. Report a problem about this item to Wikidata Please enter some comments Talk - "Write something about the \'%1$s\' item. It will be publicly visible." + Write something about the \'%1$s\' item. It will be publicly visible. \'%1$s\' does not exist anymore, no picture can ever be taken of it. \'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude. Other problem or information (please explain below). From 7f6b45aeb66bc6ef8014aa5bec2907c2d2f8c082 Mon Sep 17 00:00:00 2001 From: Matija Nalis Date: Sat, 20 Jul 2024 13:16:20 +0000 Subject: [PATCH 043/499] Update allowed recent years to include 2020s (#5761) * document regex due to #47 * also count 2020s as "recent years" * clarify that not all years are ignored * clarify "year" is current year * original logic fix from https://github.com/commons-app/apps-android-commons/pull/5761#pullrequestreview-2144120347 * better variale name for ".*0s.*" as that regex will match e.g. `1920s` and `80s` too, so the original `is20xxsYear` would be confusing name for it * consolidate duplicated code to spammyCategory * clarify regexes via variables * spammyCategory should always be skipped * return is simple now, so we can get rid of extra val oldDecade * fix curYearInString * some clarification comments * refactor: rename containsYear to isSpammyCategory This is done as the name containsYear is ambiguous. It not just checks for year to identify spammy categories. * refactor: rename containsYear to isSpammyCategory (take 2) A continuation of fe74c77ab (refactor: rename containsYear to isSpammyCategory, 2024-07-17) --------- Co-authored-by: Kaartic Sivaraam --- .../nrw/commons/category/CategoriesModel.kt | 46 ++++++++++++------- .../commons/repository/UploadRepository.java | 4 +- .../upload/categories/CategoriesPresenter.kt | 4 +- .../commons/upload/CategoriesPresenterTest.kt | 5 +- .../upload/UploadRepositoryUnitTest.kt | 2 +- 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.kt b/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.kt index 99448a22b..c69789c21 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.kt +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.kt @@ -27,30 +27,42 @@ class CategoriesModel @Inject constructor( private var selectedExistingCategories: MutableList = mutableListOf() /** - * Returns if the item contains an year - * @param item + * Returns true if an item is considered to be a spammy category which should be ignored + * + * @param item a category item that needs to be validated to know if it is spammy or not * @return */ - fun containsYear(item: String): Boolean { + fun isSpammyCategory(item: String): Boolean { //Check for current and previous year to exclude these categories from removal val now = Calendar.getInstance() - val year = now[Calendar.YEAR] - val yearInString = year.toString() - val prevYear = year - 1 + val curYear = now[Calendar.YEAR] + val curYearInString = curYear.toString() + val prevYear = curYear - 1 val prevYearInString = prevYear.toString() Timber.d("Previous year: %s", prevYearInString) - //Check if item contains a 4-digit word anywhere within the string (.* is wildcard) - //And that item does not equal the current year or previous year - //And if it is an irrelevant category such as Media_needing_categories_as_of_16_June_2017(Issue #750) - //Check if the year in the form of XX(X)0s is relevant, i.e. in the 2000s or 2010s as stated in Issue #1029 - return item.matches(".*(19|20)\\d{2}.*".toRegex()) - && !item.contains(yearInString) - && !item.contains(prevYearInString) - || item.matches("(.*)needing(.*)".toRegex()) - || item.matches("(.*)taken on(.*)".toRegex()) - || item.matches(".*0s.*".toRegex()) - && !item.matches(".*(200|201)0s.*".toRegex()) + val mentionsDecade = item.matches(".*0s.*".toRegex()) + val recentDecade = item.matches(".*20[0-2]0s.*".toRegex()) + val spammyCategory = item.matches("(.*)needing(.*)".toRegex()) + || item.matches("(.*)taken on(.*)".toRegex()) + + // always skip irrelevant categories such as Media_needing_categories_as_of_16_June_2017(Issue #750) + if (spammyCategory) { + return true + } + + if (mentionsDecade) { + // Check if the year in the form of XX(X)0s is recent/relevant, i.e. in the 2000s or 2010s/2020s as stated in Issue #1029 + // Example: "2020s" is OK, but "1920s" is not (and should be skipped) + return !recentDecade + } else { + // If it is not an year in decade form (e.g. 19xxs/20xxs), then check if item contains a 4-digit year + // anywhere within the string (.* is wildcard) (Issue #47) + // And that item does not equal the current year or previous year + return item.matches(".*(19|20)\\d{2}.*".toRegex()) + && !item.contains(curYearInString) + && !item.contains(prevYearInString) + } } /** diff --git a/app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.java b/app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.java index 2374ebfc3..2f4b6431d 100644 --- a/app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.java +++ b/app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.java @@ -148,8 +148,8 @@ public class UploadRepository { * @param name * @return */ - public boolean containsYear(String name) { - return categoriesModel.containsYear(name); + public boolean isSpammyCategory(String name) { + return categoriesModel.isSpammyCategory(name); } /** diff --git a/app/src/main/java/fr/free/nrw/commons/upload/categories/CategoriesPresenter.kt b/app/src/main/java/fr/free/nrw/commons/upload/categories/CategoriesPresenter.kt index 1ce7c7cdd..49aa41c9e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/categories/CategoriesPresenter.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/categories/CategoriesPresenter.kt @@ -89,7 +89,7 @@ class CategoriesPresenter @Inject constructor( if (media == null) { return repository.searchAll(term, getImageTitleList(), repository.selectedDepictions) .subscribeOn(ioScheduler) - .map { it.filter { categoryItem -> !repository.containsYear(categoryItem.name) + .map { it.filter { categoryItem -> !repository.isSpammyCategory(categoryItem.name) || categoryItem.name==term } } } else { return Observable.zip( @@ -103,7 +103,7 @@ class CategoriesPresenter @Inject constructor( it1 + it2 } .subscribeOn(ioScheduler) - .map { it.filter { categoryItem -> !repository.containsYear(categoryItem.name) + .map { it.filter { categoryItem -> !repository.isSpammyCategory(categoryItem.name) || categoryItem.name==term } } .map { it.filterNot { categoryItem -> categoryItem.thumbnail == "hidden" } } } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/CategoriesPresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/CategoriesPresenterTest.kt index d0347953e..679a25c8d 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/CategoriesPresenterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/CategoriesPresenterTest.kt @@ -14,7 +14,6 @@ import media import org.junit.Before import org.junit.Test import org.mockito.Mock -import org.mockito.Mockito.verifyNoInteractions import org.mockito.MockitoAnnotations import java.lang.reflect.Method @@ -97,8 +96,8 @@ class CategoriesPresenterTest { ) ) ) - whenever(repository.containsYear("selected")).thenReturn(false) - whenever(repository.containsYear("doesContainYear")).thenReturn(true) + whenever(repository.isSpammyCategory("selected")).thenReturn(false) + whenever(repository.isSpammyCategory("doesContainYear")).thenReturn(true) whenever(repository.selectedCategories).thenReturn(listOf( categoryItem("selected", "", "",true))) categoriesPresenter.searchForCategories("test") diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadRepositoryUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadRepositoryUnitTest.kt index 209566931..5e891e5dc 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadRepositoryUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadRepositoryUnitTest.kt @@ -156,7 +156,7 @@ class UploadRepositoryUnitTest { @Test fun testContainsYear() { assertEquals( - repository.containsYear(""), categoriesModel.containsYear("") + repository.isSpammyCategory(""), categoriesModel.isSpammyCategory("") ) } From 7d9f8d27bca078bd7c283f3bd357f03aafe863d7 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 20 Jul 2024 18:49:16 +0530 Subject: [PATCH 044/499] menu: rename menu as "User profile" (#5771) As suggested by @whym on #5754, the name "User page" is ambiguous with the on-wiki user page. We actually show the leaderboard when the menu is clicked on. So, rename the menu as "User profile" instead. Ref: https://github.com/commons-app/apps-android-commons/issues/5754#issuecomment-2196796213 --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 163ee7374..e074ea02a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -738,7 +738,7 @@ Upload your first media by tapping on the add button. Contributions of User: %s Achievements of User: %s - View user page + View user profile Edit depictions Edit categories Advanced Options From d2d8eb9153997e5ebce852502d9faee20040c21a Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 22 Jul 2024 14:01:59 +0200 Subject: [PATCH 045/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-b+sr+Latn/strings.xml | 2 +- app/src/main/res/values-ba/strings.xml | 23 +++--- app/src/main/res/values-ban/strings.xml | 16 +++-- app/src/main/res/values-blk/strings.xml | 2 +- app/src/main/res/values-bn/strings.xml | 2 +- app/src/main/res/values-br/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 11 ++- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-eo/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 1 + app/src/main/res/values-ia/strings.xml | 4 +- app/src/main/res/values-in/strings.xml | 2 +- app/src/main/res/values-io/strings.xml | 2 +- app/src/main/res/values-is/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-iw/strings.xml | 5 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-kaa/error.xml | 10 +++ app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-krc/strings.xml | 17 ++++- app/src/main/res/values-kus/strings.xml | 2 +- app/src/main/res/values-lb/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-mk/strings.xml | 7 +- app/src/main/res/values-my/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-ne/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 4 +- app/src/main/res/values-nqo/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 8 ++- app/src/main/res/values-pms/strings.xml | 5 +- app/src/main/res/values-pt-rBR/strings.xml | 4 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-qq/strings.xml | 2 - app/src/main/res/values-ru/strings.xml | 3 +- app/src/main/res/values-se/strings.xml | 2 +- app/src/main/res/values-sh/strings.xml | 2 +- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-skr/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 5 +- app/src/main/res/values-sr/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 12 +++- app/src/main/res/values-te/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 71 ++++++++++++++----- app/src/main/res/values-xal/strings.xml | 2 +- app/src/main/res/values-xmf/strings.xml | 28 ++++++-- app/src/main/res/values-zh-rTW/strings.xml | 7 +- app/src/main/res/values-zh/strings.xml | 2 +- 55 files changed, 202 insertions(+), 111 deletions(-) create mode 100644 app/src/main/res/values-kaa/error.xml diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e61c82ce3..e11426077 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -748,7 +748,7 @@ تحتاج الخرائط المجاورة لقراءة PHONE STATE لتعمل بشكل صحيح مساهمات المستخدم: %s إنجازات المستخدم: %s - اعرض صفحة المستخدم + اعرض صفحة المستخدم تحرير الصور تحرير الفئات خيارات متقدمة diff --git a/app/src/main/res/values-b+sr+Latn/strings.xml b/app/src/main/res/values-b+sr+Latn/strings.xml index 7eb98238b..05f757e5f 100644 --- a/app/src/main/res/values-b+sr+Latn/strings.xml +++ b/app/src/main/res/values-b+sr+Latn/strings.xml @@ -650,7 +650,7 @@ Potrebna je dozvola Doprinosi korisnika/ce: %s Dostignuća korisnika/ce: %s - Prikaži korisničku stranicu + Prikaži korisničku stranicu Izmeni kategorije Napredne opcije Primeni diff --git a/app/src/main/res/values-ba/strings.xml b/app/src/main/res/values-ba/strings.xml index d66d8f124..c49f54430 100644 --- a/app/src/main/res/values-ba/strings.xml +++ b/app/src/main/res/values-ba/strings.xml @@ -25,6 +25,7 @@ Рәсем Барыһы ла Өҫкә күсерергә + Эҙләү күренеше Көн рәсеме %1$d файл йөкләнә @@ -35,10 +36,9 @@ (%1$d) Йөкләүҙе башлау - - %1$d тейәү башлана - %1$d тейәү башлана - %1$d тейәүҙәр башлана + + %d файлды эшкәртеү + %d файлды эшкәртеү %1$d тейәү @@ -65,17 +65,22 @@ Зинһар, көтөгөҙ... Аңлатмалар һәм тасуирламалар яңыртыла Зинһар, көтөгөҙ... - Уңышлы танылдығыҙ! - Танылыу хатаһы! + Системаға инеү уңышлы! + Системаға инеү уңышһыҙ! Файл табылманы. Башҡа файлды эҙләп ҡарағыҙ. - Танылыу хатаһы. Зинһар, тағы бер тапҡыр танылығыҙ. + Ҡабатлап ҡарауҙың иң күп һаны етте! Зинһар, йөкләүҙе кире алығыҙ һәм яңынан ҡабатлап ҡарағыҙ + Батарея оптимизацияһын һүндерергәме? + Башҡортсаға тәржемә:\n\n3-тән артыҡ һүрәтте йөкләү батарея оптимизацияһы һүндерелгәндә ышаныслыраҡ эшләй. Зинһар, Commons ҡушымтаһы өсөн көйләүҙәрҙән батарея оптимизацияһын һүндерегеҙ, был йөкләү тәжрибәһен яҡшыртасаҡ.\n\nБатарея оптимизацияһын һүндереү өсөн мөмкин булған аҙымдар:\n\n1-се аҙым: Түбәндәге \'Көйләүҙәр\' төймәһенә баҫығыҙ.\n\n2-се аҙым: \'Оптимизацияланмаған\'дан \'Бөтә ҡушымталар\'ға күсегеҙ.\n\n3-сө аҙым: \"Commons\" йәки \"fr.free.nrw.commons\" тип эҙләгеҙ.\n\n4-се аҙым: Уға баҫығыҙ һәм \'Оптимизацияламаҫҡа\' һайлағыҙ.\n\n5-се аҙым: \'Әҙер\' төймәһенә баҫығыҙ. + Аутентификация үтәлмәне. Зинһар, ҡабаттан системаға инегеҙ. Йөкләү башланды! + Йөкләү сиратҡа ҡуйылды (сикләнгән бәйләнеш режимы эшләтеп ебәрелде). %1$s йөкләнде! Ошонда баҫып йөкләнгән файлды ҡара Файлды йөкләү: %s %1$s йөкләнә Йөкләү %1$s тамамланды %1$s йөкләп булманы + %1$s йөкләү туҡтатылды Ҡарау өсөн баҫығыҙ Ҡарау өсөн баҫығыҙ Һуңғы йөкләүҙәрем @@ -93,11 +98,11 @@ Зинһар, был файлдың исемен күрһәтегеҙ Тасуирлама Ҡултамға (Имза) - Инеп булмай - интернет хатаһы + Системаға инеп булмай - селтәр хатаһы Бик күп уңышһыҙ ынтылыштар булды. Зинһар, бер нисә минуттан тағы ла инеп ҡара. Ғәфү итегеҙ, әммә был ҡатнашыусы Викимилектә бикләнгән Ике тапҡыр раҫлай торған кодты яҙырға кәрәк - Танылыу хатаһы! + Системаға инеү уңышһыҙ! Йөкләү Был файлдар төкөмөнә атама бирегеҙ Үҙгәртеүҙәр diff --git a/app/src/main/res/values-ban/strings.xml b/app/src/main/res/values-ban/strings.xml index a3ed09e58..009d7f391 100644 --- a/app/src/main/res/values-ban/strings.xml +++ b/app/src/main/res/values-ban/strings.xml @@ -54,6 +54,7 @@ Setélan Unggah nuju Commons + Pangunggahan kantun mamargi Peséngan sang anganggé Kruna sandi Majing nuju akun Commons Béta Ida @@ -64,10 +65,10 @@ Jantos dumun... Nganyarin sesirah miwah pidarta Jantos dumun… - Mahasil manjing log! - Manjing log wangdé! + Mahasil manjing log! + Manjing log wangdé! Berkas nénten katemu. Durusang coba berkas liyané. - Otentikasi gagal, durusang majing malih + Otentikasi gagal, durusang majing malih Ngawit unggah! Unggahan ring antrian (mode tetemon kawates kauripang) %1$s kaunggah! @@ -94,11 +95,11 @@ Durus dagingin sesirah antuk berkas puniki Déskripsi Sesirah - Tan prasida login - pikobet ring jaringan + Tan prasida login - pikobet ring jaringan Kakèhan nyoba manjing wangdé. Durusang coba malih di makudang menit Ampura, sang anganggé pjniki sampun kablokir ring Commons Ida patut ngicain kode oténtikasi kalih faktor druén Idané - Manjing log wangdé + Manjing log wangdé Unggah Ica aran sesirah puniki Uahin @@ -224,7 +225,7 @@ Cingak kaca wéb antuk rerincian Liwatin Manjing log - Napiké ragané yakti jagi ngaliwatin manjing log? + Napiké ragané yakti jagi ngaliwatin manjing log? Paarah Wikidata Wikipédia @@ -263,7 +264,7 @@ Napiké Ida jagi ngaresikin lelintihan parerehan Ida? Napiké ragané jagi ngusap parerehan puniki? Lelintihan parerehan kausap - Usulan Pangusapan + Usulan Antuk Kaapus Usap Panghargaan Profil @@ -307,6 +308,7 @@ Pidarta Gambar Pangunggahan Kawangdé %1$s kaunggah olih: %2$s + Pangusulan antuk kaapus Suksés Logo Panganyaran kategori diff --git a/app/src/main/res/values-blk/strings.xml b/app/src/main/res/values-blk/strings.xml index d76248ece..039d11eec 100644 --- a/app/src/main/res/values-blk/strings.xml +++ b/app/src/main/res/values-blk/strings.xml @@ -166,5 +166,5 @@ တဲမ်းလိတ်သား နမ်းပဲင်ႏခွင်ꩻမူ ကဉ်မရာမော်ဒယ် - ထွား ကေားသုင်ꩻသားလိတ်မဲ့ငါ + ထွား ကေားသုင်ꩻသားလိတ်မဲ့ငါ diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index dd3e3705d..d2bc6ad60 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -503,7 +503,7 @@ অনুমতি দরকার ব্যবহারকারীর অবদান: %s ব্যবহারকারীর অর্জন: %s - ব্যবহারকারীর পাতা দেখুন + ব্যবহারকারীর পাতা দেখুন উচ্চতর বিকল্প প্রয়োগ করুন পুনঃস্থাপন diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index 7ffe7f8bf..230913779 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -417,7 +417,7 @@ GOUZOUT HIROC\'H Degasadennoù an implijer: %s Taolioù-kaer an implijer: %s - Gwelet pajenn an implijer + Gwelet pajenn an implijer Kemmañ ar rummadoù Dibarzhioù araokaet Lec\'hiadur ebet kavet diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 3be97d687..b17735415 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -211,7 +211,7 @@ Nej Billedtekst Titel - Afbildning + Afbilder Beskrivelse Diskussion Forfatter @@ -303,7 +303,7 @@ Fortsæt Annullér Prøv igen - Det er de steder i nærheden af dig, der har brug for billeder til at illustrere deres Wikipedia-artikler.\n\nKlikker du på \'SØG DETTE OMRÅDE\' låser kortet og starter en søgning i nærheden omkring det pågældende sted. + Det er de steder i nærheden af dig, der har brug for billeder til at illustrere deres Wikipedia-artikler.\n\nKlikker du på \'SØG DETTE OMRÅDE\' låser kortet og starter en søgning i området omkring det pågældende sted. Dette sted mangler et billede. Dette sted har allerede et billede. Dette sted findes ikke længere. @@ -565,7 +565,7 @@ Konto oprettet! Tekst kopieret til udklipsholder Notifikation markeret som læst - Der var en fejl! + Der opstod en fejl Stedstatus: Findes Mangler et billede @@ -695,7 +695,7 @@ \"I nærheden\"-kort har brug for at aflæse TELEFON TILSTAND for at fungere ordentlig Bidrag fra bruger: %s Præstationer af bruger: %s - Vis brugerside + Vis brugerprofil Rediger afbildninger Rediger kategorier Avancerede indstillinger @@ -778,8 +778,7 @@ Rapporter et problem omkring dette element til Wikidata Skriv nogle kommentarer Tal - \"Skriv noget om\" - \" elementet. Det vil være offentligt synligt.\" + Skriv noget om elementet \'%1$s\'. Det vil være offentligt synligt. \'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det. \'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad. Andet problem eller anden information (forklar venligst nedenfor). diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3c74f41a9..115016a1c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -721,7 +721,7 @@ Karten in der Nähe müssen den Telefonstatus lesen können, um richtig zu funktionieren Beiträge von Benutzer: %s Erfolge des Benutzers: %s - Benutzerseite ansehen + Benutzerseite ansehen Beschriftungen bearbeiten Kategorien bearbeiten Erweiterte Optionen diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 8784f4654..64c6ba694 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -708,7 +708,7 @@ Οι κοντινοί χάρτες πρέπει να διαβάζουν PHONE STATE για να λειτουργούν σωστά Συνεισφορές χρήστη: %s Επιτεύγματα χρήστη: %s - Προβολή σελίδας χρήστη + Προβολή σελίδας χρήστη Επεξεργασία απεικονίσεων Επεξεργασία κατηγοριών Σύνθετες Επιλογές diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 7da31ef26..9b5bb84ac 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -690,7 +690,7 @@ Mapoj de Apude bezonas legi TELEFONAN STATON por funkcii bone Kontribuoj de Uzanto: %s Atingoj de Uzanto: %s - Vidi la uzantopaĝon + Vidi la uzantopaĝon Redakti priskribojn Redakti kategoriojn Elekteblecoj kromaj diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c8e808d8e..a2936e197 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -734,7 +734,7 @@ Los mapas cercanos necesitan leer ESTADO DEL TELÉFONO para funcionar correctamente Contribuciones del usuario: %s Logros del usuario: %s - Ver página de usuario + Ver página de usuario Editar las descripciones Editar categorías Opciones avanzadas diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 325e63cae..92c32087f 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -482,7 +482,7 @@ نمایش یادمان‌ها این ماه، ماه «ویکی دوست‌دار یادمان‌ها» است! بیشتر بدانید - نمایش صفحهٔ کاربر + نمایش صفحهٔ کاربر گزینه‌های پیشرفته اعمال بازنشانی diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index dda36404b..cf791f71b 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -631,7 +631,7 @@ Tarvitaan käyttöoikeus Käyttäjän muokkaukset: %s Käyttäjän saavutukset: %s - Näytä käyttäjäsivu + Näytä käyttäjäsivu Muokkaa luokkia Lisäasetukset Käytä diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d7540ee65..3c863df5e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -728,7 +728,7 @@ Les cartes de proximité doivent pouvoir lire l’ÉTAT DU TÉLÉPHONE pour fonctionner correctement Contributions de l’utilisateur : %s Réussites de l’utilisateur : %s - Afficher la page utilisateur + Afficher la page utilisateur Modifier les descriptions Modifier les catégories Options avancées diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index cefcbb938..7cfc785f2 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -348,4 +348,5 @@ सफल गणना रद्द करें + वार्ता diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 79f29007b..73b171464 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -681,7 +681,7 @@ Le cartas a proximitate debe leger le STATO DEL TELEPHONO pro functionar correctemente Contributiones del usator: %s Realisationes del usator: %s - Visitar le pagina del usator + Visitar le pagina del usator Modificar representationes Modificar categorias Optiones avantiate @@ -764,8 +764,6 @@ Signalar a Wikidata un problema sur iste elemento Per favor insere alcun commentos Discussion - \"Scribe qualcosa sur le elemento \" - \". Illo essera visibile publicamente.\" ‘%1$s’ non existe plus, necun imagine pote jammais esser prendite de illo. \'%1$s\' es in un altere loco (per favor specifica le loco correcte hic infra, si possibile indica le latitude/longitude correcte). Altere problema o information (per favor explica hic infra). diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 47010a4ac..18cd57892 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -677,7 +677,7 @@ Peta Sekitar harus membaca STATUS TELEPON untuk berfungsi dengan benar Kontribusi Pengguna: %s Pencapaian Pengguna: %s - Lihat halaman pengguna + Lihat halaman pengguna Sunting penggambaran Sunting kategori Opsi Lanjutan diff --git a/app/src/main/res/values-io/strings.xml b/app/src/main/res/values-io/strings.xml index 97f65f4df..c965b2585 100644 --- a/app/src/main/res/values-io/strings.xml +++ b/app/src/main/res/values-io/strings.xml @@ -524,7 +524,7 @@ Montrez monumenti SAVEZ PLUSE Bezonas permiso - Vidar uzeropagino + Vidar uzeropagino Imajo selektita Ca imajo indikesis por ne sendesar Raporto diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index e3e1646a5..188504dcd 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -659,7 +659,7 @@ Kort í nágrenninu þurfa að geta lesið STÖÐU SÍMANS til að virka almennilega Framlög notanda: %s Frammistaða notanda: %s - Skoða notandasíðu + Skoða notandasíðu Breyta myndlýsingum Breyta flokkum Ítarlegir valkostir diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 93af62f8f..91e5331a3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -696,7 +696,7 @@ Le mappe vicine hanno bisogno di leggere lo STATO DEL TELEFONO per funzionare correttamente Contributi dell\'utente: %s Traguardi dell\'utente: %s - Vedi la pagina utente + Vedi il profilo utente Modifica le descrizioni Modifica le categorie Opzioni avanzate diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index e5295e6b6..3b4bdf5a3 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -725,7 +725,7 @@ מפות בסביבה זקוקות להרשאה מצב הטלפון כדי לפעול כראוי תרומות של המשתמש: %s הישגי המשתמש: %s - הצגת דף המשתמש + הצגת פרופיל המשתמש עריכת מוצגים עריכת קטגוריות אפשרויות מתקדמות @@ -810,8 +810,7 @@ דווח על בעיה בפריט הזה לוויקינתונים נא להזין הערות כלשהן שיחה - \"נא לכתוב משהו על הפריט \" - \" . זה יהיה גלוי לציבור.\" + נא לכתוב משהו על פריט \"%1$s\". זה יוצג לציבור. \"%1$s\" כבר לא קיים, אי־אפשר לצלם אותו. \"%1$s\" נמצא במקום אחר. נא לציין את המקום הנכון למטה, ואם אפשר, לכתוב את קו הרוחב ואת קו האורך הנכונים. בעיה אחרת או מידע אחר (נא להסביר הלאה). diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 856e1b472..b004f6c00 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -642,7 +642,7 @@ 完了 戻る 権限が必要です - 利用者ページを表示 + 利用者ページを表示 題材を編集する カテゴリを編集 適用 diff --git a/app/src/main/res/values-kaa/error.xml b/app/src/main/res/values-kaa/error.xml new file mode 100644 index 000000000..603d0e552 --- /dev/null +++ b/app/src/main/res/values-kaa/error.xml @@ -0,0 +1,10 @@ + + + + Commons isten shıqtı + Birnársede qátelik júz berdi! + Ne zattı qılıp atırǵanlıǵıńızdı bayanlań, soń email arqalı bizge jiberiń. Ońlawǵa járdem etiń! + Raxmet! + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 085cace5d..231240bd1 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -589,7 +589,7 @@ 이 이미지는 이미 커먼즈에 업로드되었습니다. 권한 필요 사용자의 기여: %s - 사용자 문서 보기 + 사용자 문서 보기 분류 편집 고급 옵션 적용 diff --git a/app/src/main/res/values-krc/strings.xml b/app/src/main/res/values-krc/strings.xml index 10dc97dfe..b97684821 100644 --- a/app/src/main/res/values-krc/strings.xml +++ b/app/src/main/res/values-krc/strings.xml @@ -268,7 +268,7 @@ Атлат Кир Авторизацияны керти да атлатыргъамы излейсиз? - Боллукъ заманда сурат джюклер ючюн кирирге керек боллукъсуз. + Боллукъ заманда суратkf джюклер ючюн кирирге керек боллукъсуз. Бу функцияны хайырланыр ючюн, тилейбиз, киригиз Викитекстни алмашдырыу буферге копия эт Викитекст алмашдырыу буферге копия этилди @@ -567,7 +567,8 @@ БАЛА КЛАССЛА АНА КЛАССЛА Джууукъдагъы Джер Табылды - Бу %1$s суратмыды? + Была %1$s суратламыдыла? + Бу %1$s суратымыды? Китаб белгиле Джарашдырыўла Китаб белгиледен къоратылды @@ -685,7 +686,7 @@ Джууукъдагъы картала тюз ишлер ючюн ТЕЛЕФОННУ БОЛУМУн окъургъа амал болургъа кереклиди Хайырланыучуну къошумлары: %s Хайырланыучуну джетишимлери: %s - Хайырланыучу бетни кёргюз + Хайырланыучу бетни кёргюз Танытыуланы тюзет Категорияланы тюзет Кенгленнген Сайлаула @@ -763,4 +764,14 @@ %d сурат сайланды %d сурат сайланды + Мультиджюклеудеги бютеу суратлаула бир категорияла эмда танытыула алгъанларын унутмагъыз. Суратлау ангылатыула эмда категориялары юлюшлемей эселе, тилейбиз, талай айры джюклеу этигиз. + Мультиджюклеулеуни юсюнден эсгертиу + Викибилгилеге бу элемент бла проблеманы юсюнден билдирме эт + Къаллай болса да комментарий киргизигиз + Сюзюу + %1$s элементни юсюнден бир затла джазыгъыз. Буну хар ким да кёрлюкдю. + \'%1$s\' энди бар тюлдю, аны картха алырча тюлдю. + \'%1$s\' - башха джерди. Тилейбиз, тюз джерни энишгерекде белгилегиз, эмда мадар бар эсе, тюз кенглик бла узунлукъну джазыгъыз. + Башха проблема неда информация (тилейбиз, энишгерекде ангылатыгъыз). + Сизни кери оюмугъуз тюбюндеги вики бетге джиберилликди: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-kus/strings.xml b/app/src/main/res/values-kus/strings.xml index 709b59b7e..99fb8c1f7 100644 --- a/app/src/main/res/values-kus/strings.xml +++ b/app/src/main/res/values-kus/strings.xml @@ -577,7 +577,7 @@ Map banɛ bɛ yamma bɔɔd ye ba karim Moba zi\'esim ka nyaŋi tʋm sʋ\'ʋŋa Tʋmtʋm tʋʋma: %s Tʋmtʋm nyɔɔd: %s - Gɔsim tʋmtʋm lakir zin\'ig + Gɔsim tʋmtʋm lakir zin\'ig Dɛmisim nwɛnnɛmnam Dɛmisim buudinam Tuon ken gaansʋg diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index baca7c4ba..669310059 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -479,7 +479,7 @@ Autorisatioun gëtt gebraucht Kontributioune vum Benotzer: %s Leeschtunge vum Benotzer: %s - Benotzersäit weisen + Benotzersäit weisen Kategorien änneren Erweidert Optiounen Dir kënnt d\'Nobäi-Ufroen upassen. Falls Dir eng Feelermeldung kritt, setzt zeréck a probéiert nach eng Kéier. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index bf788150e..e7ee99831 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -627,7 +627,7 @@ Netoliese žemėlapiai turi perskaityti TELENFONO BŪSENĄ, kad tinkamai funkcionuotų Naudotojo indėlis: %s Naudotojo pasiekimai: %s - Žiūrėti naudotojo puslapį + Žiūrėti naudotojo puslapį Redaguoti vaizdus Redaguoti kategorijas Išplėstiniai nustatymai diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 9d6ba6d32..d574f8e14 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -691,7 +691,7 @@ Картите со блиски места треба можат да ја прочитаат СОСТОЈБАТА НА ТЕЛЕФОНОТ за да работат правилно Придонеси на корисникот: %s Достигнувања на корисникот: %s - Преглед на корисничката страница + Преглед на корисничката страница Уреди прикази Уреди категории Напредни можности @@ -774,10 +774,9 @@ Пријавете проблем со овој предмет на Википодатоци Внесете коментар Разговор - „Напишете нешто за предметот “ - “. Ова ќе биде јавно видливо.“ + „Напишете нешто за предметот „%1$s“. Ова ќе биде јавно видливо.“ „%1$s“ повеќе не постои, нема да може да се фотографира. - „%1$s“ се наоѓа на друго место (подолу укажете го сегашното место, ако е можно со географска ширина и должина). + „%1$s“ се наоѓа на друго место. Подолу укажете го исправното место и, ако е можно, ставете исправна географска ширина и должина. Друг проблем или информација (објаснете подолу). Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index 44a98a096..4c4661175 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -398,7 +398,7 @@ ခွင့်ပြုချက် လိုအပ် အသုံးပြုသူ၏ ပံ့ပိုးမှုများ- %s အသုံးပြုသူ၏ အောင်မြင်မှုများ- %s - အသုံးပြုသူ၏ စာမျက်နှာကို ကြည့်ရန် + အသုံးပြုသူ၏ စာမျက်နှာကို ကြည့်ရန် ကဏ္ဍများ တည်းဖြတ်ရန် အဆင့်မြင့်ရွေးချယ်ရန်များ တည်နေရာမတွေ့ပါ diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 2d7def89c..63e192cc9 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -621,7 +621,7 @@ Trenger tillatelse Bidrag til bruker: %s Prestasjoner til bruker: %s - Vis brukerside + Vis brukerside Rediger avbildninger Rediger kategorier Avanserte alternativer diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index c386c4b57..93e27d1db 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -280,7 +280,7 @@ थप जान्नुहोस् विकी लभ्स मोनुमेन्टस् अनुमति आवश्यक - प्रयोगकर्ता पृष्ठ हेर्नुहोस् + प्रयोगकर्ता पृष्ठ हेर्नुहोस् सम्पादन श्रेणीहरू उन्नत विकल्प तपाईँले निकटता क्वेरी अनुकूलन गर्न सक्नुहुन्छ। त्रुटी भएमा पूर्ववत् गर्नुभएर लागू गर्नुहोस्। diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6ea280497..3a76f4c8d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -712,7 +712,7 @@ Kaarten in de buurt moeten TELEFOONSTATUS lezen om goed te kunnen werken Bijdragen door Gebruiker: %s Prestaties van Gebruiker: %s - Gebruikerspagina bekijken + Gebruikerspagina bekijken Wijzig items Categorieën bewerken Geavanceerde opties @@ -795,8 +795,6 @@ Een probleem met dit item melden aan Wikidata Voer enkele opmerkingen in Overleg - \"Schrijf iets over het item \" - \". Het zal publiekelijk zichtbaar zijn.\" ‘%1$s’ bestaat niet meer, er kan nooit een foto van gemaakt worden. ‘%1$s’ bevindt zich ergens anders. Geef hieronder de juiste plaats aan en noteer, indien mogelijk, de juiste breedte- en lengtegraad. Ander probleem of andere informatie (verklaar hieronder). diff --git a/app/src/main/res/values-nqo/strings.xml b/app/src/main/res/values-nqo/strings.xml index c6cf9d159..7e11ea03a 100644 --- a/app/src/main/res/values-nqo/strings.xml +++ b/app/src/main/res/values-nqo/strings.xml @@ -571,7 +571,7 @@ ߞߙߍ߬ߝߍ߬ ߔߊߔߘߊ (ߡߊߔߛ) ߡߊ߬ߞߏ ߦߋ߫ ߜߋߟߋ߲ߜߋߟߋ߲ ߞߊ߬ߝߏ ߘߐߞߊ߬ߙߊ߲ ߠߊ߫ ߞߊ߬ ߛߋ߫ ߓߊ߯ߙߊ߫ ߟߴߊ߬ ߢߊߓߘߍ ߡߊ߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߓߟߏߡߊߜߍ߲ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߞߎ߲߬ߝߊ߰ߟߌ ߟߎ߬ - ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߫ ߞߐߜߍ ߦߋ߫ + ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߫ ߞߐߜߍ ߦߋ߫ ߞߊ߲߬ߛߓߍ߬ߟߌ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߦߌߟߡߊ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߢߣߊߕߊߟߌ ߖߊ߲߬ߝߊ߬ߣߍ߲ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index a8fc77366..1a98091e1 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -4,6 +4,7 @@ * Chrumps * CiaPan * DeRudySoulStorm +* Frozengeist * IOIOI * InternerowyGołąb * Kareyac @@ -716,7 +717,7 @@ Mapy znajdujące się w pobliżu muszą odczytywać STAN TELEFONU, aby działały poprawnie Wkład użytkownika: %s Osiągnięcia użytkownika: %s - Wyświetl stronę użytkownika + Wyświetl stronę użytkownika Edycja przedstawień Edycja kategorii Opcje zaawansowane @@ -771,4 +772,9 @@ Edytuj lokalizację Dziękuję autorowi Błąd wysyłania podziękowań do autora. + Pomyślnie zapisano + Chcesz otworzyć plik GPX? + Chcesz otworzyć plik KML? + Nie udało się zapisać pliku KML. + Nie udało się zapisać pliku GPX. diff --git a/app/src/main/res/values-pms/strings.xml b/app/src/main/res/values-pms/strings.xml index d1cdc80e0..21de30d34 100644 --- a/app/src/main/res/values-pms/strings.xml +++ b/app/src/main/res/values-pms/strings.xml @@ -687,7 +687,7 @@ Le carte dj\'anviron a l\'han damanca ëd lese lë STAT DËL TELÉFON për marcé për da bin Contribussion ëd l\'utent: %s Arzultà ëd l\'utent: %s - Vëdde la pàgina ëd l\'utent + Vëdde la pàgina ëd l\'utent Modifiché le descrission Modifiché le categorìe Opsion avansà @@ -770,8 +770,7 @@ Signalé un problema su cost element a Wikidata Për piasì, ch\'a buta dij coment Ciaciarade - «Scrive cheicòs a propòsit ëd » - « l\'element. A sarà visìbil da tuti.» + «Scrive cheicòs a propòsit ëd l\'element \'%1$s\'. Sòn a sarà visìbil për tuti.» \'%1$s\' a esist pi nen, a peul pa esse fotografà. \'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste. Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota). diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index e52d3921e..5fe7223fe 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -7,6 +7,7 @@ * Eduardoaddad * Felipe L. Ewald * Fitoschido +* Flaviane da Silva * Fúlvio * Gusta * HenriqueCrang @@ -704,7 +705,7 @@ Os mapas próximos precisam ler ESTADO DO TELEFONE para funcionar corretamente Contribuições do usuário: %s Conquistas do usuário: %s - Ver página de usuário + Ver página de usuário Editar representações Editar categorias Opções avançadas @@ -769,4 +770,5 @@ %d imagem selecinada %d imagens selecionadas + Escreva algo sobre o item %1$s. Isso será visivel publicamente. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 83bfa6592..b5fe1c23f 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -699,7 +699,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 página de utilizador Editar elementos retratados Editar categorias Opções avançadas diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 2753ee09b..e06969dc2 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -204,6 +204,4 @@ {{Identical|Detail}} \"Set as avatar\" should be translated the same as {{msg-wm|Commons-android-strings-menu set avatar}}. {{Doc-commons-app-depicts}} - Shown before {{msg-wm|Commons-android-strings-item it will be publicly visible}}. Between them, the item name is shown. - Shown after {{msg-wm|Commons-android-strings-write something about the}}. Between them, the item name is shown. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 396adb696..d4fda660e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -749,7 +749,7 @@ Для правильной работы картам поблизости необходимо иметь доступ к СОСТОЯНИЮ ТЕЛЕФОНА. Вклад участника: %s Достижения участника: %s - Посмотреть страницу участника + Посмотреть страницу участника Редактировать описания Изменить категории Расширенные настройки @@ -834,6 +834,7 @@ Сообщить о проблеме с этим элементом в Викиданные Пожалуйста, добавьте какие-то комментарии Обсуждение + Напишите что-нибудь об элементе \'%1$s\'. Это будет видно всем. Другая проблема или информация (пожалуйста, объясните ниже). Ваш отзыв будет опубликован на следующей вики-странице: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-se/strings.xml b/app/src/main/res/values-se/strings.xml index 76c9f5e4f..4d28855de 100644 --- a/app/src/main/res/values-se/strings.xml +++ b/app/src/main/res/values-se/strings.xml @@ -242,7 +242,7 @@ Buot gielaide Govvádus LASSEDIEĐUT - Čájet geavaheaddjisiiddu + Čájet geavaheaddjisiiddu Rievdat kategoriijaid Lasseásahusat Geavat diff --git a/app/src/main/res/values-sh/strings.xml b/app/src/main/res/values-sh/strings.xml index 529647b09..5997677ef 100644 --- a/app/src/main/res/values-sh/strings.xml +++ b/app/src/main/res/values-sh/strings.xml @@ -253,7 +253,7 @@ Nije uspelo Logo Doprinosi korisnika: %s - Pregled korisničke stranice + Pregled korisničke stranice Uredi kategorije Napredne opcije Možete prilagoditi upit \'\'U blizini\'\'. Ako dobijete pogreške, poništite i primijenite. diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 3379ed2fe..3c5548be5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -680,7 +680,7 @@ Blízke mapy potrebujú mať prístup k polohe telefónu, aby správne fungovali Príspevky používateľa: %s Úspechy používateľa: %s - Zobraziť stránku používateľa + Zobraziť stránku používateľa Upraviť vyobrazenia Upraviť kategórie Rozšírené možnosti diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index e20998561..75aee7065 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -253,7 +253,7 @@ مکاؤ ٻیا سکھو اجازت دی لوڑ ہے - ورتݨ آلے دا ورقہ ݙیکھو + ورتݨ آلے دا ورقہ ݙیکھو ونکیاں وچ تبدیلی کرو اعلیٰ اختیارات لاڳو کرو diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index d5dd1d04a..514c8da9f 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -2,6 +2,7 @@ @@ -111,7 +112,7 @@ Moje nedavne naložitve V čakalni vrsti Spodletelo - Opravljeno %1$d%&nbsp;% nalaganja + Opravljeno %1$d%&nbsp;%% nalaganja Nalagam Iz galerije Posnemi fotografijo @@ -704,7 +705,7 @@ Bližnji zemljevidi morajo za pravilno delovanje prebrati STANJE TELEFONA Prispevki uporabnika: %s Dosežki uporabnika: %s - Ogled uporabniške strani + Ogled uporabniške strani Uredi slike Uredi kategorije Napredne možnosti diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index f05487488..ccc52792d 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -662,7 +662,7 @@ Потребна је дозвола Доприноси корисника/це: %s Достигнућа корисника/це: %s - Прикажи корисничку страницу + Прикажи корисничку страницу Измени категорије Напредне опције Примени diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 940639f0f..b00c038e2 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -277,7 +277,7 @@ Hoppa över Logga in Vill du verkligen hoppa över inloggningen? - Du behöver logga in för att ladda upp bilder i framtiden. + Du kommer behöva logga in för att ladda upp bilder i framtiden. Logga in för att använda denna funktion Kopiera wikitexten till urklipp Wikitexten kopierades till urklipp @@ -695,7 +695,7 @@ Kartor i närheten behöver läsa TELEFONENS TILLSTÅND för att fungera ordentligt Bidrag av användare: %s Prestationer av användare: %s - Visa användarsida + Visa användarsida Redigera beskrivningar Redigera kategorier Avancerade alternativ @@ -775,4 +775,12 @@ Kom ihåg att när du laddar upp flera bilder får alla bilder samma kategorier och motiv. Om bilder inte bör dela beskrivningar och motiv bör du ladda upp de en och en istället. Anmärkning om att ladda upp flera bilder + Rapportera ett problem om detta objekt till Wikidata + Skriv en kommentar + Diskussion + Skriv någonting om objektet \"%1$s\". Det kommer att visas offentligt. + \"%1$s\" finns inte längre och inga bilder kan någonsin tas på det. + \"%1$s\" är på en annan plats. Ange den korrekta platsen nedan samt ange latitud och longitud om det är möjligt. + Andra problem eller information (ange nedan). + Din återkoppling kommer att skickas till följande wikisida: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobilapp/Återkoppling</a> diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 51c66f850..6f1217371 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -611,7 +611,7 @@ అనుమతి కావాలి వాడుకరి తోడ్పాట్లు: %s వాడుకరి సాధించినవి: %s - వాడుకరి పేజీ చూడండి + వాడుకరి పేజీ చూడండి వర్గాల్లో దిద్దుబాట్లు ఉన్నత ఎంపికలు సమీపంలోని క్వెరీని మీరు ఇష్టానుసారం పెట్టుకోవచ్చు. లోపాలేమైనా ఎదురైతే, రిసెట్ చేసి, అప్లై చెయ్యండి. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 355b8b0be..e03bae660 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -716,7 +716,7 @@ Yakındaki haritalar düzgün çalışmak için TELEFON DURUMUNU okumaya ihtiyaç duyuyor Kullanıcının katkıları: %s Kullanıcının başarıları: %s - Kullanıcı sayfasını görüntüle + Kullanıcı sayfasını görüntüle Betimlemeleri düzenle Kategorileri düzenle Gelişmiş Seçenekler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index a650f872a..5c3a64e82 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -8,6 +8,7 @@ * DDPAT * Fifty Pro * Ice bulldog +* Ignatgg * Movses * Mykola Swarnyk * Piramidion @@ -105,13 +106,13 @@ Будь ласка, зачекайте… Оновлення заголовків та описів Будь ласка, зачекайте… - Ви успішно увійшли! - Не вдалося увійти + Ви успішно увійшли! + Не вдалося увійти Файл не знайдено. Будь ласка, спробуйте інший файл. Досягнуто максимальної кількості повторних спроб! Будь ласка, скасуйте завантаження і спробуйте ще раз Вимкнути оптимізацію батареї? Вивантаження більше ніж 3 зображень працює надійніше, коли оптимізацію батареї вимкнено. Будь ласка, вимкніть оптимізацію батареї для програмки Commons у налаштуваннях для плавної роботи. \n\nМожливі кроки, щоб вимкнути оптимізацію акумулятора:\n\nКрок 1: Натисніть кнопку «Налаштування» нижче.\n\nКрок 2: Переключіться з «Не оптимізовано» на «Усі програми».\n\nКрок 3: Знайдіть «Commons» або «fr.free.nrw.commons».\n\nКрок 4: Натисніть на нього і виберіть «Не оптимізувати».\n\nКрок 5: Натисніть «Готово». - Помилка автентифікації. Будь ласка, увійдіть у свій обліковий запис знову + Помилка автентифікації. Будь ласка, увійдіть у свій обліковий запис знову. Завантаження розпочато! Завантаження додано до черги (увімкнений режим обмеженого з\'єднання) Завантажено %1$s! @@ -138,11 +139,11 @@ Будь ласка, вкажіть підпис цьому файлу Опис Підпис - Неможливо увійти — збій у мережі + Неможливо увійти — збій у мережі Надто багато невдалих спроб. Будь ласка, спробуйте знову через кілька хвилин. Вибачте, цього користувача було заблоковано на Вікісховищі Ви повинні надати код двофакторної автентифікації. - Не вдалося увійти + Не вдалося увійти Завантажити Назвіть цю серію Модифікації @@ -266,6 +267,7 @@ Опис Налаштування Зворотний зв\'язок + Зворотний зв\'язок через GitHub Вийти Керівництво Сповіщення @@ -299,14 +301,15 @@ Див. сторінку, щоб дізнатись більше Пропустити Увійти - Ви дійсно бажаєте пропустити автентифікацію? - Вам треба буде увійти в систему для завантаження зображень у майбутньому. + Ви дійсно бажаєте пропустити автентифікацію? + Вам треба буде увійти в систему для завантаження зображень у майбутньому. Увійдіть, щоб використати цю функцію Скопіювати вікі-текст у буфер обміну Вікі-текст скопійовано у буфер обміну Функція «Поблизу» може працювати некоректно, «Розташування» недоступне. Доступ до місцезнаходження заборонено. Щоб скористатися цією функцією, будь ласка, вкажіть своє місцезнаходження вручну. Потрібний дозвіл для показу списку місць поблизу + Потрібний дозвіл для показу зображень місць поблизу Напрямки Вікідані Вікіпедія @@ -366,7 +369,7 @@ Зображення технологій чи культури дуже бажані для Вікісховища. Ви дали %1$s правильних відповідей. Вітаємо! Оберіть один з двох варіантів відповіді на запитання - Сесія авторизації спливла. Будь ласка, авторизуйтесь знову. + Сесія авторизації спливла. Будь ласка, авторизуйтеся знову. Поширити свій результат тесту із друзями! Продовжити Правильна відповідь @@ -374,7 +377,8 @@ Чи можна завантажувати цей знімок? Поширити програму Повернути - Помилка отримання місць поблизу. + Не вдалося завантажити місця поблизу + Немає зображень з цієї місцевості Не знайдено місць поблизу Помилка отримання пам\'ятників поблизу. Історія пошуку порожня @@ -449,7 +453,7 @@ Ніколи більше про це не запитувати Запитувати дозвіл на геолокацію Запитувати про дозвіл на показ місця перебування, коли це потрібно для функції перегляду місць поблизу. - Щось пішло не так. Нам не вдалося отримати Ваші досягнення + Щось пішло не так. Нам не вдалося отримати досягнення Ви зробили так багато, що наша система підрахунку досягнень не може впоратись зі своїм завданням. Це — абсолютне досягнення. Завершується: Показати кампанії @@ -465,7 +469,7 @@ Новий засіб вибору фотографій Android ризикує втратити інформацію про місцезнаходження. Увімкніть, якщо ви використовуєте його. Якщо вимкнути, то може бути викликаний новий вибір фотографій. Що може призвести до втрати інформації про місцезнаходження.\n\nТоркніться «Докладніше», щоб дізнатись більше. Ви більше не бачитимете кампаній. Однак Ви можете увімкнути це сповіщення повторно в своїх налаштуваннях, якщо забажаєте. - Ця функція вимагає доступу до інтернету. Будь ласка, перевірте своє з\'єднання. + Ця функція вимагає доступу до інтернету. Будь ласка, перевірте своє з\'єднання. Сталася помилка при обробці зображення. Будь ласка, спробуйте ще раз! Отримання токена редагування Додавання шаблона для перевірки категорій @@ -581,7 +585,7 @@ Не вдалося додати координати. Не вдалося додати описи. Не вдалося додати заголовок. - Не вдалося отримати координати. + Координати зображення не оновлено Не вдається отримати описи. Редагувати описи та заголовки Поширити зображення через @@ -596,12 +600,13 @@ Треба фото Тип місця: Міст, музей, готель тощо - Щось пішло не так із процесом входу, ви маєте скинути пароль ! + Щось пішло не так із процесом входу. Вам треба скинути пароль! МЕДІА ДОЧІРНІ КЛАСИ БАТЬКІВСЬКІ КЛАСИ Знайдено місце поблизу - На цьому фото %1$s? + Тут зображено %1$s? + На цьому зображенні %1$s? Закладки Налаштування Вилучено з закладок @@ -615,8 +620,10 @@ Не вдалося відкрити налаштування місця розташування. Будь ласка, увімкніть визначення місця розташування вручну Щоб отримати кращі результати, виберіть режим високої точності. Увімкнути визначення місця розташування? + Будь ласка, увімкніть службу визначення розташування, щоб застосунок показав ваше поточне розташування «Поблизу» потребує увімкненого визначення місця розташування, щоб працювати належним чином - Вам потрібно надати доступ до вашого поточного місцезнаходження, щоб місцезнаходження встановлювалось автоматично. + Функції огляду карти потрібен дозвіл на ваше розташування, щоб показати зображення поблизу + Вам потрібно надати доступ до місцезнаходження, щоб місцезнаходження встановлювалось автоматично. Ви зробили ці два знімки в одному й тому ж місці? Хочете використати широту/довготу зображення справа? Завантажити більше Місць не знайдено, спробуйте змінити критерії пошуку. @@ -719,7 +726,7 @@ Для належної роботи мапи поблизу мають відображати стан PHONE STATE Внесок користувача: %s Досягнення користувача: %s - Переглянути сторінку користувача + Переглянути сторінку користувача Редагувати описи Редагувати категорії Розширені параметри @@ -732,8 +739,8 @@ Додати розташування Будь ласка, видаліть з цього листа будь-яку інформацію, якою ви не бажаєте поділитися публічно. Також майте на увазі, що ваша адреса електронної пошти, за допомогою якої ви розміщуєте публікацію, а також пов’язане ім’я та зображення профілю будуть видимі для всіх. Деталі - Досягнення доступні лише у версії prod, будь ласка, перегляньте документацію розробника. - Таблиця лідерів доступна лише в версії prod. Будь ласка, перегляньте документацію розробника. + Досягнення доступні лише у версії prod. Будь ласка, перегляньте документацію розробників. + Таблиця лідерів доступна лише в версії prod. Будь ласка, перегляньте документацію розробників. Будь ласка, завантажуйте лише фотографії, які ви зробили самі. Користувачі, які завантажують зображення, захищені авторським правом, будуть заблоковані. Це стосується і бета-аромату. Дякуємо за тестування програми! Будь ласка, зніміть прапорець з будь-якої інформації, якою ви не бажаєте ділитися публічно. Рівень API @@ -775,10 +782,38 @@ Дізнайтеся, як написати корисний опис Дізнайтеся, як написати корисний підпис Перегляньте свої досягнення + Редагувати зображення + Редагувати розташування + Розташування оновлено + Вилучити розташування + Попередження про вилучення розташування + Завдяки розташуванню зображення стають кориснішими і доступнішими для пошуку. Ви справді бажаєте прибрати розташування з цього зображення? + Розташування вилучено! + Подякувати автору + Помилка при надсиланні подяки автору. + Сесія авторизації спливла. Будь ласка, увійдіть наново. + Немає доступного застосунку для відкриття файлів GPX + Файл успішно збережено + Бажаєте відкрити файл GPX? + Бажаєте відкрити файл KML? + Не вдалося зберегти файл KML. + Не вдалося зберегти файл GPX. + Збереження файлу KML + Збереження файлу GPX Вибрано %d зображення Вибрано %d зображення Вибрано %d зображень Вибрано %d зображень + Пам\'ятайте, що усі зображення, вивантажені разом, отримають ті самі категорії і підписи. Якщо ці зображення повинні мати різні підписи і категорії, будь ласка, завантажуйте їх окремо. + Примітка про завантаження груп файлів + Повідомити у Вікідані про проблему з цим елементом + Будь ласка, додайте якийсь коментар + Обговорення + Напишіть щось про елемент \"%1$s\". Це буде загальнодоступно. + «%1$s» більше не існує, фотографій цього більше не можливо зробити. + «%1$s» — це інше місце. Будь ласка, вкажіть правильне місце нижче і, якщо можна, напишіть правильні широту і довготу. + Інша проблема або інформація (поясніть нижче). + Ваші відгуки розміщуються на ось цій вікісторінці: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-xal/strings.xml b/app/src/main/res/values-xal/strings.xml index 0b2a0aebe..346ff15e1 100644 --- a/app/src/main/res/values-xal/strings.xml +++ b/app/src/main/res/values-xal/strings.xml @@ -161,7 +161,7 @@ Кегдв Буцх Һәәхлтә - Кергләчин халхиг үзх + Кергләчин халхиг үзх Тотрхаллтыг ясврлх Өргдксн тохрллһ Дәкн тохрулх diff --git a/app/src/main/res/values-xmf/strings.xml b/app/src/main/res/values-xmf/strings.xml index 7cc63fc87..8a6216786 100644 --- a/app/src/main/res/values-xmf/strings.xml +++ b/app/src/main/res/values-xmf/strings.xml @@ -49,6 +49,10 @@ %1$d ეხარგუა %1$d ეხარგუა + + ართამი დინორეშ მეღება. სურათიშ დამუშება იკორინუანს მუზმარენ ბორჯის, ნამუთ გაჩქუ სურათეფიშ ზჷმაშ დო თქვანი მონწყილობაშ მოდელს + ართამი დინორეშ მეღება. სურათეფიშ დამუშება იკორინუანს მუზმარენ ბორჯის, ნამუთ გაჩქუ სურათეფიშ ზჷმაშ დო თქვანი მონწყილობაშ მოდელს + გჷნოჯინა მიოჯინი თარი @@ -71,7 +75,9 @@ სისტემაშა მიშულაქ წჷმოძინელო გეთუ! სისტემაშა მიშულაქ ვემიხუჯინუ! ფაილქ ვეგორუ. ქორთხინთ, ქოცადით შხვა ფაილი. - აუთენტიფიკაციაქ ვემიხუჯინუ, ქოთხინთ ავტორიზაცია ხოლო ართშა გემკორთით. + გომაჟირაფაშ მაქსიმალურ ლიმიტი რე გიმორინაფილი! ქორთინთ, გაუქვათ ეხარგუა დო კჷნი ქოცადით. + გობთიშათო ბატარეაშ ოპტიმიზაცია? + ავთენტიფიკაციაქ ვემიხუჯინუ, ქოთხინთ კჷნი გენშართით. ეხარგუაქ ქჷდიჭყუ! ეხარგუა რანწკის გერე (გოხურგილი რსხუშ რეჟიმი ჩართული რე) %1$ ეხარგილი რე! @@ -79,7 +85,7 @@ ეთმიხარგუ ფაილი: %s %1$ იხარგუ ეხარგუაშ თება %1$ - %1$ ეხარგუაქ ვემიხუჯინუ + %1$s ეხარგუაქ ვემიხუჯინუ %1$s-აშ ეხარგუა გაჩემებული რე ოძირაფალო ქეგუწკანტეთ ოძირაფალო ქეგუწკანტეთ @@ -98,21 +104,23 @@ ქორთხინთ, ქემიოწურეთ თე ფაილიშ ეჭარუა ეჭარუა მუკნაჭარა - მიშულაქ ვემიხუჯინუ - რშვილიშ ჩილათა + მიშულაქ ვემიხუჯინუ - რშვილიშ ჩილათა ძალამ მიარე უმწუძინუ ცადება. ქორთხინ, მუხირენ წუთშა ხოლო ქოცადით. მორდება, თე მახვარებუ ბლოკირი რე ვიკიოწკარუეს თქვა გემშიონათ ოკო ჟირფაქტორიანი ავტორიზაციაშ კოდი. - მიშულაქ ვემიხუჯინუ + მიშულაქ ვემიხუჯინუ ეხარგუა სერიაშ ჯოხო მოდიფიკაციეფი ეხარგუა კატეგორიაშ გიშაგორუა + დოგორით ელემენტეფი, ნამუეფით მოჩამილი რე თქვანი სურათის (გვალა, ტაჯ-მაჰალი დო თ.უ.) ჩუალა გოახალაფა ერკებული (ეხარგუეფი ვა რე) ვეგორინჷ კატეგორიეფქ, ნამუეფით მოგენა %1$s + %1$s-შ მოგვენი ვიკიმუნაჩემეფიშ ელემენტიქ ვეგორუ %1$s-ს ვა უღჷ დოჸუნელი კლასეფი %1$s-ს ვა უღჷ მასქერული კლასეფი ქეგუძინით კატეგორიეფი, თქვანი სურათეფი უმოს მოხუჯურ მიოგორალქ იჸუას ვიკიოწკარუესჷნ.\nგემშეჸონით ჯოხო კატეგორიეფიშ გიოძინალო. @@ -308,6 +316,7 @@ გამა ჩილათირი რე თე სკრინშოტი ჯგირი რენო ეიოხარგალო? მუკორთაფა + ვემიხუჯინჷ გოხოლუაშ აბანეფიშ ინოხარგუაქ თაქ ვა რე მუთუნნერი სურათი ვა რე გოხოლუაშ აბანეფი ასერდეიანი მუნაგორეფი ვა რე @@ -361,9 +370,20 @@ ალობაშ მოთხირი თენა კჷნ დღას ვაბკითხა ორენიშ ალობაშ მოთხირი + ითებუ: + ალობაშ მეჩამა + გოუქვაფა ღოლამირჷ რე + ვა რე გუმორინაფილი სურათეფი სურათიშ ეხარგუაშ ბორჯის ჩილათაქ მოხვადჷ ქორთხინთ ქჷმიცადით … + ავტორი + ორენი + კამერაშ მოდელი + ლინზაშ მოდელი + სერიული ნომერი + პროგრამული უნარღელჸუა + სურათიშ ინფორმაცია სელფი ჸურილი თიშენ ნამჷ-და თინა რე diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e8e4931c2..ac3e7ebf2 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -712,7 +712,7 @@ 附近地圖需要讀取手機狀態來正常運作 使用者貢獻:%s 使用者成果:%s - 檢視使用者頁面 + 檢視使用者頁面 編輯描寫 編輯分類 進階選項 @@ -795,10 +795,9 @@ 向維基數據回報關於此項目的問題 請輸入一些意見。 討論 - \"寫一些關於\" - \"項目。這將公開可見。\" + 「填寫一些關於『%1$s』項目的事物。內容將公開可見。」 「%1$s」已不存在,無法拍攝它的照片。 - 「%1$s」位於不同的位置(請在下面指定正確的位置,可以的話請告訴我們正確的經緯度)。 + 「%1$s」位於不同的位置。請在下面指定正確的位置,可以的話請填寫正確的經緯度。 其他問題或資訊(請在下方解釋)。 您的回饋已發布到以下 wiki 頁面:<a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index a4ed17c02..4c13f4a0b 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -734,7 +734,7 @@ 附近地图需要读取手机状态权限以正常运行 用户贡献:%s 用户成就:%s - 查看用户页面 + 查看用户页面 编辑描述 编辑分类 高级选项 From 59da70aca13b36cda045ef0b4b3572da43bdc0b0 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 25 Jul 2024 14:01:45 +0200 Subject: [PATCH 046/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 6 ++++-- app/src/main/res/values-fr/strings.xml | 3 ++- app/src/main/res/values-ku/strings.xml | 10 +++++----- app/src/main/res/values-lb/strings.xml | 2 +- app/src/main/res/values-sr/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 2 +- 7 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index b17735415..c7a00d8b3 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -602,7 +602,7 @@ - Tilføj kategorier til dette billede for at forbedre brugbarheden. - Føj dette billede til den tilknyttede Wikipedia-artikel, der ikke har nogen billeder. Tilføj billede til Wikipedia - Vil du tilføje dette billede til Wikipedia-artiklen på sproget %1$s? + Vil du tilføje dette billede til Wikipedia-artiklen på sproget %1$s ? Bekræft Instruktioner 1. Brug følgende wikitekst: diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 115016a1c..1fb3cf0b7 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -23,6 +23,7 @@ * Ngschaider * Pyscowicz * Reedy +* RucolaSpacecat * Sebastian Wallroth * SpaceEnergy * Sujan @@ -91,7 +92,7 @@ Der geteilte Inhalt wird abgerufen. Die Verarbeitung der Bilder kann einige Zeit in Anspruch nehmen, abhängig von der Größe der Bilder und deines Gerätes. Entdecken - Erscheinung + Aussehen Allgemein Rückmeldung Datenschutz @@ -721,7 +722,7 @@ Karten in der Nähe müssen den Telefonstatus lesen können, um richtig zu funktionieren Beiträge von Benutzer: %s Erfolge des Benutzers: %s - Benutzerseite ansehen + Benutzerseite ansehen Beschriftungen bearbeiten Kategorien bearbeiten Erweiterte Optionen @@ -801,5 +802,6 @@ Bitte beachte, dass bei einem Multiupload alle Bilder die gleichen Kategorien und Bezeichnungen erhalten. Sollten die Bilder keine gemeinsamen Bezeichnungen und Kategorien haben, führe bitte mehrere separate Uploads durch. Hinweis zu Mehrfach-Uploads + Melde ein Problem mit diesem Datenobjekt an Wikidata Ihr Feedback wird auf der folgenden Wiki-Seite veröffentlicht: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile App/Feedback</a> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 3c863df5e..82c764622 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -3,6 +3,7 @@ * Adehertogh * Ajeje Brazorf * Alno +* Assorted-Interests * BaRaN6161 TURK * BlueCamille * Cigaryno @@ -728,7 +729,7 @@ Les cartes de proximité doivent pouvoir lire l’ÉTAT DU TÉLÉPHONE pour fonctionner correctement Contributions de l’utilisateur : %s Réussites de l’utilisateur : %s - Afficher la page utilisateur + Afficher le profil de l\'utilisateur Modifier les descriptions Modifier les catégories Options avancées diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml index 3cb0451e2..017f5ba6f 100644 --- a/app/src/main/res/values-ku/strings.xml +++ b/app/src/main/res/values-ku/strings.xml @@ -73,10 +73,10 @@ Têdikeve Ji kerema xwe piçek bisekine ... Xêra xwe hinek bisekine... - Têketin biserkeftî ye! - Têketin biser neket! + Têketin bi ser ket! + Têketin bi ser neket! Dosye nehat dîtin. Ji kerema xwe re dosyeyek din biceribîne. - Teyîdkirina nasnameyê bi ser neket, ji kerema xwe cardin têkeve + Teyîdkirina nasnameyê bi ser neket, ji kerema xwe cardin têkeve. Barkirin dest pê kir! %1$s hat barkirin! Bo barkirina xwe bibînî bitikîne. @@ -92,7 +92,7 @@ Parve bike Sernav (Hewce ye) Danasîn - Têketin têk çû + Têketin têk çû Bar bike Nav bide vê desteyê Bar bike @@ -143,7 +143,7 @@ Derkeve Derbas bike Têkeve - Tu bi rastî dixwazî têketinê derbas bikî? + Tu bi rastî dixwazî têketinê derbas bikî? Talîmat Wîkîdane Wîkîpediya diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index 669310059..af632d41f 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -479,7 +479,7 @@ Autorisatioun gëtt gebraucht Kontributioune vum Benotzer: %s Leeschtunge vum Benotzer: %s - Benotzersäit weisen + Benotzerprofil weisen Kategorien änneren Erweidert Optiounen Dir kënnt d\'Nobäi-Ufroen upassen. Falls Dir eng Feelermeldung kritt, setzt zeréck a probéiert nach eng Kéier. diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index ccc52792d..f05487488 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -662,7 +662,7 @@ Потребна је дозвола Доприноси корисника/це: %s Достигнућа корисника/це: %s - Прикажи корисничку страницу + Прикажи корисничку страницу Измени категорије Напредне опције Примени diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 4c13f4a0b..edf8d1f95 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -734,7 +734,7 @@ 附近地图需要读取手机状态权限以正常运行 用户贡献:%s 用户成就:%s - 查看用户页面 + 查看用户个人资料 编辑描述 编辑分类 高级选项 From dbfe3b50f9b338d75c08829d69090674dd8944b6 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 29 Jul 2024 14:02:27 +0200 Subject: [PATCH 047/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ar/strings.xml | 7 +++++-- app/src/main/res/values-ko/strings.xml | 27 +++++++++++++++++++++++--- app/src/main/res/values-nl/strings.xml | 5 +++-- app/src/main/res/values-ru/strings.xml | 2 +- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e11426077..bcf3c5538 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -23,6 +23,7 @@ * أَحمد * ترجمان05 * ديفيد +* عبد الإله صديقي * علاء * محمد أحمد عبد الفتاح * مشعل الحربي @@ -287,6 +288,7 @@ حول الإعدادات تعليقات + ردود الفعل عبر \"غيت هاب\" تسجيل الخروج مقدمة تعليمية إشعارات @@ -321,7 +323,7 @@ تجاوز تسجيل الدخول هل تريد حقا تخطي تسجيل الدخول؟ - يجب عليك تسجيل الدخول لرفع الصور في المستقبل. + سيتعين عليك في المستقبل تسجيل الدخول لتحميل الصور. الرجاء تسجيل الدخول لاستخدام هذه الميزة انسخ نص الويكي إلى الكليب بورد نص الويكي تم نسخه إلى الكليب بورد @@ -748,7 +750,7 @@ تحتاج الخرائط المجاورة لقراءة PHONE STATE لتعمل بشكل صحيح مساهمات المستخدم: %s إنجازات المستخدم: %s - اعرض صفحة المستخدم + اعرض صفحة المستخدم تحرير الصور تحرير الفئات خيارات متقدمة @@ -778,6 +780,7 @@ وضع علامة على أنه ليس للتحميل إلغاء علامة على أنه ليس للتحميل إلغاء علامة على أنه ليس للرفع + إلغاء علامة على أنه ليس للرفع عرض الصور بالفعل إخفاء الصور بالفعل لم يتم العثور على المزيد من الصور diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 231240bd1..52bb0a7ac 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -76,6 +76,7 @@ 설정 공용에 업로드 + 업로드 진행 중 사용자 이름 비밀번호 공용 베타 계정으로 로그인합니다 @@ -89,6 +90,7 @@ 로그인 성공! 로그인 실패! 파일을 찾을 수 없습니다. 다른 파일을 사용해 주십시오. + 배터리 최적화를 끌까요? 인증 실패. 다시 로그인해 주십시오 올리기를 시작했습니다! 업로드 대기 중 (제한 연결 모드 활성화됨) @@ -140,6 +142,7 @@ 설정 가입하기 알찬 그림 + 사용자 지정 셀렉터 분류 동료평가 정보 @@ -204,6 +207,7 @@ 위치 권한 요청 중 확인 경고 + 중복 파일 이름이 있습니다 업로드 아니오 @@ -275,7 +279,7 @@ 건너뛰기 로그인 로그인을 건너뛰시겠습니까? - 나중에 사진을 업로드하려면 로그인해야 합니다. + 나중에 사진을 업로드하려면 로그인해야 합니다. 이 기능을 사용하려면 로그인해 주십시오 위키텍스트를 클립보드에 복사 위키텍스트를 클립보드에 복사했습니다 @@ -420,6 +424,8 @@ 무언가가 잘못되어, 저희는 당신의 업적을 가져올 수 없었습니다 캠페인 표시 진행되고 있는 캠페인 보기 + 허용 + 숨기기 이 기능에는 네트워크 연결이 필요합니다. 연결 설정을 확인해 주십시오. 이미지를 처리하는 동안 오류가 발생했습니다. 다시 시도해 주십시오! 편집을 위한 토큰을 가져옵니다 @@ -478,7 +484,7 @@ 실패 삭제를 요청하지 못했습니다. 셀카 - 흐림 + 완전히 흐림 보도 사진 인터넷상의 무작위 이미지 로고 @@ -545,9 +551,11 @@ 계속하기 일시 중단됨 책갈피 + 리더보드 순위: 순위 사용자 + 리더보드 아바타로 설정 아바타로 설정 중이니 기다려 주십시오 새 아바타를 설정하는 중 오류가 발생했습니다. 다시 시도해 주십시오 아바타로 설정 @@ -579,7 +587,11 @@ 위치 편집 이미지 위치 위치가 올바른지 확인 + 레이블 + 설명 항목 + 사용자 지정 셀렉터 + 이미지 없음 완료 뒤로 커스텀 사진 선택기에 오신 것을 환영합니다. @@ -587,9 +599,15 @@ 왼쪽 사진과 달리 오른쪽 사진에는 이미 업로드되었음을 나타내는 커먼즈 로고가 있습니다. \n이미지를 미리 보시려면 길게 터치하세요. 훌륭합니다 이 이미지는 이미 커먼즈에 업로드되었습니다. + 숨기기 + 최대: %1$d + 오류: 업로드 제한에 도달했습니다 + 더 알아보기 권한 필요 사용자의 기여: %s - 사용자 문서 보기 + 사용자 달성도: %s + 사용자 프로필 보기 + 묘사된 항목 편집하기 분류 편집 고급 옵션 적용 @@ -648,4 +666,7 @@ KML 파일을 저장 중 GPX 파일을 저장 중 다중 업로드에 대한 참고사항 + 이 항목에 관한 문제를 위키데이터에 보고하기 + 토론 + 기타 문제 또는 정보 (아래에 설명해 주십시오) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 3a76f4c8d..ba936d585 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -712,7 +712,7 @@ Kaarten in de buurt moeten TELEFOONSTATUS lezen om goed te kunnen werken Bijdragen door Gebruiker: %s Prestaties van Gebruiker: %s - Gebruikerspagina bekijken + Gebruikersprofiel bekijken Wijzig items Categorieën bewerken Geavanceerde opties @@ -743,7 +743,7 @@ Schakel de markering als niet geschikt voor uploaden uit Markeren als niet geschikt voor uploaden Markering als niet geschikt voor uploaden uitschakelen - Reeds behandelde afbeeldingen tonen + Reeds behandelde afbeeldingen weergeven Reeds behandelde afbeeldingen verbergen Geen afbeeldingen meer gevonden Deze afbeelding is al geüpload @@ -795,6 +795,7 @@ Een probleem met dit item melden aan Wikidata Voer enkele opmerkingen in Overleg + Schrijf iets over het item \'%1$s\'. Dit is openbaar zichtbaar. ‘%1$s’ bestaat niet meer, er kan nooit een foto van gemaakt worden. ‘%1$s’ bevindt zich ergens anders. Geef hieronder de juiste plaats aan en noteer, indien mogelijk, de juiste breedte- en lengtegraad. Ander probleem of andere informatie (verklaar hieronder). diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d4fda660e..2d99c38be 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -749,7 +749,7 @@ Для правильной работы картам поблизости необходимо иметь доступ к СОСТОЯНИЮ ТЕЛЕФОНА. Вклад участника: %s Достижения участника: %s - Посмотреть страницу участника + Посмотреть профиль участника Редактировать описания Изменить категории Расширенные настройки From ba6c8fe8d04ced03ff4678e6962a005e6f1f45a4 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 1 Aug 2024 14:01:42 +0200 Subject: [PATCH 048/499] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-es/strings.xml | 7 +++++-- app/src/main/res/values-ia/strings.xml | 3 ++- app/src/main/res/values-sr/strings.xml | 4 +++- app/src/main/res/values-zh/strings.xml | 19 +++++++++++++++++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a2936e197..6d18d34ed 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -16,6 +16,7 @@ * DannyS712 * Destinid10 2 * DiegoAmbrocio +* EmicraftNoob * Eulalio * Fewasser Traduce * Fitoschido @@ -316,7 +317,7 @@ Omitir Acceder ¿Quieres realmente omitir el inicio de sesión? - Deberías iniciar sesión para subir imágenes en el futuro. + Debes iniciar sesión para subir imágenes en el futuro. Por favor inicia sesion para usar esta característica Copia el wikitexto al portapapeles El wikitexto fue copiado al portapapeles @@ -734,7 +735,7 @@ Los mapas cercanos necesitan leer ESTADO DEL TELÉFONO para funcionar correctamente Contribuciones del usuario: %s Logros del usuario: %s - Ver página de usuario + Ver perfil de usuario Editar las descripciones Editar categorías Opciones avanzadas @@ -787,6 +788,8 @@ Se denegaron los permisos de almacenamiento No se puede compartir este elemento Se requieren permisos para la funcionalidad + Editar Imagen + Editar Ubicación ¡Ubicación actualizada! Quitar ubicación Eliminar el aviso de ubicación diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 73b171464..c4404bce6 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -1,5 +1,6 @@ @@ -681,7 +682,7 @@ Le cartas a proximitate debe leger le STATO DEL TELEPHONO pro functionar correctemente Contributiones del usator: %s Realisationes del usator: %s - Visitar le pagina del usator + Vider le profilo del usator Modificar representationes Modificar categorias Optiones avantiate diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index f05487488..4bef698e2 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -673,7 +673,7 @@ Додај локацију Молимо уклоните из овог мејла све информације које не желите да делите јавно. Такође, имајте на уму да ће ваша имејл адреса са које објављујете и повезано име и профилна слика, бити јавно видљиви. Детаљи - Достигнућа су доступна само у продукционој верзији, проверите документацију за програмере. + Достигнућа су доступна само у продукционој верзији, проверите документацију за програмере. Табела лидера је доступна само у продукционој верзији, проверите документацију за програмере. Молимо вас да отпремате само слике које сте сами направили. Отпремаоци слика који крше ауторска права ће бити блокирани. Ово се такође односи на бета верзију. Хвала вам што тестирате апликацију! Молимо вас да поништите све информације које не жечите да делите јавно. @@ -722,6 +722,7 @@ Локација уклоњена! Захвали се аутору Ваша пријава је истекла. Молимо пријавите се поново. + Нема апликације за отварање GPX датотека Чување датотеке успешно Чување KML датотеке није успело. Чување GPX датотеке није успело. @@ -731,6 +732,7 @@ %d слика је одабрана %d слика је одабрано + Унесите коментар Разговор „%1$s” не постоји више, и није га могуће више сликати. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index edf8d1f95..9df3a1e3b 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -14,6 +14,7 @@ * Dream Star.cn * Googology * GuoPC +* Huajing * Hydra * Ken418 * Kuailong @@ -636,6 +637,7 @@ 打开位置? 请开启定位服务,以便应用显示您当前的位置 附近需要启用位置才能正常工作 + 探索地图需要定位权限才能显示附近图片 您需要授予位置权限才能自动设置位置。 您是在同一地点拍摄这两张图片的吗?您想要使用右侧图片的纬度/经度吗? 加载更多 @@ -724,6 +726,10 @@ 右边的图片与左边的不同,它具有已上传至维基共享资源的标志。\n点击并长按来预览图像。 棒极了 此图像已上传至维基共享资源。 + 出于技术原因,该应用无法可靠地一次性上传超过%1$d张照片。%2$d张已经超过%1$d张的上传限制。 + 关闭 + 最大:%1$d + 错误:超出上传限制 此图像将会进入维基爱古迹竞赛 显示古迹 维基爱古迹的月份! @@ -787,12 +793,15 @@ 存储权限被拒绝 无法分享此项目 功能需要权限 + 了解如何写出有用的描述 + 了解如何写出有用的注释 查看您的成果 编辑图片 编辑位置 位置已更新! 移除位置 移除位置警告 + 定位信息使图片更加有用、更容易被找到。您真的希望从这张图片中删除定位信息吗? 位置已移除! 感谢作者 向作者发送感谢时出错。 @@ -809,4 +818,14 @@ 已选择%d个图像 已选择%d个图像 + 请记住,每次多图片上传会为其中的所有图片标注相同的分类和描述。如果这些图片并不共享同样的描述和分类,请分别进行多次上传。 + 关于多图片上传的提醒 + 向维基数据报告关于该项的问题 + 请输入一些评论。 + 讨论 + 请写一些关于项目“%1$s”的信息。所写的内容是公开可见的。 + “%1$s”已不再存在,无法拍摄它的照片。 + “%1$s”位于一个不同的位置。请在下方给出正确的位置,可以的话请填写正确的经纬度。 + 其他问题或信息(请在下方解释)。 + 您的反馈已经发布在以下wiki页面:<a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a> From 2d63f351ed51c5fd21c9128f649ba211caaf4e7a Mon Sep 17 00:00:00 2001 From: Kanahia <114223204+kanahia1@users.noreply.github.com> Date: Sun, 4 Aug 2024 06:05:09 +0530 Subject: [PATCH 049/499] Made Split to Nearby Query into a fast query for coordinates + a details query for each pin (#5731) * Splitted the query * Made changes to the query * Improvised query * Improvised query by dividing in the batches * Fixed failing tests * Improved batches * Improved sorting * Fixes issue caused by search this area button * Fixed failing tests * Fixed unnecessary reloads on onResume * Fixed few pins not loading on changing apps * Improved zoom level and fixed the pins not loading from the center * Removed toggle chips and changed pin's color * Fixed wikidata url * Fixed unit tests * Implemented retry with delay of 5000ms * Fixed exception issue and pins issue * Added change color icon to pin * Improved pin clicking * Removed search this area button * Implemented caching of places * Fixed unit test * Factorized methods * Changed primary key from location to entity id * Fixed tests * Fixed conflicts * Fixed unit test * Fixed unit test * Fixed the bug * Fixed issue with pin loading on the first launch * Updated javadocs * Temporary commit - only for testing * Replaced Temporary commit * Temporary commit - Added jcenter * Made minor changes * Fixed unit tests * Fixed unit tests * Fixed minor bug --- .../locations/BookmarkLocationsDao.java | 82 +- .../fr/free/nrw/commons/db/AppDatabase.kt | 5 +- .../fr/free/nrw/commons/db/Converters.java | 14 + .../commons/di/CommonsApplicationModule.java | 6 + .../commons/mwapi/OkHttpJsonApiClient.java | 48 + .../nrw/commons/nearby/NearbyController.java | 11 + .../free/nrw/commons/nearby/NearbyPlaces.java | 16 + .../fr/free/nrw/commons/nearby/Place.java | 169 +++- .../fr/free/nrw/commons/nearby/PlaceDao.java | 45 + .../commons/nearby/PlacesLocalDataSource.java | 39 + .../nrw/commons/nearby/PlacesRepository.java | 41 + .../NearbyParentFragmentContract.java | 9 +- .../fragments/NearbyParentFragment.java | 839 ++++++++++-------- .../nrw/commons/nearby/model/ResultTuple.kt | 2 +- .../NearbyParentFragmentPresenter.java | 46 +- .../fr/free/nrw/commons/utils/PlaceUtils.java | 3 +- .../res/drawable/ic_custom_map_marker.xml | 44 +- .../ic_custom_map_marker_grey_bookmarked.xml | 2 +- .../drawable/ic_custom_map_marker_purple.xml | 2 +- ...ic_custom_map_marker_purple_bookmarked.xml | 2 +- .../res/drawable/ic_custom_map_marker_red.xml | 23 + .../ic_custom_map_marker_red_bookmarked.xml | 29 + .../main/res/layout/bottom_sheet_details.xml | 56 +- app/src/main/res/layout/filter_chip_view.xml | 50 -- .../res/layout/fragment_nearby_parent.xml | 19 +- .../res/layout/nearby_filter_all_items.xml | 24 +- app/src/main/res/values/strings.xml | 1 + .../main/resources/queries/query_for_item.rq | 64 ++ .../queries/rectangle_query_for_nearby.rq | 43 - .../rectangle_query_for_nearby_monuments.rq | 43 - .../fr/free/nrw/commons/ModelFunctions.kt | 5 +- .../locations/BookMarkLocationDaoTest.kt | 69 +- .../BookmarkLocationControllerTest.kt | 5 +- .../BookmarkLocationFragmentUnitTests.kt | 3 +- .../commons/nearby/NearbyControllerTest.kt | 30 +- .../NearbyParentFragmentPresenterTest.kt | 27 +- .../nearby/NearbyParentFragmentUnitTest.kt | 42 - .../upload/UploadMediaPresenterTest.kt | 2 +- build.gradle | 1 + 39 files changed, 1147 insertions(+), 814 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java create mode 100644 app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java create mode 100644 app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java create mode 100644 app/src/main/res/drawable/ic_custom_map_marker_red.xml create mode 100644 app/src/main/res/drawable/ic_custom_map_marker_red_bookmarked.xml delete mode 100644 app/src/main/res/layout/filter_chip_view.xml create mode 100644 app/src/main/resources/queries/query_for_item.rq diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.java index a55ae5e0d..850b953e9 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsDao.java @@ -46,11 +46,11 @@ public class BookmarkLocationsDao { ContentProviderClient db = clientProvider.get(); try { cursor = db.query( - BookmarkLocationsContentProvider.BASE_URI, - Table.ALL_FIELDS, - null, - new String[]{}, - null); + BookmarkLocationsContentProvider.BASE_URI, + Table.ALL_FIELDS, + null, + new String[]{}, + null); while (cursor != null && cursor.moveToNext()) { items.add(fromCursor(cursor)); } @@ -126,11 +126,11 @@ public class BookmarkLocationsDao { ContentProviderClient db = clientProvider.get(); try { cursor = db.query( - BookmarkLocationsContentProvider.BASE_URI, - Table.ALL_FIELDS, - Table.COLUMN_NAME + "=?", - new String[]{bookmarkLocation.name}, - null); + BookmarkLocationsContentProvider.BASE_URI, + Table.ALL_FIELDS, + Table.COLUMN_NAME + "=?", + new String[]{bookmarkLocation.name}, + null); if (cursor != null && cursor.moveToFirst()) { return true; } @@ -149,7 +149,7 @@ public class BookmarkLocationsDao { @NonNull Place fromCursor(final Cursor cursor) { final LatLng location = new LatLng(cursor.getDouble(cursor.getColumnIndex(Table.COLUMN_LAT)), - cursor.getDouble(cursor.getColumnIndex(Table.COLUMN_LONG)), 1F); + cursor.getDouble(cursor.getColumnIndex(Table.COLUMN_LONG)), 1F); final Sitelinks.Builder builder = new Sitelinks.Builder(); builder.setWikipediaLink(cursor.getString(cursor.getColumnIndex(Table.COLUMN_WIKIPEDIA_LINK))); @@ -207,40 +207,40 @@ public class BookmarkLocationsDao { // NOTE! KEEP IN SAME ORDER AS THEY ARE DEFINED UP THERE. HELPS HARD CODE COLUMN INDICES. public static final String[] ALL_FIELDS = { - COLUMN_NAME, - COLUMN_LANGUAGE, - COLUMN_DESCRIPTION, - COLUMN_CATEGORY, - COLUMN_LABEL_TEXT, - COLUMN_LABEL_ICON, - COLUMN_LAT, - COLUMN_LONG, - COLUMN_IMAGE_URL, - COLUMN_WIKIPEDIA_LINK, - COLUMN_WIKIDATA_LINK, - COLUMN_COMMONS_LINK, - COLUMN_PIC, - COLUMN_EXISTS, + COLUMN_NAME, + COLUMN_LANGUAGE, + COLUMN_DESCRIPTION, + COLUMN_CATEGORY, + COLUMN_LABEL_TEXT, + COLUMN_LABEL_ICON, + COLUMN_LAT, + COLUMN_LONG, + COLUMN_IMAGE_URL, + COLUMN_WIKIPEDIA_LINK, + COLUMN_WIKIDATA_LINK, + COLUMN_COMMONS_LINK, + COLUMN_PIC, + COLUMN_EXISTS, }; static final String DROP_TABLE_STATEMENT = "DROP TABLE IF EXISTS " + TABLE_NAME; static final String CREATE_TABLE_STATEMENT = "CREATE TABLE " + TABLE_NAME + " (" - + COLUMN_NAME + " STRING PRIMARY KEY," - + COLUMN_LANGUAGE + " STRING," - + COLUMN_DESCRIPTION + " STRING," - + COLUMN_CATEGORY + " STRING," - + COLUMN_LABEL_TEXT + " STRING," - + COLUMN_LABEL_ICON + " INTEGER," - + COLUMN_LAT + " DOUBLE," - + COLUMN_LONG + " DOUBLE," - + COLUMN_IMAGE_URL + " STRING," - + COLUMN_WIKIPEDIA_LINK + " STRING," - + COLUMN_WIKIDATA_LINK + " STRING," - + COLUMN_COMMONS_LINK + " STRING," - + COLUMN_PIC + " STRING," - + COLUMN_EXISTS + " STRING" - + ");"; + + COLUMN_NAME + " STRING PRIMARY KEY," + + COLUMN_LANGUAGE + " STRING," + + COLUMN_DESCRIPTION + " STRING," + + COLUMN_CATEGORY + " STRING," + + COLUMN_LABEL_TEXT + " STRING," + + COLUMN_LABEL_ICON + " INTEGER," + + COLUMN_LAT + " DOUBLE," + + COLUMN_LONG + " DOUBLE," + + COLUMN_IMAGE_URL + " STRING," + + COLUMN_WIKIPEDIA_LINK + " STRING," + + COLUMN_WIKIDATA_LINK + " STRING," + + COLUMN_COMMONS_LINK + " STRING," + + COLUMN_PIC + " STRING," + + COLUMN_EXISTS + " STRING" + + ");"; public static void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_STATEMENT); @@ -308,4 +308,4 @@ public class BookmarkLocationsDao { } } } -} +} \ No newline at end of file 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 6d63e58a1..594f087c8 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 @@ -6,6 +6,8 @@ import androidx.room.TypeConverters import fr.free.nrw.commons.contributions.Contribution import fr.free.nrw.commons.contributions.ContributionDao import fr.free.nrw.commons.customselector.database.* +import fr.free.nrw.commons.nearby.Place +import fr.free.nrw.commons.nearby.PlaceDao import fr.free.nrw.commons.review.ReviewDao import fr.free.nrw.commons.review.ReviewEntity import fr.free.nrw.commons.upload.depicts.Depicts @@ -15,10 +17,11 @@ import fr.free.nrw.commons.upload.depicts.DepictsDao * The database for accessing the respective DAOs * */ -@Database(entities = [Contribution::class, Depicts::class, UploadedStatus::class, NotForUploadStatus::class, ReviewEntity::class], version = 16, exportSchema = false) +@Database(entities = [Contribution::class, Depicts::class, UploadedStatus::class, NotForUploadStatus::class, ReviewEntity::class, Place::class], version = 18, exportSchema = false) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() { abstract fun contributionDao(): ContributionDao + abstract fun PlaceDao(): PlaceDao abstract fun DepictsDao(): DepictsDao; abstract fun UploadedStatusDao(): UploadedStatusDao; abstract fun NotForUploadStatusDao(): NotForUploadStatusDao diff --git a/app/src/main/java/fr/free/nrw/commons/db/Converters.java b/app/src/main/java/fr/free/nrw/commons/db/Converters.java index 6f0c8c1fc..a70cdc815 100644 --- a/app/src/main/java/fr/free/nrw/commons/db/Converters.java +++ b/app/src/main/java/fr/free/nrw/commons/db/Converters.java @@ -8,8 +8,10 @@ import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.contributions.ChunkInfo; import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.location.LatLng; +import fr.free.nrw.commons.nearby.Sitelinks; import fr.free.nrw.commons.upload.WikidataPlace; import fr.free.nrw.commons.upload.structure.depictions.DepictedItem; +import java.lang.reflect.Type; import java.util.Date; import java.util.List; import java.util.Map; @@ -134,6 +136,18 @@ public class Converters { return readObjectWithTypeToken(depictedItems, new TypeToken>() {}); } + @TypeConverter + public static Sitelinks sitelinksFromString(String value) { + Type type = new TypeToken() {}.getType(); + return new Gson().fromJson(value, type); + } + + @TypeConverter + public static String fromSitelinks(Sitelinks sitelinks) { + Gson gson = new Gson(); + return gson.toJson(sitelinks); + } + private static String writeObjectToString(Object object) { return object == null ? null : getGson().toJson(object); } diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java index abf7c6fb1..cd7324c63 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java @@ -24,6 +24,7 @@ import fr.free.nrw.commons.data.DBOpenHelper; import fr.free.nrw.commons.db.AppDatabase; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.location.LocationServiceManager; +import fr.free.nrw.commons.nearby.PlaceDao; import fr.free.nrw.commons.review.ReviewDao; import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.upload.UploadController; @@ -275,6 +276,11 @@ public class CommonsApplicationModule { return appDatabase.contributionDao(); } + @Provides + public PlaceDao providesPlaceDao(AppDatabase appDatabase) { + return appDatabase.PlaceDao(); + } + /** * Get the reference of DepictsDao class. */ diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java b/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java index 317d1ebc0..8d6b74231 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java @@ -397,6 +397,54 @@ public class OkHttpJsonApiClient { throw new Exception(response.message()); } + /** + * Retrieves a list of places based on the provided list of places and language. + * + * @param placeList A list of Place objects for which to fetch information. + * @param language The language code to use for the query. + * @return A list of Place objects with additional information retrieved from Wikidata, or null + * if an error occurs. + * @throws IOException If there is an issue with reading the resource file or executing the HTTP + * request. + */ + @Nullable + public List getPlaces( + final List placeList, final String language) throws IOException { + final String wikidataQuery = FileUtils.readFromResource("/queries/query_for_item.rq"); + String qids = ""; + for (final Place place : placeList) { + qids += "\n" + ("wd:" + place.getWikiDataEntityId()); + } + final String query = wikidataQuery + .replace("${ENTITY}", qids) + .replace("${LANG}", language); + final HttpUrl.Builder urlBuilder = HttpUrl + .parse(sparqlQueryUrl) + .newBuilder() + .addQueryParameter("query", query) + .addQueryParameter("format", "json"); + + final Request request = new Request.Builder() + .url(urlBuilder.build()) + .build(); + + try (Response response = okHttpClient.newCall(request).execute()) { + if (response.isSuccessful()) { + final String json = response.body().string(); + final NearbyResponse nearbyResponse = gson.fromJson(json, NearbyResponse.class); + final List bindings = nearbyResponse.getResults().getBindings(); + final List places = new ArrayList<>(); + for (final NearbyResultItem item : bindings) { + final Place placeFromNearbyItem = Place.from(item); + places.add(placeFromNearbyItem); + } + return places; + } else { + throw new IOException("Unexpected response code: " + response.code()); + } + } + } + /** * Make API Call to get Places * diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java index d650f2869..7bb311961 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java @@ -131,6 +131,17 @@ public class NearbyController extends MapController { ); } + /** + * Retrieves a list of places based on the provided list of places and language. + * + * @param placeList A list of Place objects for which to fetch information. + * @return A list of Place objects obtained from the Wikidata query. + * @throws Exception If an error occurs during the retrieval process. + */ + public List getPlaces(List placeList) throws Exception { + return nearbyPlaces.getPlaces(placeList, Locale.getDefault().getLanguage()); + } + public static LatLng calculateNorthEast(double latitude, double longitude, double distance) { double lat1 = Math.toRadians(latitude); double deltaLat = distance * 0.008; diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index 787cc35e2..46f0a2a9e 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -120,6 +120,22 @@ public class NearbyPlaces { customQuery); } + /** + * Retrieves a list of places based on the provided list of places and language. + * + * This method fetches place information from a Wikidata query using the specified language. + * + * @param placeList A list of Place objects for which to fetch information. + * @param lang The language code to use for the query. + * @return A list of Place objects obtained from the Wikidata query. + * @throws Exception If an error occurs during the retrieval process. + */ + public List getPlaces(final List placeList, + final String lang) throws Exception { + return okHttpJsonApiClient + .getPlaces(placeList, lang); + } + /** * Runs the Wikidata query to retrieve the KML String * diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index fdd836390..7732669bc 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -3,34 +3,38 @@ package fr.free.nrw.commons.nearby; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; - +import androidx.annotation.NonNull; import androidx.annotation.Nullable; - -import org.apache.commons.lang3.StringUtils; - +import androidx.room.Entity; +import androidx.room.PrimaryKey; import fr.free.nrw.commons.location.LatLng; import fr.free.nrw.commons.nearby.model.NearbyResultItem; +import fr.free.nrw.commons.utils.LocationUtils; import fr.free.nrw.commons.utils.PlaceUtils; +import org.apache.commons.lang3.StringUtils; import timber.log.Timber; /** * A single geolocated Wikidata item */ +@Entity(tableName = "place") public class Place implements Parcelable { - public final String language; - public final String name; - private final Label label; - private final String longDescription; - public final LatLng location; - private final String category; - public final String pic; + public String language; + public String name; + private Label label; + private String longDescription; + public LatLng location; + @PrimaryKey @NonNull + public String entityID; + private String category; + public String pic; // exists boolean will tell whether the place exists or not, // For a place to be existing both destroyed and endTime property should be null but it is also not necessary for a non-existing place to have both properties either one property is enough (in such case that not given property will be considered as null). - public final Boolean exists; + public Boolean exists; public String distance; - public final Sitelinks siteLinks; + public Sitelinks siteLinks; private boolean isMonument; private String thumb; @@ -44,9 +48,11 @@ public class Place implements Parcelable { pic = null; exists = null; siteLinks = null; + entityID = null; } - public Place(String language,String name, Label label, String longDescription, LatLng location, String category, Sitelinks siteLinks, String pic, Boolean exists) { + public Place(String language, String name, Label label, String longDescription, LatLng location, + String category, Sitelinks siteLinks, String pic, Boolean exists, String entityID) { this.language = language; this.name = name; this.label = label; @@ -54,21 +60,37 @@ public class Place implements Parcelable { this.location = location; this.category = category; this.siteLinks = siteLinks; - this.pic = (pic == null) ? "":pic; + this.pic = (pic == null) ? "" : pic; + this.exists = exists; + this.entityID = entityID; + } + + public Place(String language, String name, Label label, String longDescription, LatLng location, + String category, Sitelinks siteLinks, String pic, Boolean exists) { + this.language = language; + this.name = name; + this.label = label; + this.longDescription = longDescription; + this.location = location; + this.category = category; + this.siteLinks = siteLinks; + this.pic = (pic == null) ? "" : pic; this.exists = exists; } - public Place(String name, String longDescription, LatLng location, String category, Sitelinks siteLinks, String pic, String thumb) { + public Place(String name, String longDescription, LatLng location, String category, + Sitelinks siteLinks, String pic, String thumb, String entityID) { this.name = name; this.longDescription = longDescription; this.location = location; this.category = category; this.siteLinks = siteLinks; - this.pic = (pic == null) ? "":pic; + this.pic = (pic == null) ? "" : pic; this.thumb = thumb; this.language = null; this.label = null; this.exists = true; + this.entityID = entityID; } public Place(Parcel in) { @@ -80,19 +102,27 @@ public class Place implements Parcelable { this.category = in.readString(); this.siteLinks = in.readParcelable(Sitelinks.class.getClassLoader()); String picString = in.readString(); - this.pic = (picString == null) ? "":picString; + this.pic = (picString == null) ? "" : picString; String existString = in.readString(); this.exists = Boolean.parseBoolean(existString); this.isMonument = in.readInt() == 1; + this.entityID = in.readString(); } + public static Place from(NearbyResultItem item) { String itemClass = item.getClassName().getValue(); String classEntityId = ""; - if(!StringUtils.isBlank(itemClass)) { + if (!StringUtils.isBlank(itemClass)) { classEntityId = itemClass.replace("http://www.wikidata.org/entity/", ""); } + String entityId = ""; + if (!StringUtils.isBlank(item.getItem().getValue())){ + entityId = item.getItem().getValue().replace("http://www.wikidata.org/entity/", ""); + } // Set description when not null and not empty - String description = (item.getDescription().getValue() != null && !item.getDescription().getValue().isEmpty()) ? item.getDescription().getValue() : ""; + String description = + (item.getDescription().getValue() != null && !item.getDescription().getValue() + .isEmpty()) ? item.getDescription().getValue() : ""; // When description is "?" but we have a valid label, just use the label. So replace "?" by "" in description description = (description.equals("?") && (item.getLabel().getValue() != null @@ -104,8 +134,8 @@ public class Place implements Parcelable { */ description = ((item.getLabel().getValue() != null && !item.getLabel().getValue().isEmpty()) ? item.getLabel().getValue() - + ((description != null && !description.isEmpty()) - ? " (" + description + ")" : "") + + ((description != null && !description.isEmpty()) + ? " (" + description + ")" : "") : description); return new Place( item.getLabel().getLanguage(), @@ -121,11 +151,12 @@ public class Place implements Parcelable { .build(), item.getPic().getValue(), // Checking if the place exists or not - (item.getDestroyed().getValue() == "") && (item.getEndTime().getValue() == "")); + (item.getDestroyed().getValue() == "") && (item.getEndTime().getValue() == ""), entityId); } /** * Gets the language of the caption ie name. + * * @return language */ public String getLanguage() { @@ -134,12 +165,27 @@ public class Place implements Parcelable { /** * Gets the name of the place + * * @return name */ - public String getName() { return name; } + public String getName() { + return name; + } - /** Gets the label of the place - * e.g. "building", "city", etc + /** + * Gets the distance between place and curLatLng + * + * @param curLatLng + * @return name + */ + public Double getDistanceInDouble(LatLng curLatLng) { + return LocationUtils.calculateDistance(curLatLng.getLatitude(), curLatLng.getLongitude(), + getLocation().getLatitude(), getLocation().getLongitude()); + } + + /** + * Gets the label of the place e.g. "building", "city", etc + * * @return label */ public Label getLabel() { @@ -152,6 +198,7 @@ public class Place implements Parcelable { /** * Gets the long description of the place + * * @return long description */ public String getLongDescription() { @@ -160,12 +207,16 @@ public class Place implements Parcelable { /** * Gets the Commons category of the place + * * @return Commons category */ - public String getCategory() {return category; } + public String getCategory() { + return category; + } /** * Sets the distance of the place from the user's location + * * @param distance distance of place from user's location */ public void setDistance(String distance) { @@ -174,6 +225,7 @@ public class Place implements Parcelable { /** * Extracts the entity id from the wikidata link + * * @return returns the entity id if wikidata link destroyed */ @Nullable @@ -189,6 +241,7 @@ public class Place implements Parcelable { /** * Checks if the Wikidata item has a Wikipedia page associated with it + * * @return true if there is a Wikipedia link */ public boolean hasWikipediaLink() { @@ -197,6 +250,7 @@ public class Place implements Parcelable { /** * Checks if the Wikidata item has a Wikidata page associated with it + * * @return true if there is a Wikidata link */ public boolean hasWikidataLink() { @@ -205,6 +259,7 @@ public class Place implements Parcelable { /** * Checks if the Wikidata item has a Commons page associated with it + * * @return true if there is a Commons link */ public boolean hasCommonsLink() { @@ -213,6 +268,7 @@ public class Place implements Parcelable { /** * Sets that this place in nearby is a WikiData monument + * * @param monument */ public void setMonument(final boolean monument) { @@ -221,6 +277,7 @@ public class Place implements Parcelable { /** * Returns if this place is a WikiData monument + * * @return */ public boolean isMonument() { @@ -229,6 +286,7 @@ public class Place implements Parcelable { /** * Check if we already have the exact same Place + * * @param o Place being tested * @return true if name and location of Place is exactly the same */ @@ -250,17 +308,18 @@ public class Place implements Parcelable { @Override public String toString() { return "Place{" + - "name='" + name + '\'' + - ", lang='" + language + '\'' + - ", label='" + label + '\'' + - ", longDescription='" + longDescription + '\'' + - ", location='" + location + '\'' + - ", category='" + category + '\'' + - ", distance='" + distance + '\'' + - ", siteLinks='" + siteLinks.toString() + '\'' + - ", pic='" + pic + '\'' + - ", exists='" + exists.toString() + '\'' + - '}'; + "name='" + name + '\'' + + ", lang='" + language + '\'' + + ", label='" + label + '\'' + + ", longDescription='" + longDescription + '\'' + + ", location='" + location + '\'' + + ", category='" + category + '\'' + + ", distance='" + distance + '\'' + + ", siteLinks='" + siteLinks.toString() + '\'' + + ", pic='" + pic + '\'' + + ", exists='" + exists.toString() + '\'' + + ", entityID='" + entityID + '\'' + + '}'; } @Override @@ -278,6 +337,7 @@ public class Place implements Parcelable { dest.writeString(category); dest.writeParcelable(siteLinks, 0); dest.writeString(pic); + dest.writeString(entityID); dest.writeString(exists.toString()); dest.writeInt(isMonument ? 1 : 0); } @@ -298,7 +358,40 @@ public class Place implements Parcelable { return thumb; } + /** + * Sets the thumbnail URL for the place. + * + * @param thumb the thumbnail URL to set + */ public void setThumb(String thumb) { this.thumb = thumb; } + + /** + * Sets the label for the place. + * + * @param label the label to set + */ + public void setLabel(Label label) { + this.label = label; + } + + /** + * Sets the long description for the place. + * + * @param longDescription the long description to set + */ + public void setLongDescription(String longDescription) { + this.longDescription = longDescription; + } + + /** + * Sets the Commons category for the place. + * + * @param category the category to set + */ + public void setCategory(String category) { + this.category = category; + } + } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java new file mode 100644 index 000000000..f18b80004 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java @@ -0,0 +1,45 @@ +package fr.free.nrw.commons.nearby; + +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import fr.free.nrw.commons.location.LatLng; +import io.reactivex.Completable; + +/** + * Data Access Object (DAO) for accessing the Place entity in the database. + * This class provides methods for storing and retrieving Place objects, + * utilized for the caching of places in the Nearby Map feature. + */ +@Dao +public abstract class PlaceDao { + + /** + * Inserts a Place object into the database. + * If a conflict occurs, the existing entry will be replaced. + * + * @param place The Place object to be inserted. + */ + @Insert(onConflict = OnConflictStrategy.REPLACE) + public abstract void saveSynchronous(Place place); + + /** + * Retrieves a Place object from the database based on the provided entity ID. + * + * @param entity The entity ID of the Place to be retrieved. + * @return The Place object with the specified entity ID. + */ + @Query("SELECT * from place WHERE entityID=:entity") + public abstract Place getPlace(String entity); + + /** + * Saves a Place object asynchronously into the database. + */ + public Completable save(final Place place) { + return Completable + .fromAction(() -> { + saveSynchronous(place); + }); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java new file mode 100644 index 000000000..8de437c82 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java @@ -0,0 +1,39 @@ +package fr.free.nrw.commons.nearby; + +import fr.free.nrw.commons.location.LatLng; +import io.reactivex.Completable; +import javax.inject.Inject; + +/** + * The LocalDataSource class for Places + */ +public class PlacesLocalDataSource { + + private final PlaceDao placeDao; + + @Inject + public PlacesLocalDataSource( + final PlaceDao placeDao) { + this.placeDao = placeDao; + } + + /** + * Fetches a Place object from the database based on the provided entity ID. + * + * @param entityID The entity ID of the Place to be retrieved. + * @return The Place object with the specified entity ID. + */ + public Place fetchPlace(String entityID){ + return placeDao.getPlace(entityID); + } + + /** + * Saves a Place object asynchronously into the database. + * + * @param place The Place object to be saved. + * @return A Completable that completes once the save operation is done. + */ + public Completable savePlace(Place place) { + return placeDao.save(place); + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java new file mode 100644 index 000000000..85e964ddb --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java @@ -0,0 +1,41 @@ +package fr.free.nrw.commons.nearby; + +import fr.free.nrw.commons.contributions.Contribution; +import fr.free.nrw.commons.location.LatLng; +import io.reactivex.Completable; +import javax.inject.Inject; + +/** + * The PlacesRepository class acts as a repository for Place entities. + * It interacts with the PlacesLocalDataSource to perform database operations. + */ +public class PlacesRepository { + + private PlacesLocalDataSource localDataSource; + + @Inject + public PlacesRepository(PlacesLocalDataSource localDataSource) { + this.localDataSource = localDataSource; + } + + /** + * Saves a Place object asynchronously into the database. + * + * @param place The Place object to be saved. + * @return A Completable that completes once the save operation is done. + */ + public Completable save(Place place){ + return localDataSource.savePlace(place); + } + + /** + * Fetches a Place object from the database based on the provided entity ID. + * + * @param entityID The entity ID of the Place to be retrieved. + * @return The Place object with the specified entity ID. + */ + public Place fetchPlace(String entityID){ + return localDataSource.fetchPlace(entityID); + } + +} diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/contract/NearbyParentFragmentContract.java b/app/src/main/java/fr/free/nrw/commons/nearby/contract/NearbyParentFragmentContract.java index df999dbf0..bcf8d8421 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/contract/NearbyParentFragmentContract.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/contract/NearbyParentFragmentContract.java @@ -42,10 +42,6 @@ public interface NearbyParentFragmentContract { void hideBottomDetailsSheet(); - void addSearchThisAreaButtonAction(); - - void setSearchThisAreaButtonVisibility(boolean isVisible); - void setProgressBarVisibility(boolean isVisible); boolean isDetailsBottomSheetVisible(); @@ -76,8 +72,7 @@ public interface NearbyParentFragmentContract { void filterOutAllMarkers(); - void filterMarkersByLabels(List