From bf82fcc8d3e6025de2eef587d46a75684926bcbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90?= <73240868+JustinLiang522@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:34:02 +0800 Subject: [PATCH 001/960] change description extraction algorithm (#4938) The original algorithm uses comma to separate descriptions which causes bugs when there are comma inside description. The algorithm is changed to repeatedly matching string patterns of `{{languageCode|desciption}}` --- .../commons/media/MediaDetailFragment.java | 48 +++++--- .../media/MediaDetailFragmentUnitTests.kt | 108 +++++++++++++++++- 2 files changed, 142 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index cf64581ee..1e1e48cfe 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -86,7 +86,9 @@ import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -912,6 +914,8 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment implements * @return LinkedHashMap */ private LinkedHashMap getDescriptions(String s) { + // trim spaces next to "=" and "|" + s = s.replace(" =", "=").replace(" |", "|").replace("= ","=").replace("| ","|"); int descriptionIndex = s.indexOf("description="); if(descriptionIndex == -1){ descriptionIndex = s.indexOf("Description="); @@ -921,23 +925,41 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment implements return new LinkedHashMap<>(); } final String descriptionToEnd = s.substring(descriptionIndex+12); - final int descriptionEndIndex = descriptionToEnd.indexOf("\n"); + final int descriptionEndIndex = descriptionToEnd.indexOf("\n|"); final String description = s.substring(descriptionIndex+12, descriptionIndex+12+descriptionEndIndex); - final String[] arr = description.trim().split(","); final LinkedHashMap descriptionList = new LinkedHashMap<>(); - if (!description.equals("")) { - for (final String string : - arr) { - final int startCode = string.indexOf("{{"); - final int endCode = string.indexOf("|"); - final String languageCode = string.substring(startCode + 2, endCode).trim(); - final int startDescription = string.indexOf("="); - final int endDescription = string.indexOf("}}"); - final String languageDescription = string - .substring(startDescription + 1, endDescription); - descriptionList.put(languageCode, languageDescription); + int count = 0; // number of "{{" + int startCode = 0; + int endCode = 0; + int startDescription = 0; + int endDescription = 0; + final HashSet allLanguageCodes = new HashSet<>(Arrays.asList("en","es","de","ja","fr","ru","pt","it","zh-hans","zh-hant","ar","ko","id","pl","nl","fa","hi","th","vi","sv","uk","cs","simple","hu","ro","fi","el","he","nb","da","sr","hr","ms","bg","ca","tr","sk","sh","bn","tl","mr","ta","kk","lt","az","bs","sl","sq","arz","zh-yue","ka","te","et","lv","ml","hy","uz","kn","af","nn","mk","gl","sw","eu","ur","ky","gu","bh","sco","ast","is","mn","be","an","km","si","ceb","jv","eo","als","ig","su","be-x-old","la","my","cy","ne","bar","azb","mzn","as","am","so","pa","map-bms","scn","tg","ckb","ga","lb","war","zh-min-nan","nds","fy","vec","pnb","zh-classical","lmo","tt","io","ia","br","hif","mg","wuu","gan","ang","or","oc","yi","ps","tk","ba","sah","fo","nap","vls","sa","ce","qu","ku","min","bcl","ilo","ht","li","wa","vo","nds-nl","pam","new","mai","sn","pms","eml","yo","ha","gn","frr","gd","hsb","cv","lo","os","se","cdo","sd","ksh","bat-smg","bo","nah","xmf","ace","roa-tara","hak","bjn","gv","mt","pfl","szl","bpy","rue","co","diq","sc","rw","vep","lij","kw","fur","pcd","lad","tpi","ext","csb","rm","kab","gom","udm","mhr","glk","za","pdc","om","iu","nv","mi","nrm","tcy","frp","myv","kbp","dsb","zu","ln","mwl","fiu-vro","tum","tet","tn","pnt","stq","nov","ny","xh","crh","lfn","st","pap","ay","zea","bxr","kl","sm","ak","ve","pag","nso","kaa","lez","gag","kv","bm","to","lbe","krc","jam","ss","roa-rup","dv","ie","av","cbk-zam","chy","inh","ug","ch","arc","pih","mrj","kg","rmy","dty","na","ts","xal","wo","fj","tyv","olo","ltg","ff","jbo","haw","ki","chr","sg","atj","sat","ady","ty","lrc","ti","din","gor","lg","rn","bi","cu","kbd","pi","cr","koi","ik","mdf","bug","ee","shn","tw","dz","srn","ks","test","en-x-piglatin","ab")); + for (int i = 0; i < description.length() - 1; i++) { + if (description.startsWith("{{", i)) { + if (count == 0) { + startCode = i; + endCode = description.indexOf("|", i); + startDescription = endCode + 1; + if (description.startsWith("1=", endCode + 1)) { + startDescription += 2; + i += 2; + } + } + i++; + count++; + } else if (description.startsWith("}}", i)) { + count--; + if (count == 0) { + endDescription = i; + final String languageCode = description.substring(startCode + 2, endCode); + final String languageDescription = description.substring(startDescription, endDescription); + if (allLanguageCodes.contains(languageCode)) { + descriptionList.put(languageCode, languageDescription); + } + } + i++; } } return descriptionList; diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt index 2745725cf..40fea3bc6 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt @@ -360,6 +360,112 @@ class MediaDetailFragmentUnitTests { method.invoke(fragment) } + @Test + @Throws(Exception::class) + fun testGetDescriptionsWithComma() { + `when`(media.filename).thenReturn("") + val method: Method = MediaDetailFragment::class.java.getDeclaredMethod("getDescriptions", String::class.java) + method.isAccessible = true + val s = "=={{int:filedesc}}==\n" + + "{{Information\n" + + "|description={{en|1=Antique cash register in a cafe, Darjeeling}}\n" + + "|date=2017-05-17 17:07:26\n" + + "|source={{own}}\n" + + "|author=[[User:Subhrajyoti07|Subhrajyoti07]]\n" + + "|permission=\n" + + "|other versions=\n" + + "}}\n" + + "{{Location|27.043186|88.267003}}\n" + + "{{Assessments|featured=1}}" + val map = linkedMapOf("en" to "Antique cash register in a cafe, Darjeeling") + Assert.assertEquals(map, method.invoke(fragment, s)) + } + + @Test + @Throws(Exception::class) + fun testGetDescriptionsWithNestedBrackets() { + `when`(media.filename).thenReturn("") + val method: Method = MediaDetailFragment::class.java.getDeclaredMethod("getDescriptions", String::class.java) + method.isAccessible = true + val s = "=={{int:filedesc}}==\n" + + "{{Information\n" + + "|description={{en|1=[[:en:Fitzrovia Chapel|Fitzrovia Chapel]] ceiling
\n" + + "{{On Wikidata|Q17549757}}}}\n" + + "|date=2017-09-17 13:09:39\n" + + "|source={{own}}\n" + + "|author=[[User:Colin|Colin]]\n" + + "|permission=\n" + + "|other versions=\n" + + "|Other fields = {{Credit line |Author = © [[User:Colin]] | Other = Wikimedia Commons |License = CC-BY-SA-4.0}}\n" + + "}}\n" + + "{{Location|51.519003|-0.138353}}\n" + + "{{Assessments|featured=1}}" + val map = linkedMapOf("en" to "[[:en:Fitzrovia Chapel|Fitzrovia Chapel]] ceiling
\n{{On Wikidata|Q17549757}}") + Assert.assertEquals(map, method.invoke(fragment, s)) + } + + @Test + @Throws(Exception::class) + fun testGetDescriptionsWithInvalidLanguageCode() { + `when`(media.filename).thenReturn("") + val method: Method = MediaDetailFragment::class.java.getDeclaredMethod("getDescriptions", String::class.java) + method.isAccessible = true + val s = "=={{int:filedesc}}==\n" + + "{{Information\n" + + "|description={{en|1=[[:en:Fitzrovia Chapel|Fitzrovia Chapel]] ceiling
\n" + + "}}{{Listed building England|1223496}}\n" + + "|date=2017-09-17 13:09:39\n" + + "|source={{own}}\n" + + "|author=[[User:Colin|Colin]]\n" + + "|permission=\n" + + "|other versions=\n" + + "|Other fields = {{Credit line |Author = © [[User:Colin]] | Other = Wikimedia Commons |License = CC-BY-SA-4.0}}\n" + + "}}\n" + + "{{Location|51.519003|-0.138353}}\n" + + "{{Assessments|featured=1}}" + val map = linkedMapOf("en" to "[[:en:Fitzrovia Chapel|Fitzrovia Chapel]] ceiling
\n") + Assert.assertEquals(map, method.invoke(fragment, s)) + } + + @Test + @Throws(Exception::class) + fun testGetDescriptionsWithSpaces() { + `when`(media.filename).thenReturn("") + val method: Method = MediaDetailFragment::class.java.getDeclaredMethod("getDescriptions", String::class.java) + method.isAccessible = true + val s = "=={{int:filedesc}}==\n" + + "{{Artwork\n" + + " |artist = {{Creator:Filippo Peroni}} Restored by {{Creator:Adam Cuerden}}\n" + + " |author = \n" + + " |title = Ricchi giardini nel Palazzo di Monforte a Palermo\n" + + " |description = {{en|''Ricchi giardini nel Palazzo di Monforte a Palermo'', set design for ''I Vespri siciliani'' act 5 (undated).}} {{it|''Ricchi giardini nel Palazzo di Monforte a Palermo'', bozzetto per ''I Vespri siciliani'' atto 5 (s.d.).}}\n" + + " |date = {{between|1855|1878}} (Premiére of the opera and death of the artist, respectively)\n" + + " |medium = {{technique|watercolor|and=tempera|and2=|over=paper}}\n" + + " |dimensions = {{Size|unit=mm|height=210|width=270}}\n" + + " |institution = {{Institution:Archivio Storico Ricordi}}\n" + + " |department = \n" + + " |place of discovery = \n" + + " |object history = \n" + + " |exhibition history = \n" + + " |credit line = \n" + + " |inscriptions = \n" + + " |notes = \n" + + " |accession number = ICON000132\n" + + " |place of creation = \n" + + " |source = [https://www.archivioricordi.com/chi-siamo/glam-archivio-ricordi/#/ Archivio Storico Ricordi], [https://www.digitalarchivioricordi.com/it/works/display/108/Vespri_Siciliani__I Collezione Digitale Ricordi]\n" + + " |permission={{PermissionTicket|id=2022031410007974|user=Ruthven}} \n" + + " |other_versions = \n" + + "* [[:File:Ricchi giardini nel Palazzo di Monforte a Palermo, bozzetto di Filippo Peroni per I Vespri siciliani (s.d.) - Archivio Storico Ricordi ICON000132 - Restoration.jpg]] - Restoration (JPEG)\n" + + "* [[:File:Ricchi giardini nel Palazzo di Monforte a Palermo, bozzetto di Filippo Peroni per I Vespri siciliani (s.d.) - Archivio Storico Ricordi ICON000132 - Restoration.png]] - Restoration (PNG)\n" + + "* [[:File:Ricchi giardini nel Palazzo di Monforte a Palermo, bozzetto di Filippo Peroni per I Vespri siciliani (s.d.) - Archivio Storico Ricordi ICON000132.jpg]] - Original (JPEG)\n" + + " |references = \n" + + " |wikidata = \n" + + "}}" + val map = linkedMapOf("en" to "''Ricchi giardini nel Palazzo di Monforte a Palermo'', set design for ''I Vespri siciliani'' act 5 (undated).", + "it" to "''Ricchi giardini nel Palazzo di Monforte a Palermo'', bozzetto per ''I Vespri siciliani'' atto 5 (s.d.).") + Assert.assertEquals(map, method.invoke(fragment, s)) + } + @Test @Throws(Exception::class) fun testGetDescriptionList() { @@ -687,4 +793,4 @@ class MediaDetailFragmentUnitTests { method.isAccessible = true method.invoke(fragment, media) } -} \ No newline at end of file +} From 79086fe942bb8000f06f14e3294f06bdc37a40c1 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 28 Apr 2022 13:02:01 +0200 Subject: [PATCH 002/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-sd/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/res/values-sd/strings.xml b/app/src/main/res/values-sd/strings.xml index 781cf8f52..b313910d0 100644 --- a/app/src/main/res/values-sd/strings.xml +++ b/app/src/main/res/values-sd/strings.xml @@ -291,5 +291,7 @@ لوگو ڇاڪاڻ تہ اھو آھي ميڊيا + ڳاڻيٽو: + ڳاڻيٽو تشريح From b2a901b9b3dd174071b34fe675105d228b349010 Mon Sep 17 00:00:00 2001 From: HCH <57441189+Compiledebuger@users.noreply.github.com> Date: Thu, 28 Apr 2022 22:21:45 +0800 Subject: [PATCH 003/960] Fixes #4942 Change category extraction algorithm (#4943) * updated addCategory()method * update addCategory()method * add unit test for none category * add comments to addCategory()method * update comments * update comments for addCategory()method --- .../commons/category/CategoryEditHelper.java | 25 ++++++++++++----- .../category/CategoryEditHelperUnitTests.kt | 28 +++++++++++++++++++ 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryEditHelper.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryEditHelper.java index b2b01525f..a497e4882 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryEditHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryEditHelper.java @@ -62,16 +62,27 @@ public class CategoryEditHelper { final String wikiText) { Timber.d("thread is category adding %s", Thread.currentThread().getName()); String summary = "Adding categories"; - final StringBuilder buffer = new StringBuilder(); - - final String wikiTextWithoutCategory - = wikiText.substring(0, wikiText.indexOf("[[Category")); - - if (categories != null && categories.size() != 0) { + final String wikiTextWithoutCategory; + //If the picture was uploaded without a category, the wikitext will contain "Uncategorized" instead of "[[Category" + if (wikiText.contains("Uncategorized")) { + wikiTextWithoutCategory = wikiText.substring(0, wikiText.indexOf("Uncategorized")); + } else if (wikiText.contains("[[Category")) { + wikiTextWithoutCategory = wikiText.substring(0, wikiText.indexOf("[[Category")); + } else { + wikiTextWithoutCategory = ""; + } + if (categories != null && !categories.isEmpty()) { + //If the categories list is empty, when reading the categories of a picture, + // the code will add "None selected" to categories list in order to see in picture's categories with "None selected". + // So that after selected some category,"None selected" should be removed from list for (int i = 0; i < categories.size(); i++) { - buffer.append("[[Category:").append(categories.get(i)).append("]]\n"); + if (!categories.get(i).equals("None selected")//Not to add "None selected" as category to wikiText + || !wikiText.contains("Uncategorized")) { + buffer.append("[[Category:").append(categories.get(i)).append("]]\n"); + } } + categories.remove("None selected"); } else { buffer.append("{{subst:unc}}"); } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt index 6ed305919..e176421e9 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt @@ -80,4 +80,32 @@ class CategoryEditHelperUnitTests { ArgumentMatchers.anyString() ) } + + @Test + @Throws(Exception::class) + fun testMakeUnCategoryEdit() { + helper.makeCategoryEdit(context, media, listOf("Test"), "== {{int:filedesc}} ==\n" + + "{{Information\n" + + "|description=\n" + + "\n" + + "|source={{own}}\n" + + "|author=[[User:UserForthBeta|UserForthBeta]]\n" + + "|date={{According to Exif data|2022-03-06}}\n" + + "}}\n" + + "{{Location|22.538830555555556|114.08847222222222}}\n" + + "== {{int:license-header}} ==\n" + + "{{self|cc-zero}}\n" + + "\n" + + "{{Uploaded from Mobile|platform=Android|version=3.1.1-debug-master~e7a9ba9ad}}\n" + + "{{Uncategorized|year=2022|month=April|day=23}}") + Mockito.verify(viewUtilWrapper, Mockito.times(1)).showShortToast( + context, + context.getString(R.string.category_edit_helper_make_edit_toast) + ) + Mockito.verify(pageEditClient, Mockito.times(1)).edit( + ArgumentMatchers.anyString(), + ArgumentMatchers.anyString(), + ArgumentMatchers.anyString() + ) + } } \ No newline at end of file From d37cdef3c4d13f570b147369005797b9e039e816 Mon Sep 17 00:00:00 2001 From: Benard Mathu Date: Thu, 28 Apr 2022 17:35:07 +0300 Subject: [PATCH 004/960] Refactor: Campaign model (#4852) * Refactor: move Campaign.kt to data.models * Refactor: move campaign models to campaign/models --- .../java/fr/free/nrw/commons/campaigns/CampaignResponseDTO.kt | 1 + .../main/java/fr/free/nrw/commons/campaigns/CampaignView.java | 1 + .../java/fr/free/nrw/commons/campaigns/CampaignsPresenter.java | 1 + .../java/fr/free/nrw/commons/campaigns/ICampaignsView.java | 1 + .../fr/free/nrw/commons/campaigns/{ => models}/Campaign.kt | 2 +- .../free/nrw/commons/contributions/ContributionsFragment.java | 3 +-- .../fr/free/nrw/commons/campaigns/CampaignViewUnitTests.kt | 1 + .../fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt | 1 + .../commons/contributions/ContributionsFragmentUnitTests.kt | 2 +- 9 files changed, 9 insertions(+), 4 deletions(-) rename app/src/main/java/fr/free/nrw/commons/campaigns/{ => models}/Campaign.kt (74%) diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignResponseDTO.kt b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignResponseDTO.kt index f57d1b98f..cb3785055 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignResponseDTO.kt +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignResponseDTO.kt @@ -1,6 +1,7 @@ package fr.free.nrw.commons.campaigns import com.google.gson.annotations.SerializedName +import fr.free.nrw.commons.campaigns.models.Campaign /** * Data class to hold the response from the campaigns api diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.java b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.java index b772f19c4..dac9934f5 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.java +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignView.java @@ -10,6 +10,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import fr.free.nrw.commons.campaigns.models.Campaign; import fr.free.nrw.commons.theme.BaseActivity; import org.wikipedia.util.DateUtil; diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignsPresenter.java b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignsPresenter.java index 255a10a98..51c841451 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignsPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/CampaignsPresenter.java @@ -2,6 +2,7 @@ package fr.free.nrw.commons.campaigns; import android.annotation.SuppressLint; +import fr.free.nrw.commons.campaigns.models.Campaign; import java.text.ParseException; import java.util.Collections; import java.util.Date; diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/ICampaignsView.java b/app/src/main/java/fr/free/nrw/commons/campaigns/ICampaignsView.java index 6661dad66..a1e79cca6 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/ICampaignsView.java +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/ICampaignsView.java @@ -1,6 +1,7 @@ package fr.free.nrw.commons.campaigns; import fr.free.nrw.commons.MvpView; +import fr.free.nrw.commons.campaigns.models.Campaign; /** * Interface which defines the view contracts of the campaign view diff --git a/app/src/main/java/fr/free/nrw/commons/campaigns/Campaign.kt b/app/src/main/java/fr/free/nrw/commons/campaigns/models/Campaign.kt similarity index 74% rename from app/src/main/java/fr/free/nrw/commons/campaigns/Campaign.kt rename to app/src/main/java/fr/free/nrw/commons/campaigns/models/Campaign.kt index 985b84105..006415a13 100644 --- a/app/src/main/java/fr/free/nrw/commons/campaigns/Campaign.kt +++ b/app/src/main/java/fr/free/nrw/commons/campaigns/models/Campaign.kt @@ -1,4 +1,4 @@ -package fr.free.nrw.commons.campaigns +package fr.free.nrw.commons.campaigns.models /** * A data class to hold a campaign diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index 25d6e7d33..9703dcd14 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -33,7 +33,6 @@ import fr.free.nrw.commons.notification.Notification; import fr.free.nrw.commons.notification.NotificationController; import fr.free.nrw.commons.profile.ProfileActivity; import fr.free.nrw.commons.theme.BaseActivity; -import java.text.ParseException; import java.util.Date; import java.util.List; import javax.inject.Inject; @@ -43,7 +42,7 @@ import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.campaigns.Campaign; +import fr.free.nrw.commons.campaigns.models.Campaign; import fr.free.nrw.commons.campaigns.CampaignView; import fr.free.nrw.commons.campaigns.CampaignsPresenter; import fr.free.nrw.commons.campaigns.ICampaignsView; diff --git a/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignViewUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignViewUnitTests.kt index 792ed32bb..783ae1cef 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignViewUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignViewUnitTests.kt @@ -5,6 +5,7 @@ import android.view.View import fr.free.nrw.commons.TestAppAdapter import fr.free.nrw.commons.TestCommonsApplication import fr.free.nrw.commons.contributions.MainActivity +import fr.free.nrw.commons.campaigns.models.Campaign import org.junit.Assert import org.junit.Before import org.junit.Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt index 4a9b17c4b..4b0c8a3a0 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/campaigns/CampaignsPresenterTest.kt @@ -1,6 +1,7 @@ package fr.free.nrw.commons.campaigns import com.nhaarman.mockitokotlin2.verify +import fr.free.nrw.commons.campaigns.models.Campaign import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient import io.reactivex.Single import io.reactivex.disposables.Disposable diff --git a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt index 8b3a010c7..6ba0d9645 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt @@ -11,7 +11,7 @@ import androidx.fragment.app.FragmentTransaction import fr.free.nrw.commons.R import fr.free.nrw.commons.TestAppAdapter import fr.free.nrw.commons.TestCommonsApplication -import fr.free.nrw.commons.campaigns.Campaign +import fr.free.nrw.commons.campaigns.models.Campaign import fr.free.nrw.commons.campaigns.CampaignView import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.media.MediaDetailPagerFragment From 8cdcd0f7c2beaf267faf71cb54a9d8822e0d16ff Mon Sep 17 00:00:00 2001 From: Benard Mathu Date: Thu, 28 Apr 2022 17:57:17 +0300 Subject: [PATCH 005/960] Refactor: RecentSearch model (#4857) * Refactor: move recent search to data.models * Refactor: move search models to explore/models --- .../b6f7850b-dd34-44a9-9f40-bce91f4574dd3499250180717637399.jpg | 0 .../main/java/fr/free/nrw/commons/explore/SearchActivity.java | 2 +- .../commons/explore/{recentsearches => models}/RecentSearch.kt | 2 +- .../nrw/commons/explore/recentsearches/RecentSearchesDao.java | 1 + .../nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt | 2 +- .../free/nrw/commons/explore/search/SearchActivityUnitTests.kt | 2 +- 6 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 app/CommonsContributions/b6f7850b-dd34-44a9-9f40-bce91f4574dd3499250180717637399.jpg rename app/src/main/java/fr/free/nrw/commons/explore/{recentsearches => models}/RecentSearch.kt (92%) diff --git a/app/CommonsContributions/b6f7850b-dd34-44a9-9f40-bce91f4574dd3499250180717637399.jpg b/app/CommonsContributions/b6f7850b-dd34-44a9-9f40-bce91f4574dd3499250180717637399.jpg new file mode 100644 index 000000000..e69de29bb diff --git a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java index 1f07c39f6..15736243b 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java @@ -23,7 +23,7 @@ import fr.free.nrw.commons.category.CategoryImagesCallback; import fr.free.nrw.commons.explore.categories.search.SearchCategoryFragment; import fr.free.nrw.commons.explore.depictions.search.SearchDepictionsFragment; import fr.free.nrw.commons.explore.media.SearchMediaFragment; -import fr.free.nrw.commons.explore.recentsearches.RecentSearch; +import fr.free.nrw.commons.explore.models.RecentSearch; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearch.kt b/app/src/main/java/fr/free/nrw/commons/explore/models/RecentSearch.kt similarity index 92% rename from app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearch.kt rename to app/src/main/java/fr/free/nrw/commons/explore/models/RecentSearch.kt index 30b360587..6c8c05230 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearch.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/models/RecentSearch.kt @@ -1,4 +1,4 @@ -package fr.free.nrw.commons.explore.recentsearches +package fr.free.nrw.commons.explore.models import android.net.Uri import java.util.* diff --git a/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.java b/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.java index 76824e561..9f12639dd 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.java @@ -9,6 +9,7 @@ import android.os.RemoteException; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import fr.free.nrw.commons.explore.models.RecentSearch; import java.util.ArrayList; import java.util.Date; import java.util.List; diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt index 71d464c9f..e9f8967a0 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt @@ -7,8 +7,8 @@ import android.database.MatrixCursor import android.database.sqlite.SQLiteDatabase import android.os.RemoteException import com.nhaarman.mockitokotlin2.* -import fr.free.nrw.commons.BuildConfig import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.explore.models.RecentSearch import fr.free.nrw.commons.explore.recentsearches.RecentSearchesContentProvider.BASE_URI import fr.free.nrw.commons.explore.recentsearches.RecentSearchesContentProvider.uriForId import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao.Table.* diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt index 19412c00c..ff27d7848 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt @@ -13,7 +13,7 @@ import fr.free.nrw.commons.explore.SearchActivity import fr.free.nrw.commons.explore.categories.search.SearchCategoryFragment import fr.free.nrw.commons.explore.depictions.search.SearchDepictionsFragment import fr.free.nrw.commons.explore.media.SearchMediaFragment -import fr.free.nrw.commons.explore.recentsearches.RecentSearch +import fr.free.nrw.commons.explore.models.RecentSearch import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment import fr.free.nrw.commons.media.MediaDetailPagerFragment From 6ad70932c550cc274d87c0417ea79a4626ea786b Mon Sep 17 00:00:00 2001 From: Benard Mathu Date: Thu, 28 Apr 2022 18:23:44 +0300 Subject: [PATCH 006/960] Refactor: notification models (#4866) * Refactor: move notification modesl to data.models.notification * Refactor: move notification models to notifications/models --- ...4ea0-80c5-e30b8285c75610074820572125241785.jpg | 0 .../contributions/ContributionsFragment.java | 2 +- .../commons/notification/NotificatinAdapter.kt | 1 + .../notification/NotificationActivity.java | 1 + .../notification/NotificationAdapterDelegates.kt | 1 + .../commons/notification/NotificationClient.java | 1 + .../notification/NotificationController.java | 1 + .../notification/NotificationWorkerFragment.java | 1 + .../notification/{ => models}/Notification.kt | 15 ++++++++------- .../{ => models}/NotificationType.java | 2 +- .../ContributionsFragmentUnitTests.kt | 4 ++-- .../notification/NotificationActivityUnitTests.kt | 2 ++ .../notification/NotificationControllerTest.kt | 1 + .../notification/NotificationHelperUnitTests.kt | 2 ++ 14 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 app/CommonsContributions/e998b507-60b6-4ea0-80c5-e30b8285c75610074820572125241785.jpg rename app/src/main/java/fr/free/nrw/commons/notification/{ => models}/Notification.kt (67%) rename app/src/main/java/fr/free/nrw/commons/notification/{ => models}/NotificationType.java (92%) diff --git a/app/CommonsContributions/e998b507-60b6-4ea0-80c5-e30b8285c75610074820572125241785.jpg b/app/CommonsContributions/e998b507-60b6-4ea0-80c5-e30b8285c75610074820572125241785.jpg new file mode 100644 index 000000000..e69de29bb diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index 9703dcd14..5f0d25eb9 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -29,7 +29,7 @@ import androidx.fragment.app.FragmentTransaction; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.auth.SessionManager; -import fr.free.nrw.commons.notification.Notification; +import fr.free.nrw.commons.notification.models.Notification; import fr.free.nrw.commons.notification.NotificationController; import fr.free.nrw.commons.profile.ProfileActivity; import fr.free.nrw.commons.theme.BaseActivity; diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificatinAdapter.kt b/app/src/main/java/fr/free/nrw/commons/notification/NotificatinAdapter.kt index dd5ab0452..6ad6876a3 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificatinAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificatinAdapter.kt @@ -1,5 +1,6 @@ package fr.free.nrw.commons.notification +import fr.free.nrw.commons.notification.models.Notification import fr.free.nrw.commons.upload.categories.BaseDelegateAdapter internal class NotificatinAdapter(onNotificationClicked: (Notification) -> Unit) : diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.java index c8791feab..39a918ddc 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationActivity.java @@ -23,6 +23,7 @@ import butterknife.ButterKnife; import com.google.android.material.snackbar.Snackbar; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; +import fr.free.nrw.commons.notification.models.Notification; import fr.free.nrw.commons.theme.BaseActivity; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationAdapterDelegates.kt b/app/src/main/java/fr/free/nrw/commons/notification/NotificationAdapterDelegates.kt index 01d12ae3e..34065791a 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationAdapterDelegates.kt +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationAdapterDelegates.kt @@ -1,6 +1,7 @@ package fr.free.nrw.commons.notification import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding +import fr.free.nrw.commons.notification.models.Notification import fr.free.nrw.commons.databinding.ItemNotificationBinding import org.wikipedia.util.StringUtil diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationClient.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationClient.java index 8643ceaf4..9c035b8b6 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationClient.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationClient.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.notification; +import fr.free.nrw.commons.notification.models.Notification; import org.wikipedia.csrf.CsrfTokenClient; import org.wikipedia.dataclient.Service; diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationController.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationController.java index e158bd215..de1f372d2 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationController.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationController.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.notification; +import fr.free.nrw.commons.notification.models.Notification; import java.util.List; import javax.inject.Inject; diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationWorkerFragment.java b/app/src/main/java/fr/free/nrw/commons/notification/NotificationWorkerFragment.java index 97a7763b3..ffee5eac2 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationWorkerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/NotificationWorkerFragment.java @@ -5,6 +5,7 @@ import android.os.Bundle; import androidx.annotation.Nullable; +import fr.free.nrw.commons.notification.models.Notification; import java.util.List; /** diff --git a/app/src/main/java/fr/free/nrw/commons/notification/Notification.kt b/app/src/main/java/fr/free/nrw/commons/notification/models/Notification.kt similarity index 67% rename from app/src/main/java/fr/free/nrw/commons/notification/Notification.kt rename to app/src/main/java/fr/free/nrw/commons/notification/models/Notification.kt index ddba47bd0..955addfdc 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/Notification.kt +++ b/app/src/main/java/fr/free/nrw/commons/notification/models/Notification.kt @@ -1,4 +1,4 @@ -package fr.free.nrw.commons.notification +package fr.free.nrw.commons.notification.models import org.wikipedia.util.DateUtil @@ -6,18 +6,19 @@ import org.wikipedia.util.DateUtil * Created by root on 18.12.2017. */ data class Notification(var notificationType: NotificationType, - var notificationText: String, - var date: String, - var link: String, - var iconUrl: String, - var notificationId: String) { + var notificationText: String, + var date: String, + var link: String, + var iconUrl: String, + var notificationId: String) { companion object { @JvmStatic fun from(wikiNotification: org.wikipedia.notifications.Notification): Notification { val contents = wikiNotification.contents val notificationLink = if (contents == null || contents.links == null || contents.links!!.primary == null) "" else contents.links!!.primary!!.url - return Notification(NotificationType.UNKNOWN, + return Notification( + NotificationType.UNKNOWN, contents?.compactHeader ?: "", DateUtil.getMonthOnlyDateString(wikiNotification.timestamp), notificationLink, diff --git a/app/src/main/java/fr/free/nrw/commons/notification/NotificationType.java b/app/src/main/java/fr/free/nrw/commons/notification/models/NotificationType.java similarity index 92% rename from app/src/main/java/fr/free/nrw/commons/notification/NotificationType.java rename to app/src/main/java/fr/free/nrw/commons/notification/models/NotificationType.java index 0386ead95..1b825f071 100644 --- a/app/src/main/java/fr/free/nrw/commons/notification/NotificationType.java +++ b/app/src/main/java/fr/free/nrw/commons/notification/models/NotificationType.java @@ -1,4 +1,4 @@ -package fr.free.nrw.commons.notification; +package fr.free.nrw.commons.notification.models; public enum NotificationType { THANK_YOU_EDIT("thank-you-edit"), diff --git a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt index 6ba0d9645..3aadb3084 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsFragmentUnitTests.kt @@ -17,9 +17,9 @@ import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.media.MediaDetailPagerFragment import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient import fr.free.nrw.commons.nearby.NearbyNotificationCardView -import fr.free.nrw.commons.notification.Notification +import fr.free.nrw.commons.notification.models.Notification import fr.free.nrw.commons.notification.NotificationController -import fr.free.nrw.commons.notification.NotificationType +import fr.free.nrw.commons.notification.models.NotificationType import io.reactivex.Single import io.reactivex.disposables.CompositeDisposable import org.junit.Assert diff --git a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationActivityUnitTests.kt index 2fb1a400b..c8afe4061 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationActivityUnitTests.kt @@ -8,6 +8,8 @@ import fr.free.nrw.commons.R import fr.free.nrw.commons.ShadowActionBar import fr.free.nrw.commons.TestAppAdapter import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.notification.models.Notification +import fr.free.nrw.commons.notification.models.NotificationType import fr.free.nrw.commons.utils.NetworkUtils import org.junit.Assert import org.junit.Before diff --git a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationControllerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationControllerTest.kt index 8bd764b25..b329bb788 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationControllerTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationControllerTest.kt @@ -1,5 +1,6 @@ package fr.free.nrw.commons.notification +import fr.free.nrw.commons.notification.models.Notification import org.junit.Before import org.junit.Test import org.mockito.ArgumentMatchers diff --git a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationHelperUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationHelperUnitTests.kt index 4d95f4f5f..d68c79e12 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationHelperUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/notification/NotificationHelperUnitTests.kt @@ -4,6 +4,8 @@ import android.app.NotificationManager import android.content.Context import android.content.Intent import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.notification.models.Notification +import fr.free.nrw.commons.notification.models.NotificationType import org.junit.Assert import org.junit.Before import org.junit.Test From 932991e060af6919346c9e029c7dad99411bb0f8 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 2 May 2022 13:01:54 +0200 Subject: [PATCH 007/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ar/error.xml | 1 + app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-fa/strings.xml | 22 +++++++++++----------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-ar/error.xml b/app/src/main/res/values-ar/error.xml index 6c28f3c35..681eeb7d0 100644 --- a/app/src/main/res/values-ar/error.xml +++ b/app/src/main/res/values-ar/error.xml @@ -3,6 +3,7 @@ * Ali1 * FiberAhmed * Mido +* أَحمد --> لقد تعطل كومنز diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b68c6236f..7a3c91ed9 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -16,6 +16,7 @@ * NancyMilad * OsamaK * Tala Ali +* أَحمد * ترجمان05 * ديفيد * محمد أحمد عبد الفتاح diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index bad888909..abe6d972c 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -98,10 +98,10 @@ بارگذاری‌های من به اشتراک‌گذاشتن مشاهدهٔ صفحهٔ پرونده - شرح مختصر (الزامی) - لطفاً شرح مختصری برای این پرونده بنویسید + برنگاشت (الزامی) + لطفاً برنگاشتی برای این پرونده بنویسید توضیحات - شرح مختصر + برنگاشت قادر به ورود نیست - شکست شبکه‌ای تلاش ناموفق بیش از حد. لطفاً چند دقیقهٔ دیگر دوباره تلاش کنید پوزش، کاربر در ویکی‌انبار بسته شده‌است @@ -230,7 +230,7 @@ بازخورد خروج آموزش - اعلان‌ها + آگاه‌سازی‌ها بازبینی توضیحی یافت نشد صفحهٔ دروند در ویکی‌انبار @@ -275,9 +275,9 @@ راهنمای کاربر رهاکردن آموزش اینترنت در دسترس نیست - خطای واکشی کردن اعلان‌ها + خطای واکشی کردن آگاه‌سازی‌ها در تلاش برای بدست‌آوردن تصویر جهت بازبینی خطایی پیش آمد. لطفا برای تلاش مجدد بر روی ریفرش کلیک کنید. - اعلان‌ها پیدا نشد + هیج آگاه‌سازی پیدا نشد ترجمه زبان‌ها لطفا زبانی که مایلید در آنها ترجمه‌های خود را ثبت کنید انتخاب کنید. @@ -348,9 +348,9 @@ نام مولف سفارشی مشارکت‌ها در نزدیکی - اعلان‌ها - اعلان‌ها (خوانده‌شده) - نمایش اعلان اطراف + آگاه‌سازی‌ها + آگاه‌سازی‌ها (خوانده‌شده) + نمایش آگاه‌سازی اطراف فهرست اجازه ذخیره گام %1$d از %2$d @@ -432,12 +432,12 @@ عکس تصادفی از اینترنت لوگو چون - توضیح افزوده شد. + برنگاشت افزوده شد. هم‌رسانی تصویر از طریق هنوز مشارکتی نکرده‌اید حساب ایجاد شد! متن در حافظهٔ موقت کپی شد. - علامت زدن اعلان به عنوان خوانده‌شده + علامت زدن آگاه‌سازی به عنوان خوانده‌شده خطایی پیش آمد! حالت مکان: موجود است From a16dca9f564a3378b47fb9848a38d77b6a595de3 Mon Sep 17 00:00:00 2001 From: Ayan Sarkar <71203077+Ayan-10@users.noreply.github.com> Date: Thu, 5 May 2022 12:38:56 +0530 Subject: [PATCH 008/960] [Fixes Bug]: After moving between tabs on Bookmark fragment, Bookmarks never loads (#4951) * Fixed the issue added tests * Added requested changes --- .../pictures/BookmarkPicturesFragment.java | 4 ++ .../BookmarkPicturesFragmentUnitTests.kt | 43 ++++++++++++++++--- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java index 9265c2d54..d9060d298 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java @@ -188,6 +188,10 @@ public class BookmarkPicturesFragment extends DaggerFragment { setAdapter(collection); } else { if (gridAdapter.containsAll(collection)) { + progressBar.setVisibility(GONE); + statusTextView.setVisibility(GONE); + gridView.setVisibility(VISIBLE); + gridView.setAdapter(gridAdapter); return; } gridAdapter.addItems(collection); diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragmentUnitTests.kt index bd1636d8e..1097b545d 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragmentUnitTests.kt @@ -6,12 +6,17 @@ import android.os.Bundle import android.os.Looper.getMainLooper import android.view.LayoutInflater import android.view.View +import android.view.View.GONE +import android.view.View.VISIBLE import android.widget.GridView import android.widget.ProgressBar import android.widget.RelativeLayout import android.widget.TextView import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentTransaction +import com.nhaarman.mockitokotlin2.any +import com.nhaarman.mockitokotlin2.times +import com.nhaarman.mockitokotlin2.verify import fr.free.nrw.commons.Media import fr.free.nrw.commons.R import fr.free.nrw.commons.TestAppAdapter @@ -19,6 +24,7 @@ import fr.free.nrw.commons.TestCommonsApplication import fr.free.nrw.commons.category.GridViewAdapter import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.profile.ProfileActivity +import media import org.junit.Assert import org.junit.Before import org.junit.Test @@ -46,9 +52,15 @@ class BookmarkPicturesFragmentUnitTests { private lateinit var context: Context private lateinit var view: View - private lateinit var statusTextView: TextView - private lateinit var progressBar: ProgressBar - private lateinit var gridView: GridView + + @Mock + lateinit var statusTextView: TextView + + @Mock + lateinit var progressBar: ProgressBar + + @Mock + lateinit var gridView: GridView @Mock private lateinit var parentLayout: RelativeLayout @@ -87,9 +99,6 @@ class BookmarkPicturesFragmentUnitTests { view = LayoutInflater.from(activity) .inflate(R.layout.fragment_bookmarks_pictures, null) as View - statusTextView = view.findViewById(R.id.statusMessage) - progressBar = view.findViewById(R.id.loadingImagesProgressBar) - gridView = view.findViewById(R.id.bookmarkedPicturesList) fragment.statusTextView = statusTextView fragment.progressBar = progressBar @@ -102,7 +111,11 @@ class BookmarkPicturesFragmentUnitTests { fragment.controller = controller - Whitebox.setInternalState(fragment, "gridAdapter", gridAdapter) + Whitebox.setInternalState(fragment, "gridAdapter", GridViewAdapter( + context, + 0, + listOf(media()) + )) } @Test @@ -171,6 +184,22 @@ class BookmarkPicturesFragmentUnitTests { method.invoke(fragment, throwable) } + @Test + @Throws(Exception::class) + fun testHandleSuccess() { + gridAdapter.addItems(listOf(media())) + val method: Method = BookmarkPicturesFragment::class.java.getDeclaredMethod( + "handleSuccess", + List::class.java + ) + method.isAccessible = true + method.invoke(fragment, listOf(media())) + verify(progressBar, times(1)).setVisibility(GONE) + verify(statusTextView, times(1)).setVisibility(GONE) + verify(gridView, times(1)).setVisibility(VISIBLE) + verify(gridView, times(1)).setAdapter(any()) + } + @Test @Throws(Exception::class) fun testInitErrorView() { From 75dcc6b7a7b10deff2f5c1218a5b4cd5d2a431a2 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 5 May 2022 13:01:51 +0200 Subject: [PATCH 009/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-sd/strings.xml | 27 +++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-sd/strings.xml b/app/src/main/res/values-sd/strings.xml index b313910d0..24c670292 100644 --- a/app/src/main/res/values-sd/strings.xml +++ b/app/src/main/res/values-sd/strings.xml @@ -11,8 +11,7 @@ %1$d فائيل چاڙھيندي %1$d فائيلَ چاڙھيندي - - \@string/contributions_subtitle_zero + (%1$d) (%1$d) @@ -20,7 +19,7 @@ چاڙھ %1$d شروع ڪندي چاڙھَ %d$1 شروع ڪندي - + %1$d چاڙھ %1$d چاڙھَ @@ -52,11 +51,11 @@ چاڙھ شروع! %1$s چڙھي چڪا! پنھنجو چاڙھ ڏسڻ لاءِ ٺونگو ھڻو - %1$s جو چاڙھ شروع ڪندي + فائيل چاڙھيندي: %s %1$s چاڙھيندي %1$s جو چاڙھ مڪمل ٿيندي - %1$s جو چاڙھڻ ناڪام ويو - ڏسڻ لاءِ ٺونگيو + %1$s چاڙھڻ ۾ ناڪام + ڏسڻ لاءِ ڇھو منھنجا تازا چاڙھ قطار ۾ ناڪام @@ -82,7 +81,7 @@ سانڍيو تازو ڪريو فھرست - اڃا تائين ڪوبہ چاڙھ ناھي + (اڃا تائين ڪوبہ چاڙھ ناھي) %1$s سان ملندڙ ڪوبہ زمرو نہ لڌو پنھنجي عڪسن ۾ زمرا وجهو تہ جيئن اھي وڪيميڊيا العام تي وڌيڪ ڳولا لائق ٿي سگهن.\nزمرا وجهڻ لاءِ لکڻ شروع ڪريو. زمرا @@ -92,7 +91,7 @@ زمرو بابت نويڪلائي نِيَمَ - <u>ساراھون</u> + ساراھون بابت موٽ موڪليو (ايميل ذريعي) ڪوبہ ايميل ڪلائينٽ نصب ٿيل ناھي @@ -103,8 +102,8 @@ رد لاھيو ڏنل اجازتنامو - گذريل عنوان/تشريح استعمال ڪريو - رات جو ڏيک + گذريل عنوان ۽ تشريح استعمال ڪريو + ڏيک انتساب-ھجھڙي ڀاڱيداري 4.0 وصف 4.0 ڪڪ انتساب-ھڪجھڙي_ڀاڱيداري 3.0 @@ -131,7 +130,7 @@ انٽرنيٽ تان لڌل ڪاپيرائيٽڊ مواد سان گڏوگڏ پوسٽرن، ڪتاب جي جلدن، وغيره جي عڪسن کان پاسو ڪريو. توھان سمجھو ٿا توھان سمجھي ويئو؟ ھا! - <u>وڌيڪ معلومات</u> + وڌيڪ معلومات زمرا لاهيندي... ڪوبہ چونڊيل ناھي @@ -186,7 +185,7 @@ چُڪَ! يوآرايل نہ لڌي ڊاھ لاءِ اميدوار ڪريو هن تصوير کي ڊاهڻ لاءِ مقرر ڪيو ويو آهي. - <u>تفصيلن لاءِ ويب-صفحو ڏسو</u> + تفصيلن لاءِ ويب-صفحو ڏسو ڇڏيو داخل ٿيو ڇا توھان سچ ۾ داخل-ٿيڻ ڇڏڻ چاھيو ٿا؟ @@ -199,11 +198,11 @@ وڪيپيڊيا العام اسان کي موٽ ڏيو - <u>عام سوال</u> + ڪپس سکيانامي کي ڇڏيو انٽرنيٽ ناهي اطلاع نہ لڌا - <u>ترجمو</u> + ترجمو ڪريو ٻوليون وڌو رد From 262517a70faa12fa013a090ca1fe448705513d97 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 9 May 2022 13:01:50 +0200 Subject: [PATCH 010/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-diq/strings.xml | 6 ++-- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-nqo/strings.xml | 46 +++++++++++++++++++++++-- app/src/main/res/values-uk/strings.xml | 2 ++ 5 files changed, 51 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 8c69916e6..3209bf8fd 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -15,6 +15,7 @@ %1$d fayl yüklənir %1$d fayllar yüklənir + Ümumi Məxfilik Vikimedia Commons Tənzimləmələr diff --git a/app/src/main/res/values-diq/strings.xml b/app/src/main/res/values-diq/strings.xml index 21361e368..d7c4d23a1 100644 --- a/app/src/main/res/values-diq/strings.xml +++ b/app/src/main/res/values-diq/strings.xml @@ -103,11 +103,11 @@ Resımê weçinıteyi Kategoriye Weynayışê Hakemi - Heq te cı + Heqa cı de Qandê yew <a href=\"%1$s\">GitHub-cıkewtış</a>ê neweyi rê rapor û teklifan bıaferne. Politikaya dızdêni İştırakwani - Heq te cı + Heqa cı de Peyd rışten bırış (E-posta ra) E-posta eyar nêbi Karıyaye Kategoriyê peyêni @@ -211,7 +211,7 @@ Cı kewe Telimati Wikidata - Wikipedia + Wikipediya Commons Rey bıdê PZP diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index abe6d972c..faf17a83c 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -303,7 +303,7 @@ رسانه رده‌ها برگزیده - بارگذاری‌شده با تلفن همراه + بارگذاری‌شده با همراه نقشه تصویر به %1$s در ویکی‌داده افزوده شد! تلاش برای به‌روزرسانی موجودی ویکی‌دیتای مرتبط شکست خورد diff --git a/app/src/main/res/values-nqo/strings.xml b/app/src/main/res/values-nqo/strings.xml index 7230d43ff..e3233bbb4 100644 --- a/app/src/main/res/values-nqo/strings.xml +++ b/app/src/main/res/values-nqo/strings.xml @@ -42,11 +42,12 @@ %1$s ߟߊ߬ߦߟߍ ߦߴߌ ߘߐ߫ %1$s ߟߊ߬ߦߟߍ߬ߟߌ ߦߋ߫ ߛߋ߲߬ߠߊ߫ %1$s ߟߊ߬ߦߟߍ߬ߟߌ ߞߎ߲߬ߘߏ߲߬ߠߌ߲ ߦߴߌ ߘߐ߫ - %1$s ߟߊ߬ߦߟߍ߬ߟߌ ߓߘߊ߫ ߗߌߙߏ߲߫ + %1$s ߟߊ߬ߦߟߍ߬ߟߌ ߓߘߊ߫ ߗߌߙߏ߲߫ %1$s ߟߊߦߟߍ߬ߟߌ ߓߘߊ߫ ߟߊߟߐ߬ ߊ߬ ߛߐ߲߬ߞߌ߲߫ ߞߵߊ߬ ߦߋ߫ ߊ߬ ߛߐ߲߬ߞߌ߲߫ ߞߵߊ߬ ߦߋ߫ ߒ ߠߊ߫ ߟߊ߬ߦߟߍ߬ߣߍ߲߬ ߞߐ߯ߟߕߊ ߟߎ߬ + ߘߞߐ߬ߣߐ߲߬ߠߌ߲ ߘߐ߫... ߊ߬ ߓߘߊ߫ ߗߌߙߏ߲߫ %1$d%% ߓߘߊ߫ ߘߝߊ߫ ߟߊ߬ߦߟߍ߬ߟߌ ߦߋ߫ ߛߋ߲߬ߠߊ߫ @@ -98,16 +99,20 @@ ߕߦߊ ߓߐߛߎ߲ ߢߍߦߋߟߌ ߞߎ߲߬ߕߐ߮ ߟߊߓߊ߯ߙߊ߫ ߊ߬ ߣߌ߫ ߞߊ߲߬ߛߓߍ߬ߟߌ ߞߍߗߏ߮ + ߥߞߌߡߋߘߌߦߊ ߞߐߡߐ߲ߛ ߟߋ߬ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߝߊ߲߬ߓߊ ߡߊߛߐ߫ ߟߊ߫ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߟߊߓߞߊߙߊ߫ ߟߊ߫ ߥߞߌߔߋߘߌߦߊ ߟߊ߫. ߌ ߟߊ߫ ߖߌ߬ߦߊ߬ߓߍ ߦߋ߫ ߡߐ߱ ߟߎ߬ ߘߍ߬ߡߍ߲߬ ߠߊ߫ ߞߊ߬ߙߊ߲ ߡߊ߬ ߘߎߢߊ߫ ߝߊ߲߭ ߓߍ߯߹ ߖߊ߰ߣߌ߲߫ ߌ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ߫ ߟߎ߫ ߟߋ߬ ߟߊߦߟߍ߬ ߡߍ߲ ߠߎ߬ ߕߊ߬ߣߍ߲߫ ߥߟߊ߫ ߛߌ߲ߘߌߣߍ߲߫ ߦߴߌ ߖߍ߬ߘߍ ߓߟߏ߫: ߛߎ߲ߞߎ߲ ߝߋ߲ ߠߎ߬ (ߝߙߋ ߟߎ߬߸ ߓߌߦߊ߲ ߠߎ߬߸ ߞߎ߬ߙߎ ߟߎ߬) ߝߋ߲߫ ߠߊߓߊ߯ߙߕߊ߫ ߞߏߟߌߞߏߟߌ ߟߎ߬ (ߣߍ߰ߛߏ߸ ߛߌ߬ߛߌ߬ߞߎ߬ߟߎ߲߬ ߟߐ߬ߦߙߐ) + ߡߐ߰ ߡߊ߬ߟߐ߲߬ߣߍ߲߬ߓߊ ߟߎ߬ (ߌ ߟߊ߫ ߛߏߕߌ߮߸ ߏߟߊ߲ߔߞߌ ߝߊ߬ߘߌ߬ߡߊ߬ߞߟߏ߬ߟߊ ߟߎ߫߸ ߌ ߣߌ߫ ߡߍ߲ ߠߎ߬ ߓߘߊ߫ ߢߐ߲߯ߦߋ߫) ߌ ߞߊ߫ ߢߌ߲߬ ߠߎ߬ ߟߊߦߍ߬ߟߍ߫ ߖߊ߰ߣߌ߲߫: ߌ ߖߍ߬ߘߍ ߥߟߊ߫ ߌ ߕߋߙߌ ߘߏ߫ ߖߌ߬ߦߊ߬ߓߍ ߟߎ߬ ߌ ߣߌ߬ ߖߌ߬ߦߊ߬ߓߍ ߡߍ߲ ߠߎ߬ ߟߊߖߌ߰ ߟߴߌ ߞߎ߲߬ ߓߟߐߟߐ ߟߊ߫ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߕߌ߰ߟߊ߬ߡߊ ߢߊߝߘߍ ߖߌ߬ߦߊߕߊ߬ߣߍ߲ ߟߊߒߡߊ߫ ߘߐ߫ ߡߍ߲ ߠߎ߬ ߟߊߦߟߍ߬ߕߊ ߦߋ߫: ߞߎ߲߬ߕߐ߮:ߛߌߘߑߣߋ߫ ߘߐ߬ߓߛߏ߬ߟߌ߬ ߟߎ + ߞߊ߲߬ߛߓߍߟߌ: ߛߘߌߣߋ ߏߔߋߙߊ߫ ߓߏ߲ ߦߋߟߌ ߓߊߞߘߏ ߟߊ߫ + ߦߌߟߡߊ: ߛߘߌߣߋ ߏߔߋߙߊ߫ ߓߏ߲ ߕߟߋ߬ߓߋ߬ ߝߊ߲ ߝߍ߬߸ ߛߘߌߣߋ ߏߔߋߙߊ߫ ߓߏ߲ ߥߎߟߊߟߊ߫ ߦߋߟߌ ߌ ߟߊ߫ ߖߌ߬ߦߊ߬ߓߍ ߓߟߏߡߊߜߍ߲ ߞߍ߫. ߏ߬ ߦߋ߫ ߥߞߌߔߋߘߌߦߊ߫ ߞߎߡߘߊ ߟߎ߬ ߡߊߘߍ߬ߡߍ߲߫ ߠߊ߫ ߞߊ߬ ߣߊ߬ ߢߣߊߡߦߊ ߘߐ߫߹ ߖߌ߬ߦߊ߬ߓߍ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߥߞߌߔߋߘߌߦߊ߫ ߞߊ߲߬߸ ߏ߬ ߟߎ߬ ߝߘߊߣߍ߲߫ ߦߋ߫ ߥߞߌߡߋߘߌߦߊ߫ ߞߐߡߐ߲ߛ ߟߋ߬ ߟߊ߫. ߌ ߟߊ߫ ߖߌ߬ߦߊ߬ߓߍ ߦߋ߫ ߡߐ߱ ߟߎ߬ ߘߍ߬ߡߍ߲߬ ߠߊ߫ ߞߊ߬ߙߊ߲ ߡߊ߬ ߘߎߢߊ߫ ߝߊ߲߭ ߓߍ߯߹ @@ -141,6 +146,7 @@ ߛߓߍߦߟߊ ߟߊ߬ߦߟߍ߬ߟߌ ߕߎ߬ߡߊ߬ߘߊ ߕߌ߰ߦߊ + ߘߏ߲߬ߖߟߎ߬ߡߊ߬ߟߌ ߡߊ߫ ߡߊߛߐ߫ ߌ ߞߊߘߊ߲߫ ߞߊ߬ ߞߍ߫ ߓߋߕߊ ߣߍߣߍߓߊ߮ ߘߏ߫ ߘߌ߫ 2FA Code @@ -155,6 +161,7 @@ ߖ߭ߊߏ߫ ߞߎ߬ߙߎ ߞߏ߲ߞߏߛߊ߱ ߞߟߐ߬ߟߐ ߞߣߍߦߊ + ߕߎߟߌߔ ߌ ߣߌ߫ ߛߣߍ߫ ߥߞߌߡߋߘߌߦߊ ߞߊ߲߬ ߓߊߦߟߍߡߊ߲ ߤߊߞߍ ߣߌ߫ ߛߣߍ߫ ߛߌߘߑߣߋ߫ ߏߔߋߙߊ߫ ߓߏ߲ @@ -170,10 +177,13 @@ ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲ ߓߐ߫ ߟߞߊ߬ߙߊ߲߬ߠߌ߲ ߖߊ߲߬ߓߌ߬ߟߊ߬ߟߌ ߟߎ߬ + ߡߛߊ߬ߦߌ߬ߟߌ ߞߊ߲߬ߛߓߍ߬ߟߌ߬ ߡߊ߫ ߛߐ߬ߘߐ߲߬ ߞߐߡߐ߲ ߞߐߕߐ߯ ߞߐߜߍ ߥߞߌߘߕߊ ߞߎߡߘߊ ߥߞߌߔߋߘߌߦߊ ߞߎߡߘߊ + ߖߌ߬ߦߊ߬ߓߍ ߞߊ߲߬ߛߓߍ߬ߟߌ߫ ߛߎ߬ߘߎ߲߬ߣߍ߲ ߘߏ߫ ߛߓߍ߫ ߖߊ߰ߣߌ߲߫. ߝߍ߬ߛߓߍ߬ߟߌ߫ ߝߟߐ ߘߌ߫ ߛߋ߫ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫ ߖߌ߬ߦߊ߬ߓߍ ߞߊ߲߬ߛߓߍߟߌ ߘߌ߫. ߊ߬ ߘߐߘߊ߲ ߦߋ߫ ߞߟߏ߫ ߂߅߅ ߟߎ߫ ߟߋ߬ ߘߌ߫. + ߝߙߋߞߋ߫ ߞߟߊ߬ߟߊ߬ߡߊ ߟߎ߬ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߣߌ߲߬ ߠߊ߫: ߖߌ߬ߦߊ߬ߓߍ ߢߟߊߝߌ߲߬ߣߍ߲߬ ߞߏߖߎ߯ߦߊ߫. ߖߌ߬ߦߊ߬ߓߍ ߟߊߝߎ߬ߟߎ߲߬ߜߊ߬ߣߍ߲߫ ߖߌ߬ߦߊ߬ߓߍ ߣߌ߲߬ ߦߋ߫ ߞߐߡߐ߲ ߞߊ߲߬ ߞߘߐ߬ߡߊ߲߫. @@ -181,11 +191,13 @@ ߌ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߟߋ߬ ߟߊߦߍ߬ߟߍ߫ ߖߊ߰ߣߌ߲߫ ߌ ߖߍ߬ߘߍ ߞߊ߬ ߡߍ߲ ߠߎ߬ ߕߊ߬. ߒ߬ߞߊ߬ ߌ ߞߊ߫ ߖߌ߬ߦߊ߬ߓߍ߫ ߟߊߦߍ߬ߟߍ߫ ߡߎ߰ߡߍ߫ ߌ ߞߊ߬ ߡߍ߲ ߠߎ߬ ߕߊ߬ ߡߐ߱ ߟߎ߬ ߟߊ߫ ߝߋߛߑߓߎߞ ߞߊ߲߬. ߌ ߦߴߊ߬ ߝߍ߬ ߞߊ߬ ߖߌ߬ߦߊ߬ߓߍ ߣߌ߲߬ ߠߊߦߟߍ߬ ߡߎߣߎ߲߬؟ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߝߎ߬ߕߎ߲߬ߕߌ + ߟߊ߬ߦߟߍ߬ߟߌ ߢߊߢߌߣߌ߲ ߡߊ߬ߞߏ ߦߋ߫ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߠߊ߫ ߓߟߐߟߐ ߟߊ߫. ߌ ߟߊ߫ ߞߙߏ߬ߝߏ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߝߛߍ߬ߝߛߍ߫ ߖߊ߰ߣߌ߲߫. ߝߙߋߞߋ ߓߘߊ߫ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߟߊ߫ ߖߊ߰ߣߌ߲߬ ߌ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ߬ ߟߎ߫ ߟߋ߬ ߟߊߦߟߍ߬ ߌ ߖߍ߬ߘߍ ߞߊ߬ ߡߍ߲ ߠߎ߬ ߕߊ߬. ߞߏ߬ߣߌ߲߬ ߌ ߞߊߣߊ߬ ߖߌ߬ߦߊ߬ߓߍ߬ ߟߊߦߟߍ߬ ߌ ߣߊ߬ ߡߍ߲ ߠߊߖߌ߰ ߟߴߌ ߞߎ߲߬ ߓߟߐߟߐ ߟߊ߫. ߊ߬ ߟߊߞߎ߲߬ߘߎ߫ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߘߐ߫ ߜߍ߲ߜߍߘߍ߲߫ ߖߌ߬ߦߊ߬ߓߍ ߡߍ߲ ߠߎ߬ ߕߊ߬ߣߍ߲߬ ߦߋ߫ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߖߌ߬ߦߕߊ߬ߟߊ߲ ߠߊ߫߸ ߏ߬ ߟߎ߬ ߟߊߞߎ߲߬ߘߎ߫ ߞߍߟߊ߲ ߟߊ߬ߡߙߊ߬ߟߌ߬ ߦߙߐ ߘߐ߫ ߌ ߜߊ߲߬ߞߎ߲߫ ߌ ߟߊ߫ ߖߊ߬ߕߋ߬ߘߊ ߟߊ߫. + ߕߋ߬ߟߋ߲ ߞߐߕߐ߮ ߗߋ߫ ߓߟߐߟߐ ߛߏ߲߯ߓߊߟߊ߲߫ ߡߊ߫ ߛߐ߬ߘߐ߲߬ ߞߊ߬ URL ߟߊߞߊ߬ ߝߎ߬ߕߎ߲߬ߕߌ߹ URL ߡߊ߫ ߛߐ߬ߘߐ߲߬ ߞߵߊ߬ ߕߐ߯ߦߊ߫ ߖߏ߬ߛߟߌ߬ ߞߊ߲ߡߊ߬ @@ -206,6 +218,7 @@ ߞߐߡߐ߲ ߡߐ߬ߟߐ߲ ߘߴߊ߲ ߡߊ߬ ߢ.ߡ + ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ ߟߊ߬ߛߌ߲߬ߠߌ߲ ߟߞߊ߬ߙߊ߲߬ߠߌ߲ ߠߊߜߊ߲߫ ߓߟߐߟߐ߫ ߕߴߦߋ߲߬ ߝߎ߬ߕߎ߲߬ߕߌ ߞߊ߬ ߡߊ߬ߟߐ߲߬ߠߌ߲ ߠߊߘߏ߲߭ ߕߴߌ ߘߐ߫ @@ -233,6 +246,7 @@ ߊ߬ ߢߌߣߌ߲߫ ߢߌߣߌ߲ߣߌ߲߫ ߠߊߓߊ߲ ߢߌߣߌ߲ߠߌ߲߫ ߞߍߣߍ߲߫ ߞߎߘߊ ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ + ߞߊ߲ ߡߊߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ߫ ߟߊߓߊ߲ ߠߎ߬ ߝߎ߬ߕߎ߲߬ߕߌ ߓߌ߬ߟߊ߬ߣߍ߲߫ ߊ߬ ߘߐ߫ ߞߵߌ ߕߏ߫ ߦߌߟߡߊ ߟߎ߬ ߟߊߦߍ߬ߟߍ ߞߊ߲߬. ߝߎ߬ߕߎ߲߬ߕߌ ߓߘߊ߫ ߓߌ߬ߟߵߊ߬ ߘߐ߫ ߞߊ߬ ߦߌ߬ߘߊ߬ߟߌ ߟߊߢߎ߲ ߕߴߌ ߘߐ߫. ߞߟߋߞߟߋ @@ -240,6 +254,7 @@ ߝߌ߬ߛߌ ߡߊߦߋߙߋ߲ߣߍ߲ ߟߊ߬ߦߟߍ߬ߣߍ߲ ߠߎ߬ ߜߋߟߋ߲ߜߋߟߋ߲ ߠߊ߫ + ߔߊ߬ߔߘߊ ߖߌ߬ߦߊ߬ߓߍ ߓߌ߬ߟߊ߬ߣߍ߲߬ ߦߋ߫ %1$s ߟߊ߫ ߥߞߌߘߕߊ ߛߌߟߊ ߟߋ߬ ߝߍ߬߹ ߊ߬ ߓߌ߬ߟߊ߬ ߘߊ߬ߣߊ߲߬ߥߟߊ ߟߊ߫. ߘߊ߬ߣߊ߲߬ߥߟߊ ߓߌ߬ߟߊ ߓߘߊ߫ ߛߎߘߊ߲߫߹ @@ -262,13 +277,17 @@ ߊ߬ ߝߐ߫ ߘߊ߬ߣߊ߲߬ߥߟߊ߬ߖߌߦߊ ߣߌ߲߬ ߓߍ߲߬ߣߍ߲߫ ߦߋ߫ ߟߊ߬ߦߟߍ߬ߟߌ ߘߐ߫ ߝߋߎ߫؟ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߟߊ߬ߖߍ߲߬ߛߍ߲߬ߠߌ߲ ߝߌ߬ߟߌ ߦߋ߫ ߛߌ߰ߢߐ߲߰ ߘߌ߲ߞߌߙߊ ߟߊߘߏ߲߬ߕߐ ߘߐ߫. + ߛߌ߰ߢߐ߲߰ ߦߙߐ߫ ߡߊ߫ ߛߐ߬ߘߐ߲߫ ߟߊ߬ߡߌߣߌ߲ ߘߐ߫ + ߝߟߌ߬ ߓߘߊ߫ ߞߍ߫ ߛߌ߰ߢߐ߲߰ ߝߙߎߕߎ ߟߊߛߐ߬ߘߐ߲ ߘߐ߫. ߢߌߣߌ߲ߠߌ߲߫ ߠߊߓߊ߲ ߕߴߦߋ߲߬ ߌ ߟߊ߫ ߣߴߊ߬ ߟߊ߫ ߞߴߌ ߦߴߊ߬ ߝߍ߬ ߞߵߌ ߟߊ߫ ߢߌߣߌ߲ߠߌ߲߫ ߞߘߐ߬ߡߊ߲ ߠߎ߬ ߖߏ߰ߛߌ߬؟ + ߌ ߘߍ߲߬ߞߣߍ߬ߦߊ߬ߣߍ߲ ߞߴߌ ߦߴߊ߬ ߝߍ߬ ߞߊ߬ ߟߊ߬ߦߟߍ߬ߟߌ ߣߌ߲߬ ߘߐߛߊ߬؟ ߋ߯߹ ߌ ߦߴߊ߬ ߝߍ߬ ߞߊ߬ ߢߌߣߌ߲ߠߌ߲ ߣߌ߲߬ ߖߏ߬ߛߌ߬ ߝߋߎ߫؟ ߢߌߣߌ߲ߠߌ߲ ߞߘߐ߬ߡߊ߲ ߠߎ߬ ߓߘߊ߫ ߖߏ߰ߛߌ߬ ߊ߬ ߕߐ߯ߦߊ߫ ߖߏ߰ߛߌ߬ߟߌ߬ ߞߊ߲ߡߊ߬ ߊ߬ ߖߏ߬ߛߌ߫ ߞߎ߲߬ߝߊ߰ߟߌ + ߢߊߞߙߍ ߞߎߟߎ߲ߖߋߟߌ ߓߘߊ߫ ߟߊߛߐ߬ߘߐ߲߬ ߖߌ߬ߦߊ߬ߓߍ߫ ߟߊߓߊ߯ߙߕߊ ߟߎ߬ ߖߌ߬ߦߊ߬ߓߍ ߞߊߕߙߍ߬ \"ߛߌ߰ߢߐ߲߰ ߦߙߐ\" ߡߊ߬ @@ -391,9 +410,10 @@ ߝߍ߬ߛߓߍߟߌ ߕߍ߫ ߛߐ߲߬ ߝߙߊ߬ ߟߊ߫. ߖߌ߬ߦߊ߬ߓߍ ߟߊߖߍ߲ߛߍ߲߫ ߞߊߕߙߍ߬ ߌ ߡߊ߫ ߓߟߏߡߊߜߍ߲߫ ߛߌ߫ ߛߌ߲ߘߌ߫ ߡߎߣߎ߲߬ - ߌ ߡߊ߫ ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲ ߛߌ߫ ߞߍ߫ ߡߎߣߎ߲߬ + %s ߡߊ߫ ߓߟߏߡߊߜߍ߲߫ ߛߌ߫ ߞߍ߫ ߡߎߣߎ߲߬ ߖߊ߬ߕߋ߬ߘߊ ߓߘߊ߫ ߛߌ߲ߘߌ߫߹ ߛߓߍߟߌ ߓߘߊ߫ ߓߊߓߌ߬ߟߊ߬ ߛߓߍߝߌߘߊ߫-ߜߍ߬ߙߍ߲߬ߘߍ߬ߣߍ߲ ߞߊ߲߬. + ߖߊ߲߬ߓߌ߬ߟߊ߬ߟߌ: ߖߊ߬ߕߋ߫ ߘߐ߬ߞߊ߬ߙߊ߲߬ߣߍ߲ ߘߌ߫ ߝߎ߬ߕߎ߲߬ߕߌ ߘߏ߫ ߕߘߍ߬ ߦߋ߫ ߦߋ߲߬߹ ߦߙߐ ߛߎ߯ߦߊ: ߊ߬ ߦߋ߫ ߦߋ߲߬ @@ -430,16 +450,29 @@ ߊ߬ ߓߘߊ߫ ߟߊߟߐ߬ ߡߊߞߊ߬ߝߏ߬ ߜߘߍ ߟߎ߬ ߞߎ߲߬ߝߊ߰ߟߌ + ߛߝߊ: + ߦߙߌߞߊ: + ߛߝߊ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߦߙߌߞߊ + ߊ߬ ߡߊߞߍ߲߰ ߊߝ߭ߊߕߊߙ ߛߝߊߟߌ߫ ߥߟߊߟߋ߲ ߘߌ߫ + ߊ߬ ߡߊߞߍ߲߱ ߦߴߌߘߐ߫ ߊߝ߭ߊߕߊߙ ߘߌ߫߸ ߘߞߐ߬ߣߐ߲߬ߠߌ߲ ߞߍ߫ ߖߊ߰ߣߌ߲߫ + ߊߝ߭ߊߕߊߙ ߓߘߊ߫ ߡߊߞߍ߲߰ + ߝߟߌ߬ ߓߘߊ߫ ߞߍ߫ ߊߝ߭ߊߕߊߙ ߞߎߘߊ߫ ߡߊߞߍ߲߰ߠߌ߲ ߘߐ߫߸ ߊ߬ ߡߊߝߍߣߍ߲߫ ߌߞߐ߫ ߖߊ߰ߣߌ߲߫ + ߊ߬ ߡߊߞߍ߲߰ ߊߝ߭ߊߕߊߙ ߘߌ߫ ߛߊ߲߬ߓߍ߲ ߞߎ߲߬ߢߐ߰ߓߍ߲ ߕߎ߬ߡߊ ߓߍ߯ ߟߊ߬ߦߟߍ߬ߟߌ ߛߌ߬ߢߐ߲߮ ߟߊߓߊ߯ߙߊߣߍ߲ + ߒ ߠߊ߫ ߛߝߊ + ߡߊߔߎߓߐߞߛߌ ߝߏ߬ߣߊ߲߬ߕߍ߰ߕߎߟߋ ߖߌ߬ߦߊ߬ߓߍ ߛߎ߯ߦߊ + ߟߊ߬ߦߟߍ߬ߟߌ ߘߊߡߌ߬ߣߊ߭ ߦߴߌ ߘߐ߫... ߟߊ߬ߦߟߍ߬ߟߌ ߟߊߟߐ߭ ߦߴߌ ߘߐ߫... + ߟߊ߬ߦߟߍ߬ߟߌ ߘߐߛߊ߭ ߦߴߌ ߘߐ߫... + ߟߊ߬ߦߟߍ߬ߟߌ ߘߊߓߌ߬ߟߊ߬ ߡߋߘߌߦߊ ߝߊߙߊ߲ߝߊ߯ߛߌ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߟߊߓߊ߯ߙߊߟߌ ߞߊ߲ ߠߎ߬ ߢߐ߲߯ߕߍߞߣߍ ߘߏ߫ ߜߘߍ߫ ߟߎ߫ ߘߐߞߊ߬ߙߊ߲߬ @@ -462,4 +495,13 @@ ߞߙߍ߬ߝߍ߬ ߔߊߔߘߊ (ߡߊߔߛ) ߡߊ߬ߞߏ ߦߋ߫ ߜߋߟߋ߲ߜߋߟߋ߲ ߞߊ߬ߝߏ ߘߐߞߊ߬ߙߊ߲ ߠߊ߫ ߞߊ߬ ߛߋ߫ ߓߊ߯ߙߊ߫ ߟߴߊ߬ ߢߊߓߘߍ ߡߊ߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߓߟߏߡߊߜߍ߲ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߞߎ߲߬ߝߊ߰ߟߌ ߟߎ߬ + ߊ߲ߘߙߏߦߌߘ ߦߌߟߡߊ + ߞߍߟߊ߲ ߝߊ߲ߓߏ߲ + ߞߍߟߊ߲ ߛߎ߯ߦߊ + ߞߍߟߊ߲ ߕߐ߮ + ߞߙߏ߬ߝߏ ߛߎ߯ߦߊ + ߌ ߣߌ߫ ߗߋ߫ ߌ ߡߙߌߦߊ ߘߟߌ ߟߊ߫ + ߝߎ߬ߕߎ߲߬ߕߌ ߡߙߌߣߊ߲ ߗߋ߫ ߕߎߡߊ ߟߊ߫ + ߡߙߌߣߊ߲ ߦߋ߫ ߢߎ߬ߡߊ߲߬ ߘߌ߫؟ + ߌ ߕߊ߫ ߦߋߟߌ diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 111b98527..8eab7cfad 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -5,6 +5,7 @@ * Andriykopanytsia * Base * DDPAT +* Fifty Pro * Ice bulldog * Movses * Mykola Swarnyk @@ -286,6 +287,7 @@ Вікісховище Оцініть нас Часті запитання + Документація користувача Пропустити інструкцію Інтернет недоступний Помилка при отриманні сповіщення From 1d4a89d89e7b82c7b6eda33fb6531c287781bf8d Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 12 May 2022 13:01:43 +0200 Subject: [PATCH 011/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-pl/strings.xml | 134 ++++++++++++++++++--- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 40 +++--- 3 files changed, 141 insertions(+), 37 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 856c1d7bb..1f362eaa4 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -30,24 +30,24 @@ Przesyłanie %1$d plików Przesyłanie %1$d plików - - \@string/contributions_subtitle_zero + + (%1$d) (%1$d) (%1$d) (%1$d) Rozpoczynanie przesyłania - - Rozpoczęto %1$d przesyłanie - Rozpoczęto %1$d przesyłania - Rozpoczęto %1$d przesyłania - Rozpoczęto %1$d przesyłania + + Rozpoczęto %d przesyłanie + Rozpoczęto %d przesyłania + Rozpoczęto %d przesyłań + Rozpoczęto %d przesyłań - - %1$d przesłanie - %1$d przesłania - %1$d przesłania - %1$d przesłania + + %d przesłanie + %d przesłania + %d przesłania + %d przesłania Ten obraz będzie udostępniany na licencji %1$s @@ -84,6 +84,8 @@ Zarejestruj się Logowanie Proszę czekać… + Aktualizowanie podpisów i opisów + Proszę czekać… Zalogowano pomyślnie! Logowanie nie powiodło się! Nie znaleziono pliku. Spróbuj znaleźć inny. @@ -92,10 +94,10 @@ Prześlij w kolejce (włączony tryb ograniczonego połączenia) Przesłano %1$s! Dotknij, aby zobaczyć przesłany plik - Rozpoczęto przesyłanie pliku %1$s + Przesyłanie pliku: %s Wysyłanie %1$s Zakończono wysyłanie pliku %1$s - Wysyłanie %1$s nieudane + Nieudane wysyłanie %1$s Zatrzymano przesyłanie %1$ plików Dotknij, aby zobaczyć Dotknij, aby zobaczyć @@ -138,6 +140,7 @@ Ustawienia Zarejestruj się Wyróżniony obrazek + Selektor niestandardowy Kategoria Recenzja O aplikacji @@ -260,6 +263,8 @@ To zdjęcie zostało zrobione w innym miejscu. Prześlij tylko zdjęcia, które sam wykonałeś. Nie przesyłaj zdjęć znalezionych na kontach innych osób na Facebooku. Czy nadal chcesz przesłać to zdjęcie? + Błąd połączenia + Proces przesyłania wymaga aktywnego dostępu do Internetu. Sprawdź połączenie sieciowe. Problemy znalezione na obrazie Prześlij tylko zdjęcia, które sam wykonałeś. Nie przesyłaj zdjęć pobranych z Internetu. Zapisz zdjęcia wykonane w aplikacji @@ -287,6 +292,7 @@ Commons Oceń nas FAQ + Przewodnik użytkownika Pomiń samouczek Brak połączenia z internetem Błąd w trakcie pobierania powiadomień @@ -314,6 +320,7 @@ Szukaj Ostatnie wyszukiwania: Ostatnio wyszukiwane zapytania + Ostatnie zapytania językowe Wystąpił błąd podczas wczytywania kategorii. Wystąpił błąd podczas ładowania obrazów. Multimedia @@ -321,6 +328,7 @@ Elementy Wyróżnione Przesłane z aplikacji + Mapa Dodano do %1$s w Wikidanych! Nie udało się zaktualizować odpowiedniego obiektu Wikidata! Ustaw jako tapetę @@ -346,8 +354,11 @@ Czy ten zrzut ekranu nadaje się do przesłania? Udostępnij aplikację Błąd podczas pobierania pobliskich miejsc. + Brak miejsc w pobliżu + Błąd pobierania pobliskich zabytków. Brak ostatnich wyszukiwań Czy na pewno chcesz usunąć swoją historię wyszukiwania? + Czy na pewno chcesz anulować to przesyłanie? Czy chcesz usunąć to wyszukiwanie? Historia wyszukiwania została usunięta Zgłoś do usunięcia @@ -455,7 +466,7 @@ Następny obraz Tak, dlaczego nie Kliknięcie tego przycisku spowoduje wyświetlenie kolejnego ostatnio przesłanego obrazu z Wikimedia Commons - Możesz przeglądać obrazy i poprawiać jakość Wikimedia Commons.\n Cztery parametry przeglądu to:\n - Czy ten obraz jest objęty zakresem?\n - Czy ten obraz jest zgodny z zasadami praw autorskich?\n - Czy ten obraz jest poprawnie sklasyfikowany?\n - Jeśli wszystko pójdzie dobrze, możesz również podziękować autorowi. + Możesz przeglądać obrazy, aby poprawić jakość Wikimedia Commons.\nTrzy parametry przeglądu to:\n- Czy ten obraz jest objęty zakresem?\nKlikając Nie (poza zakresem), dodajesz szablon nominacji do usunięcia tego obrazu.\n\n- Czy ten obraz jest zgodny z zasadami praw autorskich?\nPo dotknięciu Nie (nie jest to zgodne z zasadami praw autorskich), dodajesz szablon nominacji do usunięcia tego obrazu.\n\n- Czy ten obraz jest prawidłowo skategoryzowany?\nPo dotknięciu Nie (niepoprawnie skategoryzowane), dodajesz szablon żądania kategoryzacji tego obrazu.\n\nJeśli wszystko jest w porządku, do obrazu nie zostanie dodany żaden szablon, a Ty możesz podziękować współtwórcy. Nie użyto żadnych obrazów Żadne obrazy nie zostały przywrócone Nie przesłano żadnych obrazów @@ -509,11 +520,40 @@ Próba aktualizacji kategorii. Aktualizacja kategorii Powodzenie + + Kategoria %1$s jest dodana. + Kategorie %1$s są dodane. + Kategorie %1$s są dodane. + + Nie udało się dodać kategorii. Aktualizuj kategorie + Próba aktualizacji przedstawień. + Edycja przedstawień + + Przedstawienie %1$s jest dodane. + Przedstawienia %1$s są dodane. + Przedstawienia %1$s są dodane. + + + Nie można dodać przedstawienia. + Próba aktualizacji koordynatów. + Aktualizacja koordynatów + Aktualizacja opisu + Aktualizacja przypisu Powodzenie + Koordynaty %1$s zostały dodane. + Opisy zostały dodane. + Przypis został dodany. + Nie można dodać koordynatów. + Nie można dodać opisów. + Nie można dodać przypisu. + Nie można uzyskać koordynatów. + Nie można uzyskać opisów. + Edycja opisów i przypisów Udostępnij obraz przez - Nie wykonałeś jeszcze żadnej edycji + Nie dokonałeś jeszcze żadnej edycji + %s nie dokonał jeszcze żadnej edycji Konto zostało utworzone! Skopiowano tekst do schowka Oznaczono powiadomienia jako przeczytane @@ -565,8 +605,10 @@ wznów Zatrzymano Więcej + Zakładki Osiągnięcia Ranking + Ranking: Licznik: Ranga Użytkownik @@ -593,8 +635,10 @@ Obrazy wysokiej jakości to diagramy lub fotografie, które spełniają określone standardy dotyczące jakości (które w większości są ściśle techniczne) i są wartościowymi materiałami dla projektów Wikimedii. Wznawianie przesyłania… Wstrzymywanie przesyłania… + Anulowanie przesyłania… + Anuluj przesyłanie Włączyłeś tryb ograniczonego połączenia. Wszystkie operacje przesyłania są wstrzymane i zostaną wznowione po wyłączeniu tego trybu. - ryb ograniczonego połączenia jest włączony. + Tryb ograniczonego połączenia jest włączony. Napisz krótki podpis z napisem, co pokazuje Twoje zdjęcie. W opisie powiedz, co sprawia, że obraz jest interesujący lub typowy lub rzadki, i wyjaśnij kontekst, widoczny lub nie. Użyj dokładnej terminologii, jak to tylko możliwe. Znajdź i zaznacz wszystkie koncepcje, które przedstawia ten obraz. Podaj jak najwięcej szczegółów. Jeśli obraz przedstawia wiele elementów, wybierz je wszystkie w rozsądnym zakresie. Nie wybieraj tagów ogólnych, jeśli dostępne są bardziej szczegółowe tagi. Wybierz odpowiednie kategorie. W przeciwieństwie do przedstawień kategorie są dostępne tylko w języku angielskim. @@ -604,10 +648,66 @@ Szczegóły mediów Zobacz stronę kategorii Wyświetl stronę elementu + Język interfejsu użytkownika aplikacji + Usuwa przypisy i opisy Czytaj więcej + We wszystkich językach + Wybierz położenie + Przesuń i powiększ, aby dostosować + Wyjdź z selektora lokalizacji + Wybierz położenie + Pokaż w aplikacji mapowej + Edycja położenia + Widok obrazu selektora lokalizacji + \n Cień widoku obrazu selektora lokalizacji + Lokalizacja zdjęcia + Sprawdź czy położenie jest poprawne + Etykieta + Opis + Elementy Niestandardowy selektor Brak obrazów + Gotowe + Cofnij + Witamy w niestandardowym selektorze zdjęć + Ten selektor pokazuje inaczej zdjęcia, które są już na Commons. + W przeciwieństwie do zdjęcia po lewej, zdjęcie po prawej ma logo Commons wskazujące, że zostało już przesłane.\n Dotknij i przytrzymaj, aby wyświetlić podgląd obrazu. + Niesamowite Tez plik został już przesłany do Commons. + Ten obraz zostanie zgłoszony do konkursu Wiki Loves Monuments 2021 Pokaż zabytki + To jest miesiąc Wiki Lovers Monuments! DOWIEDZ SIĘ WIĘCEJ + Wiki Loves Monuments (Wiki Kocha Zabytki) to międzynarodowy konkurs fotograficzny skoncentrowany na zabytkach, organizowany przez Wikimedia + Wymagane uprawnienie + 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 + Edycja przedstawień + Edycja kategorii + Opcje zaawansowane + Możesz dostosować zapytanie \"W pobliżu\". Jeśli pojawią się błędy, zresetuj i zastosuj. + Zastosuj + Zresetuj + Dane o lokalizacji pomagają edytorom Wiki znaleźć Twoje zdjęcie, dzięki czemu jest ono znacznie bardziej przydatne.\nTwoje ostatnio przesłane pliki nie zawierają lokalizacji.\nSugerujemy włączenie lokalizacji w ustawieniach aplikacji aparatu.\nDziękujemy za przesłanie! + Nie odnaleziono lokalizacji + Co powiesz na dodanie miejsca, w którym zrobiono to zdjęcie?\nDane o lokalizacji pomagają edytorom Wiki znaleźć Twoje zdjęcie, dzięki czemu jest ono znacznie bardziej przydatne.\nDziękujemy! + Dodaj położenie + Usuń z tego e-maila wszelkie informacje, których nie chcesz udostępniać publicznie. Pamiętaj również, że Twój adres e-mail, z którego publikujesz, oraz powiązane imię i nazwisko i zdjęcie profilowe będą widoczne publicznie. + Szczegóły + Osiągnięcia są dostępne tylko w wersji prod, sprawdź dokumentację dla programistów. + Tablica wyników jest dostępna tylko w wersji prod. Zapoznaj się z dokumentacją dla programistów. + Przesyłaj tylko zdjęcia zrobione przez siebie. Przesyłający obrazy chronione prawami autorskimi zostaną zablokowani. Dotyczy to również wersji beta. Dziękujemy za przetestowanie aplikacji! + Usuń zaznaczenie wszelkich informacji, których nie chcesz udostępniać publicznie. + Poziom API + Wersja Android + Producent urządzenia + Model urządzenia + Nazwa urządzenia + Rodzaj sieci + Dziękujemy za przekazanie opinii + Błąd podczas wysyłania opinii + Jaka jest Twoja opinia? + Twoja opinia diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 3c6b3b414..6e6e12562 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -119,7 +119,7 @@ В очереди Ошибка загрузки. Завершено %1$d%% - Загрузка + Загружается Из галереи Сфотографировать Поблизости @@ -334,6 +334,7 @@ Найти Последние поиски: Последние запросы + Последние языковые запросы При загрузке категорий произошла ошибка. При загрузке описаний произошла ошибка. Мультимедиа @@ -697,6 +698,7 @@ Добавить местоположение Пожалуйста, удалите из этого письма любую информацию, которой вы не желаете делиться с другими. Кроме того, имейте в виду, что адрес вашей электронной почты, с которого вы отправляете сообщения, а также связанное с ним имя и изображение профиля, будут видны всем. Подробности + Пожалуйста, загружайте только те фотографии, которые вы сделали сами. Участники, загружающие защищённые авторским правом изображения, будут заблокированы. Это относится и к бета-флейвору. Спасибо за тестирование приложения! Уровень API Версия Андроида Производитель устройства diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 00607d30f..5411343b5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -264,11 +264,11 @@ 略過 登入 您確定要略過登入嗎? - 在功能裡您需要登入來上傳圖片。 + 之後您需要登入才能上傳圖片。 請登入來使用此功能 複製 wikitext 到剪貼簿 Wikitext 已複製到剪貼簿 - 附近可能無法正常運作。位置無效。 + 位置無效,應用程式在此地附近可能無法正常運作。 需權限來顯示附近地點清單 方向 維基數據 @@ -279,8 +279,8 @@ 使用者指南 跳過敎程 網路不可用 - 索取通知時錯誤 - 索取評審的圖片錯誤,請按下重新整理來重試。 + 檢索通知時出錯 + 檢索評審圖片時出錯,請按下「重新整理」按鈕重試。 查無通知 翻譯 語言 @@ -293,8 +293,8 @@ 此地點已有照片。 此地點已不存在。 找不到圖片! - 當載入圖片時發生錯誤。 - 由:%1$s 上傳 + 載入圖片時發生錯誤。 + 由%1$s上傳 已封鎖 您被禁止編輯維基共享資源 每日圖片 @@ -322,7 +322,7 @@ 問題 結果 如果您持續上傳需要刪除的圖片,您的帳號可能會被封禁。你確定要結束測驗嗎? - 超過 %1$s 由您上傳的圖片都遭到刪除了。如果你持續上傳需要刪除的圖片,您的帳號可能會遭到封禁。\n\n您要不要重新閱覽教程,然後再做一次測驗,好讓您學習分辨哪些類型的圖片你可以上傳、哪些不可以? + 您上傳的圖片已有%1$s遭到刪除。如果您持續上傳不符收錄標準的圖片,您的帳號可能會遭到封禁。\n\n您要不要重新閱覽教程,然後再做一次測驗,以幫助您分辨哪些類型的圖片可以上傳、哪些不可以? 自拍照沒有百科價值。除非維基百科上已經有介紹您的條目,否則請不要上傳拍攝您自己的照片。 在大多數的國家,上傳古蹟或室外景的照片是沒有問題的。請留意,臨時性的戶外裝置藝術常常是有著作權保護的,不可上傳。 網站的螢幕截圖被視為衍生作品,受到該網站本身所有著作權保護。這些截圖可以在獲得原作者許可之後使用。若未經許可,您根據他們的作品而創作的任何藝術品,在法律上均會被視為未經原作者許可的複製品。 @@ -330,14 +330,14 @@ 在維基共享資源上,展現科技或文化的圖片很受到歡迎。 您答對了 %1$s 題,恭喜! 請在兩個選項中擇一,來回答這個問題。 - 登入用 session 逾期,請重新登入。 + 登入時限以過,請重新登入。 向朋友分享您的測驗結果! 繼續 正確答案 錯誤答案 這張截圖可以上傳嗎? 分享應用程式 - 索取附近地點時出錯。 + 獲取附近地點時出錯。 找不到附近地點 索取附近古蹟景點時出錯。 無近期搜尋 @@ -367,7 +367,7 @@ 共享資源通知 使用自定義作者名稱 使用自定義作者名稱來取代在上傳照片時您的使用者名稱 - 自定義作者名稱 + 自訂作者名稱 貢獻 附近 通知 @@ -408,8 +408,8 @@ (在集合的所有圖片) 搜尋此區域 權限請求 - 您是否願意讓我們使用您的目前位置,來顯示出缺少圖片的最近地點? - 沒有位置權限會無法顯示缺少圖片的最近地點 + 您是否願意讓我們知道您的目前位置,以顯示附近缺少圖片的地點? + 沒有位置權限會無法顯示附近缺少圖片的地點 永遠不再詢問 要求位置權限 當需要附近地點通知卡片的檢視功能時,要求位置權限。 @@ -433,9 +433,9 @@ 完成 發送感謝:成功 成功傳送感謝給:%1$s - 發送感謝%1$s失敗 + 發送感謝給%1$s失敗 發送感謝:失敗 - 為%1$s發送感謝 + 向%1$s發送感謝 這是否遵守版權規範? 這有分類正確嗎? 這有符合收錄範圍嗎? @@ -446,7 +446,7 @@ 喔,這甚至沒有分類! 此圖片屬於%1$s分類。 這超出範圍是因為 - 這侵犯版權是因為 + 該文件侵犯版權,原因是 下一張圖片 是的,為何不呢 點擊此按鈕會提供給您其它近期從維基共享資源上傳的圖片 @@ -459,7 +459,7 @@ 分享日誌使用 檢視已讀 檢視未讀 - 當挑選圖片時發生錯誤 + 選擇圖片時發生錯誤 請稍待… 特色圖片是出自於高水準技巧的攝影師或繪圖師,且被維基共享資源社群挑選為在站台上的最高品質圖片。 以「附近地點」所上傳的圖片,是透過找出在地圖上地點來上傳的。 @@ -479,7 +479,7 @@ 透鏡型號 序號 軟體 - 從您的手機上直接更新照片到維基共享資源,請現在下載共享資源應用程式:%1$s + 從您的手機上直接上傳照片到維基共享資源,立即下載共享資源應用程式:%1$s 分享應用程式透過… 圖片資訊 找不到分類 @@ -542,7 +542,7 @@ 存在 需要照片 地點類型: - 橋梁、美術館、旅館、其它。 + 橋樑、美術館、旅館等。 登入時發生一些問題,您必須重新設定您的密碼!! 媒體 子類別 @@ -654,10 +654,12 @@ 右邊的圖片與與左邊圖片不同,它有代表已經上傳到維基共享資源的標誌。\n請輕壓圖片來預覽。 棒極了 此圖片已上傳到維基共享資源。 + 維基愛古蹟 此圖片會進入2021年維基愛古蹟競賽 顯示古蹟景點 - 維基愛古蹟的月份! + 本月有「維基愛古蹟」活動! 了解更多 + 維基愛古蹟 維基愛古蹟是由維基媒體舉行的國際古蹟攝影比賽 需要權限 附近地圖需要讀取手機狀態來正常運作 From d647c0674e296685a2e15dbdca9e3c539e83d33c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90?= <73240868+JustinLiang522@users.noreply.github.com> Date: Fri, 13 May 2022 16:50:35 +0800 Subject: [PATCH 012/960] disable dialog display (#4954) --- .../java/fr/free/nrw/commons/media/MediaDetailFragment.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 1e1e48cfe..3daf14553 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -1052,10 +1052,6 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment implements } else if (requestCode == REQUEST_CODE_EDIT_DESCRIPTION && resultCode == RESULT_CANCELED) { progressBarEditDescription.setVisibility(GONE); editDescription.setVisibility(VISIBLE); - - viewUtil.showShortToast(getContext(), - Objects.requireNonNull(getContext()) - .getString(R.string.descriptions_picking_unsuccessful)); } } From d8724f4541ef9bce33b8af841f8c86c82f945313 Mon Sep 17 00:00:00 2001 From: AlexMahlon <53351970+AlexMahlon@users.noreply.github.com> Date: Sun, 15 May 2022 06:33:08 -0400 Subject: [PATCH 013/960] Fixes #4934. Enforces Wikimedia character blocklisting on media titles. (#4955) --- .../upload/UploadMediaDetailAdapter.java | 4 + .../upload/UploadMediaDetailInputFilter.java | 80 +++++++++++ .../UploadMediaDetailInputFilterTest.kt | 128 ++++++++++++++++++ 3 files changed, 212 insertions(+) create mode 100644 app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailInputFilter.java create mode 100644 app/src/test/kotlin/fr/free/nrw/commons/upload/UploadMediaDetailInputFilterTest.kt diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java index 60c3d72d8..9eb8fbb5d 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java @@ -3,6 +3,7 @@ package fr.free.nrw.commons.upload; import android.app.Dialog; import android.content.Intent; import android.text.Editable; +import android.text.InputFilter; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; @@ -165,6 +166,9 @@ public class UploadMediaDetailAdapter extends RecyclerView.Adapter callback.showAlert(R.string.media_detail_caption, R.string.caption_info)); + Objects.requireNonNull(captionInputLayout.getEditText()).setFilters(new InputFilter[] { + new UploadMediaDetailInputFilter() + }); descInputLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM); descInputLayout.setEndIconDrawable(R.drawable.mapbox_info_icon_default); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailInputFilter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailInputFilter.java new file mode 100644 index 000000000..91d46d728 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailInputFilter.java @@ -0,0 +1,80 @@ +package fr.free.nrw.commons.upload; + +import android.text.InputFilter; +import android.text.Spanned; +import java.util.regex.Pattern; + +/** + * An {@link InputFilter} class that removes characters blocklisted in Wikimedia titles. The list + * of blocklisted characters is linked below. + * @see wikimedia.org + */ +public class UploadMediaDetailInputFilter implements InputFilter { + private final Pattern[] patterns; + + /** + * Initializes the blocklisted patterns. + */ + public UploadMediaDetailInputFilter() { + patterns = new Pattern[]{ + Pattern.compile("[\\x{00A0}\\x{1680}\\x{180E}\\x{2000}-\\x{200B}\\x{2028}\\x{2029}\\x{202F}\\x{205F}\\x{3000}]"), + Pattern.compile("[\\x{202A}-\\x{202E}]"), + Pattern.compile("\\p{Cc}"), + Pattern.compile("\\x{FEFF}"), + Pattern.compile("\\x{00AD}"), + Pattern.compile("[\\x{E000}-\\x{F8FF}\\x{FFF0}-\\x{FFFF}]"), + Pattern.compile("[^\\x{0000}-\\x{FFFF}\\p{sc=Han}]") + }; + } + + /** + * Checks if the source text contains any blocklisted characters. + * @param source input text + * @return contains a blocklisted character + */ + private Boolean checkBlocklisted(final CharSequence source) { + for (final Pattern pattern: patterns) { + if (pattern.matcher(source).find()) { + return true; + } + } + + return false; + } + + /** + * Removes any blocklisted characters from the source text. + * @param source input text + * @return a cleaned character sequence + */ + private CharSequence removeBlocklisted(CharSequence source) { + for (final Pattern pattern: patterns) { + source = pattern.matcher(source).replaceAll(""); + } + + return source; + } + + /** + * Filters out any blocklisted characters. + * @param source {@inheritDoc} + * @param start {@inheritDoc} + * @param end {@inheritDoc} + * @param dest {@inheritDoc} + * @param dstart {@inheritDoc} + * @param dend {@inheritDoc} + * @return {@inheritDoc} + */ + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, + int dend) { + if (checkBlocklisted(source)) { + if (start == dstart) { + return dest; + } + + return removeBlocklisted(source); + } + return null; + } +} \ No newline at end of file diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadMediaDetailInputFilterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadMediaDetailInputFilterTest.kt new file mode 100644 index 000000000..4a4894046 --- /dev/null +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadMediaDetailInputFilterTest.kt @@ -0,0 +1,128 @@ +package fr.free.nrw.commons.upload + +import android.text.SpannableStringBuilder +import fr.free.nrw.commons.TestCommonsApplication +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.robolectric.annotation.LooperMode + +@RunWith(RobolectricTestRunner::class) +@Config(sdk = [21], application = TestCommonsApplication::class) +@LooperMode(LooperMode.Mode.PAUSED) +class UploadMediaDetailInputFilterTest { + + @Test + fun testFilterGeneric() { + val filter = UploadMediaDetailInputFilter() + val filters = arrayOf(filter) + val destination = SpannableStringBuilder("") + destination.filters = filters + + val test: CharSequence = "test" + val expected = "test" + destination.insert(0, test) + Assert.assertEquals(destination.toString(), expected) + } + + @Test + fun testFilterUnusualSpaces() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + //All unusual space characters + val tests = intArrayOf(0x00A0, 0x1680, 0x180E, 0x2000, 0x2005, 0x200B, 0x2028, 0x2029, 0x202F, 0x205F, 0x3000) + for (test: Int in tests) { + builder.insert(0, String(Character.toChars(test))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + } + + @Test + fun testFilterBiDiOverrides() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + //Sample of BiDI override characters + val tests = intArrayOf(0x202A, 0x202B, 0x202C, 0x202D, 0x202E) + for (test: Int in tests) { + builder.insert(0, String(Character.toChars(test))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + } + + @Test + fun testFilterControlCharacters() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + //Sample of control characters + val tests = intArrayOf(0x00, 0x08, 0x10, 0x18, 0x1F, 0x7F) + for (test: Int in tests) { + builder.insert(0, String(Character.toChars(test))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + } + + @Test + fun testFilterByteOrderMark() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + builder.insert(0, String(Character.toChars(0xFEFF))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + + @Test + fun testFilterSoftHyphen() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + builder.insert(0, String(Character.toChars(0x00AD))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + + @Test + fun testFilterSpecials() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + //Sample of surrogate and special characters + val tests = intArrayOf(0xE000, 0xE63F, 0xEC7E, 0xF2BD, 0xF8FF, 0xFFF0, 0xFFF4, 0xFFFC, 0xFFFF) + for (test: Int in tests) { + builder.insert(0, String(Character.toChars(test))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + } + + @Test + fun testFilterNonBasicPlane() { + val builder = SpannableStringBuilder("") + builder.filters = arrayOf(UploadMediaDetailInputFilter()) + + //Sample of characters over 5 hex places not in the Han set + val testsExclude = intArrayOf(0x1FFFF, 0x44444, 0xFFFFF) + for (test: Int in testsExclude) { + builder.insert(0, String(Character.toChars(test))) + Assert.assertEquals(builder.toString(), "") + builder.clear() + } + + //Sample of characters over 5 hex places in the Han set + val testsInclude = intArrayOf(0x20000, 0x2B740, 0x2F800) + val expected = SpannableStringBuilder("") + for (test: Int in testsInclude) { + builder.insert(0, String(Character.toChars(test))) + expected.insert(0, String(Character.toChars(test))) + } + Assert.assertEquals(builder.toString(), expected.toString()) + } +} \ No newline at end of file From 325a09d93a5bd38d86e7004ab402a327c84c9472 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 16 May 2022 13:01:48 +0200 Subject: [PATCH 014/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-blk/strings.xml | 2 +- app/src/main/res/values-fa/strings.xml | 4 +- app/src/main/res/values-is/strings.xml | 329 ++++++++++++++++++++++-- app/src/main/res/values-ka/strings.xml | 3 +- app/src/main/res/values-vi/strings.xml | 3 +- 5 files changed, 312 insertions(+), 29 deletions(-) diff --git a/app/src/main/res/values-blk/strings.xml b/app/src/main/res/values-blk/strings.xml index 307151aa4..1f23df727 100644 --- a/app/src/main/res/values-blk/strings.xml +++ b/app/src/main/res/values-blk/strings.xml @@ -114,7 +114,7 @@ ဝီခီပီးဒီးယားယို ကျိုႏဆွုမ်ႏဒျာႏသြ။ မာꩻတဝ်းဒွုမ် ပေ့ꩻထိုꩻ - အမွူး + ဗဟိုႏ ဒင်ႏထင်ႏ ဗော့ꩻရာꩻတာႏ အကျောင်ꩻ diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index faf17a83c..530f3151d 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -77,7 +77,7 @@ ورود موفق! ورود ناموفق! پرونده یافت نشد لطفاً پرونده دیگری را امتحان کنید. - تأیید اعتبار ناموفق بود! لطفاً دوباره وارد شوید. + اصالت‌سنجی شکست خورد! لطفاً دوباره وارد شوید. بارگذاری آغاز شد! %1$s بارگذاری شد! برای دیدن بارگذاریتان بر روی صفحه انگشت بزنید @@ -105,7 +105,7 @@ قادر به ورود نیست - شکست شبکه‌ای تلاش ناموفق بیش از حد. لطفاً چند دقیقهٔ دیگر دوباره تلاش کنید پوزش، کاربر در ویکی‌انبار بسته شده‌است - شما باید کد تأیید اعتبار دومرحله‌ای را ارائه کنید. + شما باید کد اصالت‌سنجی دومرحله‌ای را ارائه کنید. ورود ناموفق بود بارگذاری نام این مجموعه diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index 8b2c9d783..2e7d522d6 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -7,18 +7,18 @@ %1$d skrá að sendast inn %1$d skrár að sendast inn - - \@string/contributions_subtitle_zero + (%1$d) (%1$d) - - Byrja %1$d innsendingu - Byrja %1$d innsendingar + Byrja innsendingar + + Meðhöndla %d innsendingu + Meðhöndla %d innsendingar - - %1$d innsending - %1$d innsendingar + + %d innsending + %d innsendingar Þessi mynd verður birt með %1$s notkunarleyfi @@ -28,6 +28,10 @@ %1$d innsending %1$d innsendingar + + Tek við deildu efni. Meðhöndlun myndarinnar gæti tekið einhvern tíma, sem fer eftir stærð myndarinnar og gerð tækisins þíns + Tek við deildu efni. Meðhöndlun myndarinnar gæti tekið einhvern tíma, sem fer eftir stærð myndaanna og gerð tækisins þíns + Uppgötva Útlit Almennt @@ -45,18 +49,23 @@ Nýskrá Innskráning í gangi Hinkraðu aðeins… + Uppfæri skýringartexta og lýsingar + Hinkraðu aðeins… Innskráning tókst! Innskráning mistókst! Skráin fannst ekki. Prófaðu aðra skrá. Auðkenning mistókst, skráðu þig inn aftur Innsending í gangi! + Innsending í bið (hamur fyrir takmarkaðar tengingar er virkur) %1$s var sent inn! Bankaðu til að skoða sem þú ert að senda inn - Hef innsendingu á %1$s + Sendi inn skrá: %s Verið er að senda %1$s inn Lýk innsendingu á %1$s - Innsending á %1$s mistókst + Mistókst að senda inn %1$s + Innsending %1$s er í bið Bankaðu til að skoða + Bankaðu til að skoða Nýlega innsendar skrár Í biðröð Mistókst @@ -67,8 +76,11 @@ Í nágrenninu Innsendu skrárnar mínar Deila - Titill (krafist) + Skoða skráarsíðu + Skýringatexti (krafist) + Gefðu upp skýringartexta fyrir þessa skrá Lýsing + Skýringatexti Innskráning mistókst - bilun í neti Of margar misteknar tilraunir. Reyndu aftur eftir nokkrar mínútur. Því miður, þessi notandi hefur verið bannaður á Commons @@ -79,16 +91,21 @@ Breytingar Senda inn Leita í flokkum + Leita að atriðum sem myndgögnin þín lýsa (fjall, Taj Mahal, o.s.frv.) Vista Endurlesa Listi - Engar innsendingar ennþá + (Engar innsendingar ennþá) Engir flokkar sem samsvara %1$s fundust + Engin Wikidata-atriði sem samsvara %1$s fundust + %1$s er ekki með neina afleidda flokka + %1$s er ekki með neina yfirflokka Bættu við flokkum til að gera myndirnar þínar aðgengilegri á Wikimedia Commons\nByrjaðu að skrifa til að bæta við flokkum. Flokkar Stillingar Nýskrá Áberandi myndir + Sérsniðinn veljari Flokkur Yfirlestur jafningja Um @@ -142,6 +159,7 @@ Flokkar Hleð… Ekkert valið + Enginn skýringartexti Engin lýsing Engin umræða Óþekkt notkunarleyfi @@ -152,10 +170,13 @@ Biður um aðgang að staðsetningu Í lagi Aðvörun + Tvítekin mynd fannst Senda inn Nei + Skýringatexti Titill + Myndlýsingar Lýsing Umræða Höfundur @@ -199,15 +220,20 @@ Wikidata-atriði Wikipedia-grein Lýstu gögnunum eins vel og auðið er: Hvar er myndin tekin? Hvað sýnir hún? Hvert er samhengið? Lýstu fólki og fyrirbærum. Gefðu upp þær upplýsingar sem ekki er auðvelt að giska á, til dæmis á hvaða tíma dags myndin er tekin ef hún sýnir landslag. Ef gögnin sýna eitthvað óvenjulegt, útskýrðu þá hvað það er sem sé sérstakt. + Skrifaðu stutta lýsingu á myndinni. Fyrsti skýringatextinn myndi verða notaður sem titill á myndina. Takmarkast við 255 stafi. Möguleg vandamál með þessa mynd: Myndin er of dökk. Myndin er of móskuleg. Myndin er þegar í Commons-almenningi. Myndin var tekin á öðrum stað. + Sendu aðeins inn myndir sem þú hefur tekið sjálf/ur. Ekki senda inn myndir sem þú náðir í á Facebook-aðgöngum annars fólks. Viltu samt senda inn þessa mynd? + Tengingarvilla + Innsendingarferlið krefst virkrar internettengingar. Athugaðu netsambandið þitt. Vandamál fannst í myndinni - Nota ytri gagnageymslu - Vistaðu myndir sem teknar hafa verið með innbyggðu myndavélinni í tækinu þínu + Sendu aðeins inn myndir sem þú hefur tekið sjálf/ur. Ekki senda inn myndir sem þú náðir í á internetinu. + Vista myndir innan forritsins + Vista myndir sem teknar hafa verið með innbyggðu myndavélinni í geymslur tækisins þíns Skrá inn á aðganginn þinn Senda atvikaskrá Senda atvikaskrá til forritaranna með tölvupósti til að hjálpa við að aflúsa vandamál í forritinu. Athugaðu: atvikaskrár geta innihaldið persónugreinanleg gögn @@ -223,7 +249,7 @@ Skráðu þig inn til að nota þennan eiginleika Afrita wiki-textann á klippispjaldið Wiki-textinn var afritaður á klippispjaldið - Staðsetning ekki tiltæk. + Næsta nágrenni virkar mögulega ekki rétt, staðsetning er ekki tiltæk. Heimild þarf til að birta lista yfir staði í nágrenninu Leiðir Wikidata @@ -231,9 +257,11 @@ Commons Gefðu okkur einkunn Algengar spurningar + Notendahandbók Sleppa kennslu Nettenging ekki tiltæk Villa við að sækja tilkynningar + Villa við að sækja mynd til yfirferðar. Ýttu á \'Endurlesa\' til að reyna aftur. Engar tilkynningar fundust Þýða Tungumál @@ -242,6 +270,9 @@ Hætta við Reyna aftur Þetta eru þeir staðir í næsta nágrenni við þig sem vantar myndir til skýringa með Wikipedia-greinum.\n\nEf smellt er á \'LEITA Á ÞESSU SVÆÐI\' er kortinu læst og í gang fer leit á nálægu svæði. + Þennan stað vantar ljósmynd. + Þessi staður er þegar með ljósmynd. + Þessi staður er ekki lengur til. Engir myndir fundust! Villa kom upp við að hlaða inn myndum. Sent inn af: %1$s @@ -254,11 +285,15 @@ Leita Nýlegar leitir: Nýlegar leitarbeiðnir + Nýlegar tungumálabeiðnir Villa kom upp við að hlaða inn flokkum. + Villa kom upp við að hlaða inn myndlýsingum. Margmiðlun Flokkar + Atriði Efst á baugi Sent inn úr snjalltæki + Kort Mynd bætt inn í %1$s á Wikidata! Mistókst að uppfæra samsvarandi Wikidata-einindi! Setja sem bakgrunnsmynd @@ -284,13 +319,17 @@ Er í lagi að senda inn þessa skjámynd? Deila forriti Villa við að sækja nálæga staði. + Engir staðir fundust í nágrenninu + Villa við að sækja nálæg minnismerki. Engar nýlegar leitir Ertu viss um að þú viljir eyða leitarferlinum þínum? + Ertu viss um að þú viljir hætta við þessa innsendingu? Viltu eyða þessari leit? Leitarferli eytt Tilnefna til eyðingar Eyða Frammistaða + Notandasnið Tölfræði Mótteknar þakkir Áberandi myndir @@ -315,16 +354,16 @@ Tilkynningar Tilkynningar (lesnar) Birta tilkynningu um nágrenni - Ýttu hér til að sjá nálægasta staðinn sem þarfnast mynda + Birta tilkynningu innan forritsins um nálægasta staðinn sem þarfnast mynda Listi Heimild á gagnageymslu Við þurfum að fá heimild frá þér fyrir aðgang í gagnageymslu tækisins svo hægt sé að senda inn myndir. Þú munt ekki lengur sjá nálægasta staðinn sem þarfnast mynda. Hinsvegar geturðu, ef þú vilt, endurvirkjað þessar tilkynningar í stillingunum. - Skref %1$d af %2$d + Skref %1$d af %2$d: %3$s Næsta Fyrri Senda inn - Skrá með heitinu %1$s er til staðar. Ertu viss um að þú viljir halda áfram? + Skrá með heitinu %1$s er til staðar. Ertu viss um að þú viljir halda áfram?\n\nAthugaðu: Hentugri skráarendingu verður sjálfkrafa bætt við skráarheitið. Ekkert samhæft landakortaforrit fannst á tækinu þínu. Settu kortaforrit til að nýta þennan möguleika. Ljósmyndir Staðsetningar @@ -341,35 +380,79 @@ Sent inn af mér sjálfum %1$s, notað í %2$d grein(um). Velkomin í Commons!\n\nSendu inn fyrstu margmiðlunargögnin þín með því að ýta á viðbætingarhnappinn. Engir flokkar valdir - Myndir án flokka eru sjaldnast nýtilegar. Ertu viss um að þú viljir senda þetta inn án þess að velja flokka? - (fyrir allar myndir í setti) + Myndir án flokka eru sjaldnast nýtilegar. Ertu viss um að þú viljir halda áfram án þess að velja flokka? + Engar myndlýsingar valdar + Myndir með myndlýsingum er auðveldara að finna og eru líklegri til að vera notaðar. Ertu viss um að þú viljir halda áfram án þess að velja myndlýsingar? + Hætta við upphleðslu + Sé ýtt á \"Til baka\"-hnappinn verður hætt við þessa innsendingu og þú munt tapa allri framvindu + Halda áfram með innsendingu + (fyrir allar myndir í setti) Leita á þessu svæði Beiðni um heimild Viltu að við notum núverandi staðsetningu þína til að sjá nálægasta staðinn sem þarfnast mynda? Get ekki birt nálægasta staðinn sem þarfnast mynda án þess að fá heimild til að sjá staðsetningu þína Ekki spyrja þessa aftur - Birta heimild um staðsetningu + Biðja um aðgang að staðsetningu Biðja um heimild til að sjá staðsetningu þegar þess er þörf fyrir tilkynningaspjald um næsta nágrenni. + Eitthvað fór úrskeiðis. Gat ekki sótt frammistöðuna þína + Þú hefur lagt af mörkum svo mörg framlög að frammistöðuútreikningakerfið okkar ræður ekki við þetta. Það myndi teljast vera framúrskarandi frammistaða. Endar þann: Birta herferðir Sjá yfirstandandi herferðir + Þú munt ekki lengur sjá neinar herferðir. Hinsvegar geturðu, ef þú vilt, endurvirkjað þessar tilkynningar í stillingunum. + Þessi aðgerð krefst nettengingar, athugaðu tengistillingarnar þínar. + Villa kom upp við að vinna með myndina. Prófaðu aftur! + Næ í teikn fyrir breytingar + Bæti við sniðmáti fyrir athugun á flokkum + Bið um athugun á flokkum fyrir %1$s + Bið um athugun á flokkum + Bað um athugun á flokkum + Beiðni um athugun á flokkum virkaði ekki + Bað um athugun á flokkum fyrir %1$s + Gat ekki beðið um athugun á flokkum fyrir %1$s + Bið um athugun á flokkum fyrir %1$s Lokið + Sending þakka: Tókst + Tókst að senda þakkir til %1$s + Mistókst að senda þakkir til %1$s + Sending þakka: Mistókst + Sendi þakkir fyrir %1$s + Fylgir þetta reglum varðandi höfundarrétt? Er þetta rétt flokkað? Kemur þetta umfjöllunarefninu við? + Viltu þakka þeim sem lagði þetta fram? + Smelltu á NEI til að tilnefna þessa mynd til eyðingar ef hún er alls ekki nothæf. + Táknmerki, skjámyndir eða kvikmyndaplaköt eru oft brot á höfundarrétti.\nSmelltu á NEI til að tilnefna þessa mynd til eyðingar + %1$s mun fá hvatningu við þakklætisvott frá þér + Ó, þetta er ekki einusinni flokkað! + Þessi mynd er í %1$s flokkum. + Það er utan umfjöllunarefnis því það er Það brýtur á móti höfundarrétti því það er - Já, því ekki - Næsta mynd + Næsta mynd + Já, því ekki + Ef smellt er á þennan hnapp muntu fá aðra nýlega innsenda mynd frá Wikimedia Commons + Þú getur yfirfarið myndir til að bæta gæði Wikimedia Commons.\nÞrjú helstu viðfangsefni yfirferðar eru:\n\n- Tengist þessi mynd umfjöllunarefninu?\nÞegar þú ýtir á Nei (ekki viðkomandi efninu), þá ertu að bæta sniðmáti sem tilnefnir eyðingu á þessa mynd.\n\n-Fylgir þessi mynd reglum um höfundarrétt?\nÞegar þú ýtir á Nei (fylgir ekki reglum um höfundarrétt), þá ertu að bæta sniðmáti sem tilnefnir eyðingu á þessa mynd.\n\n- Er þessi mynd rétt flokkuð?\nÞegar þú ýtir á Nei (ekki rétt flokkuð), þá ertu að bæta sniðmáti sem tilnefnir eyðingu á þessa mynd.\n\nEf allt er í lagi, er engu sniðmáti bætt á myndina og þú færð tækifæri til að þakka þeim sem lagði fram myndina. Enagar myndir notaðar Engar myndir endurstilltar Engar myndir sendar inn Þú ert ekki með neinar ólesnar tilkynningar Þú ert ekki með neinar lesnar tilkynningar + Deila atvikaskrám með Skoða lesnar Skoða ólesið Villa kom upp við að velja myndir Bíddu aðeins… + Áberandi myndir eru myndir frá mjög hæfileikaríkum ljósmyndurum og teiknurum, myndir sem Wikimedia Commons samfélagið hefur valið með tilliti til mestu gæða sem finnast á vefsvæðinu. + Myndir sem sendar eru í gegnum \"Nálægir staðir\" nýtast til að uppgötva staði á landakortinu. + Þessi eiginleiki gerir félögum í ritstjórninni kleift að senda þakkartilkynningar til notenda sem gera nytsamlegar breytingar - með hjálp lítils þakkartengils á síðunum með breytingaferlinum eða mismuninum. + Afrita á myndefni sem fylgir í kjölfarið + Afritað + Dæmi um góðar myndir sem ætti að senda inn á Commons + Dæmi um myndir sem ekki á að senda inn Sleppa þessari mynd + Niðurhal mistókst!! Við getum ekki sótt skrána án heimildar til að nota geymslurými. Sýsla með EXIF-merki + Veldu hvaða EXIF-merkjum á að halda í innsendum skrám Höfundur Höfundarréttur Staðsetning @@ -377,19 +460,217 @@ Tegund linsu Raðnúmer Hugbúnaður + Sendu myndir inn á Wikimedia Commons beint úr símanum þínum. Sæktu Commons-appið núna: %1$s + Deila forriti með... Upplýsingar í mynd Engir flokkar fundust + Engar myndlýsingar fundust Hætt við innsendingu + Það eru engin gögn sem tengjast titli eða lýsingu fyrri myndar + Hvers vegna ætti að eyða %1$s? %1$s er sent inn af: %2$s + Sjálfgefið tungumál lýsingar + Tilnefni til eyðingar Tókst + Tilnefndi %1$s til eyðingar. Mistókst + Gat ekki beðið um eyðingu. Sjálfsmynd Móskuleg Vitleysa + Fréttaljósmynd + Einhver mynd af internetinu Táknmynd Vegna þess að hún er + Reyni að uppfæra flokka. + Uppfærsla á flokki + Tókst + + Flokki %1$s bætt við. + Flokkum %1$s bætt við. + + Gat ekki bætt við flokkum. + Uppfæra flokka + Reyni að uppfæra myndlýsingar. + Breyta myndlýsingum + + Myndlýsingu %1$s bætt við. + Myndlýsingum %1$s bætt við. + + Gat ekki bætt við myndlýsingum. + Reyni að uppfæra hnit. + Uppfærsla hnita + Uppfærsla lýsingar + Uppfærsla skýringatexta + Tókst + Hnitum %1$s er bætt við. + Lýsinguma er bætt við. + Skýringatexta er bætt við. + Gat ekki bætt við hnitum. + Gat ekki bætt við lýsingum. + Gat ekki bætt við skýringatexta. + Gat ekki náð í hnit. + Gat ekki náð í lýsingar. + Breyta lýsingum og skýringatextum Deila mynd með + Engin framlög frá þér ennþá + %s á ennþá engin framlög Aðgangur búinn til! Texti afritaður á klippispjaldið. - Villa hefur komið upp! + Tilkynning merkt sem lesin + Einhver villa hefur komið upp! + Ástand staðar: + Er þegar til + Þarf ljósmynd + Tegund staðar: + Brú, safn, hótel o.s.frv. + Eitthvað fór úrskeiðis varðandi innskráningu, þú þarft að endurstilla lykilorðið þitt !! + GAGNAMIÐLAR + AFLEIDDIR FLOKKAR + YFIRFLOKKAR + Staður í nágrenninu fannst + Er þetta mynd af staðnum %1$s? + Bókamerki + Stillingar + Fjarlægt úr bókamerkjum + Bætt við bókamerki + Eitthvað fór úrskeiðis. Gat ekki stillt bakgrunnsmyndina + Setja sem bakgrunnsmynd + Stilli sem bakgrunnsmynd. Bíddu aðeins… + Fylgja stýrikerfi + Dökkt + Ljóst + Mistókst að opna stillingar á staðsetningu. Kveiktu handvirkt á staðsetningarákvörðun + Best er að velja ham með mikilli nákvæmni. + Kveikja á taðsetningu? + \'Í næsta nágrenni\' krefst þess að staðsetning sé virkjuð + Tókstu þessar tvær myndir á sama stað? Viltu nota breiddar-/lengdargráður myndarinnar til hægri? + Hlaða inn meiru + Engir staðir fundust, prófaðu að breyta leitarskilyrðunum þínum. + Tillögur að endurbótum: + - Bættu flokkum við þessa mynd til að auka notagildi hennar. + - Bættu þessari mynd inn á tengdu Wikipedia-greinina sem ekki er með neinar myndir. + Bæta mynd inn á Wikipedia + Viltu bæta þessari mynd inn í Wikipedia-greinina fyrir tungumálið %1$s? + Staðfesta + Leiðbeiningar + 1. Notaðu eftirfarandi wikitexta: + 2. Smelltu á Staðfesta, það mun opna Wikipedia-greinina + 3. Finndu viðeigandi efnishluta í greininni fyrir myndina þína + 4. Smelltu á Breyta-táknið (blýantinn) fyrir þann efnishluta. + 5. Límdu wikitextann á viðeigandi stað. + 6. Breyttu wikitextanum til að fá viðeigandi staðsetningu, ef þarf. Til að fá nánari upplýsingar geturðu skoðað <a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\">þetta</a>. + 7. Birtu greinina + Afrita wiki-kóða á klippispjald + bið + halda áfram + Í bið + Meira + Bókamerki + Frammistaða + Samantekt + Tign: + Fjöldi: + Tign + Notandi + Fjöldi + Stilla sem auðkennismynd á samantekt + Stilli sem auðkennismynd, bíddu aðeins + Auðkennismynd stillt + Villa kom upp við að stilla auðkennismynd, endilega reyndu aftur + Stilla sem auðkennismynd + Árlega + Vikulega + Allan tímann + Senda inn + Í nágrenninu + Notað + Tign mín + Fjarmælingar Mapbox + Senda nafnlausar upplýsingar um staðsetningu og notkun til Mapbox þegar verið er að nota \'Í næsta nágrenni\'-eiginleikann + &#169; <a href=\"https://www.mapbox.com/about/maps/\">Mapbox</a> &#169; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> <a href=\"https://www.mapbox.com/map-feedback/\">Bæta þetta landakort</a> + Hamur fyrir takmarkaðar tengingar er virkur! + Hamur fyrir takmarkaðar tengingar er óvirkur. Innsendingar í bið munu halda áfram núna. + Hamur fyrir takmarkaðar tengingar + Gæðamyndir + Gæðamyndir eru skýringamyndir eða ljósmyndir sem uppfylla ákveðna gæðastaðla (að mestu leyti tæknilegar kröfur) og sem hafa gildi fyrir verkefni á vegum Wikimedia + Held áfram með innsendingu… + Set innsendingu í bið… + Hætti við innsendingu… + Hætta við upphleðslu + Þú hefur kveikt á ham fyrir takmarkaðar tengingar. Allar innsendingar eru í bið og munu ekki halda áfram fyrr en þú hefur gert þennan ham óvirkan. + Kveikt er á ham fyrir takmarkaðar tengingar. + Skrifaðu stuttan skýringartexta sem lýsir því hvað myndin sýnir. Í lýsingunni skaltu taka fram hvað það er sem gerir myndina áhugaverða, einkennandi eða sérstaka, og útskýrðu samhengi hennar, hvort sem það er sýnilegt eða ekki. Notaðu nakvæm hugtök eftir bestu getu. + Finndu og veldu öll þau hugtök sem myndin sýnir. Vertu eins nákvæm/ur og hægt er. Ef myndin sýnir mörg atriði, skaltu velja þau öll, en þó innan skynsamlegra marka. Ekki velja almenn merki ef sértækari merki eru í boði. + Veldu viðeigandi flokka. Ólíkt myndlýsingum eru heiti flokka aðeins á ensku. + Commons lætur myndirnar þínar vera endurnýtanlegar og aðlaganlegar fyrir allskyns notkun. Myndirðu vilja afsala þér öllum þínum réttindum? Viltu að nafn þitt sem höfundar sé getið? Vilt þú að afleiður myndarinnar noti sama notkunarleyfi? + Er mynd af + Notkunarleyfi gagna + Nánar um gögn + Skoða flokkatré + Skoða síðu atriðis + Tungumál í viðmóti appsins + Fjarlægir skýringatexta og lýsingu + Lesa meira + Á öllum tungumálum + Veldu staðsetningu + Hliðraðu og breyttu aðdrætti til að aðlaga + Hætta í staðsetningarveljara + Veldu staðsetningu + Birta í landakortaforriti + Breyta staðsetningu + Myndræn sýn staðsetningarveljara + \n Skugginn af sýn staðsetningarveljarans + Staðsetning myndar + Athugaðu hvort staðsetning sé rétt + Merking + Lýsing + Atriði + Sérsniðinn veljari + Engar myndir + Lokið + Til baka + Velkomin í sérsniðinn myndaveljara + Þessi veljari birtir þær myndir öðruvísi sem þegar er búið að senda inn í Commons. + Ólíkt myndinni til vinstri, er hægri myndin með Commons-táknmyndina til að sýna að hún hefur þegar verið send inn. \n Ýttu og haltu niðri til að sjá forskoðun á myndinni. + Æðislegt + Þessa mynd er þegar búið að senda inn í Commons. + WLM + Þessi mynd verður send inn í Wiki Loves Monuments 2021 keppnina + Birta minnismerki + Núna er Wiki Loves Monuments mánuðurinn! + KANNA NÁNAR + Wiki Loves Monuments + Wiki Loves Monuments er alþjóðleg ljósmyndasamkeppni um myndir af minnismerkjum sem skipulögð er af Wikimedia + Þarfnast heimildar + 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 + Breyta myndlýsingum + Breyta flokkum + Ítarlegir valkostir + Þú getur sérsniðið fyrirspurnir í \'Næsta nágrenni\'. Ef þú færð upp villur, skaltu endurstilla og virkja. + Virkja + Endurstilla + Hvernig væri að bæta við staðnum þar sem myndin er tekin?\nStaðsetningargögn hjálpa riturum wiki-síðna að finna myndina þína og gera hana þannig mun nytsamlegri.\nNýlegar innsendingar frá þér hafa ekki verið með staðsetningargögn.\nVið hvetjum þig til að kveikja á staðsetningarbúnaðnum í stillingum myndavélarinnar þinnar.\nBestu þakkir fyrir innsendinguna! + Engin staðsetning fannst + Hvernig væri að bæta við staðnum þar sem myndin er tekin?\nStaðsetningargögn hjálpa riturum wiki-síðna að finna myndina þína og gera hana þannig mun nytsamlegri.\nBestu þakkir til þín! + Bæta við staðsetningu + Fjarlægðu úr þessum tölvupósti allar þær upplýsingar sem þér er ekki vel við að deila opinberlega. Hafðu líka í huga að tölvupóstfangið sem þú sendir úr, ásamt tengdu nafni og auðkennismynd, verður sýnilegt opinberlega. + Nánar + Frammistaða er aðeins í boði í vinnsluútgáfunni, skoðaðu nánari upplýsingar í hjálparskjölum þróunaraðila. + Samantektarspjaldið er aðeins í boði í vinnsluútgáfunni (ekki prófunarútgáfum), skoðaðu nánari upplýsingar í hjálparskjölum þróunaraðila. + Sendu aðeins inn myndir sem þú hefur tekið sjálf/ur. Þeir sem senda inn höfundarréttarvarðar myndir verða bannaðir. Þetta á líka við í beta-prófunarútgáfum. Takk annars fyrir að prófa forritið! + Afveldu allar þær upplýsingar sem þér er ekki vel við að deila opinberlega. + Stig API-viðmóts + Android útgáfa + Framleiðandi tækis + Gerð tækis + Heiti tækis + Tegund netkerfis + Takk fyrir umsögnina + Villa við að senda umsögn + Hver er umsögnin þín? + Umsögn þín diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index 0ffcd624b..6c946cf47 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -2,6 +2,7 @@ @@ -34,7 +35,7 @@ ვიკისაწყობი კონფიგურაცია - ატვირთე ვიკისაწყობში + ვიკისაწყობში ატვირთვა მომხმარებლის სახელი პაროლი შესვლა ვიკისაწყობის ბეტა ანგარიშზე diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 2deaf312b..82bd63146 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -7,6 +7,7 @@ * Leduyquang753 * Minh Nguyen * Ngoxuannguyenchuong +* NguoiDungKhongDinhDanh * Nguyễn Mạnh An * Nhatminh01 * Phjtieudoc @@ -214,7 +215,7 @@ Gửi tập tin nhật trình cho nhà phát triển qua thư điện tử Không tìm thấy trình duyệt để mở URL Lỗi! Không tìm thấy URL - Bầu chọn để xóa + Đề nghị xóa Có đề nghị xóa hình này. Bỏ qua Đăng nhập From e47d057bfe728adf2b39ceb1157d79bcc4dbebb6 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 23 May 2022 13:02:08 +0200 Subject: [PATCH 015/960] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-nqo/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/res/values-nqo/strings.xml b/app/src/main/res/values-nqo/strings.xml index e3233bbb4..b6c39de70 100644 --- a/app/src/main/res/values-nqo/strings.xml +++ b/app/src/main/res/values-nqo/strings.xml @@ -474,10 +474,18 @@ ߟߊ߬ߦߟߍ߬ߟߌ ߘߐߛߊ߭ ߦߴߌ ߘߐ߫... ߟߊ߬ߦߟߍ߬ߟߌ ߘߊߓߌ߬ߟߊ߬ ߡߋߘߌߦߊ ߝߊߙߊ߲ߝߊ߯ߛߌ + ߦߌߟߡߊ߫ ߞߐߜߍ ߘߐߜߍ߫ + ߝߌ߬ߛߌ ߞߐߜߍ ߦߋ߫ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߟߊߓߊ߯ߙߊߟߌ ߞߊ߲ ߠߎ߬ ߢߐ߲߯ߕߍߞߣߍ + ߝߍ߬ߛߓߍߟߌ ߣߌ߫ ߞߊ߲߬ߛߓߍߟߌ ߘߏ߫ ߖߏ߬ߛߌ߫ ߘߏ߫ ߜߘߍ߫ ߟߎ߫ ߘߐߞߊ߬ߙߊ߲߬ ߞߊ߲ ߠߎ߬ ߓߍ߯ ߘߐ߫ ߘߌ߲߬ߞߌߙߊ ߘߏ߫ ߛߎߥߊ߲ߘߌ߫ + ߘߌ߲߬ߞߌߙߊ ߓߊߕߐ߬ߡߐ߲߫ + ߊ߬ ߦߌ߬ߘߊ߬ ߔߊ߬ߔߘߊ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߠߊ߫ + ߘߌ߲߬ߞߌߙߊ ߡߊߦߟߍ߬ߡߊ߲߫ + ߖߌ߬ߦߊ߬ߓߍ ߦߋߟߌ ߘߌ߲߬ߞߌߙߊ ߦߋߟߊ߲ ߓߟߏ߫ + ߘߎ߯ߟߋ߲ ߡߍ߲ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߞߊ߲߬߸ ߏ߬ ߦߋߟߌ ߘߌ߲߬ߞߌߙߊ ߦߋߟߊ߲ ߓߟߏ߫ ߖߌ߬ߦߊ߬ߓߍ ߘߌ߲߬ߞߌߙߊ ߊ߬ ߡߊߝߟߍ߫ ߓߊ߫ ߣߌ߫ ߘߌ߲߬ߞߌߙߊ ߓߍ߲߬ߣߍ߲߫ ߞߍ߫ ߘߊ߫ ߞߊ߲߬ߛߓߍߟߌ @@ -495,6 +503,15 @@ ߞߙߍ߬ߝߍ߬ ߔߊߔߘߊ (ߡߊߔߛ) ߡߊ߬ߞߏ ߦߋ߫ ߜߋߟߋ߲ߜߋߟߋ߲ ߞߊ߬ߝߏ ߘߐߞߊ߬ߙߊ߲ ߠߊ߫ ߞߊ߬ ߛߋ߫ ߓߊ߯ߙߊ߫ ߟߴߊ߬ ߢߊߓߘߍ ߡߊ߬ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߓߟߏߡߊߜߍ߲ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ %s: ߟߊ߫ ߞߎ߲߬ߝߊ߰ߟߌ ߟߎ߬ + ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߫ ߞߐߜߍ ߦߋ߫ + ߞߊ߲߬ߛߓߍ߬ߟߌ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ + ߦߌߟߡߊ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ + ߢߣߊߕߊߟߌ ߖߊ߲߬ߝߊ߬ߣߍ߲ + ߊ߬ ߟߥߊߟߌ߫ + ߘߌ߲߬ߞߌ߬ߙߊ߬ ߡߊ߫ ߛߐ߬ߘߐ߲߫ + ߡߎ߲߬ ߟߐ߬ ߕߐ߫ ߦߋ߫ ߖߌ߬ߦߊ߬ߓߍ ߕߊ߬ ߦߙߐ ߝߙߊ߬ߟߌ ߟߊ߫ ߞߏ ߡߊ߬؟ \nߘߌ߲߬ߞߌߙߊ ߓߟߏߡߟߊ ߟߋ߬ ߦߋ߫ ߓߟߏߡߊߜߍ߲ߠߊ ߟߎ߬ ߘߍ߬ߡߍ߲߬ ߠߊ߫ ߞߵߌ ߟߊ߫ ߖߌ߬ߦߊ߬ߓߍ ߟߎ߬ ߢߌߣߌ߲߫߸ ߡߍ߲ ߞߍ߫ ߕߐ߫ ߦߴߊ߬ ߞߍ߫ ߣߝߊ߬ߡߊ ߘߌ߫. \nߌ ߣߌ߫ ߗߋ߫߹ + ߘߌ߲߬ߞߌߙߊ ߝߊ߬ߙߊ߫ + ߝߊߙߊ߲ߝߊ߯ߛߌ ߟߎ߬ ߊ߲ߘߙߏߦߌߘ ߦߌߟߡߊ ߞߍߟߊ߲ ߝߊ߲ߓߏ߲ ߞߍߟߊ߲ ߛߎ߯ߦߊ From 78bfd0986c40a6f35f8083640dd742f0ef82624e Mon Sep 17 00:00:00 2001 From: Ben Mills Date: Tue, 24 May 2022 04:36:06 -0700 Subject: [PATCH 016/960] Content description for UI elements -- accessibility (#4935) * Started from welcome layout to main layout adding content descriptions * Adds UI description section to strings.xml and adds a few content descrpitions * Consolidates UI strings to top of file * fixes nearby typos * Removes content descriptions that clash with pr #4766 * Removes unused elements and reverts out-of-scope changes * Restores pic-of-the-day content description Co-authored-by: joshuamccluskey --- .../layout/fragment_contributions_list.xml | 84 ++++++----- app/src/main/res/layout/nearby_card_view.xml | 27 ++-- .../res/layout/nearby_filter_all_items.xml | 23 +-- .../main/res/layout/nearby_filter_list.xml | 21 +-- .../res/layout/nearby_permission_dialog.xml | 19 +-- app/src/main/res/layout/nearby_row_button.xml | 140 +++++++++--------- .../layout/nearby_search_list_item_dark.xml | 6 +- app/src/main/res/layout/notification_icon.xml | 46 +++--- .../main/res/layout/pic_of_day_app_widget.xml | 30 ++-- .../main/res/layout/popup_for_copyright.xml | 1 + app/src/main/res/layout/question_layout.xml | 16 +- app/src/main/res/layout/row_item_caption.xml | 15 +- .../res/layout/show_captions_descriptions.xml | 8 +- .../res/layout/toolbar_location_picker.xml | 3 +- .../res/layout/upload_categories_fragment.xml | 13 +- .../res/layout/upload_depicts_fragment.xml | 23 +-- app/src/main/res/layout/welcome_final.xml | 124 ++++++++-------- app/src/main/res/values/strings.xml | 31 +++- 18 files changed, 335 insertions(+), 295 deletions(-) diff --git a/app/src/main/res/layout/fragment_contributions_list.xml b/app/src/main/res/layout/fragment_contributions_list.xml index 410c24c82..c68600f38 100644 --- a/app/src/main/res/layout/fragment_contributions_list.xml +++ b/app/src/main/res/layout/fragment_contributions_list.xml @@ -64,52 +64,56 @@ > + android:id="@+id/fab_camera" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="@string/add_contribution_from_camera" + android:tint="@color/button_blue" + android:visibility="gone" + app:backgroundTint="@color/main_background_light" + app:elevation="@dimen/tiny_margin" + app:fabSize="mini" + app:srcCompat="@drawable/ic_photo_camera_white_24dp" + app:useCompatPadding="true" /> + android:id="@+id/fab_gallery" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="@string/add_contribution_from_photos" + android:tint="@color/button_blue" + android:visibility="gone" + app:backgroundTint="@color/main_background_light" + app:elevation="@dimen/tiny_margin" + app:fabSize="mini" + app:srcCompat="@drawable/ic_photo_white_24dp" + app:useCompatPadding="true" /> + android:id="@+id/fab_custom_gallery" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/commons" + android:contentDescription="@string/add_contribution_from_contributions_gallery" + android:tint="@color/button_blue" + android:visibility="gone" + app:backgroundTint="@color/main_background_light" + app:elevation="@dimen/tiny_margin" + app:fabSize="mini" + app:srcCompat="@drawable/ic_custom_image_picker" + app:useCompatPadding="true" /> + android:id="@+id/fab_plus" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="@string/add_new_contribution" + android:gravity="center_vertical" + android:visibility="visible" + app:backgroundTint="@color/status_bar_blue" + app:elevation="@dimen/tiny_margin" + app:srcCompat="@drawable/ic_add_white_24dp" + app:useCompatPadding="true" /> diff --git a/app/src/main/res/layout/nearby_card_view.xml b/app/src/main/res/layout/nearby_card_view.xml index ce301c3b9..c88daa12f 100644 --- a/app/src/main/res/layout/nearby_card_view.xml +++ b/app/src/main/res/layout/nearby_card_view.xml @@ -10,19 +10,20 @@ >