Compare commits

...

78 commits
v6.0.1 ... main

Author SHA1 Message Date
Ritika Pahwa
63f621cb56
Update contributor list in README.md
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-26 14:10:08 +05:30
Eric Pan
e81f916626
Part of issue #5996: Fix IDE warnings in ContributionsListFragment (#6542)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* Part of issue #5996: Fix IDE warnings in ContributionsListFragment (naming, null-safety, deprecations)

* Part of issue #5996: Clean final IDE warnings (parameter name alignment, remove redundant toggle)

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-26 08:30:17 +09:00
Ted
28fa7b1a20
Display specific, user-friendly error message when upload categories search API call returns an error (#6540)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* Make OkHttpConnectionFactory raise MwIOException when a non-suppressed API call returns an error

* Add AlertDialog displaying specific error message when categories search API call returns an error

* Add test for error alert dialog to UploadCategoriesFragment unit tests

* Add error handling when API call fails to CategoriesPresenter.onAttachViewWithMedia
2025-10-25 23:24:39 +09:00
translatewiki.net
aae9d4a387
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-10-23 14:02:44 +02:00
Amir E. Aharoni
6873f63cf8
Remove an unused element from layout/fragment_media_detail.xml (#6536)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
I noticed this issue years ago because it used a hard-to-understand
string that needed better documentation (see #688). I forgot it,
but recently, I started to explore the app much more deeply and
came back to it.

It looks like this string is only used in this layout element,
but the element itself is not used anywhere. It usage appears to
have been removed in #634.
2025-10-23 09:41:32 +09:00
Ritika Pahwa
2d0255e5fb
Disable hardware acceleration and keyboard animation (#6535)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* Disable hardware acceleration and keyboard animation

This is a temporary commit to see if it fixes issue #3364

* Remove unused import

* Bump up version code and modify version name

* Modify handleKeyboardInsets to handle insets correctly

* Refactor handleKeyboardInsets()

* Refactor handleKeyboardInsets()

* Fix inset in login activity
2025-10-22 16:44:06 +05:30
translatewiki.net
32ae406cca
Localisation updates from https://translatewiki.net.
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-22 10:23:13 +02:00
translatewiki.net
3e04a1f036
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-10-20 14:02:26 +02:00
translatewiki.net
6487191394
Localisation updates from https://translatewiki.net.
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-20 06:29:31 +02:00
Amir E. Aharoni
beaf211f39
Fix three Java lint errors (#6531)
* Add braces to conditions.
* Remove an unnecessary semicolon.
* Remove an unnecessary constructor.

This fixes all the Java lint errors of these types.
2025-10-20 10:39:05 +09:00
Amir E. Aharoni
3549789cdf
Delete outdated localization files (#6533)
Strings files for he, id, yi were replaced with iw, in, and ji in 2016.
Those files cause build warnings, and they aren't used,
so it's OK to just remove them.
2025-10-20 10:18:13 +09:00
VoidRaven
def33552f9
Test/2819 add campaigns api tests (#6529)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* test:add mock JSON resource files for campaigns API responses

* feat:make campaign model fields mutable to allow for correct deserialization

* test:implement unit tests for fetching campaigns and fix DTO mocking logic

* test:implement unit tests for fetching campaigns and fix DTO mocking logic

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-19 22:58:14 +09:00
Amir E. Aharoni
3a55583460
Disable linting for icon hiding code in preferences (#6519)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-10-18 13:51:46 +09:00
Amir E. Aharoni
717a855149
Fix lint warning about Timber (#6521)
Change trivial string formatting and function calls
for Timber logging.

This resolves all the lint warnings in the
Android/Lint/Correctness/Messages group.
2025-10-18 13:45:35 +09:00
Amir E. Aharoni
29b6d0f8fe
Replace Switch with SwitchMaterial (#6522)
Lint recommended replacing Switch with SwitchMaterial.
This was a very simple replacement, and I tested it in
the custom selector, where it is used, and it works as
it worked previously.
2025-10-18 13:43:37 +09:00
Xinyu Yang
b5b5d8a8e4
I didn’t look at the code carefully before and directly modified the contents of strings.xml. After reviewing it, I found that the issue was actually in WikidataItemDetailsActivity.kt, where the wrong label was selected. After correcting this, there should no longer be any problems. (#6524)
Co-authored-by: frank <u7896083@anu.edu.au>
2025-10-18 11:31:49 +09:00
Aneesh Hebbar
714e5f8a4b
fix(i18n): Correct capitalization for 'Sending thanks' status messages (#6515) (#6518)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-17 11:40:48 +09:00
Dmitriy
7d96e94689
Fix crash for bookmarks without descriptions/thumbnails (#6488)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-16 19:56:41 +09:00
Xinyu Yang
7a865df909
fix the bug of map reset (#6509)
Co-authored-by: Chengxu Yang <u7954427@anu.edu.au>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-16 19:34:17 +09:00
Amir E. Aharoni
864884e7b2
Update alternative texts for the welcome screen (#6512)
* Update alternative texts for the welcome screen

I've also updated their documentation for translators (qq)
in transltaewiki itself.

Resolves #689.

* Fixed typo

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-16 19:22:02 +09:00
Amir E. Aharoni
1ecaf09f21
Remove wikimedia_licenses.xml and files that use it (#6513)
This file doesn't seem to be used.

Resolves #6504.
2025-10-16 19:20:18 +09:00
Amir E. Aharoni
1ff2a28326
Replace tab with space in an XML layout file (#6514)
I was working on this file recently, and Android Studio
showed a warning that it has tabs instead of spaces,
so here's it's fixed.

A minor thing, but prevents distractions.
2025-10-16 19:19:30 +09:00
Amir E. Aharoni
b48905a153
Change all parameters to numbered parameters (#6516)
This will solve these errors:
"Format string is not a valid format string so it should not be passed to String.format"
2025-10-16 19:19:02 +09:00
Amir E. Aharoni
09c8d987e1
Simplify android:gravity in two layouts (#6506)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
The "Inspect Code" linter complained that these two files
had Right-to-left text compatibility issues. I couldn't
really see any problems neither in English nor in Hebrew,
but the linter's suggestion still made sense, so I cleaned it up.

This fixes all the errors of the type
"Android Lint: Internationalization / Right-to-left text compatibility issues".
2025-10-15 13:52:05 +09:00
Amir E. Aharoni
2e52adbef8
Clean up empty tags in XML files (#6505)
This resolves all the "XML empty tags" lint errors.
2025-10-15 07:37:17 +09:00
Amir E. Aharoni
61c9de6fcc
Add a missing comma to a message (#6477)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
There should be a comma before "etc." in a list,
and there already is a comma before "etc."
in the string depicts_search_text_hint, so it should be
in this string to for consistency.
2025-10-14 21:42:09 +09:00
Amir E. Aharoni
41d95814c9
Remove the string SingleWebViewActivity (#6494)
Resolves issue #6492.

Remove the title of a web activity and the accompanying
string resource.

This was not a real translatable message, but something that
looks more like an identifier that shouldn't be translated.
As far as I can tell, it's not seen anywhere in the interface
because the actual title is set in the code that calls it.
2025-10-14 21:41:31 +09:00
Amir E. Aharoni
c4cb65fc3c
Improve the grammar of messages about GPX and KML files (#6497)
Add articles, fix capitalization, add ellipses.
2025-10-14 21:40:38 +09:00
Amir E. Aharoni
a1c5974e93
Fix depicts and categories pickers for RTL languages (#6503)
This fixes the layouts to work in both left to right (LTR)
and right to left (RTL) languages.

Also replace two hard-coded strings in the depicts picker
with proper string resources.

Fixes #6502.
2025-10-14 17:54:54 +09:00
Amir E. Aharoni
0c244f369c
Replace android.R.string.* with R.string (#6499)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
All these messages are not really necessary because
the app has its own localizations, and android.R.string
sometimes doesn't display the localized string.

Resolves #6470.
2025-10-13 21:54:32 +09:00
translatewiki.net
b6014b017c
Localisation updates from https://translatewiki.net. 2025-10-13 14:03:10 +02:00
Amir E. Aharoni
91ea4a6e7b
Rephrase images_featured_explanation (#6484)
Make the text of the panel consistent with its title.
The title is "Featured images", so the text should
use the same term.

Also move this resource next to the title, to make it easier
for the translators.
2025-10-13 18:43:59 +09:00
Amir E. Aharoni
1e51c4c5d0
Remove the arrow next to "Add location" (#6491)
This resolves #6489 using the "remove arrow" method.
2025-10-13 18:13:22 +09:00
Amir E. Aharoni
fbd28a0564
Change capitalization of "Add Location" (#6493)
This makes it consistent with "Edit Location" and
"Edit Image", which are used in the same screen.
2025-10-13 18:09:43 +09:00
Amir E. Aharoni
d0965206cd
Cleanup whitespace in the custom_selector_info_text2 string (#6496)
In the current state, it appears confusingly on translatewiki,
with a space in the beginning of a line.

This patch changes it to just two linebreaks.
2025-10-13 18:05:26 +09:00
Amir E. Aharoni
bb330c1771
Change "actioned" to "handled" in translatable strings (#6498)
"actioned" is not so standard in English as a verb.

"handled" sounds more appropriate.
2025-10-13 17:57:27 +09:00
Rohit Verma
14d6c80241
fix: remove location manager and update listener on pause (#6483)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-11 23:33:44 +09:00
VoidRaven
4c621364c9
Fix/6404 app crashes theme change multi upload (#6429)
* Prevent IndexOutOfBoundsException in setUploadMediaDetails by validating index and list size (#6404)

* fixed UninitializedPropertyAccessException by safely initializing and accessing imageAdapter (#6404)

* fixed indexOutOfBoundsException by safely handling saved state and index in onViewCreated (#6404)

* resolve Unresolved reference by replacing setImageToBeUploaded with direct field assignments (#6404)

* Fix test compilation by removing obsolete testSetImageToBeUploaded and adding tha testInitializeFragmentWithUploadItem (#6404)

* Fix test compilation by removing testInitializeFragmentWithUploadItem with unresolved onImageProcessed (#6404)

* fix: test failures in UploadMediaDetailFragmentUnitTest by removing obsolete tests and initializing defaultKvStore (#6404)

* Fixed all the typos

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-11 21:38:07 +09:00
Amir E. Aharoni
2a9d5db51e
Consistent spelling of "screenshots" in the issue template (#6481)
"Screenshot" is written as one word without a hyphen everywhere
else in this app's code, and generally in the English language.
2025-10-11 21:33:54 +09:00
Amir E. Aharoni
b8d340fbe8
Rephrase the string copy_image_caption_description (#6472)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
I was going over all the strings and documenting them (see #6457),
and I had a very hard time understand what this message does.
I read the code and finally figured it out. I added qq documentation
for it so now it's clearer, but I also think that the English
message can be clearer:
* "subsequent" changed to "the next" - shorter, easier word.
* "media" changed to "item" - "media" could mean a lot of things,
  and "item" is clearer in this context.
2025-10-11 14:54:40 +09:00
Amir E. Aharoni
dd1814c793
Change filename to username in toasts about sending thanks (#6467)
This fixes #6466.

Also fix the messages themselves a bit:
* Removed "successfully" from the success message. This word
  is usually redundant, because the message already says that it
  was done. (In MediaWiki, there's a specific convention about it:
  https://www.mediawiki.org/wiki/Help:System_message#Avoid_jargon_and_slanghttps://www.mediawiki.org/wiki/Help:System_message#Avoid_jargon_and_slang
)
* Added a missing preposition to the failure message.

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-11 14:53:57 +09:00
VoidRaven
adb6181e9f
fix: map crash (fixes #6432) (#6479)
* fix: map crash (fixes #6432)

* Fix typos in comments in ExploreMapFragment.kt

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-11 14:38:07 +09:00
Jason-Whitmore
0a4b179db5
Fixes Issue 6436: getString(...) must not be null (#6474)
* DatabaseUtils.kt: change getString() to allow null returns

Before this change, a call to getString() would assume that the specified column
name actually exists. A bad String input would cause a null value to be returned
to getString(), which would then throw a NPE because getString() can only return
non null Strings.

This change expands the getString() method to check if the column name exists.
If it does exist, the String is retrieved normally. Else, a null value is
returned. The method signature is changed to allow null return values.

* *Dao.kt: change some usages of getString()

Before this change, the getString() method in DatabaseUtils.kt was changed
to allow returning a null value upon method failure. All usages of getString()
were not changed.

This change updates all usages of getString() which require non null return
values. If null is returned, an empty string is used instead.

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-11 14:12:19 +09:00
Amir E. Aharoni
e78db7fa08
Remove the unused message "statistics" (#6478)
Its usage was removed from the file
app/src/main/res/layout/fragment_achievements.xml in a8387f0,
but the message remained in the strings file.

Resolves #6456.
2025-10-11 13:58:19 +09:00
Amir E. Aharoni
7be615bacb
Fix comma splice in a translatable string (#6465)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-10 23:46:17 +09:00
Amir E. Aharoni
95d58023c7
Fix punctuation in the string download_failed_we_cannot_download_the_file_without_storage_permission (#6473)
The double exclamation point is really unnecessary.
2025-10-10 23:26:30 +09:00
Amir E. Aharoni
7b8fbc239b
Remove commented out code and associated strings (#6475)
As I was documenting undocumented strings (see #6457), I noticed
that two messages are only used once in a few lines of code that
were commented out in 2023.

To clean up the messages, I am removing them from the strings
list and deleting the commented-out code.
2025-10-10 23:25:46 +09:00
Amir E. Aharoni
30d1107cef
Change "wikicode" to "wikitext" in a message (#6476)
The usual English term is "wikitext". "Wikicode" is used in French
and perhaps some other language, but English uses "wikitext".
2025-10-10 23:05:19 +09:00
Amir E. Aharoni
fe16c44caa
Change Android "OK" string to app's own localization (#6471)
Addressed one instance described in #6470.
2025-10-10 22:40:00 +10:00
translatewiki.net
4ed9ad5085
Localisation updates from https://translatewiki.net.
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-09 14:02:46 +02:00
Amir E. Aharoni
755d8311dc
Make some hardcoded strings translatable (#6459)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-10-09 10:07:19 +09:00
Amir E. Aharoni
b6457cc6b9
Rename an identifier with a non-ASCII character (#6460)
Android Studio reported that there's an identifier
with a non-ASCII letter. It was nearbyFılterStateInstance,
with a Turkish dotless i. I renamed to ASCII dotted i.

This brings the number of Internationalization
issues in Inspect Code to zero.
2025-10-09 10:06:23 +09:00
Rohit Verma
2d51a7ce9a
chore: upgrade native libraries for 16KB page size compatibility (#6445)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* chore: bump maplibre-native for 16KB page size compatibility

Also, bump AGP

* chore: bump freso for 16KB page size compatibility and fix build issues

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
Co-authored-by: Ritika Pahwa <83745993+RitikaPahwa4444@users.noreply.github.com>
2025-10-08 23:25:20 +09:00
Amir E. Aharoni
0ade0705e2
Remove leading space from English messages (#6449)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-10-06 08:23:00 +09:00
Ben
6bc25ccd9b
Fix kotling warnings for Image.kt and Folder.kt (part of Issue #5996) (#6441)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* added hash code to folder.kt and image.kt to pair with equals

* fixed deprecation in readParcelable function

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-10-05 22:15:39 +09:00
Amir E. Aharoni
ed7007fc8c
Change a hardcoded string to a translatable message (#6444)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
Follow-up to #6443. Noticed this one after that pull request
was already merged.
2025-10-04 14:10:00 +09:00
Amir E. Aharoni
71ad6a2ce5
Change hardcoded preferences strings to translatable messages (#6443) 2025-10-04 10:43:54 +09:00
Amir E. Aharoni
e9a1af0f52
Change hardcoded strings in the language search dialog to messages (#6440)
Another comment: While working on this, I also noticed that
"Recent Searches" is hardcoded in the XML file, and
I'm not sure where does it actually appear. I fixed it, too,
but perhaps it can be completely removed.

Fixes #6439.
2025-10-04 10:43:10 +09:00
translatewiki.net
10c384ffa7
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-10-02 14:02:46 +02:00
VoidRaven
4e51977fb6
Fix Location Permission Prompt on "Uploaded via Mobile" Tab (#6425)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* Added location prompt at Map screen

* Update menu visibility logic to reflect Map tab selection

* Fix location prompt by deferring permission request to Map tab visibility

* Fix: Restrict location permission prompt to Map tab in Explore section
2025-10-02 09:44:37 +09:00
translatewiki.net
d632c268ae
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-29 14:02:35 +02:00
translatewiki.net
be371e5236
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-25 14:03:06 +02:00
Rickey H.
25d3068faf
added padding inset for mapview (#6427)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-09-24 23:18:02 +09:00
translatewiki.net
179c7c1855
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-18 14:02:55 +02:00
translatewiki.net
8018000584
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-15 14:02:29 +02:00
VoidRaven
657af4fe04
Fix #6409: Add listener call in ImageAdapter to update UI and upload (#6420)
* Fix #6409: Add listener call in ImageAdapter to update UI and upload button on deselection

* Fix image deselection issue in ImageAdapter to update UI correctly (#6409)

* Prevent duplicate image selections on multiple taps in ImageAdapter when showAlreadyActionedImages is off (#6409)

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-09-15 18:14:59 +09:00
translatewiki.net
219fcd3dd8
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-11 14:02:52 +02:00
LeopoldoDelgadillo
2e9726b84f
Added VISIBLE flag to descriptionEdit inside onResume function at MediaDetailFragment.kt (#6421)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-09-10 22:56:26 +09:00
translatewiki.net
64c6b0c8d0
Localisation updates from https://translatewiki.net.
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-08 14:01:58 +02:00
Ritika Pahwa
fcc63b9f09 Add v6.0.2 to CHANGELOG.md
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-09-07 13:13:46 +05:30
Ritika Pahwa
a283ffe2bc Bump up version code and name for the patch release (v6.0.2) 2025-09-07 13:05:55 +05:30
Rohit Verma
2811b181b7
Fix: enable H/W acceleration for UploadActivity to resolve keyboard not showing on Upload Screen (#6418)
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
* fix: enable h/w acceleration for UploadActivity to resolve ime issue

* fix(upload): handle keyboard insets for bottom buttons at Depicts step

* fix(upload): handle keyboard insets for buttons at select category step

* fix(upload): hide keyboard before navigating to Media License screen

This solves keyboard opened at the License screen issue, if we proceed by pressing next at the Upload Categories screen when the keyboard is opened
2025-09-07 00:35:47 +05:30
Jason-Whitmore
730f314200
Fixes Issue #6384: java.lang.NullPointerException in ReviewActivity (#6394)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
* activity_review.xml: add new GUI elements to replace old ones

Before this commit, the info icon shared the same GUI element with the "Skip this image" text.
This made the Kotlin code to handle taps on the info icon difficult to write, and would crash
with a NPE when the user used a language that is read right to left and the info icon was pressed.

This commit creates new GUI elements. Notably, the info icon has it's own element. A LinearLayout
is used to place the skip button and the info icon button together. Kotlin code can now be
simplified and the NPE bug can be fixed.

* ReviewActivity.kt: simplify info icon code to work with some languages

Before this commit, if the language was set to a language that is read right to left,
pressing the info icon would crash the app with a NPE. This was because the Kotlin
code assumed that the icon would always be on the right of the skip button
(index 2 in the drawable array). When a right to left language was used, the icon
would be on the left and index 2 would be null.

This commit builds upon prior GUI changes. The info icon now has its own button.
Kotlin changes now remove the use of the drawable array to find the info icon and
instead directly references the new info icon button. The info icon button now works
properly for both left-to-right and right-to-left languages while maintaining correct
positioning.

* activity_review.xml: fix xml to be more readable

This commit moves around some lines in the XML to make it more readable.

* activity_review.xml: change button configuration

This change simplifies the button configuration XML and makes the info icon button slightly smaller

---------

Co-authored-by: Ritika Pahwa <83745993+RitikaPahwa4444@users.noreply.github.com>
Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-09-05 15:36:47 +09:00
translatewiki.net
81da5c9a1a
Localisation updates from https://translatewiki.net.
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-09-04 14:02:19 +02:00
VoidRaven
a59bf64677
Added the wiki prefix to titles in GlobalFileUsage for issue #6416 (#6417) 2025-09-04 19:47:53 +09:00
VoidRaven
e2c8f85a5b
Make "File usages" items clickable with correct URLs #6307 (#6405)
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
* Fix: URL generation for GlobalFileUsage in FileUsagesUiModel.kt for issue #6307

* Add clickable functionality to 'Usages on Other Wikis' in FileUsagesContainer for issue #6307

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
2025-09-02 17:03:28 +09:00
translatewiki.net
dd96c64182
Localisation updates from https://translatewiki.net.
Some checks are pending
Android CI / Run tests and generate APK (push) Waiting to run
2025-09-01 14:02:53 +02:00
Ritika Pahwa
9ba702eaa9
Add v6.0.1 to CHANGELOG.md
Some checks failed
Android CI / Run tests and generate APK (push) Has been cancelled
2025-08-30 12:41:52 +05:30
220 changed files with 5628 additions and 3923 deletions

View file

@ -70,7 +70,7 @@ body:
required: false
- type: textarea
attributes:
label: Screen-shots
label: Screenshots
description: Add screenshots related to the issue (if available). Can be created by pressing the Volume Down and Power Button at the same time on Android 4.0 and higher.
validations:
required: false

View file

@ -1,5 +1,20 @@
# Wikimedia Commons for Android
## v6.0.2
### What's changed
* Addressed a bug that prevented the keyboard from appearing in various text fields, such as on the upload wizard
* Links in the "File usages" list are now clickable and will take you to the correct page.
* Titles for file usages are now clearer and easier to understand
* Bug fixes and stability improvements
## v6.0.1
### What's changed
* The app now supports Android 15 with an improved user interface
* Enhanced Nearby with robust and more reliable labels
* Bug fixes and stability improvements
## v5.6.1
### What's changed

View file

@ -29,11 +29,12 @@ Thank you all for your work!
| [<img src="https://avatars.githubusercontent.com/u/3611199?v=4" width="100px;"/><br /><sub><b>misaochan</b></sub>](https://github.com/misaochan) | [<img src="https://avatars.githubusercontent.com/u/24829418?v=4" width="100px;"/><br /><sub><b>translatewiki</b></sub>](https://github.com/translatewiki) | [<img src="https://avatars.githubusercontent.com/u/3127881?v=4" width="100px;"/><br /><sub><b>neslihanturan</b></sub>](https://github.com/neslihanturan) | [<img src="https://avatars.githubusercontent.com/u/30430?v=4" width="100px;"/><br /><sub><b>yuvipanda</b></sub>](https://github.com/yuvipanda) | [<img src="https://avatars.githubusercontent.com/u/99590?v=4" width="100px;"/><br /><sub><b>nicolas-raoul</b></sub>](https://github.com/nicolas-raoul) |
| :---: | :---: | :---: | :---: | :---: |
| [<img src="https://avatars.githubusercontent.com/u/4953590?v=4" width="100px;"/><br /><sub><b>domdomegg</b></sub>](https://github.com/domdomegg) | [<img src="https://avatars.githubusercontent.com/u/3069373?v=4" width="100px;"/><br /><sub><b>maskaravivek</b></sub>](https://github.com/maskaravivek) | [<img src="https://avatars.githubusercontent.com/u/407647?v=4" width="100px;"/><br /><sub><b>psh</b></sub>](https://github.com/psh) | [<img src="https://avatars.githubusercontent.com/u/30932899?v=4" width="100px;"/><br /><sub><b>madhurgupta10</b></sub>](https://github.com/madhurgupta10) | [<img src="https://avatars.githubusercontent.com/u/17375274?v=4" width="100px;"/><br /><sub><b>ashishkumar468</b></sub>](https://github.com/ashishkumar468) |
| [<img src="https://avatars.githubusercontent.com/u/103075?v=4" width="100px;"/><br /><sub><b>bvibber</b></sub>](https://github.com/bvibber) | [<img src="https://avatars.githubusercontent.com/u/10674?v=4" width="100px;"/><br /><sub><b>whym</b></sub>](https://github.com/whym) | [<img src="https://avatars.githubusercontent.com/u/10153800?v=4" width="100px;"/><br /><sub><b>akaita</b></sub>](https://github.com/akaita) | [<img src="https://avatars.githubusercontent.com/u/6900601?v=4" width="100px;"/><br /><sub><b>veyndan</b></sub>](https://github.com/veyndan) | [<img src="https://avatars.githubusercontent.com/u/19607555?v=4" width="100px;"/><br /><sub><b>ujjwalagrawal17</b></sub>](https://github.com/ujjwalagrawal17) |
| [<img src="https://avatars.githubusercontent.com/u/3358282?v=4" width="100px;"/><br /><sub><b>macgills</b></sub>](https://github.com/macgills) | [<img src="https://avatars.githubusercontent.com/u/1682214?v=4" width="100px;"/><br /><sub><b>dbrant</b></sub>](https://github.com/dbrant) | [<img src="https://avatars.githubusercontent.com/u/34261945?v=4" width="100px;"/><br /><sub><b>vanshikaarora</b></sub>](https://github.com/vanshikaarora) | [<img src="https://avatars.githubusercontent.com/u/12448084?v=4" width="100px;"/><br /><sub><b>sivaraam</b></sub>](https://github.com/sivaraam) | [<img src="https://avatars.githubusercontent.com/u/71203077?v=4" width="100px;"/><br /><sub><b>Ayan-10</b></sub>](https://github.com/Ayan-10) |
| [<img src="https://avatars.githubusercontent.com/u/126143257?v=4" width="100px;"/><br /><sub><b>shashankiitbhu</b></sub>](https://github.com/shashankiitbhu) | [<img src="https://avatars.githubusercontent.com/u/54663429?v=4" width="100px;"/><br /><sub><b>Pratham2305</b></sub>](https://github.com/Pratham2305) | [<img src="https://avatars.githubusercontent.com/u/1345681?v=4" width="100px;"/><br /><sub><b>sandarumk</b></sub>](https://github.com/sandarumk) | [<img src="https://avatars.githubusercontent.com/u/29161745?v=4" width="100px;"/><br /><sub><b>tanvidadu</b></sub>](https://github.com/tanvidadu) | [<img src="https://avatars.githubusercontent.com/u/39745544?v=4" width="100px;"/><br /><sub><b>cypherop</b></sub>](https://github.com/cypherop) |
| [<img src="https://avatars.githubusercontent.com/u/65972015?v=4" width="100px;"/><br /><sub><b>Prince-kushwaha</b></sub>](https://github.com/Prince-kushwaha) | [<img src="https://avatars.githubusercontent.com/u/6953323?v=4" width="100px;"/><br /><sub><b>tobias47n9e</b></sub>](https://github.com/tobias47n9e) | [<img src="https://avatars.githubusercontent.com/u/54016427?v=4" width="100px;"/><br /><sub><b>4D17Y4</b></sub>](https://github.com/4D17Y4) | [<img src="https://avatars.githubusercontent.com/u/25305892?v=4" width="100px;"/><br /><sub><b>hismaeel</b></sub>](https://github.com/hismaeel) | [<img src="https://avatars.githubusercontent.com/u/12574756?v=4" width="100px;"/><br /><sub><b>tshradheya</b></sub>](https://github.com/tshradheya) |
| [<img src="https://avatars.githubusercontent.com/u/407647?v=4" width="100px;"/><br /><sub><b>psh</b></sub>](https://github.com/psh) | [<img src="https://avatars.githubusercontent.com/u/4953590?v=4" width="100px;"/><br /><sub><b>domdomegg</b></sub>](https://github.com/domdomegg) | [<img src="https://avatars.githubusercontent.com/u/3069373?v=4" width="100px;"/><br /><sub><b>maskaravivek</b></sub>](https://github.com/maskaravivek) | [<img src="https://avatars.githubusercontent.com/u/30932899?v=4" width="100px;"/><br /><sub><b>madhurgupta10</b></sub>](https://github.com/madhurgupta10) | [<img src="https://avatars.githubusercontent.com/u/17375274?v=4" width="100px;"/><br /><sub><b>ashishkumar468</b></sub>](https://github.com/ashishkumar468) |
| [<img src="https://avatars.githubusercontent.com/u/103075?v=4" width="100px;"/><br /><sub><b>bvibber</b></sub>](https://github.com/bvibber) | [<img src="https://avatars.githubusercontent.com/u/10674?v=4" width="100px;"/><br /><sub><b>whym</b></sub>](https://github.com/whym) | [<img src="https://avatars.githubusercontent.com/u/10153800?v=4" width="100px;"/><br /><sub><b>akaita</b></sub>](https://github.com/akaita) | [<img src="https://avatars.githubusercontent.com/u/12448084?v=4" width="100px;"/><br /><sub><b>sivaraam</b></sub>](https://github.com/sivaraam) | [<img src="https://avatars.githubusercontent.com/u/6900601?v=4" width="100px;"/><br /><sub><b>veyndan</b></sub>](https://github.com/veyndan) |
| [<img src="https://avatars.githubusercontent.com/u/19607555?v=4" width="100px;"/><br /><sub><b>ujjwalagrawal17</b></sub>](https://github.com/ujjwalagrawal17) | [<img src="https://avatars.githubusercontent.com/u/3358282?v=4" width="100px;"/><br /><sub><b>macgills</b></sub>](https://github.com/macgills) | [<img src="https://avatars.githubusercontent.com/u/346271?v=4" width="100px;"/><br /><sub><b>amire80</b></sub>](https://github.com/amire80) | [<img src="https://avatars.githubusercontent.com/u/1682214?v=4" width="100px;"/><br /><sub><b>dbrant</b></sub>](https://github.com/dbrant) | [<img src="https://avatars.githubusercontent.com/u/34261945?v=4" width="100px;"/><br /><sub><b>vanshikaarora</b></sub>](https://github.com/vanshikaarora) |
| [<img src="https://avatars.githubusercontent.com/u/83745993?v=4" width="100px;"/><br /><sub><b>RitikaPahwa4444</b></sub>](https://github.com/RitikaPahwa4444) | [<img src="https://avatars.githubusercontent.com/u/71203077?v=4" width="100px;"/><br /><sub><b>Ayan-10</b></sub>](https://github.com/Ayan-10) | [<img src="https://avatars.githubusercontent.com/u/101377978?v=4" width="100px;"/><br /><sub><b>rohit9625</b></sub>](https://github.com/rohit9625) | [<img src="https://avatars.githubusercontent.com/u/126143257?v=4" width="100px;"/><br /><sub><b>shashankiitbhu</b></sub>](https://github.com/shashankiitbhu) | [<img src="https://avatars.githubusercontent.com/u/54663429?v=4" width="100px;"/><br /><sub><b>Pratham2305</b></sub>](https://github.com/Pratham2305) |
| [<img src="https://avatars.githubusercontent.com/u/111801812?v=4" width="100px;"/><br /><sub><b>parneet-guraya</b></sub>](https://github.com/parneet-guraya) | [<img src="https://avatars.githubusercontent.com/u/1345681?v=4" width="100px;"/><br /><sub><b>sandarumk</b></sub>](https://github.com/sandarumk) | [<img src="https://avatars.githubusercontent.com/u/29161745?v=4" width="100px;"/><br /><sub><b>tanvidadu</b></sub>](https://github.com/tanvidadu) | [<img src="https://avatars.githubusercontent.com/u/39745544?v=4" width="100px;"/><br /><sub><b>cypherop</b></sub>](https://github.com/cypherop) | [<img src="https://avatars.githubusercontent.com/u/65972015?v=4" width="100px;"/><br /><sub><b>Prince-kushwaha</b></sub>](https://github.com/Prince-kushwaha) |
.. and [many more](https://github.com/commons-app/apps-android-commons/graphs/contributors).

View file

@ -24,8 +24,8 @@ android {
applicationId = "fr.free.nrw.commons"
minSdk = 21
targetSdk = 35
versionCode = 1057
versionName = "6.0.1"
versionCode = 1059
versionName = "6.1.0"
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@ -226,6 +226,7 @@ dependencies {
implementation(libs.rxbinding)
implementation(libs.rxbinding.appcompat)
implementation(libs.facebook.fresco)
implementation(libs.facebook.fresco.middleware)
implementation(libs.apache.commons.lang3)
// UI

View file

@ -57,8 +57,7 @@
tools:replace="android:appComponentFactory">
<activity
android:name=".activity.SingleWebViewActivity"
android:exported="false"
android:label="@string/title_activity_single_web_view" />
android:exported="false" />
<activity
android:name=".nearby.WikidataFeedback"
android:exported="false" />
@ -85,6 +84,7 @@
android:parentActivityName=".customselector.ui.selector.CustomSelectorActivity" />
<activity
android:name=".auth.LoginActivity"
android:windowSoftInputMode="adjustPan"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
@ -103,7 +103,7 @@
android:exported="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:windowSoftInputMode="adjustResize">
android:windowSoftInputMode="adjustPan">
<intent-filter android:label="@string/intent_share_upload_label">
<action android:name="android.intent.action.SEND" />

View file

@ -1,7 +1,11 @@
package fr.free.nrw.commons
import androidx.annotation.VisibleForTesting
import fr.free.nrw.commons.wikidata.GsonUtil
import fr.free.nrw.commons.wikidata.cookies.CommonsCookieJar
import fr.free.nrw.commons.wikidata.mwapi.MwErrorResponse
import fr.free.nrw.commons.wikidata.mwapi.MwIOException
import fr.free.nrw.commons.wikidata.mwapi.MwLegacyServiceError
import okhttp3.Cache
import okhttp3.Interceptor
import okhttp3.OkHttpClient
@ -86,16 +90,25 @@ private class UnsuccessfulResponseInterceptor : Interceptor {
rsp.peekBody(ERRORS_PREFIX.length.toLong()).use { responseBody ->
if (ERRORS_PREFIX == responseBody.string()) {
rsp.body.use { body ->
throw IOException(body!!.string())
val bodyString = body!!.string()
throw MwIOException(
"MediaWiki API returned error: $bodyString",
GsonUtil.defaultGson.fromJson(
bodyString,
MwErrorResponse::class.java
).error!!,
)
}
}
}
} catch (e: IOException) {
} catch (e: MwIOException) {
// Log the error as debug (and therefore, "expected") or at error level
if (suppressErrors) {
Timber.d(e, "Suppressed (known / expected) error")
} else {
Timber.e(e)
throw e
}
}
return rsp

View file

@ -89,7 +89,7 @@ class LoginActivity : AccountAuthenticatorActivity() {
binding = ActivityLoginBinding.inflate(layoutInflater)
applyEdgeToEdgeAllInsets(binding!!.root)
binding?.aboutPrivacyPolicy?.handleKeyboardInsets()
binding!!.root.handleKeyboardInsets()
with(binding!!) {
setContentView(root)

View file

@ -144,8 +144,18 @@ class BookmarkItemsDao @Inject constructor(
*/
@SuppressLint("Range")
fun fromCursor(cursor: Cursor) = with(cursor) {
var name = getString(COLUMN_NAME)
if (name == null) {
name = ""
}
var id = getString(COLUMN_ID)
if (id == null) {
id = ""
}
DepictedItem(
getString(COLUMN_NAME),
name,
getString(COLUMN_DESCRIPTION),
getString(COLUMN_IMAGE),
getStringArray(COLUMN_INSTANCE_LIST),
@ -155,7 +165,7 @@ class BookmarkItemsDao @Inject constructor(
getStringArray(COLUMN_CATEGORIES_THUMBNAIL_LIST)
),
getString(COLUMN_IS_SELECTED).toBoolean(),
getString(COLUMN_ID)
id
)
}
@ -163,19 +173,13 @@ class BookmarkItemsDao @Inject constructor(
categoryNameList: List<String>,
categoryDescriptionList: List<String>,
categoryThumbnailList: List<String>
): List<CategoryItem> {
return buildList {
for (i in categoryNameList.indices) {
add(
CategoryItem(
categoryNameList[i],
categoryDescriptionList[i],
categoryThumbnailList[i],
false
)
)
}
}
): List<CategoryItem> = categoryNameList.mapIndexed { index, name ->
CategoryItem(
name = name,
description = categoryDescriptionList.getOrNull(index),
thumbnail = categoryThumbnailList.getOrNull(index),
isSelected = false
)
}
/**

View file

@ -128,7 +128,10 @@ class BookmarkPicturesDao @Inject constructor(
}
fun fromCursor(cursor: Cursor): Bookmark {
val fileName = cursor.getString(COLUMN_MEDIA_NAME)
var fileName = cursor.getString(COLUMN_MEDIA_NAME)
if (fileName == null) {
fileName = ""
}
return Bookmark(
fileName, cursor.getString(COLUMN_CREATOR), uriForName(fileName)
)

View file

@ -7,8 +7,8 @@ import com.google.gson.annotations.SerializedName
*/
class CampaignConfig {
@SerializedName("showOnlyLiveCampaigns")
private val showOnlyLiveCampaigns = false
var showOnlyLiveCampaigns = false
@SerializedName("sortBy")
private val sortBy: String? = null
}
var sortBy: String? = null
}

View file

@ -8,8 +8,8 @@ import fr.free.nrw.commons.campaigns.models.Campaign
*/
class CampaignResponseDTO {
@SerializedName("config")
val campaignConfig: CampaignConfig? = null
var campaignConfig: CampaignConfig? = null
@SerializedName("campaigns")
val campaigns: List<Campaign>? = null
}
var campaigns: List<Campaign>? = null
}

View file

@ -180,8 +180,8 @@ class ContributionController @Inject constructor(@param:Named("default_preferenc
showAlertDialog(
activity, activity.getString(R.string.location_permission_title),
activity.getString(R.string.in_app_camera_location_permission_rationale),
activity.getString(android.R.string.ok),
activity.getString(android.R.string.cancel),
activity.getString(R.string.ok),
activity.getString(R.string.cancel),
{
createDialogsAndHandleLocationPermissions(
activity,

View file

@ -5,7 +5,6 @@ import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.content.res.Configuration
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
import android.view.LayoutInflater
@ -20,6 +19,8 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
import androidx.annotation.VisibleForTesting
import androidx.core.net.toUri
import androidx.core.os.BundleCompat
import androidx.paging.PagedList
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
@ -38,12 +39,10 @@ import fr.free.nrw.commons.filepicker.FilePicker
import fr.free.nrw.commons.media.MediaClient
import fr.free.nrw.commons.profile.ProfileActivity
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
import fr.free.nrw.commons.utils.SystemThemeUtils
import fr.free.nrw.commons.utils.ViewUtil.showShortToast
import fr.free.nrw.commons.utils.copyToClipboard
import fr.free.nrw.commons.utils.handleWebUrl
import fr.free.nrw.commons.wikidata.model.WikiSite
import org.apache.commons.lang3.StringUtils
import javax.inject.Inject
import javax.inject.Named
@ -53,10 +52,6 @@ import javax.inject.Named
*/
class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsListContract.View,
ContributionsListAdapter.Callback, WikipediaInstructionsDialogFragment.Callback {
@JvmField
@Inject
var systemThemeUtils: SystemThemeUtils? = null
@JvmField
@Inject
var controller: ContributionController? = null
@ -83,13 +78,14 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
var sessionManager: SessionManager? = null
private var binding: FragmentContributionsListBinding? = null
private var fab_close: Animation? = null
private var fab_open: Animation? = null
private var rotate_forward: Animation? = null
private var rotate_backward: Animation? = null
private var fabClose: Animation? = null
private var fabOpen: Animation? = null
private var rotateForward: Animation? = null
private var rotateBackward: Animation? = null
private var isFabOpen = false
private lateinit var inAppCameraLocationPermissionLauncher: ActivityResultLauncher<Array<String>>
private lateinit var inAppCameraLocationPermissionLauncher:
ActivityResultLauncher<Array<String>>
@VisibleForTesting
var rvContributionsList: RecyclerView? = null
@ -100,8 +96,8 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
@VisibleForTesting
var callback: Callback? = null
private val SPAN_COUNT_LANDSCAPE = 3
private val SPAN_COUNT_PORTRAIT = 1
private val spanCountLandscape = 3
private val spanCountPortrait = 1
private var contributionsSize = 0
private var userName: String? = null
@ -150,7 +146,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
userName = requireArguments().getString(ProfileActivity.KEY_USERNAME)
}
if (StringUtils.isEmpty(userName)) {
if (userName.isNullOrEmpty()) {
userName = sessionManager!!.userName
}
inAppCameraLocationPermissionLauncher =
@ -161,7 +157,8 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
controller?.locationPermissionCallback?.onLocationPermissionGranted()
} else {
activity?.let { currentActivity ->
if (currentActivity.shouldShowRequestPermissionRationale(permission.ACCESS_FINE_LOCATION)) {
if (currentActivity.shouldShowRequestPermissionRationale(
permission.ACCESS_FINE_LOCATION)) {
controller?.handleShowRationaleFlowCameraLocation(
currentActivity,
inAppCameraLocationPermissionLauncher, // Pass launcher
@ -169,7 +166,8 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
)
} else {
controller?.locationPermissionCallback?.onLocationPermissionDenied(
currentActivity.getString(R.string.in_app_camera_location_permission_denied)
currentActivity.getString(
R.string.in_app_camera_location_permission_denied)
)
}
}
@ -189,7 +187,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
contributionsListPresenter!!.onAttachView(this)
binding!!.fabCustomGallery.setOnClickListener { v: View? -> launchCustomSelector() }
binding!!.fabCustomGallery.setOnLongClickListener { view: View? ->
showShortToast(context, fr.free.nrw.commons.R.string.custom_selector_title)
showShortToast(context, R.string.custom_selector_title)
true
}
@ -199,7 +197,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
} else {
binding!!.tvContributionsOfUser.visibility = View.VISIBLE
binding!!.tvContributionsOfUser.text =
getString(fr.free.nrw.commons.R.string.contributions_of_user, userName)
getString(R.string.contributions_of_user, userName)
binding!!.fabLayout.visibility = View.GONE
}
@ -237,7 +235,10 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
}
private fun initAdapter() {
adapter = ContributionsListAdapter(this, mediaClient!!, mediaDataExtractor!!, compositeDisposable)
adapter = ContributionsListAdapter(this,
mediaClient!!,
mediaDataExtractor!!,
compositeDisposable)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -312,7 +313,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
if (e.action == MotionEvent.ACTION_DOWN) {
if (isFabOpen) {
animateFAB(isFabOpen)
animateFAB(true)
}
}
return false
@ -344,14 +345,20 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
}
private fun getSpanCount(orientation: Int): Int {
return if (orientation == Configuration.ORIENTATION_LANDSCAPE) SPAN_COUNT_LANDSCAPE else SPAN_COUNT_PORTRAIT
return if (orientation == Configuration.ORIENTATION_LANDSCAPE)
spanCountLandscape
else
spanCountPortrait
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
// check orientation
binding!!.fabLayout.orientation =
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) LinearLayout.HORIZONTAL else LinearLayout.VERTICAL
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
LinearLayout.HORIZONTAL
else
LinearLayout.VERTICAL
rvContributionsList
?.setLayoutManager(
GridLayoutManager(context, getSpanCount(newConfig.orientation))
@ -359,10 +366,10 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
}
private fun initializeAnimations() {
fab_open = AnimationUtils.loadAnimation(activity, fr.free.nrw.commons.R.anim.fab_open)
fab_close = AnimationUtils.loadAnimation(activity, fr.free.nrw.commons.R.anim.fab_close)
rotate_forward = AnimationUtils.loadAnimation(activity, fr.free.nrw.commons.R.anim.rotate_forward)
rotate_backward = AnimationUtils.loadAnimation(activity, fr.free.nrw.commons.R.anim.rotate_backward)
fabOpen = AnimationUtils.loadAnimation(activity, R.anim.fab_open)
fabClose = AnimationUtils.loadAnimation(activity, R.anim.fab_close)
rotateForward = AnimationUtils.loadAnimation(activity, R.anim.rotate_forward)
rotateBackward = AnimationUtils.loadAnimation(activity, R.anim.rotate_backward)
}
private fun setListeners() {
@ -378,7 +385,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
binding!!.fabCamera.setOnLongClickListener { view: View? ->
showShortToast(
context,
fr.free.nrw.commons.R.string.add_contribution_from_camera
R.string.add_contribution_from_camera
)
true
}
@ -387,7 +394,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
animateFAB(isFabOpen)
}
binding!!.fabGallery.setOnLongClickListener { view: View? ->
showShortToast(context, fr.free.nrw.commons.R.string.menu_from_gallery)
showShortToast(context, R.string.menu_from_gallery)
true
}
}
@ -395,7 +402,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
/**
* Launch Custom Selector.
*/
protected fun launchCustomSelector() {
private fun launchCustomSelector() {
controller!!.initiateCustomGalleryPickWithPermission(
requireActivity(),
customSelectorLauncherForResult
@ -411,18 +418,18 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
this.isFabOpen = !isFabOpen
if (binding!!.fabPlus.isShown) {
if (isFabOpen) {
binding!!.fabPlus.startAnimation(rotate_backward)
binding!!.fabCamera.startAnimation(fab_close)
binding!!.fabGallery.startAnimation(fab_close)
binding!!.fabCustomGallery.startAnimation(fab_close)
binding!!.fabPlus.startAnimation(rotateBackward)
binding!!.fabCamera.startAnimation(fabClose)
binding!!.fabGallery.startAnimation(fabClose)
binding!!.fabCustomGallery.startAnimation(fabClose)
binding!!.fabCamera.hide()
binding!!.fabGallery.hide()
binding!!.fabCustomGallery.hide()
} else {
binding!!.fabPlus.startAnimation(rotate_forward)
binding!!.fabCamera.startAnimation(fab_open)
binding!!.fabGallery.startAnimation(fab_open)
binding!!.fabCustomGallery.startAnimation(fab_open)
binding!!.fabPlus.startAnimation(rotateForward)
binding!!.fabCamera.startAnimation(fabOpen)
binding!!.fabGallery.startAnimation(fabOpen)
binding!!.fabCustomGallery.startAnimation(fabOpen)
binding!!.fabCamera.show()
binding!!.fabGallery.show()
binding!!.fabCustomGallery.show()
@ -434,9 +441,9 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
/**
* Shows welcome message if user has no contributions yet i.e. new user.
*/
override fun showWelcomeTip(shouldShow: Boolean) {
override fun showWelcomeTip(numberOfUploads: Boolean) {
binding!!.noContributionsYet.visibility =
if (shouldShow) View.VISIBLE else View.GONE
if (numberOfUploads) View.VISIBLE else View.GONE
}
/**
@ -456,22 +463,22 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
val layoutManager = rvContributionsList
?.getLayoutManager() as GridLayoutManager?
val layoutManager = rvContributionsList?.layoutManager as GridLayoutManager?
outState.putParcelable(RV_STATE, layoutManager!!.onSaveInstanceState())
}
override fun onViewStateRestored(savedInstanceState: Bundle?) {
super.onViewStateRestored(savedInstanceState)
if (null != savedInstanceState) {
val savedRecyclerLayoutState = savedInstanceState.getParcelable<Parcelable>(RV_STATE)
val savedRecyclerLayoutState =
BundleCompat.getParcelable(savedInstanceState, RV_STATE, Parcelable::class.java)
rvContributionsList!!.layoutManager!!.onRestoreInstanceState(savedRecyclerLayoutState)
}
}
override fun openMediaDetail(position: Int, isWikipediaButtonDisplayed: Boolean) {
override fun openMediaDetail(contribution: Int, isWikipediaPageExists: Boolean) {
if (null != callback) { //Just being safe, ideally they won't be called when detached
callback!!.showDetail(position, isWikipediaButtonDisplayed)
callback!!.showDetail(contribution, isWikipediaPageExists)
}
}
@ -483,8 +490,8 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
override fun addImageToWikipedia(contribution: Contribution?) {
showAlertDialog(
requireActivity(),
getString(fr.free.nrw.commons.R.string.add_picture_to_wikipedia_article_title),
getString(fr.free.nrw.commons.R.string.add_picture_to_wikipedia_article_desc),
getString(R.string.add_picture_to_wikipedia_article_title),
getString(R.string.add_picture_to_wikipedia_article_desc),
{
if (contribution != null) {
showAddImageToWikipediaInstructions(contribution)
@ -498,16 +505,18 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
* @param contribution
*/
private fun showAddImageToWikipediaInstructions(contribution: Contribution) {
val fragmentManager = fragmentManager
val fragmentManager = this.parentFragmentManager
val fragment = newInstance(contribution)
fragment.callback =
WikipediaInstructionsDialogFragment.Callback { contribution: Contribution?, copyWikicode: Boolean ->
this.onConfirmClicked(
WikipediaInstructionsDialogFragment.Callback {
contribution: Contribution?,
copyWikicode: Boolean ->
onConfirmClicked(
contribution,
copyWikicode
)
}
fragment.show(fragmentManager!!, "WikimediaFragment")
fragment.show(fragmentManager, "WikimediaFragment")
}
@ -534,7 +543,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
val url =
languageWikipediaSite!!.mobileUrl() + "/wiki/" + (contribution!!.wikidataPlace
?.getWikipediaPageTitle())
handleWebUrl(requireContext(), Uri.parse(url))
handleWebUrl(requireContext(), url.toUri())
}
fun getContributionStateAt(position: Int): Int {

View file

@ -153,21 +153,7 @@ after opening the app.
}
}
setUpPager()
/**
* Ask the user for media location access just after login
* so that location in the EXIF metadata of the images shared by the user
* is retained on devices running Android 10 or above
*/
// if (VERSION.SDK_INT >= VERSION_CODES.Q) {
// ActivityCompat.requestPermissions(this,
// new String[]{Manifest.permission.ACCESS_MEDIA_LOCATION}, 0);
// PermissionUtils.checkPermissionsAndPerformAction(
// this,
// () -> {},
// R.string.media_location_permission_denied,
// R.string.add_location_manually,
// permission.ACCESS_MEDIA_LOCATION);
// }
checkAndResumeStuckUploads()
}
}
@ -338,7 +324,7 @@ after opening the app.
)
.subscribeOn(Schedulers.io())
.blockingGet()
Timber.d("Resuming " + stuckUploads.size + " uploads...")
Timber.d("Resuming %d uploads...", stuckUploads.size)
if (!stuckUploads.isEmpty()) {
for (contribution in stuckUploads) {
contribution.state = Contribution.STATE_QUEUED

View file

@ -45,10 +45,10 @@ class SetWallpaperWorker(context: Context, params: WorkerParameters) :
}
}
override fun onFailureImpl(dataSource: DataSource<CloseableReference<CloseableImage>>?) {
override fun onFailureImpl(dataSource: DataSource<CloseableReference<CloseableImage?>?>) {
Timber.d("Error getting bitmap from image url %s", imageUrl.toString())
showNotification(context, "Setting Wallpaper Failed", "Failed to download image.")
dataSource?.close()
dataSource.close()
}
}, CallerThreadExecutor.getInstance())

View file

@ -39,4 +39,11 @@ data class Folder(
return true
}
override fun hashCode(): Int {
var result = bucketId.hashCode()
result = 31 * result + name.hashCode()
result = 31 * result + images.hashCode()
return result
}
}

View file

@ -1,6 +1,7 @@
package fr.free.nrw.commons.customselector.model
import android.net.Uri
import android.os.Build
import android.os.Parcel
import android.os.Parcelable
@ -48,7 +49,12 @@ data class Image(
this(
parcel.readLong(),
parcel.readString()!!,
parcel.readParcelable(Uri::class.java.classLoader)!!,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
parcel.readParcelable(Uri::class.java.classLoader, Uri::class.java)!!
} else {
@Suppress("DEPRECATION")
parcel.readParcelable(Uri::class.java.classLoader)!!
},
parcel.readString()!!,
parcel.readLong(),
parcel.readString()!!,
@ -121,4 +127,16 @@ data class Image(
override fun newArray(size: Int): Array<Image?> = arrayOfNulls(size)
}
override fun hashCode(): Int {
var result = id.hashCode()
result = 31 * result + bucketId.hashCode()
result = 31 * result + name.hashCode()
result = 31 * result + uri.hashCode()
result = 31 * result + path.hashCode()
result = 31 * result + bucketName.hashCode()
result = 31 * result + sha1.hashCode()
result = 31 * result + date.hashCode()
return result
}
}

View file

@ -168,8 +168,7 @@ class ImageAdapter(
// Getting selected index when switch is off
} else if (actionableImagesMap.size > position) {
ImageHelper
.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position])
ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position])
// For any other case return -1
} else {
@ -348,8 +347,14 @@ class ImageAdapter(
numberOfSelectedImagesMarkedAsNotForUpload--
}
notifyItemChanged(position, ImageUnselected())
// Notify listener of deselection to update UI
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
} else {
val image = images[position]
// Prevent adding the same image multiple times
val image = if (showAlreadyActionedImages) images[position] else ArrayList(actionableImagesMap.values)[position]
if (selectedImages.contains(image)) {
return // Image already selected, ignore additional clicks
}
scope.launch(ioDispatcher) {
val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
withContext(Dispatchers.Main) {
@ -373,7 +378,6 @@ class ImageAdapter(
}
selectedImages.add(image)
notifyItemChanged(position, ImageSelectedOrUpdated())
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
}
}
@ -632,4 +636,4 @@ class ImageAdapter(
fun setSingleSelection(single: Boolean) {
singleSelection = single
}
}
}

View file

@ -9,7 +9,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ProgressBar
import android.widget.Switch
import androidx.appcompat.app.AlertDialog
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
@ -20,6 +19,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.switchmaterial.SwitchMaterial
import fr.free.nrw.commons.contributions.Contribution
import fr.free.nrw.commons.contributions.ContributionDao
import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao
@ -47,6 +47,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch
import timber.log.Timber
import java.util.TreeMap
import javax.inject.Inject
import kotlin.collections.ArrayList
@ -81,7 +82,7 @@ class ImageFragment :
*/
private var selectorRV: RecyclerView? = null
private var loader: ProgressBar? = null
private var switch: Switch? = null
private var switch: SwitchMaterial? = null
lateinit var filteredImages: ArrayList<Image>
/**
@ -211,8 +212,12 @@ class ImageFragment :
savedInstanceState: Bundle?,
): View? {
_binding = FragmentCustomSelectorBinding.inflate(inflater, container, false)
imageAdapter =
ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!)
// ensures imageAdapter is initialized
if (!::imageAdapter.isInitialized) {
imageAdapter = ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!)
Timber.d("Initialized imageAdapter in onCreateView")
}
// Set single selection mode if needed
val singleSelection = (activity as? CustomSelectorActivity)?.intent?.getBooleanExtra(CustomSelectorActivity.EXTRA_SINGLE_SELECTION, false) == true
imageAdapter.setSingleSelection(singleSelection)
@ -370,7 +375,12 @@ class ImageFragment :
* notifyDataSetChanged, rebuild the holder views to account for deleted images.
*/
override fun onResume() {
imageAdapter.notifyDataSetChanged()
if (::imageAdapter.isInitialized) {
imageAdapter.notifyDataSetChanged()
Timber.d("Notified imageAdapter in onResume")
} else {
Timber.w("imageAdapter not initialized in onResume")
}
super.onResume()
}
@ -380,14 +390,19 @@ class ImageFragment :
* Save the Image Fragment state.
*/
override fun onDestroy() {
imageAdapter.cleanUp()
if (::imageAdapter.isInitialized) {
imageAdapter.cleanUp()
Timber.d("Cleaned up imageAdapter in onDestroy")
} else {
Timber.w("imageAdapter not initialized in onDestroy, skipping cleanup")
}
val position =
(selectorRV?.layoutManager as GridLayoutManager)
.findFirstVisibleItemPosition()
(selectorRV?.layoutManager as? GridLayoutManager)
?.findFirstVisibleItemPosition() ?: -1
// Check for empty RecyclerView.
if (position != -1 && filteredImages.size > 0) {
// check for valid position and non-empty image list
if (position != -1 && filteredImages.isNotEmpty() && ::imageAdapter.isInitialized) {
context?.let { context ->
context
.getSharedPreferences(
@ -396,34 +411,57 @@ class ImageFragment :
)?.let { prefs ->
prefs.edit()?.let { editor ->
editor.putLong("ItemId", imageAdapter.getImageIdAt(position))?.apply()
Timber.d("Saved last visible item ID: %d", imageAdapter.getImageIdAt(position))
}
}
}
} else {
Timber.d("Skipped saving item ID: position=%d, filteredImages.size=%d, imageAdapter initialized=%b",
position, filteredImages.size, ::imageAdapter.isInitialized)
}
super.onDestroy()
}
override fun onDestroyView() {
_binding = null
selectorRV = null
loader = null
switch = null
progressLayout = null
super.onDestroyView()
}
override fun refresh() {
imageAdapter.refresh(filteredImages, allImages, getUploadingContributions())
if (::imageAdapter.isInitialized) {
imageAdapter.refresh(filteredImages, allImages, getUploadingContributions())
Timber.d("Refreshed imageAdapter")
} else {
Timber.w("imageAdapter not initialized in refresh")
}
}
/**
* Removes the image from the actionable image map
*/
fun removeImage(image: Image) {
imageAdapter.removeImageFromActionableImageMap(image)
if (::imageAdapter.isInitialized) {
imageAdapter.removeImageFromActionableImageMap(image)
Timber.d("Removed image from actionable image map")
} else {
Timber.w("imageAdapter not initialized in removeImage")
}
}
/**
* Clears the selected images
*/
fun clearSelectedImages() {
imageAdapter.clearSelectedImages()
if (::imageAdapter.isInitialized) {
imageAdapter.clearSelectedImages()
Timber.d("Cleared selected images")
} else {
Timber.w("imageAdapter not initialized in clearSelectedImages")
}
}
/**
@ -434,6 +472,15 @@ class ImageFragment :
selectedImages: ArrayList<Image>,
shouldRefresh: Boolean,
) {
if (::imageAdapter.isInitialized) {
imageAdapter.setSelectedImages(selectedImages)
if (shouldRefresh) {
imageAdapter.refresh(filteredImages, allImages, getUploadingContributions())
}
Timber.d("Passed %d selected images to imageAdapter, shouldRefresh=%b", selectedImages.size, shouldRefresh)
} else {
Timber.w("imageAdapter not initialized in passSelectedImages")
}
}
/**
@ -443,6 +490,7 @@ class ImageFragment :
if (!progressDialog.isShowing) {
progressDialogLayout.progressDialogText.text = text
progressDialog.show()
Timber.d("Showing mark/unmark progress dialog: %s", text)
}
}
@ -452,6 +500,7 @@ class ImageFragment :
fun dismissMarkUnmarkProgressDialog() {
if (progressDialog.isShowing) {
progressDialog.dismiss()
Timber.d("Dismissed mark/unmark progress dialog")
}
}
@ -461,4 +510,4 @@ class ImageFragment :
listOf(Contribution.STATE_IN_PROGRESS, Contribution.STATE_FAILED, Contribution.STATE_QUEUED, Contribution.STATE_PAUSED),
)?.subscribeOn(Schedulers.io())
?.blockingGet() ?: emptyList()
}
}

View file

@ -150,7 +150,7 @@ class DescriptionEditActivity :
this,
getString(titleStringID),
getString(messageStringId),
getString(android.R.string.ok),
getString(R.string.ok),
null
)
}

View file

@ -64,6 +64,9 @@ class ExploreFragment : CommonsDaggerSupportFragment() {
override fun onPageScrollStateChanged(state: Int) = Unit
override fun onPageSelected(position: Int) {
binding!!.viewPager.canScroll = position != 2
if (position == 2) {
mapRootFragment?.requestLocationIfNeeded()
}
}
})
setTabs()
@ -171,14 +174,12 @@ class ExploreFragment : CommonsDaggerSupportFragment() {
// if on Map tab, show all menu options, else only show search
binding!!.viewPager.addOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) = Unit
override fun onPageScrollStateChanged(state: Int) = Unit
override fun onPageSelected(position: Int) {
others.setVisible((position == 2))
}
override fun onPageScrollStateChanged(state: Int) {
if (state == ViewPager.SCROLL_STATE_IDLE && binding!!.viewPager.currentItem == 2) {
onPageSelected(2)
binding!!.viewPager.canScroll = position != 2
others.setVisible(position == 2)
if (position == 2) {
mapRootFragment?.requestLocationIfNeeded()
}
}
})
@ -194,7 +195,6 @@ class ExploreFragment : CommonsDaggerSupportFragment() {
*/
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle item selection
when (item.itemId) {
R.id.action_search -> {
startActivityWithFlags(requireActivity(), SearchActivity::class.java)
@ -224,6 +224,4 @@ class ExploreFragment : CommonsDaggerSupportFragment() {
retainInstance = true
}
}
}
}

View file

@ -193,9 +193,20 @@ class ExploreMapRootFragment : CommonsDaggerSupportFragment, MediaDetailProvider
binding = null
}
fun requestLocationIfNeeded() {
mapFragment?.requestLocationIfNeeded()
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if (isVisibleToUser) {
requestLocationIfNeeded()
}
}
companion object {
fun newInstance(): ExploreMapRootFragment = ExploreMapRootFragment().apply {
retainInstance = true
}
}
}
}

View file

@ -112,8 +112,8 @@ class WikidataItemDetailsActivity : BaseActivity(), MediaDetailProvider, Categor
viewPagerAdapter!!.setTabs(
R.string.title_for_media to depictionImagesListFragment!!,
R.string.title_for_subcategories to childDepictionsFragment,
R.string.title_for_parent_categories to parentDepictionsFragment
R.string.title_for_child_classes to childDepictionsFragment,
R.string.title_for_parent_classes to parentDepictionsFragment
)
binding!!.viewPager.offscreenPageLimit = 2
viewPagerAdapter!!.notifyDataSetChanged()

View file

@ -140,8 +140,8 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
requireActivity(),
requireActivity().getString(R.string.location_permission_title),
requireActivity().getString(R.string.location_permission_rationale_explore),
requireActivity().getString(android.R.string.ok),
requireActivity().getString(android.R.string.cancel),
requireActivity().getString(R.string.ok),
requireActivity().getString(R.string.cancel),
{ askForLocationPermission() },
null,
null
@ -269,31 +269,60 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
override fun onZoom(event: ZoomEvent?): Boolean = false
})
if (!locationPermissionsHelper!!.checkLocationPermission(requireActivity())) {
askForLocationPermission()
}
// removed tha permission check here to prevent it from running on fragment creation
}
override fun onResume() {
super.onResume()
binding!!.mapView.onResume()
presenter!!.attachView(this)
registerNetworkReceiver()
if (isResumed) {
if (locationPermissionsHelper!!.checkLocationPermission(requireActivity())) {
performMapReadyActions()
} else {
startMapWithoutPermission()
}
locationManager.addLocationListener(this)
if (broadcastReceiver != null) {
requireActivity().registerReceiver(broadcastReceiver, intentFilter)
}
setSearchThisAreaButtonVisibility(false)
}
override fun onPause() {
super.onPause()
// unregistering the broadcastReceiver, as it was causing an exception and a potential crash
unregisterNetworkReceiver()
locationManager.unregisterLocationManager()
locationManager.removeLocationListener(this)
}
fun requestLocationIfNeeded() {
if (!isVisible) return // skips if not visible to user
if (locationPermissionsHelper!!.checkLocationPermission(requireActivity())) {
if (locationPermissionsHelper!!.isLocationAccessToAppsTurnedOn()) {
locationManager.registerLocationManager()
drawMyLocationMarker()
} else {
locationPermissionsHelper!!.showLocationOffDialog(requireActivity(), R.string.location_off_dialog_text)
}
} else {
locationPermissionsHelper!!.requestForLocationAccess(
R.string.location_permission_title,
R.string.location_permission_rationale
)
}
}
private fun drawMyLocationMarker() {
val location = locationManager.getLastLocation()
if (location != null) {
val geoPoint = GeoPoint(location.latitude, location.longitude)
val startMarker = Marker(binding!!.mapView).apply {
setPosition(geoPoint)
setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM)
icon = ContextCompat.getDrawable(requireContext(), R.drawable.current_location_marker)
title = "Your Location"
textLabelFontSize = 24
}
binding!!.mapView.overlays.add(startMarker)
binding!!.mapView.invalidate()
}
}
/**
* Unregisters the networkReceiver
@ -936,13 +965,17 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
if (geoPoint != null) {
binding!!.mapView.controller.setCenter(geoPoint)
val overlays = binding!!.mapView.overlays
// collects the indices of items to remove
val indicesToRemove = mutableListOf<Int>()
for (i in overlays.indices) {
if (overlays[i] is Marker) {
binding!!.mapView.overlays.removeAt(i)
} else if (overlays[i] is ScaleDiskOverlay) {
binding!!.mapView.overlays.removeAt(i)
if (overlays[i] is Marker || overlays[i] is ScaleDiskOverlay) {
indicesToRemove.add(i)
}
}
// removes the items in reverse order to avoid index shifting
indicesToRemove.sortedDescending().forEach { index ->
binding!!.mapView.overlays.removeAt(index)
}
val diskOverlay = ScaleDiskOverlay(
requireContext(),
geoPoint, 2000, GeoConstants.UnitOfMeasure.foot
@ -952,7 +985,6 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
this.style = Paint.Style.STROKE
this.strokeWidth = 2f
})
setCirclePaint1(Paint().apply {
setColor(Color.argb(40, 128, 128, 128))
this.style = Paint.Style.FILL_AND_STROKE
@ -961,7 +993,6 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
setDisplaySizeMax(1700)
}
binding!!.mapView.overlays.add(diskOverlay)
val startMarker = Marker(
binding!!.mapView
).apply {
@ -1079,7 +1110,24 @@ class ExploreMapFragment : CommonsDaggerSupportFragment(), ExploreMapContract.Vi
override fun onLocationPermissionDenied(toastMessage: String) = Unit
override fun onLocationPermissionGranted() = Unit
override fun onLocationPermissionGranted() {
if (locationPermissionsHelper!!.isLocationAccessToAppsTurnedOn()) {
locationManager.registerLocationManager()
drawMyLocationMarker()
} else {
locationPermissionsHelper!!.showLocationOffDialog(requireActivity(), R.string.location_off_dialog_text)
}
onLocationChanged(LocationChangeType.PERMISSION_JUST_GRANTED, null)
}
fun onLocationChanged(locationChangeType: LocationChangeType, location: Location?) {
if (locationChangeType == LocationChangeType.PERMISSION_JUST_GRANTED) {
val curLatLng = locationManager.getLastLocation() ?: getMapCenter()
populatePlaces(curLatLng)
} else {
presenter!!.updateMap(locationChangeType)
}
}
companion object {
fun newInstance(): ExploreMapFragment {

View file

@ -163,11 +163,19 @@ class RecentSearchesDao @Inject constructor(
* @param cursor
* @return RecentSearch object
*/
fun fromCursor(cursor: Cursor): RecentSearch = RecentSearch(
uriForId(cursor.getInt(COLUMN_ID)),
cursor.getString(COLUMN_NAME),
Date(cursor.getLong(COLUMN_LAST_USED))
)
fun fromCursor(cursor: Cursor): RecentSearch {
var query = cursor.getString(COLUMN_NAME)
if (query == null) {
query = ""
}
return RecentSearch(
uriForId(cursor.getInt(COLUMN_ID)),
query,
Date(cursor.getLong(COLUMN_LAST_USED))
)
}
/**
* This class contains the database table architechture for recent searches,

View file

@ -67,10 +67,10 @@ class RecentSearchesFragment : CommonsDaggerSupportFragment() {
private fun showDeleteRecentAlertDialog(context: Context) {
AlertDialog.Builder(context)
.setMessage(getString(R.string.delete_recent_searches_dialog))
.setPositiveButton(android.R.string.yes) { dialog: DialogInterface, _: Int ->
.setPositiveButton(R.string.yes) { dialog: DialogInterface, _: Int ->
setDeleteRecentPositiveButton(context, dialog)
}
.setNegativeButton(android.R.string.no, null)
.setNegativeButton(R.string.no, null)
.setCancelable(false)
.create()
.show()
@ -102,7 +102,7 @@ class RecentSearchesFragment : CommonsDaggerSupportFragment() {
setDeletePositiveButton(context, dialog, position)
}
)
.setNegativeButton(android.R.string.cancel, null)
.setNegativeButton(R.string.cancel, null)
.setCancelable(false)
.create()
.show()

View file

@ -1,18 +1,68 @@
package fr.free.nrw.commons.fileusages
import android.net.Uri
import timber.log.Timber
/**
* Show where file is being used on Commons and oher wikis.
* Data model for displaying file usage information in the UI, including the title and link to the page.
*/
data class FileUsagesUiModel(
val title: String,
val link: String?
)
/**
* Converts a FileUsage object to a UI model for Commons file usages.
* Creates a link to the file's page on Commons.
*/
fun FileUsage.toUiModel(): FileUsagesUiModel {
return FileUsagesUiModel(title = title, link = "https://commons.wikimedia.org/wiki/$title")
// Replace spaces with underscores and URL-encode the title for the link
val encodedTitle = Uri.encode(title.replace(" ", "_"))
return FileUsagesUiModel(
title = title,
link = "https://commons.wikimedia.org/wiki/$encodedTitle"
)
}
/**
* Converts a GlobalFileUsage object to a UI model for file usages on other wikis.
* Generates a link to the page and prefixes the title with the wiki code (e.g., "(en) Title").
*/
fun GlobalFileUsage.toUiModel(): FileUsagesUiModel {
// link is associated with sub items under wiki group (which is not used ATM)
return FileUsagesUiModel(title = wiki, link = null)
}
// Log input values for debugging
Timber.d("Converting GlobalFileUsage: wiki=$wiki, title=$title")
// Check for invalid or empty inputs
if (wiki.isBlank() || title.isBlank()) {
Timber.w("Invalid input: wiki=$wiki, title=$title")
return FileUsagesUiModel(title = title, link = null)
}
// Extract wiki code for prefix (e.g., "en" from "en.wikipedia.org" or "enwiki")
val wikiCode = when {
wiki.contains(".") -> wiki.substringBefore(".") // e.g., "en" from "en.wikipedia.org"
wiki == "commonswiki" -> "commons"
wiki.endsWith("wiki") -> wiki.removeSuffix("wiki")
else -> wiki
}
// Create prefixed title, e.g., "(en) Changi East Depot"
val prefixedTitle = "($wikiCode) $title"
// Determine the domain for the URL
val domain = when {
wiki.contains(".") -> wiki // Already a full domain, e.g., "en.wikipedia.org"
wiki == "commonswiki" -> "commons.wikimedia.org"
wiki.endsWith("wiki") -> wiki.removeSuffix("wiki") + ".wikipedia.org"
else -> "$wiki.wikipedia.org" // Fallback for simple codes like "en"
}
// Normalize title: replace spaces with underscores and URL-encode
val encodedTitle = Uri.encode(title.replace(" ", "_"))
// Build the full URL
val url = "https://$domain/wiki/$encodedTitle"
Timber.d("Generated URL: $url")
return FileUsagesUiModel(title = prefixedTitle, link = url)
}

View file

@ -64,8 +64,8 @@ class LocationPermissionsHelper(
activity,
activity.getString(dialogTitleResource),
activity.getString(dialogTextResource),
activity.getString(android.R.string.ok),
activity.getString(android.R.string.cancel),
activity.getString(R.string.ok),
activity.getString(R.string.cancel),
{
ActivityCompat.requestPermissions(
activity,

View file

@ -46,6 +46,7 @@ import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.Compani
import fr.free.nrw.commons.utils.DialogUtil
import fr.free.nrw.commons.utils.MapUtils.ZOOM_LEVEL
import fr.free.nrw.commons.utils.applyEdgeToEdgeBottomInsets
import fr.free.nrw.commons.utils.applyEdgeToEdgeBottomPaddingInsets
import fr.free.nrw.commons.utils.applyEdgeToEdgeTopPaddingInsets
import fr.free.nrw.commons.utils.handleGeoCoordinates
import io.reactivex.android.schedulers.AndroidSchedulers
@ -342,6 +343,10 @@ class LocationPickerActivity : BaseActivity(), LocationPermissionCallback {
}
private fun setupMapView() {
val mapBottomLayout: ConstraintLayout = findViewById(R.id.map_bottom_layout)
mapBottomLayout.applyEdgeToEdgeBottomPaddingInsets()
requestLocationPermissions()
//If location metadata is available, move map to that location.

View file

@ -541,6 +541,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
}
)
binding.progressBarEdit.visibility = View.GONE
binding.descriptionEdit.visibility = View.VISIBLE
}
override fun onConfigurationChanged(newConfig: Configuration) {
@ -1026,12 +1027,12 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
val message: String = if (result) {
context.getString(
R.string.send_thank_success_message,
media!!.displayTitle
media!!.user
)
} else {
context.getString(
R.string.send_thank_failure_message,
media!!.displayTitle
media!!.user
)
}
@ -2128,22 +2129,17 @@ fun FileUsagesContainer(
val uriHandle = LocalUriHandler.current
Column(modifier = modifier) {
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(
text = stringResource(R.string.usages_on_commons_heading),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.titleSmall
)
IconButton(onClick = {
isCommonsListExpanded = !isCommonsListExpanded
}) {
IconButton(onClick = { isCommonsListExpanded = !isCommonsListExpanded }) {
Icon(
imageVector = if (isCommonsListExpanded) Icons.Default.KeyboardArrowUp
else Icons.Default.KeyboardArrowDown,
@ -2157,11 +2153,8 @@ fun FileUsagesContainer(
MediaDetailViewModel.FileUsagesContainerState.Loading -> {
LinearProgressIndicator()
}
is MediaDetailViewModel.FileUsagesContainerState.Success -> {
val data = commonsContainerState.data
if (data.isNullOrEmpty()) {
ListItem(headlineContent = {
Text(
@ -2181,7 +2174,7 @@ fun FileUsagesContainer(
headlineContent = {
Text(
modifier = Modifier.clickable {
uriHandle.openUri(usage.link!!)
usage.link?.let { uriHandle.openUri(it) }
},
text = usage.title,
style = MaterialTheme.typography.titleSmall.copy(
@ -2189,11 +2182,11 @@ fun FileUsagesContainer(
textDecoration = TextDecoration.Underline
)
)
})
}
)
}
}
}
is MediaDetailViewModel.FileUsagesContainerState.Error -> {
ListItem(headlineContent = {
Text(
@ -2203,12 +2196,10 @@ fun FileUsagesContainer(
)
})
}
MediaDetailViewModel.FileUsagesContainerState.Initial -> {}
}
}
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
@ -2219,10 +2210,7 @@ fun FileUsagesContainer(
textAlign = TextAlign.Center,
style = MaterialTheme.typography.titleSmall
)
IconButton(onClick = {
isOtherWikisListExpanded = !isOtherWikisListExpanded
}) {
IconButton(onClick = { isOtherWikisListExpanded = !isOtherWikisListExpanded }) {
Icon(
imageVector = if (isOtherWikisListExpanded) Icons.Default.KeyboardArrowUp
else Icons.Default.KeyboardArrowDown,
@ -2236,11 +2224,8 @@ fun FileUsagesContainer(
MediaDetailViewModel.FileUsagesContainerState.Loading -> {
LinearProgressIndicator()
}
is MediaDetailViewModel.FileUsagesContainerState.Success -> {
val data = globalContainerState.data
if (data.isNullOrEmpty()) {
ListItem(headlineContent = {
Text(
@ -2259,16 +2244,20 @@ fun FileUsagesContainer(
},
headlineContent = {
Text(
modifier = Modifier.clickable {
usage.link?.let { uriHandle.openUri(it) }
},
text = usage.title,
style = MaterialTheme.typography.titleSmall.copy(
color = Color(0xFF5A6AEC),
textDecoration = TextDecoration.Underline
)
)
})
}
)
}
}
}
is MediaDetailViewModel.FileUsagesContainerState.Error -> {
ListItem(headlineContent = {
Text(
@ -2278,10 +2267,8 @@ fun FileUsagesContainer(
)
})
}
MediaDetailViewModel.FileUsagesContainerState.Initial -> {}
}
}
}
}
}

View file

@ -44,7 +44,7 @@ public class CheckBoxTriStates extends AppCompatCheckBox {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (state) {
case UNKNOWN:
setState(UNCHECKED);;
setState(UNCHECKED);
break;
case UNCHECKED:
setState(CHECKED);

View file

@ -91,6 +91,7 @@ public class NearbyFilterSearchRecyclerViewAdapter
label.setSelected(!label.isSelected());
holder.placeTypeLayout.setSelected(label.isSelected());
NearbyFilterState.setSelectedLabels(new ArrayList<>(selectedLabels));
callback.filterByMarkerType(selectedLabels, 0, false, false);
});
}
@ -152,6 +153,7 @@ public class NearbyFilterSearchRecyclerViewAdapter
label.setSelected(false);
selectedLabels.remove(label);
}
NearbyFilterState.setSelectedLabels(new ArrayList<>(selectedLabels));
notifyDataSetChanged();
}
@ -163,6 +165,7 @@ public class NearbyFilterSearchRecyclerViewAdapter
selectedLabels.add(label);
}
}
NearbyFilterState.setSelectedLabels(new ArrayList<>(selectedLabels));
notifyDataSetChanged();
}

View file

@ -9,7 +9,7 @@ public class NearbyFilterState {
private int checkBoxTriState;
private ArrayList<Label> selectedLabels;
private static NearbyFilterState nearbyFılterStateInstance;
private static NearbyFilterState nearbyFilterStateInstance;
/**
* Define initial filter values here
@ -23,10 +23,10 @@ public class NearbyFilterState {
}
public static NearbyFilterState getInstance() {
if (nearbyFılterStateInstance == null) {
nearbyFılterStateInstance = new NearbyFilterState();
if (nearbyFilterStateInstance == null) {
nearbyFilterStateInstance = new NearbyFilterState();
}
return nearbyFılterStateInstance;
return nearbyFilterStateInstance;
}
public static void setSelectedLabels(ArrayList<Label> selectedLabels) {

View file

@ -105,9 +105,6 @@ public class Sitelinks implements Parcelable {
private String commonsLink;
private String wikipediaLink;
public Builder() {
}
public Sitelinks.Builder setWikipediaLink(String link) {
this.wikipediaLink = link;
return this;

View file

@ -881,6 +881,12 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
fun initNearbyFilter() {
binding!!.nearbyFilterList.root.visibility = View.GONE
hideBottomSheet()
binding!!.nearbyFilter.searchViewLayout.searchView.apply {
setIconifiedByDefault(false)
isIconified = false
setQuery("", false)
clearFocus()
}
binding!!.nearbyFilter.searchViewLayout.searchView.setOnQueryTextFocusChangeListener { v, hasFocus ->
setLayoutHeightAlignedToWidth(
1.25,
@ -924,6 +930,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
return _isDarkTheme
}
})
restoreStoredFilterSelection()
binding!!.nearbyFilterList.root
.layoutParams.width = getScreenWidth(
requireActivity(),
@ -942,6 +949,22 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
})
}
private fun restoreStoredFilterSelection() {
val adapter = nearbyFilterSearchRecyclerViewAdapter ?: return
val savedLabels = ArrayList(NearbyFilterState.getInstance().selectedLabels)
adapter.selectedLabels.clear()
val savedSet = savedLabels.toSet()
Label.valuesAsList().forEach { label ->
val isSelected = savedSet.contains(label)
label.setSelected(isSelected)
if (isSelected) {
adapter.selectedLabels.add(label)
}
}
NearbyFilterState.setSelectedLabels(ArrayList(adapter.selectedLabels))
adapter.notifyDataSetChanged()
}
override fun setCheckBoxAction() {
binding!!.nearbyFilterList.checkboxTriStates.addAction()
binding!!.nearbyFilterList.checkboxTriStates.state = CheckBoxTriStates.UNKNOWN
@ -2987,4 +3010,4 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
return input.contains("(") || input.contains(")")
}
}
}
}

View file

@ -27,6 +27,7 @@ import java.io.File
import java.io.FileOutputStream
import java.util.Locale
import javax.inject.Inject
import timber.log.Timber
/**
* This activity will set two tabs, achievements and
@ -122,7 +123,7 @@ class ProfileActivity : BaseActivity() {
val rootView = window.decorView.findViewById<View>(android.R.id.content)
val screenShot = getScreenShot(rootView)
if (screenShot == null) {
Log.e("ERROR", "ScreenShot is null")
Timber.e("ScreenShot is null")
return false
}
showAlert(screenShot)

View file

@ -151,7 +151,7 @@ class QuizChecker @Inject constructor(
activity.getString(R.string.quiz),
activity.getString(R.string.quiz_alert_message, revertPercentageForMessage),
activity.getString(R.string.about_translate_proceed),
activity.getString(android.R.string.cancel),
activity.getString(R.string.cancel),
{ startQuizActivity(activity) },
null
)

View file

@ -193,7 +193,7 @@ class QuizResultActivity : AppCompatActivity() {
alertadd.setPositiveButton(R.string.about_translate_proceed) { dialog, _ ->
shareScreen(screenshot)
}
alertadd.setNegativeButton(android.R.string.cancel) { dialog, _ ->
alertadd.setNegativeButton(R.string.cancel) { dialog, _ ->
dialog.cancel()
}
alertadd.show()

View file

@ -109,10 +109,8 @@ class ReviewActivity : BaseActivity() {
setUpMediaDetailFragment()
}
binding.skipImage.setOnTouchListener { _, event ->
if (event.action == MotionEvent.ACTION_UP &&
event.rawX >= (binding.skipImage.right - binding.skipImage.compoundDrawables[2].bounds.width())
) {
binding.skipImageInfo?.setOnTouchListener { _, event ->
if (event.action == MotionEvent.ACTION_UP) {
showSkipImageInfo()
true
} else {
@ -240,7 +238,7 @@ class ReviewActivity : BaseActivity() {
this,
getString(R.string.skip_image).uppercase(Locale.ROOT),
getString(R.string.skip_image_explanation),
getString(android.R.string.ok),
getString(R.string.ok),
null,
null,
null
@ -252,7 +250,7 @@ class ReviewActivity : BaseActivity() {
this,
getString(R.string.title_activity_review),
getString(R.string.review_image_explanation),
getString(android.R.string.ok),
getString(R.string.ok),
null,
null,
null

View file

@ -1,6 +1,7 @@
package fr.free.nrw.commons.settings
import android.Manifest.permission
import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import android.content.Context.MODE_PRIVATE
@ -303,6 +304,11 @@ class SettingsFragment : PreferenceFragmentCompat() {
)
}
// Remove the space for icons in the settings menu.
// This uses an internal API that shouldn't be used in app code,
// but it appears to be the most robust way to do this at the moment,
// disable the warning.
@SuppressLint("RestrictedApi")
override fun onCreateAdapter(preferenceScreen: PreferenceScreen): Adapter<PreferenceViewHolder>
{
return object : PreferenceGroupAdapter(preferenceScreen) {

View file

@ -13,6 +13,7 @@ import android.os.Build.VERSION_CODES
import android.os.Bundle
import android.provider.Settings
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.CheckBox
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AlertDialog
@ -445,7 +446,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
this,
getString(R.string.storage_permissions_denied),
getString(R.string.unable_to_share_upload_item),
getString(android.R.string.ok)
getString(R.string.ok)
) { finish() }
} else {
showAlertDialog(
@ -454,7 +455,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
getString(
R.string.write_storage_permission_rationale_for_image_share
),
getString(android.R.string.ok)
getString(R.string.ok)
) { checkStoragePermissions() }
}
}
@ -507,24 +508,17 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
fragments = mutableListOf()
}
for (uploadableFile in uploadableFiles) {
val uploadMediaDetailFragment = UploadMediaDetailFragment()
if (!uploadIsOfAPlace) {
// set fragment properties but defer initialization
uploadMediaDetailFragment.uploadableFile = uploadableFile
uploadMediaDetailFragment.place = place
uploadMediaDetailFragment.inAppPictureLocation = if (!uploadIsOfAPlace) {
handleLocation()
uploadMediaDetailFragment.setImageToBeUploaded(
uploadableFile,
place,
currLocation
)
locationManager!!.unregisterLocationManager()
currLocation
} else {
uploadMediaDetailFragment.setImageToBeUploaded(
uploadableFile,
place,
currLocation
)
currLocation
}
val uploadMediaDetailFragmentCallback: UploadMediaDetailFragmentCallback =
@ -579,13 +573,19 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
if (isFragmentsSaved) {
val fragment = fragments!![0] as UploadMediaDetailFragment?
fragment!!.fragmentCallback = uploadMediaDetailFragmentCallback
fragment.initializeFragment()
} else {
uploadMediaDetailFragment.fragmentCallback = uploadMediaDetailFragmentCallback
fragments!!.add(uploadMediaDetailFragment)
}
}
//If fragments are not created, create them and add them to the fragments ArrayList
// unregister location manager after loop if needed
if (!uploadIsOfAPlace) {
locationManager!!.unregisterLocationManager()
}
// If fragments are not created, create them and add them to the fragments ArrayList
if (!isFragmentsSaved) {
uploadCategoriesFragment = UploadCategoriesFragment()
if (place != null) {
@ -805,6 +805,19 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onNextButtonClicked(index: Int) {
if (index < fragments!!.size - 1) {
// Hide the keyboard before navigating to Media License screen
val isUploadCategoriesFragment = fragments!!.getOrNull(index)?.let {
it is UploadCategoriesFragment
} ?: false
if (isUploadCategoriesFragment) {
val inputMethodManager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
currentFocus?.let { focusedView ->
inputMethodManager.hideSoftInputFromWindow(
focusedView.windowToken,
InputMethodManager.HIDE_NOT_ALWAYS
)
}
}
binding.vpUpload.setCurrentItem(index + 1, false)
fragments!![index + 1].onBecameVisible()
(binding.rvThumbnails.layoutManager as LinearLayoutManager)

View file

@ -17,6 +17,11 @@ interface CategoriesContract {
fun showError(stringResourceId: Int)
/**
* Show a cancelable AlertDialog with a given message.
*/
fun showErrorDialog(message: String)
fun setCategories(categories: List<CategoryItem>?)
fun goToNextScreen()

View file

@ -12,6 +12,7 @@ import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.IO_THREAD
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.MAIN_THREAD
import fr.free.nrw.commons.repository.UploadRepository
import fr.free.nrw.commons.upload.depicts.proxy
import fr.free.nrw.commons.wikidata.mwapi.MwIOException
import io.reactivex.Observable
import io.reactivex.Scheduler
import io.reactivex.android.schedulers.AndroidSchedulers
@ -75,7 +76,12 @@ class CategoriesPresenter
},
{ t: Throwable? ->
view.showProgress(false)
view.showError(R.string.no_categories_found)
view.showError(R.string.error_loading_categories)
val mwException = t as? MwIOException
view.showErrorDialog(
if (mwException == null) ""
else "\n${mwException.error.title} / ${mwException.error.details}"
)
Timber.e(t)
},
),
@ -194,7 +200,12 @@ class CategoriesPresenter
},
{ t: Throwable? ->
view.showProgress(false)
view.showError(R.string.no_categories_found)
view.showError(R.string.error_loading_categories)
val mwException = t as? MwIOException
view.showErrorDialog(
if (mwException == null) ""
else "\n${mwException.error.title} / ${mwException.error.details}"
)
Timber.e(t)
},
),

View file

@ -10,6 +10,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import com.jakewharton.rxbinding2.view.RxView
@ -26,12 +27,12 @@ import fr.free.nrw.commons.media.MediaDetailFragment
import fr.free.nrw.commons.upload.UploadActivity
import fr.free.nrw.commons.upload.UploadBaseFragment
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
import fr.free.nrw.commons.utils.handleKeyboardInsets
import fr.free.nrw.commons.wikidata.WikidataConstants.SELECTED_NEARBY_PLACE_CATEGORY
import io.reactivex.Notification
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import timber.log.Timber
import java.util.Objects
import java.util.concurrent.TimeUnit
import javax.inject.Inject
@ -69,6 +70,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
savedInstanceState: Bundle?
): View? {
binding = UploadCategoriesFragmentBinding.inflate(inflater, container, false)
binding!!.llContainerButtons.handleKeyboardInsets()
return binding!!.root
}
@ -115,7 +117,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
requireActivity(),
getString(R.string.categories_activity_title),
getString(R.string.categories_tooltip),
getString(android.R.string.ok),
getString(R.string.ok),
null
)
}
@ -197,6 +199,15 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
binding?.tilContainerSearch?.error = getString(stringResourceId)
}
override fun showErrorDialog(message: String) {
AlertDialog
.Builder(requireContext())
.setMessage(getString(R.string.error_loading_categories) + "\n" + message)
.setCancelable(false)
.setNegativeButton(R.string.ok){_,_ -> }
.show()
}
override fun setCategories(categories: List<CategoryItem>?) {
if (adapter == null) {
Timber.e("Adapter is null in setCategories")

View file

@ -27,6 +27,7 @@ import fr.free.nrw.commons.upload.UploadActivity
import fr.free.nrw.commons.upload.UploadBaseFragment
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
import fr.free.nrw.commons.utils.handleKeyboardInsets
import fr.free.nrw.commons.wikidata.WikidataConstants.SELECTED_NEARBY_PLACE
import io.reactivex.Notification
import io.reactivex.android.schedulers.AndroidSchedulers
@ -69,6 +70,7 @@ class DepictsFragment : UploadBaseFragment(), DepictsContract.View {
savedInstanceState: Bundle?
): View {
_binding = UploadDepictsFragmentBinding.inflate(inflater, container, false)
_binding!!.navigationButtonsContainer.handleKeyboardInsets()
return binding.root
}
@ -114,7 +116,7 @@ class DepictsFragment : UploadBaseFragment(), DepictsContract.View {
requireActivity(),
getString(R.string.depicts_step_title),
getString(R.string.depicts_tooltip),
getString(android.R.string.ok),
getString(R.string.ok),
null
)
}

View file

@ -70,7 +70,7 @@ class MediaLicenseFragment : UploadBaseFragment(), MediaLicenseContract.View {
requireActivity(),
getString(R.string.license_step_title),
getString(R.string.license_tooltip),
getString(android.R.string.ok),
getString(R.string.ok),
null
)
}

View file

@ -119,8 +119,8 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
private var basicKvStore: BasicKvStore? = null
private val keyForShowingAlertDialog = "isNoNetworkAlertDialogShowing"
private var uploadableFile: UploadableFile? = null
private var place: Place? = null
internal var uploadableFile: UploadableFile? = null
internal var place: Place? = null
private lateinit var uploadMediaDetailAdapter: UploadMediaDetailAdapter
var indexOfFragment = 0
var isExpanded = true
@ -142,19 +142,24 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
}
}
fun setImageToBeUploaded(
uploadableFile: UploadableFile?, place: Place?, inAppPictureLocation: LatLng?
) {
this.uploadableFile = uploadableFile
this.place = place
this.inAppPictureLocation = inAppPictureLocation
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
_binding = FragmentUploadMediaDetailFragmentBinding.inflate(inflater, container, false)
_binding!!.mediaDetailCardView.handleKeyboardInsets()
// intialise the adapter early to prevent uninitialized access
uploadMediaDetailAdapter = UploadMediaDetailAdapter(
this,
defaultKvStore.getString(Prefs.DESCRIPTION_LANGUAGE, "")!!,
recentLanguagesDao, voiceInputResultLauncher
)
uploadMediaDetailAdapter.callback =
UploadMediaDetailAdapter.Callback { titleStringID: Int, messageStringId: Int ->
showInfoAlert(titleStringID, messageStringId)
}
uploadMediaDetailAdapter.eventListener = this
binding.rvDescriptions.layoutManager = LinearLayoutManager(context)
binding.rvDescriptions.adapter = uploadMediaDetailAdapter
return binding.root
}
@ -163,20 +168,48 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
basicKvStore = BasicKvStore(requireActivity(), "CurrentUploadImageQualities")
if (fragmentCallback != null) {
indexOfFragment = fragmentCallback!!.getIndexInViewFlipper(this)
initializeFragment()
}
// restore adapter items from savedInstanceState if available
if (savedInstanceState != null) {
if (uploadMediaDetailAdapter.items.isEmpty() && fragmentCallback != null) {
uploadMediaDetailAdapter.items = savedInstanceState.getParcelableArrayList(UPLOAD_MEDIA_DETAILS)!!
presenter.setUploadMediaDetails(uploadMediaDetailAdapter.items, indexOfFragment)
val savedItems = savedInstanceState.getParcelableArrayList<UploadMediaDetail>(UPLOAD_MEDIA_DETAILS)
Timber.d("Restoring state: savedItems size = %s", savedItems?.size ?: "null")
if (savedItems != null && savedItems.isNotEmpty()) {
uploadMediaDetailAdapter.items = savedItems
// only call setUploadMediaDetails if indexOfFragment is valid
if (fragmentCallback != null) {
indexOfFragment = fragmentCallback!!.getIndexInViewFlipper(this)
if (indexOfFragment >= 0) {
presenter.setUploadMediaDetails(uploadMediaDetailAdapter.items, indexOfFragment)
Timber.d("Restored and set upload media details for index %d", indexOfFragment)
} else {
Timber.w("Invalid indexOfFragment %d, skipping setUploadMediaDetails", indexOfFragment)
}
} else {
Timber.w("fragmentCallback is null, skipping setUploadMediaDetails")
}
} else {
// initialize with a default UploadMediaDetail if saved state is empty or null
uploadMediaDetailAdapter.items = mutableListOf(UploadMediaDetail())
Timber.d("Initialized default UploadMediaDetail due to empty or null savedItems")
}
} else {
// intitialise with a default UploadMediaDetail for fresh fragment
if (uploadMediaDetailAdapter.items.isEmpty()) {
uploadMediaDetailAdapter.items = mutableListOf(UploadMediaDetail())
Timber.d("Initialized default UploadMediaDetail for new fragment")
}
}
if (fragmentCallback != null) {
indexOfFragment = fragmentCallback!!.getIndexInViewFlipper(this)
Timber.d("Fragment callback present, indexOfFragment = %d", indexOfFragment)
initializeFragment()
} else {
Timber.w("Fragment callback is null, skipping initializeFragment")
}
try {
if (!presenter.getImageQuality(indexOfFragment, inAppPictureLocation, requireActivity())) {
if (indexOfFragment >= 0 && !presenter.getImageQuality(indexOfFragment, inAppPictureLocation, requireActivity())) {
Timber.d("Image quality check failed, redirecting to MainActivity")
startActivityWithFlags(
requireActivity(),
MainActivity::class.java,
@ -184,11 +217,12 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
Intent.FLAG_ACTIVITY_SINGLE_TOP
)
}
} catch (_: Exception) {
} catch (e: Exception) {
Timber.e(e, "Error during image quality check")
}
}
private fun initializeFragment() {
internal fun initializeFragment() {
if (_binding == null) {
return
}
@ -206,7 +240,6 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
presenter.setupBasicKvStoreFactory { BasicKvStore(requireActivity(), it) }
presenter.receiveImage(uploadableFile, place, inAppPictureLocation)
initRecyclerView()
with (binding){
if (indexOfFragment == 0) {
@ -265,30 +298,12 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
}
}
/**
* init the description recycler veiw and caption recyclerview
*/
private fun initRecyclerView() {
uploadMediaDetailAdapter = UploadMediaDetailAdapter(
this,
defaultKvStore.getString(Prefs.DESCRIPTION_LANGUAGE, "")!!,
recentLanguagesDao, voiceInputResultLauncher
)
uploadMediaDetailAdapter.callback =
UploadMediaDetailAdapter.Callback { titleStringID: Int, messageStringId: Int ->
showInfoAlert(titleStringID, messageStringId)
}
uploadMediaDetailAdapter.eventListener = this
binding.rvDescriptions.layoutManager = LinearLayoutManager(context)
binding.rvDescriptions.adapter = uploadMediaDetailAdapter
}
private fun showInfoAlert(titleStringID: Int, messageStringId: Int) {
showAlertDialog(
requireActivity(),
getString(titleStringID),
getString(messageStringId),
getString(android.R.string.ok),
getString(R.string.ok),
null
)
}
@ -590,16 +605,14 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
var defaultLongitude = -122.431297
var defaultZoom = 16.0
val locationPickerIntent: Intent
/* Retrieve image location from EXIF if present or
check if user has provided location while using the in-app camera.
Use location of last UploadItem if none of them is available */
val locationPickerIntent: Intent
if (uploadItem.gpsCoords != null && uploadItem.gpsCoords!!
.decLatitude != 0.0 && uploadItem.gpsCoords!!.decLongitude != 0.0
) {
defaultLatitude = uploadItem.gpsCoords!!
.decLatitude
defaultLatitude = uploadItem.gpsCoords!!.decLatitude
defaultLongitude = uploadItem.gpsCoords!!.decLongitude
defaultZoom = uploadItem.gpsCoords!!.zoomLevel
@ -615,8 +628,7 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
defaultLongitude = locationLatLng[1].toDouble()
}
if (defaultKvStore.getString(LAST_ZOOM) != null) {
defaultZoom = defaultKvStore.getString(LAST_ZOOM)!!
.toDouble()
defaultZoom = defaultKvStore.getString(LAST_ZOOM)!!.toDouble()
}
locationPickerIntent = LocationPicker.IntentBuilder()

View file

@ -69,7 +69,18 @@ class UploadMediaPresenter @Inject constructor(
uploadMediaDetails: List<UploadMediaDetail>,
uploadItemIndex: Int
) {
repository.getUploads()[uploadItemIndex].uploadMediaDetails = uploadMediaDetails.toMutableList()
val uploadItems = repository.getUploads()
if (uploadItemIndex >= 0 && uploadItemIndex < uploadItems.size) {
if (uploadMediaDetails.isNotEmpty()) {
uploadItems[uploadItemIndex].uploadMediaDetails = uploadMediaDetails.toMutableList()
Timber.d("Set uploadMediaDetails for index %d, size %d", uploadItemIndex, uploadMediaDetails.size)
} else {
uploadItems[uploadItemIndex].uploadMediaDetails = mutableListOf(UploadMediaDetail())
Timber.w("Received empty uploadMediaDetails for index %d, initialized default", uploadItemIndex)
}
} else {
Timber.e("Invalid index %d for uploadItems size %d, skipping setUploadMediaDetails", uploadItemIndex, uploadItems.size)
}
}
override fun setupBasicKvStoreFactory(factory: (String) -> BasicKvStore) {

View file

@ -6,9 +6,20 @@ import android.database.Cursor
fun Cursor.getStringArray(name: String): List<String> =
stringToArray(getString(name))
/**
* Gets the String at the current row and specified column.
*
* @param name The name of the column to get the String from.
* @return The String if the column exists. Else, null is returned.
*/
@SuppressLint("Range")
fun Cursor.getString(name: String): String =
getString(getColumnIndex(name))
fun Cursor.getString(name: String): String? {
val index = getColumnIndex(name)
if (index == -1) {
return null
}
return getString(index)
}
@SuppressLint("Range")
fun Cursor.getInt(name: String): Int =

View file

@ -166,46 +166,29 @@ fun applyEdgeToEdgeBottomInsets(view: View) = view.applyEdgeToEdgeInsets { inset
* and accounts for navigation bar insets to avoid double offsets.
*/
fun View.handleKeyboardInsets() {
var existingBottomMargin = 0
ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets ->
existingBottomMargin = if (view.getTag(R.id.initial_margin_bottom) != null) {
ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets ->
val existingBottomMargin = if (view.getTag(R.id.initial_margin_bottom) != null) {
view.getTag(R.id.initial_margin_bottom) as Int
} else {
view.setTag(R.id.initial_margin_bottom, view.marginBottom)
view.marginBottom
}
val lp = layoutParams as MarginLayoutParams
val navBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars())
val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime())
val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime())
val imeBottomMargin = imeInsets.bottom - navBarInsets.bottom
lp.bottomMargin = if (imeVisible && imeBottomMargin >= existingBottomMargin)
imeBottomMargin + existingBottomMargin
else existingBottomMargin
layoutParams = lp
WindowInsetsCompat.CONSUMED
}
// Animate during IME transition
ViewCompat.setWindowInsetsAnimationCallback(
this,
object : WindowInsetsAnimationCompat.Callback(
DISPATCH_MODE_CONTINUE_ON_SUBTREE
) {
override fun onProgress(
insets: WindowInsetsCompat,
runningAnimations: MutableList<WindowInsetsAnimationCompat>
): WindowInsetsCompat {
val lp = layoutParams as MarginLayoutParams
val navBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars())
val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime())
val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime())
// Avoid extra space due to system nav bar when the keyboard is shown
val imeBottomMargin = imeInsets.bottom - navBarInsets.bottom
lp.bottomMargin = if(imeVisible && imeBottomMargin >= existingBottomMargin)
imeBottomMargin + existingBottomMargin
else existingBottomMargin
layoutParams = lp
return WindowInsetsCompat.CONSUMED
}
}
)
}
/**

View file

@ -37,7 +37,7 @@ object LocationUtils {
latLng = LatLng(latLngArray[1].trim().toDouble(),
latLngArray[0].trim().toDouble(), 1f)
} catch (e: Exception) {
Timber.e("Error while parsing user entered lat long: %s", e)
Timber.e(e, "Error while parsing user entered lat long")
}
return latLng

View file

@ -209,8 +209,8 @@ object PermissionUtils {
activity,
activity.getString(rationaleTitle),
activity.getString(rationaleMessage),
activity.getString(android.R.string.ok),
activity.getString(android.R.string.cancel),
activity.getString(R.string.ok),
activity.getString(R.string.cancel),
{
if (activity is UploadActivity) {
activity.isShowPermissionsDialog = true

View file

@ -0,0 +1,7 @@
package fr.free.nrw.commons.wikidata.mwapi
import fr.free.nrw.commons.wikidata.model.BaseModel
class MwErrorResponse : BaseModel() {
val error: MwLegacyServiceError? = null
}

View file

@ -0,0 +1,5 @@
package fr.free.nrw.commons.wikidata.mwapi
import java.io.IOException
class MwIOException(string: String, val error: MwLegacyServiceError) : IOException(string)

View file

@ -0,0 +1,14 @@
package fr.free.nrw.commons.wikidata.mwapi
import fr.free.nrw.commons.wikidata.model.BaseModel
class MwLegacyServiceError : BaseModel() {
val code: String? = null
private val info: String? = null
val title: String
get() = code ?: ""
val details: String
get() = info ?: ""
}

View file

@ -1,4 +0,0 @@
<vector android:height="16dp" android:viewportHeight="28"
android:viewportWidth="28" android:width="16dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#2D8BA4" android:pathData="M14,0L11.533,2.467L21.298,12.25H0V15.75H21.298L11.533,25.532L14,28L28,14L14,0Z"/>
</vector>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"></solid>
<solid android:color="@color/white" />
</shape>

View file

@ -71,7 +71,7 @@
android:layout_alignParentRight="true"
android:layout_marginLeft="@dimen/activity_margin_horizontal"
android:layout_marginRight="@dimen/activity_margin_horizontal"
android:text="I am not sure"
android:text="@string/quiz_i_am_not_sure"
android:backgroundTint="#D6DCE0"
android:layout_marginBottom="@dimen/activity_margin_vertical" />

View file

@ -98,7 +98,7 @@
android:paddingHorizontal="@dimen/activity_margin_horizontal"
android:layout_height="wrap_content"
android:backgroundTint="#D6DCE0"
android:text="Continue" />
android:text="@string/quiz_continue" />
</RelativeLayout>
</ScrollView>

View file

@ -24,22 +24,35 @@
android:id="@+id/toolbarBinding"
layout="@layout/toolbar" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/skip_image"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
<LinearLayout
android:id="@+id/skip_image_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:drawableEnd="@drawable/ic_info_outline_24dp"
android:drawablePadding="@dimen/medium_height"
android:drawableTint="@color/button_blue_dark"
android:paddingLeft="@dimen/medium_height"
android:paddingRight="@dimen/medium_height"
android:text="@string/skip_image"
android:textAllCaps="true"
android:textColor="@color/button_blue_dark"
android:textStyle="bold" />
android:orientation="horizontal"
android:gravity="center">
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/skip_image"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingHorizontal="@dimen/tiny_padding"
android:text="@string/skip_image"
android:textAllCaps="true"
android:textColor="@color/button_blue_dark"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/skip_image_info"
style="@style/Widget.AppCompat.Button.Borderless"
android:tint="@color/button_blue_dark"
android:layout_width="@dimen/half_standard_height"
android:layout_height="@dimen/half_standard_height"
android:layout_marginStart="@dimen/small_gap"
android:src="@drawable/ic_info_outline_24dp" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"

View file

@ -11,6 +11,6 @@
android:id="@+id/categories_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Don't show this message again" />
android:text="@string/upload_categories_dont_show_this_message_again" />
</LinearLayout>

View file

@ -12,17 +12,17 @@
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:hint="Type Language Name"
android:hint="@string/language_search_type_language_name"
android:padding="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></EditText>
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/recent_searches"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Recent Searches"
android:text="@string/language_search_recent_searches"
app:layout_constraintTop_toBottomOf="@id/search_language"
app:layout_constraintEnd_toEndOf="@+id/language_history_list"
android:layout_marginEnd="8dp"
@ -55,7 +55,7 @@
android:id="@+id/all_languages"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="All Languages"
android:text="@string/language_search_all_languages"
app:layout_constraintTop_toBottomOf="@id/separator"
app:layout_constraintEnd_toEndOf="@+id/language_history_list"
android:layout_margin="8dp"

View file

@ -6,7 +6,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?attr/mainBackground">
<Switch
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View file

@ -24,16 +24,6 @@
layout="@layout/show_captions_descriptions" />
</LinearLayout>
<ImageView
android:id="@+id/mediaDetailImageFailed"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:visibility="gone"
android:contentDescription="@string/mediaimage_failed"
/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/mediaDetailImageView"
android:layout_width="wrap_content"

View file

@ -22,9 +22,8 @@
android:id="@+id/tv_review_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:gravity="center"
tools:text="testing1"
android:textAlignment="center"
android:textColor="?attr/reviewHeading"
android:textSize="32sp"/>
@ -33,9 +32,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/filter_padding"
android:gravity="center_vertical"
android:gravity="center"
tools:text="testing2"
android:textAlignment="center"
android:textSize="22sp"/>
</LinearLayout>

View file

@ -119,7 +119,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
android:orientation="horizontal" />
<LinearLayout
android:id="@+id/ll_location_status"
@ -149,13 +149,6 @@
android:textColor="#2D8BA4"
android:textSize="@dimen/normal_text"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/tiny_margin"
android:layout_weight="1"
android:src="@drawable/ic_arrow_16dp" />
</LinearLayout>
</LinearLayout>

View file

@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/category_layout"
android:layoutDirection="locale"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -10,26 +11,31 @@
android:id="@+id/upload_category_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="48dp"
android:minHeight="48dp"
android:checkMark="?android:attr/textCheckMark"
android:checked="false"
android:gravity="center_vertical"
android:padding="@dimen/tiny_gap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/category_image"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/category_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:paddingEnd="@dimen/tiny_gap"
android:layout_marginStart="@dimen/tiny_gap"
android:layout_marginEnd="@dimen/tiny_gap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/upload_category_checkbox"
app:layout_constraintStart_toEndOf="@+id/upload_category_checkbox"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/text_container"
app:placeholderImage="@drawable/commons" />
<LinearLayout
android:id="@+id/text_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"

View file

@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/depicts_layout"
android:layoutDirection="locale"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -9,26 +10,31 @@
android:id="@+id/depict_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="48dp"
android:minHeight="48dp"
android:checkMark="?android:attr/textCheckMark"
android:checked="false"
android:gravity="center_vertical"
android:padding="@dimen/tiny_gap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/depicted_image"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/depicted_image"
android:layout_width="50dp"
android:layout_height="50dp"
android:paddingRight="@dimen/tiny_gap"
android:layout_marginStart="@dimen/tiny_gap"
android:layout_marginEnd="@dimen/tiny_gap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/depict_checkbox"
app:layout_constraintStart_toEndOf="@+id/depict_checkbox"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/text_container"
app:placeholderImage="@drawable/ic_wikidata_logo_24dp" />
<LinearLayout
android:id="@+id/text_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
@ -41,14 +47,14 @@
android:id="@+id/depicts_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Label"
android:text="@string/depicts_label"
android:textStyle="bold" />
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Description" />
android:text="@string/depicts_description" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -35,7 +35,6 @@
android:layout_height="wrap_content"
android:id="@+id/appwidget_title"
android:textAlignment="center"
android:layout_gravity="bottom"
android:textColor="@color/white"
android:layout_marginTop="@dimen/filter_padding"
android:layout_marginStart="@dimen/tiny_padding"
@ -47,6 +46,6 @@
android:id="@+id/appwidget_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="@string/appwidget_img" />
android:contentDescription="@string/appwidget_img" />
</LinearLayout>

View file

@ -5,19 +5,18 @@
android:id="@+id/rl_container_categories"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/standard_gap"
android:background="?attr/mainBackground"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_divider"
android:padding="@dimen/medium_padding"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/half_standard_height"
android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap"
android:orientation="horizontal">
<TextView
@ -25,7 +24,6 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/half_standard_height"
android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap"
android:gravity="center_vertical"
android:textSize="@dimen/normal_text"
android:textStyle="bold"
@ -77,7 +75,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/tiny_gap"
android:layout_marginRight="@dimen/tiny_gap"
android:layout_gravity="center_vertical|end"
android:indeterminate="true"
android:indeterminateOnly="true"
@ -110,7 +107,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="@dimen/standard_gap"
android:paddingVertical="@dimen/small_padding"
android:paddingHorizontal="@dimen/large_padding"
android:orientation="horizontal"
>

View file

@ -22,7 +22,6 @@
android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<TextView
@ -30,7 +29,6 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/half_standard_height"
android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap"
android:gravity="center_vertical"
android:textSize="@dimen/normal_text"
android:textStyle="bold"
@ -99,7 +97,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/tiny_gap"
android:layout_marginRight="@dimen/tiny_gap"
android:layout_gravity="center_vertical|end"
android:indeterminate="true"
android:indeterminateOnly="true"
@ -124,38 +121,35 @@
</LinearLayout>
<View
android:id="@+id/button_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@+id/depicts_next"
android:background="@color/divider_grey" />
android:id="@+id/button_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@+id/navigation_buttons_container"
android:background="@color/divider_grey" />
<Button
android:id="@+id/depicts_next"
android:layout_width="wrap_content"
<LinearLayout
android:id="@+id/navigation_buttons_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingHorizontal="@dimen/medium_padding"
android:paddingVertical="@dimen/small_padding"
android:layout_alignParentBottom="true"
android:layout_marginEnd="24dp"
android:layout_marginRight="24dp"
android:layout_marginBottom="24dp"
android:contentDescription="@string/next"
android:text="@string/next"
android:textColor="@android:color/white" />
<Button
android:id="@+id/depicts_previous"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap"
android:layout_marginBottom="24dp"
android:layout_toStartOf="@id/depicts_next"
android:layout_toLeftOf="@id/depicts_next"
android:contentDescription="@string/previous"
android:text="@string/previous" />
android:gravity="end">
<Button
android:id="@+id/depicts_previous"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/standard_gap"
android:contentDescription="@string/previous"
android:text="@string/previous" />
<Button
android:id="@+id/depicts_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/next"
android:text="@string/next"
android:textColor="@android:color/white" />
</LinearLayout>
</RelativeLayout>

View file

@ -51,10 +51,10 @@
<string name="menu_download">Иҭыгатәуп</string>
<string name="preference_license" fuzzy="true">Алицензиа</string>
<string name="preference_theme" fuzzy="true">Уахынлатәи арежим</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four">Attribution 4.0</string>
<string name="license_name_cc_by_sa">Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by">Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Attribution 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -80,7 +80,7 @@
<string name="_2fa_code">А Акод</string>
<string name="welcome_image_mount_zao">Ашьха Зао</string>
<string name="welcome_image_tulip">Атиульпан</string>
<string name="welcome_image_welcome_wikipedia">Бзиала шәаабеит Википедиа ахь</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Бзиала шәаабеит Википедиа ахь</string>
<string name="welcome_image_sydney_opera_house">Сиднеи аопера атеатр</string>
<string name="cancel">Аҟәыхра</string>
<string name="navigation_drawer_open">Иаарттәуп</string>

View file

@ -8,7 +8,7 @@
-->
<resources>
<string name="commons_facebook">Commons Facebook bladsy</string>
<string name="commons_github">Commons Github-bronkode</string>
<string name="commons_github" fuzzy="true">Commons Github-bronkode</string>
<string name="commons_logo">Commons logo</string>
<string name="commons_website">Commons webwerf</string>
<string name="submit">Indien</string>
@ -21,16 +21,7 @@
<item quantity="one">%1$d lêer aan die uploaden</item>
<item quantity="other">%1$d lêers aan die uploaden</item>
</plurals>
<plurals name="contributions_subtitle" fuzzy="true">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">Starting %1$d upload</item>
<item quantity="other">Starting %1$d uploads</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<plurals name="multiple_uploads_title">
<item quantity="one">%1$d upload</item>
<item quantity="other">%1$d uploads</item>
</plurals>
@ -122,10 +113,10 @@
<string name="preference_license">Standaard lisensie</string>
<string name="use_previous">Gebruik vorige titel en beskrywing</string>
<string name="preference_theme" fuzzy="true">Nag-modus</string>
<string name="license_name_cc_by_sa_four">Erkenning-DeelAlle 4.0</string>
<string name="license_name_cc_by_four">Erkenning 4.0</string>
<string name="license_name_cc_by_sa">Erkenning-DeelAlik 3.0</string>
<string name="license_name_cc_by">Erkenning 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Erkenning-DeelAlle 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Erkenning 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Erkenning-DeelAlik 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Erkenning 3.0</string>
<string name="tutorial_1_text">Op Wikimediuma Commons staan die meeste afbeeldings dit word in Wikipedia gebruik.</string>
<string name="tutorial_1_subtext">Uw afbeeldings help mense dwarsoor wêreld met kennis opdoen!</string>
<string name="tutorial_2_text">Upload asseblief alleen afbeeldings dit volledig deur uzelf gemaak wees:</string>
@ -174,15 +165,14 @@
<string name="become_a_tester_description">Sluit aan by ons beta-kanaal op Google Play en kry vroeë toegang tot nuwe funksies en foutoplossings</string>
<string name="_2fa_code">2FA-kode</string>
<string name="logout_verification">Wil u regtig afmeld?</string>
<string name="mediaimage_failed">Mediabeeld misluk</string>
<string name="no_subcategory_found">Geen subkategorieë gevind nie</string>
<string name="no_parentcategory_found">Geen ouerkategorieë gevind nie</string>
<string name="welcome_image_mount_zao">Mount Zao</string>
<string name="welcome_image_llamas">llamas</string>
<string name="welcome_image_rainbow_bridge">Reënboogbrug</string>
<string name="welcome_image_tulip">Tulip</string>
<string name="welcome_image_welcome_wikipedia">Welkom Wikipedia</string>
<string name="welcome_image_welcome_copyright">Welkom Kopiereg</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Welkom Wikipedia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Welkom Kopiereg</string>
<string name="welcome_image_sydney_opera_house">Sydney Opera Huis</string>
<string name="cancel">Kanselleer</string>
<string name="navigation_drawer_open">oop</string>
@ -295,11 +285,10 @@
<string name="nominate_delete">Benoem vir skrapping</string>
<string name="delete">Skrap</string>
<string name="Achievements">Prestasies</string>
<string name="statistics">Statistiek</string>
<string name="statistics_thanks">Dankie ontvang</string>
<string name="statistics_featured">Voorgestelde beelde</string>
<string name="statistics_wikidata_edits">Beelde via \"Plekke in die buurt\"</string>
<string name="level" fuzzy="true">Vlak</string>
<string name="level" fuzzy="true">Vlak %1$d</string>
<string name="images_uploaded">Beelde opgelaai</string>
<string name="image_reverts">Beelde nie teruggestel nie</string>
<string name="images_used_by_wiki">Beelde gebruik</string>
@ -369,5 +358,6 @@
<string name="check_category_success_message">Versoek kategorie-toets vir %1$s</string>
<string name="upload_nearby_place_found_title">Nabygeleë plek gevind</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Is dit \'n foto van Plek %1$s?</string>
<string name="location_permission_rationale">Opsionele toestemming: kry die huidige ligging vir kategorievoorstelle</string>
<string name="full_screen_mode_zoom_info">Brug to fingre for at zoome ind og ud.</string>
</resources>

View file

@ -4,7 +4,7 @@
-->
<resources>
<string name="commons_facebook">कॉमन्स फेसबुक पृष्ठ</string>
<string name="commons_github">कॉमन्स गिटहब स्त्रोत कूटशब्द</string>
<string name="commons_github" fuzzy="true">कॉमन्स गिटहब स्त्रोत कूटशब्द</string>
<string name="commons_logo">कॉमन्स क प्रतीक चिन्ह</string>
<string name="commons_website">कॉमन्स जालस्थान</string>
<string name="submit">जमा करौ</string>
@ -60,10 +60,10 @@
<string name="menu_cancel_upload">रद्द करौ</string>
<string name="menu_download">डाउनलोड करौ</string>
<string name="preference_license">डिफॉल्ट लाइसेन्स</string>
<string name="license_name_cc_by_sa_four">एट्रीब्यूशन-शेयरअलाइक 3.0</string>
<string name="license_name_cc_by_four">एट्रिब्यूशन 4.0</string>
<string name="license_name_cc_by_sa">एट्रीब्यूशन-शेयरअलाइक 3.0</string>
<string name="license_name_cc_by">एट्रिब्यूशन 4.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">एट्रीब्यूशन-शेयरअलाइक 3.0</string>
<string name="license_name_cc_by_four" fuzzy="true">एट्रिब्यूशन 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">एट्रीब्यूशन-शेयरअलाइक 3.0</string>
<string name="license_name_cc_by" fuzzy="true">एट्रिब्यूशन 4.0</string>
<string name="tutorial_3_text">कृपया अपलोड नाय करौ:</string>
<string name="welcome_final_button_text">हाँव!</string>
<string name="welcome_help_button_text">बेसी जानकारी</string>
@ -88,13 +88,12 @@
<string name="media_detail_license">लाइसेंस</string>
<string name="media_detail_coordinates">निर्देशांक</string>
<string name="_2fa_code">2 एफए कोड</string>
<string name="mediaimage_failed">मीडिया छवि विफल</string>
<string name="welcome_image_mount_zao">माउंट ज़ाओ</string>
<string name="welcome_image_llamas">ल्लामस</string>
<string name="welcome_image_rainbow_bridge">इंद्रधनुष केरौ पूल</string>
<string name="welcome_image_tulip">ट्यूलिप</string>
<string name="welcome_image_welcome_wikipedia">विकिपीडिया मँ स्वागत छौं</string>
<string name="welcome_image_welcome_copyright">प्रतिलिप्याधिकार मँ स्वागत छौं</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">विकिपीडिया मँ स्वागत छौं</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">प्रतिलिप्याधिकार मँ स्वागत छौं</string>
<string name="welcome_image_sydney_opera_house">सिडनी केरौ ओपेरा हाउस</string>
<string name="cancel">रद्द करौ</string>
<string name="navigation_drawer_open">उघाड़ौ</string>
@ -149,10 +148,9 @@
<string name="delete">हटाबौ</string>
<string name="Achievements">उपलब्धी सिनी</string>
<string name="Profile">प्रोफ़ाइल</string>
<string name="statistics">सांख्यिकी</string>
<string name="statistics_thanks">धन्यवाद प्राप्त करलखौ</string>
<string name="statistics_featured">निर्वाचित चित्र</string>
<string name="level" fuzzy="true">स्तर</string>
<string name="level" fuzzy="true">स्तर %1$d</string>
<string name="images_uploaded">चित्र अपलोड होलौं</string>
<string name="contributions_fragment">योगदान</string>
<string name="nearby_fragment">ठामे मँ</string>

View file

@ -16,6 +16,7 @@
* Lolekek
* Meno25
* Mido
* Mohammed Qays
* Monrokhoury
* Mr. Ibrahem
* NEHAOUA
@ -34,7 +35,7 @@
-->
<resources>
<string name="commons_facebook">صفحة فيسبوك الخاصة بكومنز</string>
<string name="commons_github">كود مصدر كومنز في غيت هب</string>
<string name="commons_github" fuzzy="true">كود مصدر كومنز في غيت هب</string>
<string name="commons_logo">شعار كومنز</string>
<string name="commons_website">موقع كومنز</string>
<string name="exit_location_picker">الخروج من منتقي الموقع</string>
@ -62,30 +63,22 @@
<item quantity="many">%1$d ملف جاري رفعه</item>
<item quantity="other">%1$d ملفات جاري رفعها</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">(%1$d)</item>
<item quantity="two">(%1$d)</item>
<item quantity="few">(%1$d)</item>
<item quantity="many">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">بدء التحميلات</string>
<plurals name="starting_multiple_uploads">
<item quantity="zero">لا معالج</item>
<item quantity="one">معالجة %d تحميل </item>
<item quantity="one">معالجة %1$d تحميل </item>
<item quantity="two">معالجان</item>
<item quantity="few">معالج</item>
<item quantity="many">معالجة</item>
<item quantity="other">معالجة %d تحميلات</item>
<item quantity="other">معالجة %1$d تحميلات</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="zero">لا مرفوعات</item>
<item quantity="one">%d تحميل</item>
<item quantity="one">%1$d تحميل</item>
<item quantity="two">مرفوعان</item>
<item quantity="few">مرفوع</item>
<item quantity="many">مرفوع</item>
<item quantity="other">%d تحميلات</item>
<item quantity="other">%1$d تحميلات</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="zero">سيتم ترخيص هذه الصور تحت %1$s</item>
@ -141,7 +134,7 @@
<string name="uploading_queued">تحميل في قائمة الانتظار (وضع الاتصال المحدود ممكّن)</string>
<string name="upload_completed_notification_title">رُفع %1$s!</string>
<string name="upload_completed_notification_text">انقر لعرض ملفك المرفوع</string>
<string name="upload_progress_notification_title_start">تحميل ملف: %s</string>
<string name="upload_progress_notification_title_start">تحميل ملف: %1$s</string>
<string name="upload_progress_notification_title_in_progress">يجري رفع %1$s</string>
<string name="upload_progress_notification_title_finishing">اكتمال رفع %1$s</string>
<string name="upload_failed_notification_title">الفشل في التحميل</string>
@ -191,6 +184,7 @@
<string name="title_activity_settings">الإعدادات</string>
<string name="title_activity_signup">سجّل</string>
<string name="title_activity_featured_images">الصور المختارة</string>
<string name="images_featured_explanation">الصور المميزة هي مساهمات من مصورين ورسامين ذوي مهارات عالية اختارها مجتمع ويكيميديا كومنز باعتبارها من بين أعلى مستويات الجودة على الموقع.</string>
<string name="title_activity_custom_selector">محدد مخصص</string>
<string name="title_activity_category_details">التصنيف</string>
<string name="title_activity_review">استعراض النظراء</string>
@ -207,6 +201,9 @@
<string name="no_uploads_yet">لم ترفع بعد أية صور.</string>
<string name="menu_retry_upload">إعادة المحاولة</string>
<string name="menu_cancel_upload">إلغاء</string>
<string name="language_search_type_language_name">نوع اللغة الاسم</string>
<string name="language_search_recent_searches">أحدث عمليات البحث</string>
<string name="language_search_all_languages">كل اللغات</string>
<string name="media_upload_policy">بتقديم هذه الصورة، أعلن أن هذا عملي الخاص، وأنه لا يحتوي على مواد محفوظة الحقوق أو صور شخصية، وغير ذلك يلتزم &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\"&gt;بسياسات ويكيميديا ​​كومنز&lt;/a&gt;.</string>
<string name="menu_download">نزّل</string>
<string name="preference_license">الرخصة الافتراضية</string>
@ -278,15 +275,14 @@
<string name="_2fa_code">رمز التحقق المزدوج 2FA</string>
<string name="email_auth_code">رمز التحقق من البريد الإلكتروني</string>
<string name="logout_verification">أترغب فعلا في الخروج؟</string>
<string name="mediaimage_failed">صورة الوسائط فشلت</string>
<string name="no_subcategory_found">لم يتم العثور على تصنيفات فرعية.</string>
<string name="no_parentcategory_found">لم يتم العثور على تصنيفات رئيسية.</string>
<string name="welcome_image_mount_zao">جبل زوا</string>
<string name="welcome_image_llamas">لاماس</string>
<string name="welcome_image_rainbow_bridge">جسر قوس قزح</string>
<string name="welcome_image_tulip">تيوليب</string>
<string name="welcome_image_welcome_wikipedia">مرحبا في ويكيبيديا</string>
<string name="welcome_image_welcome_copyright">حقوق نسخ الترحيب</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">مرحبا في ويكيبيديا</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">حقوق نسخ الترحيب</string>
<string name="welcome_image_sydney_opera_house">بيت أوبرا سيدني</string>
<string name="cancel">إلغاء</string>
<string name="navigation_drawer_open">فتح</string>
@ -319,6 +315,7 @@
<string name="upload_connection_error_alert_detail">تتطلب عملية التحميل الوصول إلى الإنترنت. يرجى التحقق من اتصال الشبكة الخاص بك.</string>
<string name="upload_problem_image">تم العثور على مشاكل في الصورة</string>
<string name="internet_downloaded">يُرجَى فقط رفع الصور التي التقطتها بنفسك، لا ترفع الصور التي قمت بتنزيلها من الإنترنت.</string>
<string name="preferences_uploads">المرفوعات</string>
<string name="use_external_storage">حفظ اللقطات داخل-التطبيق In-app</string>
<string name="use_external_storage_summary">حفظ الصور الملتقطة بالكاميرا داخل-التطبيق In-app على جهازك</string>
<string name="login_to_your_account">تسجيل الدخول إلى حسابك</string>
@ -390,6 +387,7 @@
<string name="quiz">لغز</string>
<string name="quiz_question_string">هل هذه الصورة موافقة للرفع؟</string>
<string name="question">سؤال</string>
<string name="quiz_i_am_not_sure">لست متأكدا</string>
<string name="result">النتيجة</string>
<string name="quiz_back_button">إذا استمر رفع الصور التي تتطلب الحذف، فمن المحتمل أن يتم من حسابك، هل أنت متأكد من أنك تريد إنهاء الاختبار؟</string>
<string name="quiz_alert_message">تم حذف أكثر من %1$s من الصور التي رفعتها، إذا استمر تحميل الصور التي تتطلب الحذف، فمن المحتمل أن يتم منع حسابك. \n\nهل ترغب في مشاهدة البرنامج التعليمي مرة أخرى ومن ثم إجراء اختبار لمساعدتك في معرفة نوع الصور التي ينبغي أو لا ينبغي رفعا؟</string>
@ -399,6 +397,7 @@
<string name="blurry_image_answer">أحد أهداف كومنز جمع صور عالية الجودة، لذلك; لا يجب رفع صور باهتة; حاول دائما التقاط صور جميلة بإضاءة جيدة.</string>
<string name="construction_event_answer">الصور التي تظهر التكنولوجيا أو الثقافة موضع ترحيب كبير في كومنز.</string>
<string name="congratulatory_message_quiz">لقد حصلت عل %1$s من الإجابات الصحيحة، تهانينا!</string>
<string name="quiz_continue">استمرار</string>
<string name="warning_for_no_answer">حدد أحد الخيارين للإجابة على السؤال</string>
<string name="user_not_logged_in">انتهت صلاحية جلسة تسجيل الدخول. يُرجَى تسجيل الدخول مرة أخرى.</string>
<string name="quiz_result_share_message">تبادل سؤالك مع أصدقائك!</string>
@ -422,12 +421,11 @@
<string name="Achievements">الإنجازات</string>
<string name="Profile">الملف الشخصي</string>
<string name="badges">أوسمة</string>
<string name="statistics">إحصاءات</string>
<string name="statistics_thanks">تم تلقي الشكر</string>
<string name="statistics_thanks">شكراً جزيلاً</string>
<string name="statistics_featured">الصور المختارة</string>
<string name="statistics_wikidata_edits">صور عبر \"الأماكن المجاورة\"</string>
<string name="level">المستوى %d</string>
<string name="profile_withLevel">%s (المستوى %s)</string>
<string name="level">المستوى %1$d</string>
<string name="profile_withLevel">%1$s (المستوى %2$s)</string>
<string name="images_uploaded">الصور المرفوعة</string>
<string name="image_reverts">لم يتم إرجاع الصور</string>
<string name="images_used_by_wiki">الصور المستخدمة</string>
@ -487,11 +485,13 @@
<string name="never_ask_again">لا تسأل هذا مرة أخرى</string>
<string name="display_location_permission_title">اطلب إذن الموقع</string>
<string name="display_location_permission_explanation">اطلب إذن الموقع عند الحاجة إلى ميزة عرض بطاقة التنبيه القريبة.</string>
<string name="achievements_fetch_failed">حدث خطأ ما، لم نتمكن من جلب إنجازاتك</string>
<string name="achievements_fetch_failed">لقد حدث خطأ ما ولم نتمكن من جلب الإنجازات</string>
<string name="achievements_fetch_failed_ultimate_achievement">لقد قدمت الكثير من المساهمات لا يستطيع نظامنا لحساب الإنجازات التعامل معها. هذا هو الإنجاز النهائي.</string>
<string name="ends_on">ينتهي في:</string>
<string name="display_campaigns">عرض الحملات</string>
<string name="display_campaigns_explanation">انظر الحملات الجارية</string>
<string name="show_deletion_button">أظهر زر الحذف</string>
<string name="show_deletion_button_explanation">تمكين زر \"حذف المجلد\" في أداة التحديد المخصصة</string>
<string name="in_app_camera_location_access_explanation">اسمح للتطبيق بجلب الموقع في حالة عدم تسجيله بالكاميرا. بعض كاميرات الأجهزة لا تسجل الموقع. في مثل هذه الحالات، فإن السماح للتطبيق بجلب الموقع وإرفاقه به يجعل مساهمتك أكثر فائدة. يمكنك تغيير هذا في أي وقت من خلال الإعدادات</string>
<string name="option_allow">السماح</string>
<string name="option_dismiss">رفض</string>
@ -515,11 +515,11 @@
<string name="check_category_failure_message">لا يمكن طلب التحقق من التصنيف %1$s</string>
<string name="check_category_toast">جارٍ طلب التحقق من التصنيف %1$s</string>
<string name="nominate_for_deletion_done">تم</string>
<string name="send_thank_success_title">إرسال الشكر: نجاح</string>
<string name="send_thank_success_message">تم بنجاح إرسال الشكر ل%1$s</string>
<string name="send_thank_failure_message">أخفق إرسال الشكر ل%1$s</string>
<string name="send_thank_failure_title">إرسال الشكر: فشل</string>
<string name="send_thank_toast">جارٍ إرسال شكرا على %1$s</string>
<string name="send_thank_success_title" fuzzy="true">إرسال الشكر: نجاح</string>
<string name="send_thank_success_message">تم الإرسال بفضل %1$s</string>
<string name="send_thank_failure_message">فشل إرسال الشكر إلى %1$s</string>
<string name="send_thank_failure_title" fuzzy="true">إرسال الشكر: فشل</string>
<string name="send_thank_toast" fuzzy="true">جارٍ إرسال شكرا على %1$s</string>
<string name="review_copyright">هل يتبع هذا قواعد حقوق النشر؟</string>
<string name="review_category">هل تم تصنيف هذا بشكل صحيح؟</string>
<string name="review_spam">هل هذا في النطاق؟</string>
@ -546,15 +546,14 @@
<string name="menu_option_unread">عرض غير المقروءة</string>
<string name="error_occurred_in_picking_images">حدث خطأ أثناء التقاط الصور</string>
<string name="please_wait">الرجاء الانتظار...</string>
<string name="images_featured_explanation">الصور المختارة هي صور من مصورين ورسامين ذوي مهارات عالية اختارها مجتمع ويكيميديا ​​كومنز كبعض الأفضل جودة على الموقع.</string>
<string name="images_via_nearby_explanation">الصور المرفوعة عبر الأماكن القريبة هي الصور المرفوعة عن طريق اكتشاف الأماكن على الخريطة.</string>
<string name="thanks_received_explanation">تتيح هذه الميزة للمحررين إرسال إشعار شكر للمستخدمين الذين يقومون بتعديلات مفيدة - باستخدام رابط شكر صغير في صفحة التاريخ أو صفحة الفرق.</string>
<string name="copy_image_caption_description">نسخ إلى الوسائط اللاحقة</string>
<string name="copy_image_caption_description">نسخ إلى العناصر التالية</string>
<string name="copied_successfully">نُسِخت!</string>
<string name="welcome_do_upload_content_description">أمثلة على صور جيدة لرفعها إلى كومنز</string>
<string name="welcome_dont_upload_content_description">أمثلة على صور لعدم رفعها</string>
<string name="skip_image">تخطي هذه الصورة</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">التنزيل فشل!!. لا يمكننا تنزيل الملف دون إذن تخزين خارجي.</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">فشل التنزيل. لا يمكننا تنزيل الملف بدون إذن تخزين خارجي.</string>
<string name="manage_exif_tags">إدارة وسوم EXIF</string>
<string name="manage_exif_tags_summary">حدد أية وسوم EXIF ​​لتحتفظ بها في المرفوعات</string>
<string name="exif_tag_name_author">المؤلف</string>
@ -564,11 +563,10 @@
<string name="exif_tag_name_lensModel">طراز العدسة</string>
<string name="exif_tag_name_serialNumbers">الأرقام التسلسلية</string>
<string name="exif_tag_name_software">برمجية</string>
<string name="media_location_permission_denied">رفض الوصول إلى موقع الوسائط</string>
<string name="add_location_manually">قد لا نتمكن من الحصول تلقائيًا على بيانات الموقع من الصور التي تقوم برفعها. يرجى إضافة الموقع المناسب لكل صورة قبل الإرسال</string>
<string name="share_text">ارفع الصور لويكيميديا ​​كومنز مباشرة من هاتفك. قم بتنزيل تطبيق كومنز الآن: %1$s</string>
<string name="share_via">مشاركة التطبيق عبر...</string>
<string name="image_info">معلومات الصورة</string>
<string name="upload_categories_dont_show_this_message_again">لا تظهر هذه الرسالة مرة أخرى</string>
<string name="no_categories_found">لم يتم العثور على تصنيفات</string>
<string name="no_depiction_found">لم يتم العثور على الصور</string>
<string name="upload_cancelled">تم إلغاء الرفع</string>
@ -629,7 +627,7 @@
<string name="description_activity_title">تحرير الأوصاف والتعليقات</string>
<string name="share_image_via">مشاركة الصور عبر</string>
<string name="you_have_no_achievements_yet">أنت لم تقم بأي مساهمة حتى الآن</string>
<string name="no_achievements_yet">لم يقم %s بأي مساهمات حتى الآن</string>
<string name="no_achievements_yet">لم يقم %1$s بأي مساهمات حتى الآن</string>
<string name="account_created">تم إنشاء الحساب!</string>
<string name="text_copy">تم نسخ النص إلى الحافظة.</string>
<string name="notification_mark_read">تم تعليم الإخطار كمقروء</string>
@ -638,7 +636,7 @@
<string name="place_state_exists">موجود</string>
<string name="place_state_needs_photo">يحتاج صورة</string>
<string name="place_type">نوع المكان:</string>
<string name="nearby_search_hint">جسر، متحف، فندق، إلخ</string>
<string name="nearby_search_hint">جسر، متحف، فندق، الخ.</string>
<string name="you_must_reset_your_passsword">حدث خطأ ما أثناء تسجيل الدخول. يجب عليك إعادة تعيين كلمة المرور الخاصة بك!</string>
<string name="title_for_media">وسائل الإعلام</string>
<string name="title_for_child_classes">تصنيف الأطفال</string>
@ -682,7 +680,7 @@
<string name="wikipedia_instructions_step_5">5. الصق نص ويكي في المكان المناسب.</string>
<string name="wikipedia_instructions_step_6">6. قم بتحرير نص ويكي لتحديد المواقع المناسبة، إذا لزم الأمر. لمزيد من المعلومات، انظر &lt;a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\"&gt;هنا&lt;/a&gt;.</string>
<string name="wikipedia_instructions_step_7">7. نشر المقال</string>
<string name="copy_wikicode_to_clipboard">نسخ كود الويكي إلى الحافظة</string>
<string name="copy_wikicode_to_clipboard">نسخ نص الويكي إلى الحافظة</string>
<string name="pause">إيقاف مؤقت</string>
<string name="resume">استئناف</string>
<string name="paused">متوقف مؤقتًا</string>
@ -724,6 +722,8 @@
<string name="categories_tooltip">الرجاء تحديد التصنيفات المناسبة. على عكس الصور، تتوفر التصنيفات باللغة الإنجليزية فقط.</string>
<string name="license_tooltip">كومنز يجعل صورك قابلة لإعادة الاستخدام وتكييفها من قبل الجميع. هل تريد التنازل عن جميع الحقوق؟ هل تريد أن تُنسب إليك؟ هل تريد أن تستخدام التكييفات نفس الترخيص؟</string>
<string name="depicts_step_title">يصور</string>
<string name="depicts_label">التسمية</string>
<string name="depicts_description">الوصف</string>
<string name="license_step_title">رخصة وسائل الإعلام</string>
<string name="media_detail_step_title">تفاصيل الوسائط</string>
<string name="menu_view_category_page">عرض صفحة التصنيف</string>
@ -750,7 +750,7 @@
<string name="back">رجوع</string>
<string name="welcome_custom_picture_selector_text">مرحبًا بك في محدد الصورة المخصص</string>
<string name="custom_selector_info_text1">يعرض لك هذا المنتقي الصور التي قمت بتحميلها بالفعل إلى العموم.</string>
<string name="custom_selector_info_text2">على عكس الصورة الموجودة على اليسار ، فإن الصورة الموجودة على اليمين بها شعار كومنز يشير إلى أنه تم تحميلها بالفعل. !ن! المس مع الاستمرار لمعاينة الصورة.</string>
<string name="custom_selector_info_text2">على عكس الصورة الموجودة على اليسار، فإن الصورة الموجودة على اليمين تحمل شعار Commons مما يشير إلى أنه تم تحميلها بالفعل.\n\nالمس مع الاستمرار لمعاينة الصورة.</string>
<string name="welcome_custom_selector_ok">رائع</string>
<string name="custom_selector_already_uploaded_image_text">تم تحميل هذه الصورة بالفعل إلى العموم.</string>
<string name="custom_selector_over_limit_warning">لأسباب فنية، لا يمكن للتطبيق تحميل أكثر من %1$d من الصور مرة واحدة بشكل موثوق. تم تجاوز حد التحميل %1$d بواسطة %2$d .</string>
@ -766,8 +766,10 @@
<string name="wlm_campaign_description">Wiki Loves Monuments هي مسابقة صور دولية للآثار تنظمها ويكيميديا</string>
<string name="need_permission">تحتاج إذن</string>
<string name="read_phone_state_permission_message">تحتاج الخرائط المجاورة لقراءة PHONE STATE لتعمل بشكل صحيح</string>
<string name="contributions_of_user">مساهمات المستخدم: %s</string>
<string name="achievements_of_user">إنجازات المستخدم: %s</string>
<string name="location_off_dialog_text">يرجى تشغيل خدمات الموقع لعرض الأماكن القريبة.</string>
<string name="location_permission_rationale">صلاحية اختيارية: احصل على الموقع الحالي لاقتراحات التصنيفات</string>
<string name="contributions_of_user">مساهمات المستخدم: %1$s</string>
<string name="achievements_of_user">إنجازات المستخدم: %1$s</string>
<string name="menu_view_user_page">اعرض صفحة المستخدم</string>
<string name="edit_depictions">تحرير الصور</string>
<string name="edit_categories">تحرير الفئات</string>
@ -778,7 +780,7 @@
<string name="location_message">تساعد بيانات الموقع محرري ويكي في العثور على صورتك، مما يجعلها أكثر فائدة.\nلا تحتوي مرفوعاتك الأخيرة على موقع.\nنقترح عليك تشغيل الموقع في إعدادات تطبيق الكاميرا.\nشكرًا لك على الرفع!</string>
<string name="no_location_found_title">لم يتم العثور على موقع</string>
<string name="no_location_found_message">ماذا عن إضافة المكان الذي التقطت فيه هذه الصورة؟\nتساعد بيانات الموقع محرري ويكي في العثور على صورتك، مما يجعلها أكثر فائدة.\nشكرًا لك!</string>
<string name="add_location">أضف الموقع</string>
<string name="add_location">إضافة الموقع</string>
<string name="feedback_sharing_data_alert">يُرجى إزالة أي معلومات لا تشعر بالارتياح عند مشاركتها علنًا من هذا البريد الإلكتروني. أيضًا ، يرجى العلم أن عنوان بريدك الإلكتروني الذي تنشر به ، والاسم المرتبط وصورة الملف الشخصي ، سيكونان مرئيين للجمهور.</string>
<string name="explore_map_details">التفاصيل</string>
<string name="achievements_unavailable_beta">الإنجازات متوفرة فقط في نكهة المنتج. يرجى مراجعة وثائق المطور.</string>
@ -799,8 +801,8 @@
<string name="unmark_as_not_for_upload">إلغاء علامة على أنه ليس للتحميل</string>
<string name="marking_as_not_for_upload">إلغاء علامة على أنه ليس للرفع</string>
<string name="unmarking_as_not_for_upload">إلغاء علامة على أنه ليس للرفع</string>
<string name="show_already_actioned_pictures">عرض الصور بالفعل</string>
<string name="hiding_already_actioned_pictures">إخفاء الصور بالفعل</string>
<string name="show_already_actioned_pictures">إظهار الصور التي تمت معالجتها بالفعل</string>
<string name="hiding_already_actioned_pictures">إخفاء الصور التي تمت معالجتها بالفعل</string>
<string name="no_more_images_found">لم يتم العثور على المزيد من الصور</string>
<string name="this_image_is_already_uploaded">تم تحميل هذه الصورة بالفعل</string>
<string name="can_not_select_this_image_for_upload">لا يمكن تحديد هذه الصورة للتحميل</string>
@ -840,19 +842,19 @@
<string name="do_you_want_to_open_kml_file">هل تريد فتح ملف KML؟</string>
<string name="failed_to_save_kml_file">فشل في حفظ ملف KML.</string>
<string name="failed_to_save_gpx_file">فشل في حفظ ملف GPX.</string>
<string name="saving_kml_file">حفظ ملف KML</string>
<string name="saving_gpx_file">حفظ ملف GPX</string>
<string name="saving_kml_file">حفظ كملف KML...</string>
<string name="saving_gpx_file">حفظ كملف GPX...</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="zero">لا صور تم اختيارها</item>
<item quantity="one">%d صورة تم اختيارها</item>
<item quantity="one">%1$d صورة تم اختيارها</item>
<item quantity="two">صورتان تم اختيارهما</item>
<item quantity="few">صور قليلة تم اختيارها</item>
<item quantity="many">صور كثيرة تم اختيارها</item>
<item quantity="other">%d صور تم اختيارها</item>
<item quantity="other">%1$d صور تم اختيارها</item>
</plurals>
<string name="multiple_files_depiction">يرجى تذكر أن جميع الصور في التحميل المتعدد تحصل على نفس الفئات والأوصاف. إذا لم تتشارك الصور في الأوصاف والفئات، فيرجى إجراء عدة عمليات تحميل منفصلة.</string>
<string name="multiple_files_depiction_header">ملاحظة حول التحميلات المتعددة</string>
<string name="nearby_wikitalk">الإبلاغ عن مشكلة حول هذا العنصر إلى Wikidata</string>
<string name="nearby_wikitalk">الإبلاغ عن مشكلة حول هذا العنصر إلى ويكي بيانات</string>
<string name="please_enter_some_comments">الرجاء إدخال بعض التعليقات</string>
<string name="talk">نقاش</string>
<string name="write_something_about_the_item">اكتب شيئًا عن العنصر \'%1$s\'. سيكون مرئيًا للعامة.</string>
@ -884,7 +886,6 @@
<string name="usages_on_commons_heading">كومنز</string>
<string name="usages_on_other_wikis_heading">مواقع ويكي أخرى</string>
<string name="file_usages_container_heading">حالات استخدام الملف</string>
<string name="title_activity_single_web_view">نشاط عرض ويب واحد</string>
<string name="account">حساب</string>
<string name="vanish_account">حذف الحساب</string>
<string name="account_vanish_request_confirm_title">تحذير من اختفاء الحساب</string>

View file

@ -104,7 +104,6 @@
<string name="media_detail_coordinates">স্থানাংকসমূহ</string>
<string name="media_detail_coordinates_empty">একো প্ৰদান কৰা নাই</string>
<string name="become_a_tester_title">এগৰাকী বিটা টেষ্টাৰ হওঁক</string>
<string name="mediaimage_failed">মিডিয়াৰ ছবি বিফল হ\'ল</string>
<string name="navigation_drawer_open">খোলক</string>
<string name="navigation_drawer_close">বন্ধ কৰক</string>
<string name="navigation_item_nearby">নিকটৱৰ্তী</string>
@ -119,8 +118,7 @@
<string name="app_widget_heading">দিনটোৰ ছবিখন</string>
<string name="search_commons">ক\'ম\'ঞ্চত সন্ধান কৰক</string>
<string name="delete">বিলোপ কৰক</string>
<string name="statistics">পৰিসংখ্যা</string>
<string name="level" fuzzy="true">স্তৰ</string>
<string name="level" fuzzy="true">স্তৰ %1$d</string>
<string name="error_occurred">ত্ৰুটি সংঘটিত হ\'ল!</string>
<string name="notifications">জাননী</string>
<string name="dialog_box_text_nomination">%1$s কিয় বিলোপ কৰা হ\'ব লাগে?</string>

View file

@ -8,7 +8,7 @@
-->
<resources>
<string name="commons_facebook">Páxina de Facebook de Commons</string>
<string name="commons_github">Códigu fonte de Commons en GitHub</string>
<string name="commons_github" fuzzy="true">Códigu fonte de Commons en GitHub</string>
<string name="commons_logo">Logo de Commons</string>
<string name="commons_website">Sitiu web de Commons</string>
<string name="exit_location_picker">Salir del selector d\'allugamientu</string>
@ -32,18 +32,14 @@
<item quantity="one">Xubiendo un ficheru</item>
<item quantity="other">Xubiendo %1$d ficheros</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Empiezando les xubíes</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Procesando %d xubida</item>
<item quantity="other">Procesando %d xubíes</item>
<item quantity="one">Procesando %1$d xubida</item>
<item quantity="other">Procesando %1$d xubíes</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d xubida</item>
<item quantity="other">%d xubíes</item>
<item quantity="one">%1$d xubida</item>
<item quantity="other">%1$d xubíes</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Esta imaxe quedará baxo la llicencia %1$s</item>
@ -83,7 +79,7 @@
<string name="uploading_queued">Xubida en cola (mou de conexón llindada activáu)</string>
<string name="upload_completed_notification_title">¡%1$s xubíu!</string>
<string name="upload_completed_notification_text">Toque pa ver la xuba</string>
<string name="upload_progress_notification_title_start">Xubiendo archivu: %s</string>
<string name="upload_progress_notification_title_start">Xubiendo archivu: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s ta xubiendo</string>
<string name="upload_progress_notification_title_finishing">Acabando de xubir %1$s</string>
<string name="upload_failed_notification_title">Falló la xubida de %1$s</string>
@ -129,6 +125,7 @@
<string name="title_activity_settings">Configuración</string>
<string name="title_activity_signup">Date d\'alta</string>
<string name="title_activity_featured_images">Imáxenes destacaes</string>
<string name="images_featured_explanation" fuzzy="true">Les imaxes destacaes son creaciones de talentosos fotógrafos y ilustradores que la comunidá de Wikimedia Commons reconoció como les de mayor calidá del sitiu.</string>
<string name="title_activity_custom_selector">Selector personalizáu</string>
<string name="title_activity_category_details">Categoría</string>
<string name="title_activity_review">Revisión por pares</string>
@ -150,10 +147,10 @@
<string name="preference_license">Llicencia predeterminada</string>
<string name="use_previous">Usar un títulu y descripción anterior</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four"> Reconocimientu-CompartirIgual 4.0</string>
<string name="license_name_cc_by_four"> Reconocimientu 4.0</string>
<string name="license_name_cc_by_sa"> Reconocimientu-CompartirIgual 3.0</string>
<string name="license_name_cc_by"> Reconocimientu 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Reconocimientu-CompartirIgual 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Reconocimientu 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Reconocimientu-CompartirIgual 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Reconocimientu 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -212,15 +209,14 @@
<string name="become_a_tester_description">Escueye\'l nuesu canal beta en Google Play y ten accesu tempranu a carauterístiques nueves ya igües de fallos</string>
<string name="_2fa_code">Códigu I2F</string>
<string name="logout_verification">¿Confirmes que quies salir?</string>
<string name="mediaimage_failed">Falló la imaxe multimedia</string>
<string name="no_subcategory_found">Nun s\'alcontraron categoríes</string>
<string name="no_parentcategory_found">Nun s\'atopó nenguna categoría padre</string>
<string name="welcome_image_mount_zao">Monte Zao</string>
<string name="welcome_image_llamas">Llames</string>
<string name="welcome_image_rainbow_bridge">Ponte del Arcu la Vieya</string>
<string name="welcome_image_tulip">Tulipa</string>
<string name="welcome_image_welcome_wikipedia">Bienvenida a Wikipedia</string>
<string name="welcome_image_welcome_copyright">Bienvenida a Derechos d\'autor</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Bienvenida a Wikipedia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Bienvenida a Derechos d\'autor</string>
<string name="welcome_image_sydney_opera_house">Ópera de Sidney</string>
<string name="cancel">Zarrar</string>
<string name="navigation_drawer_open">Abrir</string>
@ -349,11 +345,10 @@
<string name="delete">Desaniciar</string>
<string name="Achievements">Llogros</string>
<string name="Profile">Perfil</string>
<string name="statistics">Estadístiques</string>
<string name="statistics_thanks">Agradecimientos recibíos</string>
<string name="statistics_featured">Imáxenes destacaes</string>
<string name="statistics_wikidata_edits">Imaxes vía «Sitios Cercanos»</string>
<string name="level" fuzzy="true">Nivel</string>
<string name="level" fuzzy="true">Nivel %1$d</string>
<string name="images_uploaded">Imáxenes xubíes</string>
<string name="image_reverts">Imáxenes ensin revertir</string>
<string name="images_used_by_wiki">Imáxenes utilizaes</string>
@ -433,17 +428,17 @@
<string name="check_category_failure_message">Nun pudo pidise\'l control de categoría pa %1$s</string>
<string name="check_category_toast">Pidiendo control de categoría pa %1$s</string>
<string name="nominate_for_deletion_done">Fecho</string>
<string name="send_thank_success_title">Unviar agradecimientu: Correuto</string>
<string name="send_thank_success_message">Unvióse correutamente l\'agradecimientu a %1$s</string>
<string name="send_thank_failure_message">Falló l\'unviar agradecimientu a %1$s</string>
<string name="send_thank_failure_title">Unviar agradecimientu: Fallu</string>
<string name="send_thank_toast">Unviar agradecimientu por %1$s</string>
<string name="send_thank_success_title" fuzzy="true">Unviar agradecimientu: Correuto</string>
<string name="send_thank_success_message" fuzzy="true">Unvióse correutamente l\'agradecimientu a %1$s</string>
<string name="send_thank_failure_message" fuzzy="true">Falló l\'unviar agradecimientu a %1$s</string>
<string name="send_thank_failure_title" fuzzy="true">Unviar agradecimientu: Fallu</string>
<string name="send_thank_toast" fuzzy="true">Unviar agradecimientu por %1$s</string>
<string name="review_copyright">¿Esto sigue les regles de drechos d\'autor?</string>
<string name="review_category">¿Ta correchamente categorizáu?</string>
<string name="review_spam">¿Axústase a la tema?</string>
<string name="review_thanks">¿Quies dar les gracies al collaborador?</string>
<string name="review_spam_explanation">Pulsia NON para nomar esta imaxe pa desaniciar si nun ye pa nada útil.</string>
<string name="review_copyright_explanation">Los logotipos, les imáxenes de pantalla y los cartelos de películes son davezu infracciones a los derechos d\'autor.\nPulsia NON para nomar esta imaxe pa desaniciar</string>
<string name="review_spam_explanation">Calca NON para nomar esta imaxe pa desaniciar si nun ye pa nada útil.</string>
<string name="review_copyright_explanation">Los logotipos, les imáxenes de pantalla y los cartelos de películes son davezu infracciones a los derechos d\'autor.\nCalca NON para nomar esta imaxe pa desaniciar</string>
<string name="review_thanks_explanation">El to agradecimientu animara a %1$s</string>
<string name="review_no_category">¡Ai, esto nun ta siquier categorizao!</string>
<string name="review_category_explanation">Esta imaxe ta baxo %1$s categoríes.</string>
@ -463,13 +458,12 @@
<string name="menu_option_unread">Ver los nun lleíos</string>
<string name="error_occurred_in_picking_images">Asocedió un error al escoyer les imaxes</string>
<string name="please_wait">Espera…</string>
<string name="images_featured_explanation">Les imaxes destacaes son creaciones de talentosos fotógrafos y ilustradores que la comunidá de Wikimedia Commons reconoció como les de mayor calidá del sitiu.</string>
<string name="images_via_nearby_explanation">Les imaxes xubíes via Llugares Cercanos son les imaxes que se cargaron descubriendo llugares nel mapa.</string>
<string name="thanks_received_explanation">Esta función permite que los editores unvien una nota Gracies a los usuarios que realicen ediciones útiles usando un pequeñu enllaz d\'agradecimientu na páxina d\'historial o na de diferencies.</string>
<string name="welcome_do_upload_content_description">Exemplos d\'imaxes bones pa xubir a Commons</string>
<string name="welcome_dont_upload_content_description">Exemplos d\'imaxes que nun tienen de xubise</string>
<string name="skip_image">Saltar esta imaxe</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Falló la descarga. Nun podemos descargar el ficheru ensin permisu d\'almacenamientu esternu.</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission" fuzzy="true">Falló la descarga. Nun podemos descargar el ficheru ensin permisu d\'almacenamientu esternu.</string>
<string name="manage_exif_tags">Alministrar etiquetes EXIF</string>
<string name="manage_exif_tags_summary">Escoyer qué etiquetes EXIF tienen de caltenese nes cargues</string>
<string name="exif_tag_name_author">Autor</string>
@ -502,7 +496,7 @@
<string name="delete_helper_ask_reason_copyright_logo">Logo</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Porque ye</string>
<string name="share_image_via">Compartir imaxe per</string>
<string name="no_achievements_yet">%s nun fizó entá nenguna contribución</string>
<string name="no_achievements_yet">%1$s nun fizó entá nenguna contribución</string>
<string name="account_created">¡Cuenta creada!</string>
<string name="text_copy">Testu copiáu al cartafueyu</string>
<string name="notification_mark_read">Notificación marcada como lleida</string>
@ -511,7 +505,7 @@
<string name="place_state_exists">Existe</string>
<string name="place_state_needs_photo">Precisa foto</string>
<string name="place_type">Tipu de llugar:</string>
<string name="nearby_search_hint">Ponte, muséu, hotel etc.</string>
<string name="nearby_search_hint" fuzzy="true">Ponte, muséu, hotel etc.</string>
<string name="you_must_reset_your_passsword" fuzzy="true">¡¡Falló daqué al aniciar sesión, tienes de reaniciar la contraseña!!</string>
<string name="title_for_media">MEDIOS</string>
<string name="title_for_child_classes">CLASES FÍES</string>
@ -537,4 +531,5 @@
<string name="nearby_no_results">Nun s\'alcontraron llugares, tenta cambiar los criterios de gueta.</string>
<string name="confirm">Confirmar</string>
<string name="instructions_title">Instrucciones</string>
<string name="location_permission_rationale">Permisu opcional: llograr l\'allugamientu actual pa suxerir categoríes</string>
</resources>

View file

@ -5,7 +5,7 @@
* Nemoralis
-->
<resources>
<string name="crash_dialog_title">Nasazlıq</string>
<string name="crash_dialog_title">Commons çökdü</string>
<string name="crash_dialog_text">Uups. Nəsə düzgün çalışmır!</string>
<string name="crash_dialog_comment_prompt">Nə etdiyinizi bizə deyin, sonra e-poçt vasitəsilə bizimlə paylaşın. Bu, bizə bunu düzəltməyə kömək edəcək!</string>
<string name="crash_dialog_ok_toast">Təşəkkürlər!</string>

View file

@ -15,7 +15,7 @@
-->
<resources>
<string name="commons_facebook">Commons Facebook səhifəsi</string>
<string name="commons_github">Commons Github Mənbə Kodu</string>
<string name="commons_github">Commons GitHub mənbə kodu</string>
<string name="commons_logo">Commons Loqotipi</string>
<string name="commons_website">Commons Veb-saytı</string>
<string name="exit_location_picker">Məkan seçicidən çıxın</string>
@ -39,18 +39,14 @@
<item quantity="one">%1$d fayl yüklənir</item>
<item quantity="other">%1$d fayllar yüklənir</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Yükləmələrə Başlanılır</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">%d yükləmə emal edilir</item>
<item quantity="other">%d yükləmə emal edilir</item>
<item quantity="one">%1$d yükləmə emal edilir</item>
<item quantity="other">%1$d yükləmə emal edilir</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d yükləmə</item>
<item quantity="other">%d yükləmə</item>
<item quantity="one">%1$d yükləmə</item>
<item quantity="other">%1$d yükləmə</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Bu şəkil %1$s lisenziyası altında yayımlanacaq</item>
@ -94,7 +90,7 @@
<string name="uploading_queued">Yükləmə növbədə (məhdud əlaqə rejimi aktivdir)</string>
<string name="upload_completed_notification_title">%1$s yükləndi!</string>
<string name="upload_completed_notification_text">Yükləmənizə baxmaq üçün toxunun</string>
<string name="upload_progress_notification_title_start">Fayl yüklənir: %s</string>
<string name="upload_progress_notification_title_start">Fayl yüklənir: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s yüklənir</string>
<string name="upload_progress_notification_title_finishing">%1$s yüklənməsi başa çatdı</string>
<string name="upload_failed_notification_title">%1$s yükləmək alınmadı</string>
@ -131,6 +127,7 @@
<string name="categories_search_text_hint">Kateqoriyalarda axtar</string>
<string name="depicts_search_text_hint">Medianızın təsvir etdiyi elementləri axtarın (dağ, Tac Mahal və s.)</string>
<string name="menu_save_categories">Yadda saxla</string>
<string name="menu_overflow_desc">Daşan menyu</string>
<string name="refresh_button">Yenilə</string>
<string name="display_list_button">Siyahı</string>
<string name="contributions_subtitle_zero">(Hələ yükləmə yoxdur)</string>
@ -143,6 +140,7 @@
<string name="title_activity_settings">Nizamlamalar</string>
<string name="title_activity_signup">Qeydiyyatdan keç</string>
<string name="title_activity_featured_images">Seçilmiş şəkillər</string>
<string name="images_featured_explanation">Seçilmiş şəkillər, Wikimedia Commons icmasının saytda ən yüksək keyfiyyət kimi seçdiyi yüksək ixtisaslı fotoqrafların və illüstratorların töhfələridir.</string>
<string name="title_activity_custom_selector">Xüsusi Seçici</string>
<string name="title_activity_category_details">Kateqoriya</string>
<string name="title_activity_review">Yoxlanış</string>
@ -159,11 +157,18 @@
<string name="no_uploads_yet">Siz hələ heç bir şəkil yükləməmisiniz.</string>
<string name="menu_retry_upload">Yenidən cəhd edin</string>
<string name="menu_cancel_upload">İmtina</string>
<string name="language_search_type_language_name">Dilin adını yaz</string>
<string name="language_search_recent_searches">Son axtarışlar</string>
<string name="language_search_all_languages">Bütün dillər</string>
<string name="media_upload_policy">Bu şəkli yükləməklə bildirirəm ki, bu mənim şəxsi işimdir, onda müəllif hüququ ilə qorunan material və ya selfilər yoxdur və &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\"&gt;Vikianbar qaydalarına&lt;/a&gt; riayət edir.</string>
<string name="menu_download">Endir</string>
<string name="preference_license">Defolt lisenziya</string>
<string name="use_previous">Əvvəlki başlıq və təsvirdən istifadə et</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four">Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four">Attribution 4.0</string>
<string name="license_name_cc_by_sa">Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by">Attribution 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
<string name="tutorial_1_text">Vikianbar Vikipediyada istifadə olunan şəkillərin əksəriyyətinə ev sahibliyi edir.</string>
<string name="tutorial_1_subtext">Şəkilləriniz bütün dünyada insanları maarifləndirməyə kömək edir!</string>
@ -212,6 +217,7 @@
<string name="media_detail_description">Təsvir</string>
<string name="media_detail_discussion">Müzakirə</string>
<string name="media_detail_author">Müəllif</string>
<string name="media_detail_uploader">Yükləyici</string>
<string name="media_detail_uploaded_date">Yüklənmə tarixi</string>
<string name="media_detail_license">Lisenziya</string>
<string name="media_detail_coordinates">Koordinatlar</string>
@ -221,15 +227,14 @@
<string name="_2fa_code">2FA kodu</string>
<string name="email_auth_code">E-poçt doğrulama kodu</string>
<string name="logout_verification">Həqiqətən çıxış etmək istəyirsiniz?</string>
<string name="mediaimage_failed">Media şəkli uğursuz oldu</string>
<string name="no_subcategory_found">Heç bir alt kateqoriya tapılmadı</string>
<string name="no_parentcategory_found">Heç bir üst kateqoriya tapılmadı</string>
<string name="welcome_image_mount_zao">Zao dağı</string>
<string name="welcome_image_llamas">Lamalar</string>
<string name="welcome_image_rainbow_bridge">Göy qurşağı körpüsü</string>
<string name="welcome_image_tulip">Lalə</string>
<string name="welcome_image_welcome_wikipedia">Vikipediyaya xoş gəlmisiniz</string>
<string name="welcome_image_welcome_copyright">Müəlliflik hüquqlarına xoş gəlmisiniz</string>
<string name="welcome_image_welcome_wikipedia">Ümumi Vikipediya məqaləsinin sxematik şəkli.</string>
<string name="welcome_image_welcome_copyright">Üzərində müəllif hüququ simvolu olan kağız yığınının rəsmi.</string>
<string name="welcome_image_sydney_opera_house">Sidney Opera Evi</string>
<string name="cancel">İmtina</string>
<string name="navigation_drawer_open"></string>
@ -262,6 +267,7 @@
<string name="upload_connection_error_alert_detail">Yükləmə prosesi aktiv internetə çıxış tələb edir. Şəbəkə bağlantınızı yoxlayın.</string>
<string name="upload_problem_image">Şəkildə tapılan problemlər</string>
<string name="internet_downloaded">Zəhmət olmasa, yalnız özünüz çəkdiyiniz şəkilləri yükləyin. İnternetdən tapdığınız şəkilləri yükləməyin.</string>
<string name="preferences_uploads">Yükləmələr</string>
<string name="use_external_storage">Tətbiqdaxili kadrları yadda saxla</string>
<string name="use_external_storage_summary">Tətbiqdaxili kamera ilə çəkilmiş şəkilləri cihazın yaddaşında saxla</string>
<string name="login_to_your_account">Hesabınıza daxil olun</string>
@ -333,6 +339,7 @@
<string name="quiz">Sorğu</string>
<string name="quiz_question_string">Bu şəkli yükləmək olar?</string>
<string name="question">Sual</string>
<string name="quiz_i_am_not_sure">Əmin deyiləm</string>
<string name="result">Nəticə</string>
<string name="quiz_back_button">Silinməyi tələb edilən şəkilləri yükləməyə davam etsəniz, hesabınız blok olunacaq. Sorğunu bitirmək istədiyinizə əminsiniz?</string>
<string name="quiz_alert_message">Yüklədiyiniz şəkillərin %1$s+ ədədi silinib. Silinməyi tələb edilən şəkilləri yükləməyə davam etsəniz, hesabınız blok olunacaq.\n\nTəlimata yenidən baxmaq və sonra hansı növ şəkilləri yükləməli və ya yükləməməli olduğunuzu öyrənməyə kömək etmək üçün testdən keçmək istəyirsiniz?</string>
@ -342,6 +349,7 @@
<string name="blurry_image_answer">Vikianbarın məqsədlərindən biri keyfiyyətli şəkillər toplamaqdır. Ona görə də bulanıq şəkillər yüklənməməlidir. Həmişə yaxşııqlandırma ilə gözəl şəkillər çəkməyə çalışın.</string>
<string name="construction_event_answer">Texnologiya və ya mədəniyyəti təsvir edən şəkillər üçün Vikianbarda həmişə yer var.</string>
<string name="congratulatory_message_quiz">Cavabların %1$s ədədi düzgündür. Təbriklər!</string>
<string name="quiz_continue">Davam et</string>
<string name="warning_for_no_answer">Suala cavab vermək üçün iki variantdan birini seçin</string>
<string name="user_not_logged_in">Giriş müddəti bitib. Zəhmət olmasa, yenidən daxil olun.</string>
<string name="quiz_result_share_message">Bunu dostlarınızla paylaşın!</string>
@ -365,12 +373,11 @@
<string name="Achievements">Nailiyyətlər</string>
<string name="Profile">Profil</string>
<string name="badges">Rozetlər</string>
<string name="statistics">Statistika</string>
<string name="statistics_thanks">Qəbul edilən təşəkkürlər</string>
<string name="statistics_featured">Seçilmiş şəkillər</string>
<string name="statistics_wikidata_edits">\"Yaxınlıqdakı yerlər\" vasitəsilə şəkillər</string>
<string name="level">Səviyyə %d</string>
<string name="profile_withLevel">%s (Səviyyə %s)</string>
<string name="level">Səviyyə %1$d</string>
<string name="profile_withLevel">%1$s (Səviyyə %2$s)</string>
<string name="images_uploaded">Yüklənən şəkillər</string>
<string name="image_reverts">Geri qaytarılan şəkillər</string>
<string name="images_used_by_wiki">İstifadə olunan şəkillər</string>
@ -395,13 +402,438 @@
<string name="storage_permission">Yaddaş icazəsi</string>
<string name="write_storage_permission_rationale_for_image_share">Şəkilləri yükləmək üçün cihazınızın xarici yaddaşına giriş icazəsi lazımdır.</string>
<string name="nearby_notification_dismiss_message">Artıq şəkillərə ehtiyacı olan ən yaxın yeri görməyəcəksiniz. Bununla belə, istəyirsinizsə, bu bildirişi Parametrlərdə yenidən aktivləşdirə bilərsiniz.</string>
<string name="step_count">Addım %1$d/%2$d: %3$s</string>
<string name="next">Növbəti</string>
<string name="previous">Əvvəlki</string>
<string name="upload_title_duplicate">%1$s adlı fayl artıq mövcuddur. Davam etmək istədiyinizə əminsiniz?\n\nQeyd: Fayl adına uyğun şəkilçi avtomatik olaraq əlavə olunacaq.</string>
<string name="map_application_missing">Cihazınızda heç bir uyğun xəritə proqramı tapılmadı. Bu funksiyadan istifadə etmək üçün xəritə tətbiqini quraşdırın.</string>
<string name="title_page_bookmarks_pictures">Şəkillər</string>
<string name="title_page_bookmarks_locations">Məkanlar</string>
<string name="title_page_bookmarks_categories">Kateqoriyalar</string>
<string name="menu_bookmark">Əlfəcinlərə əlavə et/çıxar</string>
<string name="provider_bookmarks">Əlfəcinlər</string>
<string name="bookmark_empty">Siz heç bir əlfəcin əlavə etməmisiniz</string>
<string name="provider_bookmarks_location">Əlfəcinlər</string>
<string name="log_collection_started">Jurnalların toplanması başladı. Zəhmət olmasa, proqramı YENİDƏN BAŞLADIN, daxil olmaq istədiyiniz əməliyyatı yerinə yetirin və sonra yenidən \"Jurnal faylını göndər\" düyməsinə klikləyin</string>
<string name="deletion_reason_uploaded_by_mistake">Səhvən yükləmişəm</string>
<string name="deletion_reason_publicly_visible">Bunun ictimai olaraq görünəcəyini bilmirdim</string>
<string name="deletion_reason_bad_for_my_privacy">Bunun məxfiliyim üçün pis olduğunu anladım</string>
<string name="deletion_reason_no_longer_want_public">Fikrimi dəyişdim, daha ictimaiyyətə görünməsini istəmirəm</string>
<string name="deletion_reason_not_interesting">Təəssüf ki, bu şəkil ensiklopediya üçün maraqlı deyil</string>
<string name="uploaded_by_myself">%1$s tarixində yükləmişəm, ən azı %2$d məqalədə istifadə olunub.</string>
<string name="no_uploads">Commons-a xoş gəlmisiniz!\n\nƏlavə düyməsini klikləməklə ilk medianızı yükləyin.</string>
<string name="no_categories_selected">Heç bir kateqoriya seçilməyib</string>
<string name="no_categories_selected_warning_desc">Kateqoriyaları olmayan şəkillər nadir hallarda istifadə olunur. Kateqoriya seçmədən davam etmək istədiyinizə əminsiniz?</string>
<string name="no_depictions_selected">Heç bir təsvir seçilməyib</string>
<string name="no_depictions_selected_warning_desc">Nəyi təsvir etdiyi qeyd olunan şəkillər daha asan tapılır və istifadə olunma ehtimalı daha yüksəkdir. Bunsuz davam etmək istədiyinizə əminsiniz?</string>
<string name="back_button_warning">Yükləməni ləğv et</string>
<string name="back_button_warning_desc">Geri düyməsini istifadə etmək bu yükləməni ləğv edəcək və siz irəliləyişinizi itirəcəksiniz</string>
<string name="back_button_continue">Yükləməyə davam et</string>
<string name="upload_flow_all_images_in_set">(Dəstədəki bütün şəkillər üçün)</string>
<string name="search_this_area">Bu ərazini axtar</string>
<string name="nearby_card_permission_title">İcazə sorğusu</string>
<string name="nearby_card_permission_explanation">Şəkillərə ehtiyacı olan ən yaxın yeri göstərmək üçün cari məkanınızdan istifadə etməyimizi istəyirsiniz?</string>
<string name="unable_to_display_nearest_place">Məkan icazəsi olmadan şəkillərə ehtiyacı olan ən yaxın yeri göstərmək mümkün deyil</string>
<string name="never_ask_again">Bunu bir daha heç vaxt soruşma</string>
<string name="display_location_permission_title">Məkan icazəsi istə</string>
<string name="display_location_permission_explanation">Yaxınlıqdakı bildiriş kartına baxmaq funksiyası üçün lazım olduqda məkan icazəsi istəyin.</string>
<string name="achievements_fetch_failed">Xəta baş verdi və nailiyyətləri əldə edə bilmədik</string>
<string name="achievements_fetch_failed_ultimate_achievement">Siz bizim nailiyyətləri hesablama sistemimizin öhdəsindən gələ bilməyəcək qədər çox töhfə vermisiniz. Bu möhtəşəm nailiyyətdir.</string>
<string name="ends_on">Bitmə:</string>
<string name="display_campaigns">Kampaniyaları göstər</string>
<string name="display_campaigns_explanation">Davam edən kampaniyalara bax</string>
<string name="show_deletion_button">Silmə düyməsini göstər</string>
<string name="show_deletion_button_explanation">Fərdi seçicidə \"Qovluğu Sil\" düyməsini aktiv et</string>
<string name="in_app_camera_location_access_explanation">Kameranın qeyd etmədiyi halda, tətbiqə məkanı əldə etməyə icazə verin. Bəzi cihaz kameraları məkanı qeyd etmir. Belə hallarda, tətbiqin əldə edilməsinə və ona məkan əlavə edilməsinə icazə vermək töhfənizi daha faydalı edir. Bunu istənilən vaxt Parametrlərdən dəyişə bilərsiniz</string>
<string name="option_allow">İcazə ver</string>
<string name="option_dismiss">Bağla</string>
<string name="in_app_camera_needs_location">Zəhmət olmasa, parametrlərdən məkan icazəsini aktiv edin və yenidən cəhd edin. \n\nQeyd: Əgər proqram qısa müddət ərzində cihazdan yeri əldə edə bilmirsə, yükləmənin məkan məlumatı olmaya bilər.</string>
<string name="in_app_camera_location_permission_rationale">Məkan EXIF-də mövcud olmadığı halda, tətbiqdaxili kamera onu şəkillərinizə əlavə etmək üçün məkan icazəsi tələb edir. Zəhmət olmasa, tətbiqin məkanınıza daxil olmasına icazə verin və yenidən cəhd edin.\n\nQeyd: Əgər proqram qısa müddət ərzində cihazdan yeri əldə edə bilmirsə, yükləmənin məkan məlumatı olmaya bilər.</string>
<string name="in_app_camera_location_permission_denied">Məkan icazəsi olmadığı üçün proqram çəkilişlərlə birlikdə məkanı qeyd etməyəcək</string>
<string name="in_app_camera_location_unavailable">GPS söndürüldüyü üçün proqram çəkilişlərlə birlikdə məkanı qeyd etməyəcək</string>
<string name="open_document_photo_picker_title">Sənəd əsaslı foto seçicidən istifadə et</string>
<string name="open_document_photo_picker_explanation">Yeni Android foto seçicisi məkan məlumatını itirmək riski daşıyır. Əgər istifadə edirsinizsə, aktivləşdirin.</string>
<string name="location_loss_warning">Bunun söndürülməsi yeni Android foto seçicisini işə sala bilər. Bu, məkan məlumatını itirmək riski daşıyır.\n\nƏtraflı məlumat üçün \"Ətraflı məlumat\" üzərinə klikləyin.</string>
<string name="nearby_campaign_dismiss_message">Siz artıq kampaniyaları görməyəcəksiniz. Bununla belə, istəyirsinizsə, bu bildirişi Parametrlərdə yenidən aktivləşdirə bilərsiniz.</string>
<string name="this_function_needs_network_connection">Bu funksiya şəbəkə bağlantısı tələb edir. Bağlantı parametrlərinizi yoxlayın.</string>
<string name="error_processing_image">Şəkili emal edərkən xəta baş verdi. Zəhmət olmasa, yenidən cəhd edin!</string>
<string name="getting_edit_token">Redaktə üçün token əldə edilir</string>
<string name="check_category_adding_template">Kateqoriya yoxlaması üçün şablon əlavə edilir</string>
<string name="check_category_notification_title">%1$s üçün kateqoriya yoxlanışı tələb olunur</string>
<string name="check_category_edit_summary">Kateqoriya yoxlanışı tələb olunur</string>
<string name="check_category_success_title">Kateqoriya yoxlanışı tələb olundu</string>
<string name="check_category_failure_title">Kateqoriya yoxlama sorğusu işləmədi</string>
<string name="check_category_success_message">%1$s üçün kateqoriya yoxlanışı tələb olundu</string>
<string name="check_category_failure_message">%1$s üçün kateqoriya yoxlanışı tələb oluna bilmədi</string>
<string name="check_category_toast">%1$s üçün kateqoriya yoxlanışı tələb olunur</string>
<string name="nominate_for_deletion_done">Oldu</string>
<string name="send_thank_success_title">Təşəkkür uğurla göndərildi</string>
<string name="send_thank_failure_message">Təşəkkür göndərilə bilmədi %1$s</string>
<string name="send_thank_success_message">%1$s istifadəçisinə təşəkkür göndərildi</string>
<string name="send_thank_failure_message">%1$s istifadəçisinə təşəkkür göndərilə bilmədi</string>
<string name="send_thank_failure_title">Təşəkkür göndərilir: Xəta</string>
<string name="send_thank_toast">%1$s üçün təşəkkür göndərişi</string>
<string name="send_thank_toast">%1$s üçün təşəkkür göndərilir</string>
<string name="review_copyright">Bu, müəllif hüququ qaydalarına uyğundur?</string>
<string name="review_category">Bu, düzgün kateqoriyalaşdırılıb?</string>
<string name="review_spam">Bu, layihə əhatəsindədir?</string>
<string name="review_thanks">Töhfə verənə təşəkkür etmək istəyirsiniz?</string>
<string name="review_spam_explanation">Bu şəklin heç bir faydası yoxdursa, silinməyə namizəd etmək üçün NO düyməsini klikləyin.</string>
<string name="review_copyright_explanation">Loqolar, skrinşotlar, film afişaları çox vaxt müəllif hüquqları pozuntusudur.\nBu şəklin silinməsinə namizəd göstərmək üçün NO düyməsini basın</string>
<string name="review_thanks_explanation">%1$s təşəkkürlərinizlə həvəsləndiriləcək</string>
<string name="review_no_category">Ah, bu heç kateqoriyalaşdırılmayıb!</string>
<string name="review_category_explanation">Bu şəkil %1$s kateqoriyasındadır.</string>
<string name="review_spam_report_question">Əhatə dairəsindən kənardadır, çünki</string>
<string name="review_c_violation_report_question">Müəllif hüququ pozuntusudur, çünki</string>
<string name="review_thanks_yes_button_text">Növbəti şəkil</string>
<string name="review_thanks_no_button_text">Bəli, niyə də yox</string>
<string name="skip_image_explanation">Bu düyməni klikləsəniz, sizə Wikimedia Commons-dan bu yaxınlarda yüklənmiş başqa bir şəkil veriləcək</string>
<string name="review_image_explanation">Wikimedia Commons-un keyfiyyətini yaxşılaşdırmaq üçün şəkilləri nəzərdən keçirə bilərsiniz.\nYoxlamanın üç parametri var:\n\n- Bu şəkil əhatə dairəsindədir?\nƏgər Xeyr (deyil) seçsəniz, bu şəkilə silinmə namizədliyi şablonu əlavə olunacaq.\n\n- Bu şəkil müəllif hüquqları qaydalarına əməl edir?\n Əgər Xeyr (müəllif hüquqları qaydalarına əməl etmir) seçsəniz, bu şəkilə silinmə namizədliyi şablonu əlavə olunacaq.\n\n- Bu şəkilə düzgün kateqoriyalar əlavə edilib?\n Əgər Xeyr (düzgün kateqoriyalaşdırılmayıb) seçsəniz, bu şəkilə kateqoriyalaşdırma tələbi şablonu əlavə olunacaq.\n\nƏgər hər şey qaydasındadırsa, şəkilə heç bir şablon əlavə olunmur və sizə şəkil yükləyən istifadəçiyə təşəkkür etmək imkanı verilir.</string>
<string name="no_image">Heç bir şəkil istifadə edilməyib</string>
<string name="no_image_reverted">Heç bir şəkil geri qaytarılmayıb</string>
<string name="no_image_uploaded">Heç bir şəkil yüklənməyib</string>
<string name="no_notification">Oxunmamış bildirişləriniz yoxdur</string>
<string name="no_read_notification">Oxunmuş bildirişləriniz yoxdur</string>
<string name="share_logs_using">Jurnalı paylaş</string>
<string name="check_your_email_inbox">E-poçt qutunuzu yoxlayın</string>
<string name="menu_option_read">Oxunmuşlara bax</string>
<string name="menu_option_unread">Oxunmamışlara bax</string>
<string name="error_occurred_in_picking_images">Şəkilləri seçərkən xəta baş verdi</string>
<string name="please_wait">Zəhmət olmasa, gözləyin…</string>
<string name="images_via_nearby_explanation">Yaxınlıqdakı yerlər vasitəsilə yüklənən şəkillər xəritədə yerləri kəşf etməklə yüklənən şəkillərdir.</string>
<string name="thanks_received_explanation">Bu funksiya redaktorlara faydalı redaktə edən istifadəçilərə tarixçə səhifəsində və ya fərq səhifəsində kiçik bir təşəkkür keçidindən istifadə edərək Təşəkkür bildirişi göndərməyə imkan verir.</string>
<string name="copy_image_caption_description">Növbəti elementlərə kopiyala</string>
<string name="copied_successfully">Kopiyalandı!</string>
<string name="welcome_do_upload_content_description">Vikianbara yükləmək üçün yaxşı şəkillərin nümunələri</string>
<string name="welcome_dont_upload_content_description">Yüklənməməli şəkil nümunələri</string>
<string name="skip_image">Bu şəkli atla</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Yükləmə uğursuz oldu. Xarici yaddaş icazəsi olmadan faylı endirə bilmərik.</string>
<string name="manage_exif_tags">EXIF teqlərini idarə et</string>
<string name="manage_exif_tags_summary">Yükləmələrdə hansı EXIF teqlərinin saxlanacağını seç</string>
<string name="exif_tag_name_author">Müəllif</string>
<string name="exif_tag_name_copyright">Müəllif hüququ</string>
<string name="exif_tag_name_location">Məkan</string>
<string name="exif_tag_name_cameraModel">Kamera modeli</string>
<string name="exif_tag_name_lensModel">Linza modeli</string>
<string name="exif_tag_name_serialNumbers">Seriya nömrələri</string>
<string name="exif_tag_name_software">Proqram təminatı</string>
<string name="share_text">Şəkilləri birbaşa telefonunuzdan Wikimedia Commons-a yükləyin. Commons Tətbiqini indi endirin: %1$s</string>
<string name="share_via">Proqramı paylaş...</string>
<string name="image_info">Şəkil məlumatı</string>
<string name="upload_categories_dont_show_this_message_again">Bu mesajı bir daha göstərmə</string>
<string name="no_categories_found">Heç bir kateqoriya tapılmadı</string>
<string name="no_depiction_found">Heç bir təsvir tapılmadı</string>
<string name="upload_cancelled">Ləğv edilmiş yükləmə</string>
<string name="previous_image_title_description_not_found">Əvvəlki şəklin başlığı və ya təsviri üçün heç bir məlumat yoxdur</string>
<string name="dialog_box_text_nomination">%1$s niyə silinməlidir?</string>
<string name="review_is_uploaded_by">%1$s %2$s tərəfindən yüklənib</string>
<string name="default_description_language">Defolt təsvir dili</string>
<string name="delete_helper_show_deletion_title">Silinməyə namizəd göstərilir</string>
<string name="delete_helper_show_deletion_title_success">Uğurlu</string>
<string name="delete_helper_show_deletion_message_if">%1$s silinməyə namizəd göstərildi.</string>
<string name="delete_helper_show_deletion_title_failed">Uğursuz</string>
<string name="delete_helper_show_deletion_message_else">Silinməsini tələb etmək mümkün olmadı.</string>
<string name="delete_helper_ask_spam_selfie">heç bir məqalədə istifadə olunmayan selfi</string>
<string name="delete_helper_ask_spam_blurry">tamamilə bulanıq</string>
<string name="delete_helper_ask_spam_nonsense">mənasız, məqalədə istifadəyə tamamilə yararsızdır</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Mətbuat fotosu</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">İnternetdən təsadüfi foto</string>
<string name="delete_helper_ask_reason_copyright_logo">Loqo</string>
<string name="delete_helper_ask_reason_copyright_no_freedom_of_panorama">Panoram azadlığının pozulması</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Çünki</string>
<string name="category_edit_helper_make_edit_toast">Kateqoriyaları yeniləməyə çalışır.</string>
<string name="category_edit_helper_show_edit_title">Kateqoriya yeniləməsi</string>
<string name="category_edit_helper_show_edit_title_success">Uğurlu</string>
<plurals name="category_edit_helper_show_edit_message_if">
<item quantity="one">%1$s kateqoriyası əlavə edildi.</item>
<item quantity="other">%1$s kateqoriyaları əlavə edildi.</item>
</plurals>
<string name="category_edit_helper_edit_message_else">Kateqoriyalar əlavə etmək mümkün olmadı.</string>
<string name="category_edit_button_text">Kateqoriyaları yenilə</string>
<string name="depictions_edit_helper_make_edit_toast">Təsvirləri yeniləməyə çalışır.</string>
<string name="depictions_edit_helper_show_edit_title">Təsvirləri redaktə et</string>
<plurals name="depictions_edit_helper_show_edit_message_if">
<item quantity="one">%1$s təsviri əlavə edildi.</item>
<item quantity="other">%1$s təsvirləri əlavə edildi.</item>
</plurals>
<string name="depictions_edit_helper_edit_message_else">Təsvirləri əlavə etmək mümkün olmadı.</string>
<string name="coordinates_edit_helper_make_edit_toast">Koordinatları yeniləməyə çalışır.</string>
<string name="coordinates_edit_helper_show_edit_title">Koordinatların yenilənməsi</string>
<string name="description_edit_helper_show_edit_title">Təsvir yeniləməsi</string>
<string name="caption_edit_helper_show_edit_title">Başlıq yeniləməsi</string>
<string name="coordinates_edit_helper_show_edit_title_success">Uğurlu</string>
<string name="coordinates_edit_helper_show_edit_message">%1$s koordinatları əlavə edildi.</string>
<string name="description_edit_helper_show_edit_message">Təsvirlər əlavə olundu.</string>
<string name="caption_edit_helper_show_edit_message">Başlıq əlavə olundu.</string>
<string name="coordinates_edit_helper_edit_message_else">Koordinatları əlavə etmək mümkün olmadı.</string>
<string name="description_edit_helper_edit_message_else">Təsvirləri əlavə etmək mümkün olmadı.</string>
<string name="caption_edit_helper_edit_message_else">Başlıq əlavə etmək mümkün olmadı.</string>
<string name="coordinates_picking_unsuccessful">Şəklin koordinatları yenilənməyib</string>
<string name="descriptions_picking_unsuccessful">Təsvirləri əldə etmək mümkün deyil.</string>
<string name="description_activity_title">Təsvirləri və başlıqları redaktə et</string>
<string name="share_image_via">Şəkli paylaş</string>
<string name="you_have_no_achievements_yet">Hələ heç bir töhfə verməmisiniz</string>
<string name="no_achievements_yet">%1$s hələ heç bir töhfə verməyib</string>
<string name="account_created">Hesab yaradıldı!</string>
<string name="text_copy">Mətn buferə kopiyalandı.</string>
<string name="notification_mark_read">Bildiriş oxunmuş olaraq işarələndi</string>
<string name="some_error">Xəta baş verdi:</string>
<string name="place_state">Yer vəziyyəti:</string>
<string name="place_state_exists">Mövcuddur</string>
<string name="place_state_needs_photo">Foto lazımdır</string>
<string name="place_type">Yer növü:</string>
<string name="nearby_search_hint">Körpü, muzey, otel və s.</string>
<string name="you_must_reset_your_passsword">Giriş zamanı xəta baş verdi. Siz parolunuzu sıfırlamalısınız!</string>
<string name="title_for_media">MEDİA</string>
<string name="title_for_child_classes">AŞAĞI SİNİFLƏR</string>
<string name="title_for_parent_classes">ÜST SİNİFLƏR</string>
<string name="title_for_subcategories">ALT KATEQORİYALAR</string>
<string name="title_for_parent_categories">ANA KATEQORİYALAR</string>
<string name="upload_nearby_place_found_title">Yaxınlıqda yer tapıldı</string>
<string name="upload_nearby_place_found_description_plural">Bunlar %1$s şəkilləridir?</string>
<string name="upload_nearby_place_found_description_singular">Bu %1$s şəklidir?</string>
<string name="title_app_shortcut_bookmark">Əlfəcinlər</string>
<string name="title_app_shortcut_setting">Parametrlər</string>
<string name="remove_bookmark">Əlfəcinlərdən silindi</string>
<string name="add_bookmark">Əlfəcinlərə əlavə edildi</string>
<string name="wallpaper_set_unsuccessfully">Nəsə xəta baş verdi. Divar kağızı qurmaq mümkün olmadı</string>
<string name="setting_wallpaper_dialog_title">Divar kağızı kimi təyin et</string>
<string name="setting_wallpaper_dialog_message">Divar kağızı qurulur. Zəhmət olmasa, gözləyin...</string>
<string name="theme_default_name">Sistemi izlə</string>
<string name="theme_dark_name">Gecə</string>
<string name="theme_light_name">Gündüz</string>
<string name="cannot_open_location_settings">Məkan parametrlərini açmaq alınmadı. Zəhmət olmasa, məkanı əl ilə aktiv edin</string>
<string name="recommend_high_accuracy_mode">Ən yaxşı nəticələr üçün Yüksək Dəqiqlik rejimini seçin.</string>
<string name="ask_to_turn_location_on">Məkan aktiv edilsin?</string>
<string name="ask_to_turn_location_on_text">Zəhmət olmasa tətbiqin cari məkanınızı göstərmək üçün məkan xidmətlərini aktiv edin</string>
<string name="nearby_needs_location">Yaxınlıqdakılar səhifəsinin düzgün işləməsi üçün məkanın aktivləşdirilməsi lazımdır</string>
<string name="explore_map_needs_location">Yaxınlıqdakı şəkilləri göstərmək üçün məkan icazəsi lazımdır</string>
<string name="upload_map_location_access">Məkanı avtomatik təyin etmək üçün məkan icazəsi verməlisiniz.</string>
<string name="use_location_from_similar_image">Bu iki şəkli eyni yerdə çəkmisiniz? Sağdakı şəklin enini/uzunluğunu istifadə etmək istəyirsiniz?</string>
<string name="load_more">Daha çox yüklə</string>
<string name="nearby_no_results">Heç bir yer tapılmadı, axtarış kriteriyalarınızı dəyişməyə cəhd edin.</string>
<string name="todo_improve">Təklif olunan təkmilləşdirmələr:</string>
<string name="missing_category">- İstifadə qabiliyyətini yaxşılaşdırmaq üçün bu şəkilə kateqoriyalar əlavə edin.</string>
<string name="missing_article">- Bu şəkli heç bir təsviri olmayan əlaqəli Vikipediya məqaləsinə əlavə edin.</string>
<string name="add_picture_to_wikipedia_article_title">Şəkli Vikipediyaya əlavə et</string>
<string name="add_picture_to_wikipedia_article_desc">Bu şəkli %1$s dilli Vikipediya məqaləsinə əlavə etmək istəyirsiniz?</string>
<string name="confirm">Təsdiq et</string>
<string name="instructions_title">Təlimatlar</string>
<string name="wikipedia_instructions_step_1">1. Aşağıdakı vikimətndən istifadə et:</string>
<string name="wikipedia_instructions_step_2">2. Təsdiq etə klikləmək Vikipediya məqaləsini açacaq</string>
<string name="wikipedia_instructions_step_3">3. Məqalədə şəkliniz üçün uyğun bölmə tapın</string>
<string name="wikipedia_instructions_step_4">4. Həmin bölmə üçün Redaktə et ikonasına (qələm kimi olan) klikləyin.</string>
<string name="wikipedia_instructions_step_5">5. Vikimətni müvafiq yerə yapışdırın.</string>
<string name="wikipedia_instructions_step_6">6. Lazım gələrsə, müvafiq yerləşdirmə üçün vikimətni redaktə edin. Ətraflı məlumat üçün &lt;a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\"&gt;buraya&lt;/a&gt; baxın.</string>
<string name="wikipedia_instructions_step_7">7. Məqaləni dərc edin</string>
<string name="copy_wikicode_to_clipboard">Vikimətni mübadilə buferinə köçür</string>
<string name="pause">dayan</string>
<string name="resume">davam et</string>
<string name="paused">Dayandırıldı</string>
<string name="more">Daha çox</string>
<string name="bookmarks">Əlfəcinlər</string>
<string name="achievements_tab_title">Nailiyyətlər</string>
<string name="leaderboard_tab_title">Liderlər lövhəsi</string>
<string name="rank_prefix">Reytinq:</string>
<string name="count_prefix">Say:</string>
<string name="leaderboard_column_rank">Dərəcə</string>
<string name="leaderboard_column_user">İstifadəçi</string>
<string name="leaderboard_column_count">Sayı</string>
<string name="setting_avatar_dialog_title">Lider lövhəsi avatarı kimi təyin et</string>
<string name="setting_avatar_dialog_message">Avatar olaraq təyin edilir, gözləyin</string>
<string name="avatar_set_successfully">Avatar təyin edildi</string>
<string name="avatar_set_unsuccessfully">Yeni avatarı təyin edərkən xəta baş verdi, yenidən cəhd edin</string>
<string name="menu_set_avatar">Avatar olaraq təyin et</string>
<string name="leaderboard_yearly">İllik</string>
<string name="leaderboard_weekly">Həftəlik</string>
<string name="leaderboard_all_time">Hamısı</string>
<string name="leaderboard_upload">Yükləmə</string>
<string name="leaderboard_nearby">Yaxınlıqdakılar</string>
<string name="leaderboard_used">İstifadə olunur</string>
<string name="leaderboard_my_rank_button_text">Mənim dərəcəm</string>
<string name="limited_connection_enabled">Məhdud bağlantı rejimi aktivləşdirildi!</string>
<string name="limited_connection_disabled">Məhdud bağlantı rejimi deaktiv edilib. Gözləyən yükləmələr indi davam edəcək.</string>
<string name="limited_connection_mode">Məhdud Bağlantı Rejimi</string>
<string name="statistics_quality">Keyfiyyətli Şəkillər</string>
<string name="quality_images_info">Keyfiyyətli şəkillər müəyyən keyfiyyət standartlarına cavab verən (əsasən texniki xarakter daşıyır) və Vikimedia layihələri üçün dəyərli diaqramlar və ya fotoşəkillərdir.</string>
<string name="resuming_upload">Yükləmə davam etdirilir…</string>
<string name="pausing_upload">Yükləmə dayandırılır…</string>
<string name="cancelling_upload">Yükləmə ləğv edilir…</string>
<string name="cancel_upload">Yükləməni ləğv et</string>
<string name="limited_connection_explanation">Siz məhdud bağlantı rejimini aktiv etmisiniz. Bütün yükləmələr dayandırılıb və siz bu rejimi söndürdükdən sonra davam edəcək.</string>
<string name="limited_connection_is_on">Məhdud bağlantı rejimi aktivdir.</string>
<string name="media_details_tooltip">Zəhmət olmasa şəklinizin nəyi göstərdiyini izah edən qısa məlumat yazın. Təsvirdə şəklin maraqlı və ya tipik və ya nadir olduğunu söyləyin və görünən və ya olmayan konteksti izah edin. Bacardığınız qədər dəqiq terminologiyadan istifadə edin.</string>
<string name="depicts_tooltip">Zəhmət olmasa, bu şəklin təsvir etdiyi bütün konsepsiyaları tapın və seçin. Bacardığınız qədər konkret olun. Şəkil birdən çox elementi təsvir edirsə, onların hamısını seçin. Daha spesifik teqlər varsa, ümumiləşdirilmiş teqləri seçməyin.</string>
<string name="categories_tooltip">Müvafiq kateqoriyaları seçin. Təsvirlərdən fərqli olaraq kateqoriyalar yalnız ingilis dilindədir.</string>
<string name="license_tooltip">Commons şəkillərinizi hamı tərəfindən yenidən istifadə edilə və uyğunlaşdırıla bilən edir. Bütün hüquqlardan imtina etmək istəyirsiniz? Sizə istinad edilməsini istəyirsiniz? Uyğunlaşdırmaların eyni lisenziya ilə paylaşılmasını istəyirsiniz?</string>
<string name="depicts_step_title">Təsvir edir</string>
<string name="depicts_label">Etiket</string>
<string name="depicts_description">Təsvir</string>
<string name="license_step_title">Media lisenziyası</string>
<string name="media_detail_step_title">Media detalları</string>
<string name="menu_view_category_page">Kateqoriya səhifəsinə bax</string>
<string name="menu_view_item_page">Element səhifəsinə bax</string>
<string name="app_ui_language">Proqram istifadəçi interfeysi dili</string>
<string name="remove">Başlıq və təsviri silir</string>
<string name="read_help_link">Daha ətraflı oxu</string>
<string name="media_detail_in_all_languages">Bütün dillərdə</string>
<string name="choose_a_location">Məkan seç</string>
<string name="pan_and_zoom_to_adjust">Tənzimləmək üçün sürüşdürün və böyüdün</string>
<string name="select_location_location_picker">Məkan seç</string>
<string name="show_in_map_app">Xəritə proqramında göstər</string>
<string name="modify_location">Məkanı redaktə et</string>
<string name="location_picker_image_view">Məkan seçicinin şəkil görünüşü</string>
<string name="location_picker_image_view_shadow">Məkan seçicisinin şəkil görünüşünün kölgəsi</string>
<string name="image_location">Şəklin yeri</string>
<string name="check_whether_location_is_correct">Yerin düzgün olub olmadığını yoxlayın</string>
<string name="label">Etiket</string>
<string name="description">ıqlama</string>
<string name="title_page_bookmarks_items">Elementlər</string>
<string name="custom_selector_title">Xüsusi Seçici</string>
<string name="custom_selector_empty_text">Şəkillər yoxdur</string>
<string name="done">Oldu</string>
<string name="back">Geriyə</string>
<string name="welcome_custom_picture_selector_text">Xüsusi Şəkil Seçicisinə xoş gəlmisiniz</string>
<string name="custom_selector_info_text1">Bu seçici Commons-a hansı şəkilləri artıq yüklədiyinizi göstərir.</string>
<string name="custom_selector_info_text2">Soldakı şəkildən fərqli olaraq, sağdakı şəkildə artıq yükləndiyini göstərən Commons loqosu var.\n \nŞəklin önizləməsi üçün toxunub saxlayın.</string>
<string name="welcome_custom_selector_ok">Möhtəşəm</string>
<string name="custom_selector_already_uploaded_image_text">Bu şəkil artıq Commons-a yüklənib.</string>
<string name="custom_selector_over_limit_warning">Texniki səbəblərə görə proqram eyni vaxtda %1$d+ şəkil yükləyə bilməz. %1$d yükləmə limiti %2$d ilə aşıldı.</string>
<string name="custom_selector_dismiss_limit_warning_button_text">Bağla</string>
<string name="custom_selector_button_limit_text">Maks: %1$d</string>
<string name="custom_selector_limit_error_desc">Xəta: Yükləmə Limiti aşıldı</string>
<string name="wlm_upload_info">Bu şəkil Viki Abidələri Sevir müsabiqəsində iştirak edəcək</string>
<string name="display_monuments">Abidələri göstər</string>
<string name="wlm_month_message">Viki Abidələri Sevir ayıdır!</string>
<string name="learn_more">ƏTRAFLI ÖYRƏN</string>
<string name="wlm_campaign_title">Viki Abidələri Sevir</string>
<string name="wlm_campaign_description">Viki Abidələri Sevir Vikimedia tərəfindən təşkil edilən abidələr üçün beynəlxalq foto müsabiqəsidir</string>
<string name="need_permission">İcazə lazımdır</string>
<string name="read_phone_state_permission_message">Yaxınlıqdakı xəritələr düzgün işləməsi üçün PHONE STATE oxumalıdır</string>
<string name="location_off_dialog_text">Yaxınlıqdakı yerlərə baxmaq üçün məkan xidmətlərini aktiv edin.</string>
<string name="location_permission_rationale">Xəritədə yaxınlıqdakı yerləri göstərmək üçün məkana giriş tələb olunur.</string>
<string name="contributions_of_user">%1$s istifadəçisinin töhfələri</string>
<string name="achievements_of_user">%1$s istifadəçisinin nailiyyətləri</string>
<string name="menu_view_user_page">İstifadəçi profilinə bax</string>
<string name="edit_depictions">Təsvirləri redaktə et</string>
<string name="edit_categories">Kateqoriyaları redaktə et</string>
<string name="advanced_options">Qabaqcıl seçimlər</string>
<string name="advanced_query_info_text">Siz Yaxınlıqdakı sorğunu fərdiləşdirə bilərsiniz. Xəta alsanız, sıfırlayın və tətbiq edin.</string>
<string name="apply">Tətbiq et</string>
<string name="reset">Sıfırla</string>
<string name="location_message">Məkan məlumatı viki redaktorlarına şəklinizi tapmaqda kömək edir və onu daha faydalı edir.\nSon yükləmələrinizin yer məlumatı yoxdur.\nKamera proqramınızın parametrlərində məkanı aktiv etməyi təklif edirik.\nYüklədiyiniz üçün təşəkkür edirik!</string>
<string name="no_location_found_title">Məkan tapılmadı</string>
<string name="no_location_found_message">Bu şəklin çəkildiyi yeri əlavə etməyə nə deyirsiniz?\nMəkan məlumatları viki redaktorlarına şəklinizi tapmağa kömək edir və onu daha faydalı edir.\nTəşəkkürlər!</string>
<string name="add_location">Məkan əlavə et</string>
<string name="feedback_sharing_data_alert">Zəhmət olmasa, açıq şəkildə paylaşmaq istəmədiyiniz hər hansı məlumatı bu e-poçtdan silin. Həmçinin, unutmayın ki, e-poçt ünvanınız və əlaqəli ad və profil şəkliniz hamıya görünəcək.</string>
<string name="explore_map_details">Detallar</string>
<string name="achievements_unavailable_beta">Nailiyyətlər yalnız prod versiyasında mövcuddur. Tərtibatçı sənədlərini yoxlayın.</string>
<string name="leaderboard_unavailable_beta">Lider lövhəsi yalnız prod versiyasında mövcuddur. Zəhmət olmasa tərtibatçı sənədlərini yoxlayın.</string>
<string name="copyright_popup">Zəhmət olmasa yalnız öz çəkdiyiniz şəkilləri yükləyin. Müəllif hüquqları ilə qorunan şəkilləri yükləyənlər bloklanacaq. Bu, beta versiyasına da aiddir. Proqramı sınadığınız üçün təşəkkür edirik!</string>
<string name="select_feedback_data_choice">Zəhmət olmasa, açıq şəkildə paylaşmaq istəmədiyiniz hər hansı məlumatın seçimini ləğv edin.</string>
<string name="api_level">API səviyyəsi</string>
<string name="android_version">Android versiyası</string>
<string name="device_manufacturer">Cihaz istehsalçısı</string>
<string name="device_model">Cihaz modeli</string>
<string name="device_name">Cihaz adı</string>
<string name="network_type">Şəbəkə tipi</string>
<string name="thanks_feedback">Rəy bildirdiyiniz üçün təşəkkür edirik</string>
<string name="error_feedback">Rəy göndərərkən xəta baş verdi</string>
<string name="enter_description">Rəyiniz nədir?</string>
<string name="your_feedback">Rəyiniz</string>
<string name="mark_as_not_for_upload">Yükləmə üçün deyil kimi işarələ</string>
<string name="unmark_as_not_for_upload">Yükləmə üçün deyil işarəsini sil</string>
<string name="marking_as_not_for_upload">Yükləmə üçün deyil kimi işarələnir</string>
<string name="unmarking_as_not_for_upload">Yükləmə üçün deyil işarəsi silinir</string>
<string name="show_already_actioned_pictures">Artıq emal edilmiş şəkilləri göstər</string>
<string name="hiding_already_actioned_pictures">Artıq emal edilmiş şəkilləri gizlədilir</string>
<string name="no_more_images_found">Əlavə heç bir şəkil tapılmadı</string>
<string name="this_image_is_already_uploaded">Bu şəkil artıq yüklənib</string>
<string name="can_not_select_this_image_for_upload">Yükləmək üçün bu şəkli seçmək mümkün deyil</string>
<string name="image_selected">Şəkil seçildi</string>
<string name="image_marked_as_not_for_upload">Şəkil yükləmək üçün deyil kimi işarələnib</string>
<string name="menu_view_report">Bildir</string>
<string name="menu_view_set_white_background">Ağ fon təyin et</string>
<string name="menu_view_set_black_background">Qara fon təyin et</string>
<string name="report_violation">Pozuntu bildir</string>
<string name="report_user">Bu istifadəçini şikayət et</string>
<string name="report_content">Bu məzmunu bildir</string>
<string name="request_user_block">Bu istifadəçinin bloklanmasını istə</string>
<string name="welcome_to_full_screen_mode_text">Tam Ekran Seçim Rejiminə xoş gəlmisiniz</string>
<string name="full_screen_mode_zoom_info">Böyütmək və kiçiltmək üçün iki barmağınızdan istifadə edin.</string>
<string name="full_screen_mode_features_info">Bu hərəkətləri yerinə yetirmək üçün sürətli və uzun sürüşdürün: \n- Sol/Sağ: Əvvəlki/növbətiyə keçmək\n- Yuxarı: Seçmək\n- Aşağı: Yükləmə üçün deyil kimi işarələmək.</string>
<string name="set_up_avatar_toast_string">Liderlər lövhəsi avatarınızı qurmaq üçün istənilən şəklin üç nöqtəli menyusunda \"Avatar kimi təyin et\" seçiminə klikləyin.</string>
<string name="similar_coordinate_description_auto_set">Koordinatlar dəqiq koordinatlar deyil, lakin bu şəkli yükləyən şəxs onların kifayət qədər yaxın olduğunu düşünür.</string>
<string name="storage_permissions_denied">Yaddaş İcazəsi rədd edildi</string>
<string name="unable_to_share_upload_item">Bu elementi paylaşmaq mümkün deyil</string>
<string name="permissions_are_required_for_functionality">Funksionallıq üçün icazələr tələb olunur</string>
<string name="learn_how_to_write_a_useful_description">Faydalı təsvir yazmağı öyrənin</string>
<string name="learn_how_to_write_a_useful_caption">Faydalı başlıq yazmağı öyrənin</string>
<string name="see_your_achievements">Nailiyyətlərinizə baxın</string>
<string name="edit_image">Şəkli redaktə et</string>
<string name="edit_location">Məkanı redaktə et</string>
<string name="location_updated">Məkan yeniləndi!</string>
<string name="remove_location">Məkanı sil</string>
<string name="remove_location_warning_title">Məkan silinməsi xəbərdarlığı</string>
<string name="remove_location_warning_desc">Məkan şəkilləri daha faydalı və tapıla bilən edir. Bu şəkildən məkanı həqiqətən silmək istəyirsiniz?</string>
<string name="location_removed">Məkan silindi!</string>
<string name="send_thanks_to_author">Müəllifə təşəkkür et</string>
<string name="error_sending_thanks">Müəllifə təşəkkür göndərilərkən xəta baş verdi.</string>
<string name="invalid_login_message">Girişinizin müddəti başa çatıb. Zəhmət olmasa, yenidən daxil olun.</string>
<string name="no_application_available_to_open_gpx_files">GPX fayllarını açmaq üçün heç bir proqram mövcud deyil</string>
<string name="file_saved_successfully">Fayl uğurla saxlanıldı</string>
<string name="do_you_want_to_open_gpx_file">GPX faylını açmaq istəyirsiniz?</string>
<string name="do_you_want_to_open_kml_file">KML faylını açmaq istəyirsiniz?</string>
<string name="failed_to_save_kml_file">KML faylını saxlamaq alınmadı.</string>
<string name="failed_to_save_gpx_file">GPX faylını saxlamaq alınmadı.</string>
<string name="saving_kml_file">KML faylı saxlanılır...</string>
<string name="saving_gpx_file">GPX faylı saxlanılır...</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%1$d şəkil seçildi</item>
<item quantity="other">%1$d şəkil seçildi</item>
</plurals>
<string name="multiple_files_depiction">Xahiş edirik unutmayın ki, çoxlu yükləmədəki bütün şəkillər eyni kateqoriyalara və təsvirlərə sahib olacaq. Şəkillər təsvirləri və kateqoriyaları paylaşmırsa, zəhmət olmasa, bir neçə ayrı yükləmə həyata keçirin.</string>
<string name="multiple_files_depiction_header">Çoxlu yükləmələr haqqında qeyd</string>
<string name="nearby_wikitalk">Bu elementlə bağlı problemi Vikidataya bildir</string>
<string name="please_enter_some_comments">Zəhmət olmasa, şərh yazın.</string>
<string name="talk">Müzakirə</string>
<string name="write_something_about_the_item">\'%1$s\' elementi haqqında nəsə yazın. O, hamıya görünəcək.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' artıq mövcud deyil, ondan heç bir şəkil çəkilə bilməz.</string>
<string name="is_at_a_different_place_wikidata">\'%1$s\' başqa yerdədir.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' başqa yerdədir. Xahiş edirik aşağıda doğru yeri qeyd edin və mümkünsə düzgün eni və uzunluğu yazın.</string>
<string name="other_problem_or_information_please_explain_below">Digər problem və ya məlumat (zəhmət olmasa aşağıda izah edin).</string>
<string name="feedback_destination_note">Rəyiniz aşağıdakı viki səhifəsinə yerləşdiriləcək: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Bütün yükləmələri ləğv etmək istədiyinizə əminsiniz?</string>
<string name="cancelling_all_the_uploads">Bütün yükləmələr ləğv edilir...</string>
<string name="uploads">Yükləmələr</string>
<string name="pending">Gözləmədə</string>
<string name="failed">Uğursuz</string>
<string name="could_not_load_place_data">Yer datasını yükləmək mümkün olmadı</string>
<string name="custom_selector_delete_folder">Qovluğu Sil</string>
<string name="custom_selector_confirm_deletion_title">Silinməni təsdiqlə</string>
<string name="custom_selector_confirm_deletion_message">%2$d elementdən ibarət %1$s qovluğunu silmək istədiyinizə əminsiniz?</string>
<string name="custom_selector_delete">Sil</string>
<string name="custom_selector_cancel">İmtina</string>
<string name="custom_selector_folder_deleted_success">%1$s qovluğu uğurla silindi</string>
<string name="custom_selector_folder_deleted_failure">%1$s qovluğunu silmək alınmadı</string>
<string name="custom_selector_error_trashing_folder_contents">Qovluq məzmununu silmə xətası: %1$s</string>
<string name="custom_selector_folder_not_found_error">Paket ID-si üçün qovluq yolunu əldə etmək alınmadı: %1$d</string>
<string name="red_pin">Bu yerin heç şəkli yoxdur, get birini çək!</string>
<string name="green_pin">Bu yerin artıq şəkli var.</string>
<string name="grey_pin">İndi bu yerdə şəklin olub-olmaması yoxlanılır.</string>
<string name="error_while_loading">Yükləyərkən xəta baş verdi</string>
<string name="no_usages_found">Heç bir istifadə tapılmadı</string>
<string name="usages_on_commons_heading">Vikianbar</string>
<string name="usages_on_other_wikis_heading">Digər vikilər</string>
<string name="file_usages_container_heading">Faylın istifadəsi</string>
<string name="account">Hesab</string>
<string name="vanish_account">Hesabı sil</string>
<string name="account_vanish_request_confirm_title">Hesabın silinməsi xəbərdarlığı</string>
<string name="account_vanish_request_confirm">Silinmə &lt;b&gt;son yoldur&lt;/b&gt;&lt;b&gt;yalnız redaktəni həmişəlik dayandırmaq və həmçinin mümkün qədər çox keçmiş əlaqələrinizi gizlətmək&lt;/b&gt; istədiyiniz zaman istifadə edilməlidir.&lt;br/&gt;&lt;br/&gt; Vikianbarda hesabın silinməsi vanishing adlanan prosesdə sizin töhfələrinizi başqalarının tanıya bilməməsi üçün hesab adınızı dəyişdirməklə həyata keçirilir. &lt;b&gt;Hesabın silinməsi tam anonimliyə zəmanət vermir və ya layihələrə edilmiş töhfələri silmir&lt;/b&gt;.</string>
<string name="caption">Başlıq</string>
<string name="caption_copied_to_clipboard">Başlıq buferə kopiyalandı</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Təbrik edirik, bu albomdakı bütün şəkillər ya yüklənib, ya da yükləmək üçün deyil kimi işarələnib.</string>
<string name="show_in_explore">Kəşf et bölməsində göstər</string>
<string name="show_in_nearby">Yaxınlıqda göstər</string>
<string name="image_tag_line_created_and_uploaded_by">Yaradan və yükləyən: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">%1$s tərəfindən yaradılmış və %2$s tərəfindən yüklənmişdir</string>
<string name="nominated_for_deletion_btn">Silinməyə namizəd göstərilib</string>
</resources>

View file

@ -92,8 +92,7 @@
<string name="delete">هاڤوس</string>
<string name="Achievements">ڤنچاڤاين</string>
<string name="Profile">ڤروفيل</string>
<string name="statistics">ستاتيستيک</string>
<string name="level" fuzzy="true">تاهڤ</string>
<string name="level" fuzzy="true">تاهڤ %1$d</string>
<string name="images_uploaded">ايميج دموات ناءيق</string>
<string name="contributions_fragment">سومبڠن</string>
<string name="nearby_fragment">بردکتن</string>

View file

@ -3,7 +3,10 @@
* Servien
-->
<resources>
<string name="share_license_summary" fuzzy="true">Disse aofbeelding völt onder de lisensie %1$s</string>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">Disse aofbeelding völt onder de lisensie %1$s</item>
<item quantity="other">Disse aofbeelding völt onder de lisensie %1$s</item>
</plurals>
<string name="app_name" fuzzy="true">Wikimedia Commons</string>
<string name="menu_settings">Veurkeuren</string>
<string name="username">Gebrukersnaam</string>

View file

@ -9,18 +9,14 @@
<item quantity="one">%1$d fail in caricamende</item>
<item quantity="other">%1$d fail in caricamende</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Stoche accumenze le carecaminde</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Ste processe %d carecamende</item>
<item quantity="other">Ste processe %d carecaminde</item>
<item quantity="one">Ste processe %1$d carecamende</item>
<item quantity="other">Ste processe %1$d carecaminde</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d carecamende</item>
<item quantity="other">%d carecaminde</item>
<item quantity="one">%1$d carecamende</item>
<item quantity="other">%1$d carecaminde</item>
</plurals>
<plurals name="upload_count_title">
<item quantity="one">%1$d Carecamende</item>
@ -65,10 +61,10 @@
<string name="menu_about">Sus a</string>
<string name="menu_retry_upload">Pruève arrete</string>
<string name="menu_cancel_upload">Annulle</string>
<string name="license_name_cc_by_sa_four"> Attribbuzione-Condivide a \'u stesse mode 4.0</string>
<string name="license_name_cc_by_four"> Attribbuzione 4.0</string>
<string name="license_name_cc_by_sa"> Attribbuzione-Condivide a \'u stesse mode 3.0</string>
<string name="license_name_cc_by"> Attribbuzione 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribbuzione-Condivide a \'u stesse mode 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribbuzione 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribbuzione-Condivide a \'u stesse mode 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribbuzione 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -100,8 +96,7 @@
<string name="explore_tab_title_mobile">Aggiornate da mobbile</string>
<string name="no_recent_searches">Nisciuna recerche recende</string>
<string name="delete">Scangìlle</string>
<string name="statistics">Statisteche</string>
<string name="level" fuzzy="true">Levèlle</string>
<string name="level" fuzzy="true">Levèlle %1$d</string>
<string name="contributions_fragment">Condrebbute</string>
<string name="nearby_fragment">Vicine a</string>
<string name="notifications">Notifeche</string>

View file

@ -7,7 +7,7 @@
-->
<resources>
<string name="commons_facebook">Fejsbuk stranica Ostave</string>
<string name="commons_github">Izvorni kod na Github-u</string>
<string name="commons_github" fuzzy="true">Izvorni kod na Github-u</string>
<string name="commons_logo">Logo Ostave</string>
<string name="commons_website">Veb-sajt Ostave</string>
<string name="submit">Pošalji</string>
@ -28,18 +28,15 @@
<item quantity="one">%1$d datoteka se otprema</item>
<item quantity="other">%1$d datoteke se otpremaju</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">%1$d otpremanje</item>
<item quantity="other">%1$d otpremanja</item>
</plurals>
<string name="starting_uploads">Pokretanje otpremanja</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Procesuiranje %d otpremanje</item>
<item quantity="other">Procesuiranje %d otpremanja</item>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">Procesuiranje %1$d otpremanje</item>
<item quantity="few">Procesuiranje %1$d otpremanje</item>
<item quantity="other">Procesuiranje %1$d otpremanja</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d otpremanje</item>
<item quantity="other">%d otpremanja</item>
<item quantity="one">%1$d otpremanje</item>
<item quantity="other">%1$d otpremanja</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Slika će se voditi pod licencom %1$s</item>
@ -83,7 +80,7 @@
<string name="uploading_queued">Otpremanje je u redu (omogućen režim ograničene veze)</string>
<string name="upload_completed_notification_title">Datoteka „%1$s” je otpremljena.</string>
<string name="upload_completed_notification_text">Dodirnite da biste videli otpremanje</string>
<string name="upload_progress_notification_title_start">Otpremanje datoteke „%s”</string>
<string name="upload_progress_notification_title_start">Otpremanje datoteke „%1$s”</string>
<string name="upload_progress_notification_title_in_progress">Otpremanje datoteke „%1$s”</string>
<string name="upload_progress_notification_title_finishing">Završavanje otpremanja datoteke „%1$s”</string>
<string name="upload_failed_notification_title">Otpremanje datoteke „%1$s” nije uspelo</string>
@ -126,6 +123,7 @@
<string name="title_activity_settings">Podešavanja</string>
<string name="title_activity_signup">Otvori nalog</string>
<string name="title_activity_featured_images">Izabrane slike</string>
<string name="images_featured_explanation" fuzzy="true">Istaknute slike su slike od veoma iskusnih fotografa i ilustratora, koje je zajednica Vikimedijine ostave odabrala kao neke od najvećeg kvaliteta na sajtu.</string>
<string name="title_activity_category_details">Kategorija</string>
<string name="title_activity_review">Pregled slika</string>
<string name="menu_about">O aplikaciji</string>
@ -146,10 +144,10 @@
<string name="preference_license">Podrazumevana licenca</string>
<string name="use_previous">Koristi prethodan naslov i opis</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four">Autorstvo-Deliti pod istim uslovima 4.0</string>
<string name="license_name_cc_by_four">Autorstvo 4.0</string>
<string name="license_name_cc_by_sa">Autorstvo-Deliti pod istim uslovima 3.0</string>
<string name="license_name_cc_by">Autorstvo 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Autorstvo-Deliti pod istim uslovima 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Autorstvo 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Autorstvo-Deliti pod istim uslovima 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Autorstvo 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -210,15 +208,14 @@
<string name="become_a_tester_description">Priključite se našem kanalu beta verzija na Google Play-u i ranije pristupajte novim funkcijama i ispravkama grešaka</string>
<string name="_2fa_code">2FA kod</string>
<string name="logout_verification">Zaista želite da se odjavite?</string>
<string name="mediaimage_failed">Medijska slika neuspešna</string>
<string name="no_subcategory_found">Potkategorije nisu pronađene</string>
<string name="no_parentcategory_found">Nadređene kategorije nisu pronađene</string>
<string name="welcome_image_mount_zao">Planina Zao</string>
<string name="welcome_image_llamas">Lame</string>
<string name="welcome_image_rainbow_bridge">Dugin most</string>
<string name="welcome_image_tulip">Tulipan</string>
<string name="welcome_image_welcome_wikipedia">Dobrodošlica Vikipediji</string>
<string name="welcome_image_welcome_copyright">Dobrodošlica za autorska prava</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Dobrodošlica Vikipediji</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Dobrodošlica za autorska prava</string>
<string name="welcome_image_sydney_opera_house">Sidnejska opera</string>
<string name="cancel">Otkaži</string>
<string name="navigation_drawer_open">Otvori</string>
@ -348,11 +345,10 @@
<string name="delete">Izbriši</string>
<string name="Achievements">Dostignuća</string>
<string name="Profile">Profil</string>
<string name="statistics">Statistika</string>
<string name="statistics_thanks">Zahvaljivanja</string>
<string name="statistics_featured">Izabrane slike</string>
<string name="statistics_wikidata_edits">Slike preko \"Mesta u blizini\"</string>
<string name="level" fuzzy="true">Nivo</string>
<string name="level" fuzzy="true">Nivo %1$d</string>
<string name="images_uploaded">Otpremljene slike</string>
<string name="image_reverts">Slike koje nisu uklonjene</string>
<string name="images_used_by_wiki">Iskorišćene slike</string>
@ -437,11 +433,11 @@
<string name="check_category_failure_message">Nije moguće zatražiti proveru kategorije za %1$s</string>
<string name="check_category_toast">Zahtevanje provere kategorije za %1$s</string>
<string name="nominate_for_deletion_done">Urađeno</string>
<string name="send_thank_success_title">Slanje zahvalnice: Uspešno</string>
<string name="send_thank_success_message">Uspešno poslata zahvalnica na %1$s</string>
<string name="send_thank_failure_message">Nije uspelo slanje zahvalnice %1$s</string>
<string name="send_thank_failure_title">Slanje zahvalnice: Nije uspelo</string>
<string name="send_thank_toast">Slanje zahvalnica za %1$s</string>
<string name="send_thank_success_title" fuzzy="true">Slanje zahvalnice: Uspešno</string>
<string name="send_thank_success_message" fuzzy="true">Uspešno poslata zahvalnica na %1$s</string>
<string name="send_thank_failure_message" fuzzy="true">Nije uspelo slanje zahvalnice %1$s</string>
<string name="send_thank_failure_title" fuzzy="true">Slanje zahvalnice: Nije uspelo</string>
<string name="send_thank_toast" fuzzy="true">Slanje zahvalnica za %1$s</string>
<string name="review_copyright">Da li prati pravila autorskih prava?</string>
<string name="review_category">Da li je ovo korektno kategorizovano?</string>
<string name="review_spam">Da li je za Ostavu?</string>
@ -466,14 +462,13 @@
<string name="menu_option_unread">Prikaži nepročitano</string>
<string name="error_occurred_in_picking_images">Došlo je do greške pri izboru slika</string>
<string name="please_wait">Sačekajte…</string>
<string name="images_featured_explanation">Istaknute slike su slike od veoma iskusnih fotografa i ilustratora, koje je zajednica Vikimedijine ostave odabrala kao neke od najvećeg kvaliteta na sajtu.</string>
<string name="images_via_nearby_explanation">Slike otpremljene preko Mesta u blizini su slike koje su otpremljene otkrivanjem mesta na mapi.</string>
<string name="thanks_received_explanation">Ova mogućnost omogućava urednicima da pošanju obaveštenje zahvaljivanja korisnicima koji su napravili korisne izmene - korišćenjem male veze za zahvaljivanje na stranici istorije ili razlici izmena.</string>
<string name="copied_successfully">Kopirano</string>
<string name="welcome_do_upload_content_description">Primeri dobrih slika za otpremanje na Ostavu</string>
<string name="welcome_dont_upload_content_description">Primeri slika koje nisu za otpremanje</string>
<string name="skip_image">Preskoči sliku</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Preuzimanje nije uspelo!! Ne možemo preuzeti datoteku bez dozvole za pristup spoljašnjoj memoriji.</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission" fuzzy="true">Preuzimanje nije uspelo!! Ne možemo preuzeti datoteku bez dozvole za pristup spoljašnjoj memoriji.</string>
<string name="manage_exif_tags">Upravljanje EXIF oznakama</string>
<string name="manage_exif_tags_summary">Odaberite koje EXIF želite da sačuvate u otpremanjima</string>
<string name="exif_tag_name_author">Autor</string>
@ -483,8 +478,6 @@
<string name="exif_tag_name_lensModel">Model objektiva</string>
<string name="exif_tag_name_serialNumbers">Serijski brojevi</string>
<string name="exif_tag_name_software">Softver</string>
<string name="media_location_permission_denied">Pristup lokaciji medija je odbijen</string>
<string name="add_location_manually">Možda nećemo moći da automatski pribavimo podatke o lokaciji iz slika koje otpremite. Dodajte odgovarajuću lokaciju za svaku sliku pre objavljivanja</string>
<string name="share_text">Otpremi fotografije na Vikimedijinu Ostavu direktno sa svog telefona. Preuzmi aplikaciju Ostave sada: %1$s</string>
<string name="share_via">Podeli aplikaciju preko...</string>
<string name="image_info">Informacije o slici</string>
@ -532,7 +525,7 @@
<string name="description_activity_title">Uredi opise i natpise</string>
<string name="share_image_via">Podeli sliku preko</string>
<string name="you_have_no_achievements_yet">Nemate još uvek doprinosa</string>
<string name="no_achievements_yet">%s još nije doprinosio/la</string>
<string name="no_achievements_yet">%1$s još nije doprinosio/la</string>
<string name="account_created">Nalog je otvoren.</string>
<string name="text_copy">Tekst je kopiran u privremenu memoriju</string>
<string name="notification_mark_read">Obaveštenje je označeno pročitanim</string>
@ -541,7 +534,7 @@
<string name="place_state_exists">Postoji</string>
<string name="place_state_needs_photo">Potrebna slika</string>
<string name="place_type">Tip mesta:</string>
<string name="nearby_search_hint">Most, muzej, hotel itd.</string>
<string name="nearby_search_hint" fuzzy="true">Most, muzej, hotel itd.</string>
<string name="you_must_reset_your_passsword" fuzzy="true">Došlo je do greške sa prijavljivanjem, morate da promenite vašu lozinku !!</string>
<string name="upload_nearby_place_found_title">Obližnje mesto je pronađeno</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Da li je ovo fotografija %1$s?</string>
@ -576,7 +569,7 @@
<string name="wikipedia_instructions_step_5">5. Nalepite vikitekst na odgovarajuće mesto.</string>
<string name="wikipedia_instructions_step_6">6. Izmenite vikitekst za odgovarajuće pozicioniranje, ukoliko je potrebno. Više informacija možete pronaći &lt;a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\"&gt;ovde&lt;/a&gt;.</string>
<string name="wikipedia_instructions_step_7">7. Objavite članak</string>
<string name="copy_wikicode_to_clipboard">Kopirajte viki sintaksu u međuspremnik</string>
<string name="copy_wikicode_to_clipboard" fuzzy="true">Kopirajte viki sintaksu u međuspremnik</string>
<string name="pause">pauziraj</string>
<string name="resume">nastavi</string>
<string name="paused">Pauzirano</string>
@ -638,7 +631,7 @@
<string name="back">Nazad</string>
<string name="welcome_custom_picture_selector_text">Dobrodošli u Prilagođen birač slika</string>
<string name="custom_selector_info_text1">Ovaj birač vam prikazuje koje su slike već otpremljene na Ostavu.</string>
<string name="custom_selector_info_text2">Za razliku od slika sa leve strane, slike na desnoj strani imaju logo Ostave, što označava da su već otpremljene. Dodirnite i držite za pregled slike.</string>
<string name="custom_selector_info_text2" fuzzy="true">Za razliku od slika sa leve strane, slike na desnoj strani imaju logo Ostave, što označava da su već otpremljene. Dodirnite i držite za pregled slike.</string>
<string name="welcome_custom_selector_ok">Odlično</string>
<string name="custom_selector_already_uploaded_image_text">Ova slika je već otpremljena na Ostavu.</string>
<string name="wlm_upload_info">Ova slika će biti uvrštena u takmičenje Viki voli spomenike</string>
@ -647,8 +640,9 @@
<string name="wlm_campaign_title">Viki voli spomenike</string>
<string name="wlm_campaign_description">Viki voli spomenike je međunarodno takmičenje fotografija spomenika, koje organizuje Vikimedija</string>
<string name="need_permission">Potrebna je dozvola</string>
<string name="contributions_of_user">Doprinosi korisnika/ce: %s</string>
<string name="achievements_of_user">Dostignuća korisnika/ce: %s</string>
<string name="location_permission_rationale">Neobavezna dozvola: preuzmi trenutnu lokaciju za predloge kategorija</string>
<string name="contributions_of_user">Doprinosi korisnika/ce: %1$s</string>
<string name="achievements_of_user">Dostignuća korisnika/ce: %1$s</string>
<string name="menu_view_user_page" fuzzy="true">Prikaži korisničku stranicu</string>
<string name="edit_categories">Izmeni kategorije</string>
<string name="advanced_options">Napredne opcije</string>
@ -657,7 +651,7 @@
<string name="location_message">Podaci o lokaciji pomažu viki urednicima da pronađu vašu sliku, čineći je korisnijom.\nVaša skorašnja otpremanja nemaju lokaciju.\nPredlažemo vam da uključite lokaciju u podešavanjima aplikacije vaše kamere.\nHvala vam za otpremanja!</string>
<string name="no_location_found_title">Lokacija nije pronađena</string>
<string name="no_location_found_message">Šta mislite o dodavanju mesta gde je napravljena ova slika?\nPodaci o lokaciju pomažu viki urednicima da pronađu vašu sliku, čineći je korisnijom.\nHvala vam!</string>
<string name="add_location">Dodaj lokaciju</string>
<string name="add_location" fuzzy="true">Dodaj lokaciju</string>
<string name="feedback_sharing_data_alert">Uklonite iz ovog mejla bilo sve informacije koje ne želite da delite javno. Takođe, imajte na umu da će vaša imejl adresa sa koje objavljujete, i povezano ime i profilna slika, biti javno vidljivi.</string>
<string name="explore_map_details">Detalji</string>
<string name="achievements_unavailable_beta" fuzzy="true">Dostignuća su dostupna samo u produkcionoj verziji, proverite dokumentaciju za programere.</string>
@ -678,8 +672,8 @@
<string name="unmark_as_not_for_upload">Ukloni oznaku \"nije za otpremanje\"</string>
<string name="marking_as_not_for_upload">Označavanje kao \"nije za otpremanje\"</string>
<string name="unmarking_as_not_for_upload">Uklanjanje oznake \"nije za otpremanje\"</string>
<string name="show_already_actioned_pictures">Prikaži već izvršene slike</string>
<string name="hiding_already_actioned_pictures">Sakrivanje već izvršenih slika</string>
<string name="show_already_actioned_pictures" fuzzy="true">Prikaži već izvršene slike</string>
<string name="hiding_already_actioned_pictures" fuzzy="true">Sakrivanje već izvršenih slika</string>
<string name="no_more_images_found">Nije pronađeno više slika</string>
<string name="this_image_is_already_uploaded">Ova slika je već otpremljena</string>
<string name="can_not_select_this_image_for_upload">Nije moguće odabrati ovu sliku za otpremanje</string>
@ -697,7 +691,7 @@
<string name="storage_permissions_denied">Odbijene dozvole za skladište</string>
<string name="unable_to_share_upload_item">Nije moguće podeliti ovu stavku</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%d slika je odabrana</item>
<item quantity="other">%d slika je odabrano</item>
<item quantity="one">%1$d slika je odabrana</item>
<item quantity="other">%1$d slika je odabrano</item>
</plurals>
</resources>

View file

@ -90,7 +90,7 @@
<string name="media_detail_coordinates">Координатҳо</string>
<string name="media_detail_coordinates_empty">Пешниҳод нашудааст</string>
<string name="no_subcategory_found">Ягон зергурӯҳе пайдо нашуд</string>
<string name="welcome_image_welcome_wikipedia">Ба Википедиа хуш омадед.</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Ба Википедиа хуш омадед.</string>
<string name="cancel">Пӯшидан</string>
<string name="navigation_drawer_open">Кушодан</string>
<string name="navigation_drawer_close">Пӯшидан</string>
@ -130,8 +130,7 @@
<string name="search_history_deleted">Таърихи ҷустуҷӯҳо ҳазф шуд</string>
<string name="nominate_delete">Номзад барои ҳазф</string>
<string name="delete">Ҳазв</string>
<string name="statistics">Омор</string>
<string name="level" fuzzy="true">Сатҳ</string>
<string name="level" fuzzy="true">Сатҳ %1$d</string>
<string name="list_sheet">Рӯйхат</string>
<string name="next">Баъдӣ</string>
<string name="previous">Пешина</string>

View file

@ -8,7 +8,7 @@
-->
<resources>
<string name="commons_facebook">Викиҗыентыкның Facebook бите</string>
<string name="commons_github">Викиҗыентыкның гитхабтагы башлангыч кодлары</string>
<string name="commons_github" fuzzy="true">Викиҗыентыкның гитхабтагы башлангыч кодлары</string>
<string name="commons_logo">Викиҗыентык логотипы</string>
<string name="commons_website">Викиҗыентыкның веб-сайты</string>
<string name="exit_location_picker">Урынны сайлау тәрәзәсеннән чыгарга</string>
@ -34,24 +34,18 @@
<item quantity="many">%1$d файл йөкләнә</item>
<item quantity="other">%1$d файл йөкләнә</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="few">(%1$d)</item>
<item quantity="many">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Йөкләү башлана</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">%d йөкләүне эшкәртү</item>
<item quantity="few">%d йөкләүне эшкәртү</item>
<item quantity="many">%d йөкләүне эшкәртү</item>
<item quantity="other">%d йөкләүне эшкәртү</item>
<item quantity="one">%1$d йөкләүне эшкәртү</item>
<item quantity="few">%1$d йөкләүне эшкәртү</item>
<item quantity="many">%1$d йөкләүне эшкәртү</item>
<item quantity="other">%1$d йөкләүне эшкәртү</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d йөкләү</item>
<item quantity="few">%d йөкләү</item>
<item quantity="many">%d йөкләү</item>
<item quantity="other">%d йөкләү</item>
<item quantity="one">%1$d йөкләү</item>
<item quantity="few">%1$d йөкләү</item>
<item quantity="many">%1$d йөкләү</item>
<item quantity="other">%1$d йөкләү</item>
</plurals>
<string name="navigation_item_explore">Тикшерергә</string>
<string name="preference_category_appearance">Күренеш</string>
@ -80,7 +74,7 @@
<string name="uploading_started">Йөкләү башланды!</string>
<string name="upload_completed_notification_title">%1$s төялде!</string>
<string name="upload_completed_notification_text">Төялгән файлыгызны карау өчен басыгыз</string>
<string name="upload_progress_notification_title_start">Файлны төяү: %s</string>
<string name="upload_progress_notification_title_start">Файлны төяү: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s йөкләнә</string>
<string name="upload_progress_notification_title_finishing">%1$s йөкләве тәмамлана</string>
<string name="upload_failed_notification_title">%1$s йөкләнә алмады</string>
@ -134,10 +128,10 @@
<string name="preference_license">Гадәттәге рөхсәтнамә килешүе</string>
<string name="use_previous">Алдагы исемне һәм тамвирламаны куллан</string>
<string name="preference_theme">Күренеш</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="tutorial_1_text">Викиҗыентыктагы сурәтләр Википедиянең күпчелек күләмендә кулланыла.</string>
<string name="tutorial_1_subtext">Төягән сурәтләрегез бөтен дөньядагы кешеләргә белем алырга ярдәм итә ала!</string>
<string name="tutorial_2_text">Зинһар, бары тик үзегез ясаган яки төшергән сурәтләрне генә төягез:</string>

View file

@ -8,7 +8,7 @@
-->
<resources>
<string name="commons_facebook">Викимилектең Facebook-бите</string>
<string name="commons_github">Гитхабта Викимилектең сығанаҡ кодтары</string>
<string name="commons_github" fuzzy="true">Гитхабта Викимилектең сығанаҡ кодтары</string>
<string name="commons_logo">Викимилек логотибы</string>
<string name="commons_website">Викимилектең веб-сайты</string>
<string name="exit_location_picker">Урынлашҡан ерҙе билдәләү тәҙрәһенән сығырға</string>
@ -31,21 +31,20 @@
<item quantity="one">%1$d файл йөкләнә</item>
<item quantity="other">%1$d файл йөкләнә</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Йөкләүҙе башлау</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">%d файлды эшкәртеү</item>
<item quantity="other">%d файлды эшкәртеү</item>
<item quantity="one">%1$d файлды эшкәртеү</item>
<item quantity="other">%1$d файлды эшкәртеү</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<plurals name="multiple_uploads_title">
<item quantity="one">%1$d тейәү</item>
<item quantity="few">%1$d тейәүҙәр</item>
<item quantity="other">%1$d тейәүҙәре</item>
</plurals>
<string name="share_license_summary" fuzzy="true">Был рәсем %1$s аҫтында лицензия аласаҡ</string>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">Был рәсем %1$s аҫтында лицензия аласаҡ</item>
<item quantity="other">Был рәсем %1$s аҫтында лицензия аласаҡ</item>
</plurals>
<string name="navigation_item_explore">Тикшереү</string>
<string name="preference_category_appearance">Тышҡы күренеш</string>
<string name="preference_category_general">Дөйөм</string>
@ -75,7 +74,7 @@
<string name="uploading_queued">Йөкләү сиратҡа ҡуйылды (сикләнгән бәйләнеш режимы эшләтеп ебәрелде).</string>
<string name="upload_completed_notification_title">%1$s йөкләнде!</string>
<string name="upload_completed_notification_text">Ошонда баҫып йөкләнгән файлды ҡара</string>
<string name="upload_progress_notification_title_start">Файлды йөкләү: %s</string>
<string name="upload_progress_notification_title_start">Файлды йөкләү: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s йөкләнә</string>
<string name="upload_progress_notification_title_finishing">Йөкләү %1$s тамамланды</string>
<string name="upload_failed_notification_title">%1$s йөкләп булманы</string>
@ -140,10 +139,10 @@
<string name="preference_license">Программа көйләгән лицензия</string>
<string name="use_previous">Элекке атаманы һәм тасуирламаны ҡулланыу</string>
<string name="preference_theme">Биҙәү темаһы</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -199,14 +198,13 @@
<string name="become_a_tester_description">Google Play аша беҙҙең бета-версия каналына яҙыл һәм иң тәүгеләрҙән булып яңы көйләүҙәр, хата төҙәтеүҙәр тураһында хәбәрҙар бул</string>
<string name="_2fa_code">А Коды</string>
<string name="logout_verification">Ысынлап та системанан сыҡҡығыҙ киләме?</string>
<string name="mediaimage_failed">Медиарәсем хатаһы</string>
<string name="no_subcategory_found">Субкатегориялар табылманы</string>
<string name="welcome_image_mount_zao">Зао тауы</string>
<string name="welcome_image_llamas">Ламалар</string>
<string name="welcome_image_rainbow_bridge">Йәйғорло күпер</string>
<string name="welcome_image_tulip">Ләлә</string>
<string name="welcome_image_welcome_wikipedia">Википедияға рәхим итегеҙ</string>
<string name="welcome_image_welcome_copyright">Рәхим итегеҙ - автор хоҡуҡтары</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Википедияға рәхим итегеҙ</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Рәхим итегеҙ - автор хоҡуҡтары</string>
<string name="welcome_image_sydney_opera_house">Сидней опера театры</string>
<string name="cancel">Кире алыу</string>
<string name="navigation_drawer_open">Асырға</string>
@ -257,4 +255,5 @@
<string name="about_translate_title">Телдәр</string>
<string name="about_translate_cancel">Кире алырға</string>
<string name="retry">Ҡабатларға</string>
<string name="location_permission_rationale">Мотлаҡ булмаған рөхсәт: категория тәҡдиме өсөн ошо урынды алыу</string>
</resources>

View file

@ -5,7 +5,7 @@
-->
<resources>
<string name="commons_facebook">Kaca Facebook Commons</string>
<string name="commons_github">Kode Wit Commons ring Github</string>
<string name="commons_github" fuzzy="true">Kode Wit Commons ring Github</string>
<string name="commons_logo">Logo Commons</string>
<string name="commons_website">Situs Commons</string>
<string name="exit_location_picker">Medal pamilihan genah</string>
@ -29,15 +29,12 @@
<item quantity="one">%1$d berkas kaunggah</item>
<item quantity="other">%1$d berkas kaunggah</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Ngawitin Unggahan</string>
<plurals name="starting_multiple_uploads">
<item quantity="other">Ngamargiang %d unggahan</item>
<item quantity="other">Ngamargiang %1$d unggahan</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="other">%d unggahan</item>
<item quantity="other">%1$d unggahan</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="other">Gambar puniki pacang kaicain lisénsi %1$s</item>
@ -72,7 +69,7 @@
<string name="uploading_queued">Unggahan ring antrian (mode tetemon kawates kauripang)</string>
<string name="upload_completed_notification_title">%1$s kaunggah!</string>
<string name="upload_completed_notification_text">Gecek antuk nyingakin unggahan Ida</string>
<string name="upload_progress_notification_title_start">Munggahang berkas: %s</string>
<string name="upload_progress_notification_title_start">Munggahang berkas: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s kaunggah</string>
<string name="upload_progress_notification_title_finishing">Muputang pangunggahan %1$s</string>
<string name="upload_failed_notification_title">Ngunggahang %1$s gagal</string>
@ -136,10 +133,10 @@
<string name="preference_license">Lisénsi baku</string>
<string name="use_previous">Anggén murda miwah pidarta sadurungné</string>
<string name="preference_theme">Téma</string>
<string name="license_name_cc_by_sa_four">Atribusi-MawagiSarupa 4.0</string>
<string name="license_name_cc_by_four">Atribusi 4.0</string>
<string name="license_name_cc_by_sa">Atribusi-MawagiSarupa 3.0</string>
<string name="license_name_cc_by">Atribusi 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Atribusi-MawagiSarupa 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Atribusi 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Atribusi-MawagiSarupa 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Atribusi 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -188,8 +185,8 @@
<string name="welcome_image_llamas">Llama</string>
<string name="welcome_image_rainbow_bridge">Titi Kakuwung</string>
<string name="welcome_image_tulip">Tulip</string>
<string name="welcome_image_welcome_wikipedia">Rahajeng Rauh ring Wikipédia</string>
<string name="welcome_image_welcome_copyright">Rahajeng Rauh Hak Ripta</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Rahajeng Rauh ring Wikipédia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Rahajeng Rauh Hak Ripta</string>
<string name="welcome_image_sydney_opera_house">Umah Opera Sydney</string>
<string name="cancel">Wangdé</string>
<string name="navigation_drawer_open">Buka</string>
@ -267,10 +264,9 @@
<string name="delete">Usap</string>
<string name="Achievements">Panghargaan</string>
<string name="Profile">Profil</string>
<string name="statistics">Statistik</string>
<string name="statistics_thanks">Haturan Suksma Katampi</string>
<string name="statistics_featured">Gambar Pilihan</string>
<string name="level">Tingkat %d</string>
<string name="level">Tingkat %1$d</string>
<string name="images_uploaded">Gambar Kaupload</string>
<string name="images_used_by_wiki">Gambar Kaanggén</string>
<string name="contributions_fragment">Pituut</string>
@ -288,7 +284,7 @@
<string name="search_this_area">Selehin wawengkon puniki</string>
<string name="nearby_card_permission_title">Pinunasan lugra</string>
<string name="nominate_for_deletion_done">Puput</string>
<string name="send_thank_toast">Kirim Suksma majeng %1$s</string>
<string name="send_thank_toast" fuzzy="true">Kirim Suksma majeng %1$s</string>
<string name="review_thanks_yes_button_text">Gambar salanturnyané</string>
<string name="review_thanks_no_button_text">Nggih, ngujang ten</string>
<string name="menu_option_read">Cingak wacén</string>
@ -314,7 +310,7 @@
<string name="category_edit_helper_show_edit_title_success">Suksés</string>
<string name="coordinates_edit_helper_show_edit_title_success">Suksés</string>
<string name="place_type">Soroh genah:</string>
<string name="nearby_search_hint">Kreteg, museum, hotél, msl.</string>
<string name="nearby_search_hint" fuzzy="true">Kreteg, museum, hotél, msl.</string>
<string name="title_for_media">MÉDIA</string>
<string name="title_app_shortcut_bookmark">Chinabuku</string>
<string name="title_app_shortcut_setting">Pangaturan</string>

View file

@ -8,17 +8,10 @@
<item quantity="one">%1$d file uploading</item>
<item quantity="other">%1$d an mga files ikinakarga</item>
</plurals>
<plurals name="contributions_subtitle" fuzzy="true">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">Starting %1$d upload</item>
<item quantity="other">Nagpuon na %1$d an pagkarga</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<item quantity="one">%1$d upload</item>
<plurals name="multiple_uploads_title">
<item quantity="other">%1$d mga karga</item>
</plurals>
<plurals name="share_license_summary">
@ -100,8 +93,8 @@
<string name="menu_download">Kargahon</string>
<string name="preference_license">Lisensiya</string>
<string name="use_previous" fuzzy="true">Maggamit nin dating titulo/deskripsiyon</string>
<string name="license_name_cc_by_sa">Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="welcome_wikipedia_text">Mag-ambag kan saimong mga imahe. Magtabang sa mga artikulo nin Wikipedia na magka-igwa nin buhay!</string>
<string name="welcome_wikipedia_subtext">An mga imahe sa Wikipedia naggigikan sa mga Karugaringan nin Wikimedia.</string>

View file

@ -17,12 +17,12 @@
<string name="commons_website">Сайт на Общомедия</string>
<string name="submit">Изпращане</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Обработване на %d качване</item>
<item quantity="other">Обработване на %d качвания</item>
<item quantity="one">Обработване на %1$d качване</item>
<item quantity="other">Обработване на %1$d качвания</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d качване</item>
<item quantity="other">%d качвания</item>
<item quantity="one">%1$d качване</item>
<item quantity="other">%1$d качвания</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Изображението ще бъде лицензирано под условията на лиценза %1$s</item>
@ -59,7 +59,7 @@
<string name="uploading_started">Качването започна!</string>
<string name="upload_completed_notification_title">Файл %1$s е качен!</string>
<string name="upload_completed_notification_text">Докоснете, за да видите качения файл</string>
<string name="upload_progress_notification_title_start">Качване на файл: %s</string>
<string name="upload_progress_notification_title_start">Качване на файл: %1$s</string>
<string name="upload_progress_notification_title_in_progress">„%1$s“ е в процес на качване</string>
<string name="upload_progress_notification_title_finishing">Завършвам с качване на „%1$s“</string>
<string name="upload_failed_notification_title">Качването на „%1$s“ е неуспешно</string>
@ -116,10 +116,10 @@
<string name="preference_license">Лиценз по подразбиране</string>
<string name="use_previous">Използване на предишното заглавие и описание</string>
<string name="preference_theme">Облик</string>
<string name="license_name_cc_by_sa_four">Признание-Споделяне на споделеното 4.0</string>
<string name="license_name_cc_by_four">Признание 4.0</string>
<string name="license_name_cc_by_sa">Признание-Споделяне на споделеното 3.0</string>
<string name="license_name_cc_by"> Признание 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Признание-Споделяне на споделеното 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Признание 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Признание-Споделяне на споделеното 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Признание 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -177,7 +177,7 @@
<string name="welcome_image_llamas">Лами</string>
<string name="welcome_image_rainbow_bridge">Мостът Рейнбоу Бридж</string>
<string name="welcome_image_tulip">Лале</string>
<string name="welcome_image_welcome_wikipedia">Добре дошли в Уикипедия</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Добре дошли в Уикипедия</string>
<string name="welcome_image_sydney_opera_house">Операта в Сидни</string>
<string name="cancel">Отказ</string>
<string name="navigation_drawer_open">Отваряне</string>
@ -261,7 +261,6 @@
<string name="quiz_screenshot_question">Допустимо ли е качването на този екранен кадър?</string>
<string name="no_recent_searches">Няма скорошни търсения</string>
<string name="nominate_delete">Предлагане за изтриване</string>
<string name="statistics">Статистика</string>
<string name="statistics_wikidata_edits">Изображения чрез „Близки места“</string>
<string name="images_uploaded_explanation">Брой качени в Общомедия изображения, без значение от софтуера за качване</string>
<string name="images_reverted_explanation">Процент от качените от Вас изображения в Общомедия, които не са били изтрити</string>
@ -309,4 +308,5 @@
<string name="delete_helper_ask_spam_blurry">напълно размазано</string>
<string name="leaderboard_nearby">Наблизо</string>
<string name="read_help_link">Прочетете повече</string>
<string name="custom_selector_cancel">Отказ</string>
</resources>

View file

@ -7,7 +7,7 @@
-->
<resources>
<string name="commons_facebook">Commons(လိုꩻအာသုင်ꩻ) Facebook လိတ်မဲ့ငါ</string>
<string name="commons_github">Commons(လိုꩻအာသုင်ꩻ) Github ရွီးခိုႏကိုဒ်</string>
<string name="commons_github" fuzzy="true">Commons(လိုꩻအာသုင်ꩻ) Github ရွီးခိုႏကိုဒ်</string>
<string name="commons_logo">Commons(လိုꩻအာသုင်ꩻ) လိုင်ကို</string>
<string name="commons_website">Commons(လိုꩻအာသုင်ꩻ) ဝဲက်သုဲက်</string>
<string name="exit_location_picker">အဝ်ႏအုံထွောင်းထာꩻလွိုက်ကို ထန်ႏသွော့ꩻ</string>
@ -18,10 +18,6 @@
<item quantity="one">အဝ်ႏထူႏဒင်ႏဖုဲင် %1$d ဗာႏကျာꩻ</item>
<item quantity="other">အဝ်ႏထူႏဒင်ႏဖုဲင် %1$d ဗာႏကျာꩻ</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">ထူႏဒင်ႏစအပ်လိုပ်ဖိုင်ႏ</string>
<string name="navigation_item_explore">ထိုမ်ႏလွူꩻထွား</string>
<string name="preference_category_appearance">အပွိုင်အငုဲင်ꩻ</string>
@ -45,7 +41,7 @@
<string name="authentication_failed" fuzzy="true">စဲစ်ထွားမုꩻအောင်ႏတဝ်းသြ၊ နွို့ထဲင်းယင်းသွော့အကောက်တလဲင်ႏဟုဲင်းသြ။</string>
<string name="uploading_started">ဒင်ႏစလဲဉ်းအပ်လိုတ်</string>
<string name="upload_completed_notification_title">%1$s ဒင်ႏထွူလဲဉ်း!</string>
<string name="upload_progress_notification_title_start">အဝ်ႏဒင်ႏဖုဲင်ကျာꩻ- %s</string>
<string name="upload_progress_notification_title_start">အဝ်ႏဒင်ႏဖုဲင်ကျာꩻ- %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s အဝ်ႏဒင်ႏအပ်လိုတ်ကျာꩻ</string>
<string name="upload_failed_notification_subtitle">နျꩻထွား</string>
<string name="upload_paused_notification_subtitle">နျꩻထွား</string>
@ -90,10 +86,10 @@
<string name="preference_license">မူလလုဲင်သိဉ်</string>
<string name="use_previous">ထူႏသုင်ꩻ ကတူႏစဲဉ်ႏတောမ်ႏ အွောန်ႏနယ်ချက် ကရီးခါ</string>
<string name="preference_theme">Theme</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="welcome_final_button_text">မွေး!</string>
<string name="welcome_help_button_text">ထဲင်းယင်း သꩻတင်ꩻအချက်လက်</string>
<string name="detail_panel_cats_label">ကဏ္ဍဖုံႏ</string>
@ -119,7 +115,7 @@
<string name="media_detail_uploaded_date">ဒင်ႏခါꩻဒါႏမွူးနီꩻ</string>
<string name="media_detail_license">လုဲင်သိဉ်</string>
<string name="media_detail_coordinates">ကိုဩဒိနိတ်</string>
<string name="welcome_image_welcome_wikipedia">ဝီခီပီးဒီးယားယို ကျိုႏဆွုမ်ႏဒျာႏသြ။</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">ဝီခီပီးဒီးယားယို ကျိုႏဆွုမ်ႏဒျာႏသြ။</string>
<string name="cancel">မာꩻတဝ်းဒွုမ်</string>
<string name="navigation_drawer_close">ပေ့ꩻထိုꩻ</string>
<string name="navigation_item_home">ဗဟိုႏ</string>
@ -155,8 +151,7 @@
<string name="search_tab_title_categories">ကဏ္ဍဖုံႏ</string>
<string name="no_recent_searches">ထိုမ်ႏခါꩻမုꩻဖုံႏ အဝ်ႏတဝ်း</string>
<string name="delete">ယားကုဲင်</string>
<string name="statistics">စာႏရင်ꩻဖုံႏ</string>
<string name="level" fuzzy="true">အရန်း</string>
<string name="level" fuzzy="true">အရန်း %1$d</string>
<string name="notifications_channel_name_all">ကောင်မွဥ်း ဖေႏသေချက်</string>
<string name="contributions_fragment">ခွုမ်မာꩻချက်ဖုံႏ</string>
<string name="notifications">ဖေႏသေချက်ဖုံႏ</string>

View file

@ -54,18 +54,14 @@
<item quantity="one">%1$dটি ফাইল আপলোড হচ্ছে</item>
<item quantity="other">%1$dটি ফাইল আপলোড হচ্ছে</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">আপলোড শুরু হচ্ছে</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">%dটি আপলোড প্রক্রিয়াকরণ হচ্ছে</item>
<item quantity="other">%dটি আপলোড প্রক্রিয়াকরণ হচ্ছে</item>
<item quantity="one">%1$dটি আপলোড প্রক্রিয়াকরণ হচ্ছে</item>
<item quantity="other">%1$dটি আপলোড প্রক্রিয়াকরণ হচ্ছে</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%dটি আপলোড</item>
<item quantity="other">%dটি আপলোড</item>
<item quantity="one">%1$dটি আপলোড</item>
<item quantity="other">%1$dটি আপলোড</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">এই ছবিটি %1$s এর অধীনে লাইসেন্স করা হবে</item>
@ -108,7 +104,7 @@
<string name="uploading_queued">আপলোড সারিবদ্ধ করা হয়েছে (সীমিত সংযোগ মোড সক্রিয় করা)</string>
<string name="upload_completed_notification_title">%1$ আপলোড হয়েছে!</string>
<string name="upload_completed_notification_text">আপনার আপলোড দেখতে টোকা দিন</string>
<string name="upload_progress_notification_title_start">ফাইল আপলোড করা হচ্ছে: %s</string>
<string name="upload_progress_notification_title_start">ফাইল আপলোড করা হচ্ছে: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s আপলোড হচ্ছে</string>
<string name="upload_progress_notification_title_finishing">%1$s আপলোড করা শেষ হয়েছে</string>
<string name="upload_failed_notification_title">%1$s আপলোড করা যায়নি</string>
@ -177,10 +173,10 @@
<string name="preference_license">পূর্বনির্ধারিত লাইসেন্স</string>
<string name="use_previous">পূর্ববর্তী শিরোনাম ও বিবরণ ব্যবহার করুন</string>
<string name="preference_theme">থিম</string>
<string name="license_name_cc_by_sa_four">অ্যাট্রিবিউশন-শেয়ারঅ্যালাইক .</string>
<string name="license_name_cc_by_four">অ্যাট্রিবিউশন .</string>
<string name="license_name_cc_by_sa">অ্যাট্রিবিউশন-শেয়ারঅ্যালাইক ৩.</string>
<string name="license_name_cc_by">সিসিইউ০০এ০এঅ্যাট্রিবিউসনইউ০০এ০৩.</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">অ্যাট্রিবিউশন-শেয়ারঅ্যালাইক .</string>
<string name="license_name_cc_by_four" fuzzy="true">অ্যাট্রিবিউশন .</string>
<string name="license_name_cc_by_sa" fuzzy="true">অ্যাট্রিবিউশন-শেয়ারঅ্যালাইক ৩.</string>
<string name="license_name_cc_by" fuzzy="true">সিসিইউ০০এ০এঅ্যাট্রিবিউসনইউ০০এ০৩.</string>
<string name="license_name_cc0">সিসি০</string>
<string name="license_name_cc_by_sa_3_0">সিসি বাই-এস ৩.</string>
<string name="license_name_cc_by_3_0">সিসি বাই ৩.</string>
@ -240,15 +236,14 @@
<string name="_2fa_code">2FA কোড</string>
<string name="email_auth_code">ইমেল যাচাইকরণ কোড</string>
<string name="logout_verification">আপনি কি সত্যিই প্রস্থান করতে চান?</string>
<string name="mediaimage_failed">মিডিয়া চিত্র ব্যর্থ হয়েছে</string>
<string name="no_subcategory_found">কোন উপবিষয়শ্রেনী পাওয়া যায় নি।</string>
<string name="no_parentcategory_found">কোনও মূল বিষয়শ্রেণী পাওয়া যায়নি</string>
<string name="welcome_image_mount_zao">জাও পর্বত</string>
<string name="welcome_image_llamas">লামা</string>
<string name="welcome_image_rainbow_bridge">রংধনুর সেতু</string>
<string name="welcome_image_tulip">টিউলিপ</string>
<string name="welcome_image_welcome_wikipedia">উইকিপিডিয়ায় স্বাগতম</string>
<string name="welcome_image_welcome_copyright">স্বাগতম কপিরাইট</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">উইকিপিডিয়ায় স্বাগতম</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">স্বাগতম কপিরাইট</string>
<string name="welcome_image_sydney_opera_house">সিডনি অপেরা হাউস</string>
<string name="cancel">বাতিল</string>
<string name="navigation_drawer_open">খুলুন</string>
@ -367,12 +362,11 @@
<string name="Achievements">কৃতিত্বগুলি</string>
<string name="Profile">প্রোফাইল</string>
<string name="badges">ব্যাজ</string>
<string name="statistics">পরিসংখ্যান</string>
<string name="statistics_thanks">ধন্যবাদ পেয়েছেন</string>
<string name="statistics_featured">নির্বাচিত ছবি</string>
<string name="statistics_wikidata_edits">\"কাছাকাছি স্থান\" এর মাধ্যমে ছবি</string>
<string name="level">স্তর %d</string>
<string name="profile_withLevel">%s (স্তর %s )</string>
<string name="level">স্তর %1$d</string>
<string name="profile_withLevel">%1$s (স্তর %2$s )</string>
<string name="images_uploaded">আপলোডকৃত চিত্র</string>
<string name="image_reverts">ছবিগুলো প্রত্যাবর্তন করা হয়নি</string>
<string name="images_used_by_wiki">ব্যবহৃত ছবি</string>
@ -408,6 +402,7 @@
<string name="never_ask_again">আবার কখনো দেখাবেন না</string>
<string name="achievements_fetch_failed_ultimate_achievement">আপনি এত অবদান রেখেছেন যে আমাদের গণনা ব্যবস্থা তা গণনা করতে পারছে না। অভিনন্দন, এটাই চূড়ান্ত অর্জন।</string>
<string name="nominate_for_deletion_done">সম্পন্ন</string>
<string name="send_thank_success_title">ধন্যবাদ পাঠানো সফল হয়েছে</string>
<string name="review_copyright">এই চিত্রটি কি কপিরাইটের নিয়ম অনুসরণ করে?</string>
<string name="review_category">এই চিত্রটিকে কি সঠিকভাবে বিষয়শ্রেণীকরণ করা হয়েছে?</string>
<string name="review_spam">এই চিত্রটি কি প্রকল্পের উদ্দেশ্যের সাথে সামঞ্জস্যপূর্ণ?</string>
@ -457,7 +452,7 @@
<string name="place_state_exists">অস্তিত্ব আছে</string>
<string name="place_state_needs_photo">চিত্র প্রয়োজন</string>
<string name="place_type">স্থানের ধরন:</string>
<string name="nearby_search_hint">সেতু, জাদুঘর, হোটেল ইত্যাদি।</string>
<string name="nearby_search_hint" fuzzy="true">সেতু, জাদুঘর, হোটেল ইত্যাদি।</string>
<string name="title_for_media">মিডিয়া</string>
<string name="upload_nearby_place_found_title">কাছাকাছি স্থান পাওয়া গেছে</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">এটি কি %1$s-এর একটি চিত্র?</string>
@ -477,7 +472,7 @@
<string name="confirm">নিশ্চিত করুন</string>
<string name="instructions_title">নির্দেশাবলী</string>
<string name="wikipedia_instructions_step_7">. নিবন্ধটি প্রকাশ করুন</string>
<string name="copy_wikicode_to_clipboard">ক্লিপবোর্ডে উইকিকোড অনুলিপি করুন</string>
<string name="copy_wikicode_to_clipboard" fuzzy="true">ক্লিপবোর্ডে উইকিকোড অনুলিপি করুন</string>
<string name="pause">থামান</string>
<string name="resume">পুনরায় শুরু করুন</string>
<string name="paused">থামানো হয়েছে</string>
@ -534,14 +529,15 @@
<string name="learn_more">আরও জানুন</string>
<string name="wlm_campaign_title">উইকি লাভস মনুমেন্টস</string>
<string name="need_permission">অনুমতি দরকার</string>
<string name="contributions_of_user">ব্যবহারকারীর অবদান: %s</string>
<string name="achievements_of_user">ব্যবহারকারীর অর্জন: %s</string>
<string name="location_permission_rationale">ঐচ্ছিক অনুমতি: বিষয়শ্রেণী পরামর্শের জন্য বর্তমান অবস্থান নেয়</string>
<string name="contributions_of_user">ব্যবহারকারীর অবদান: %1$s</string>
<string name="achievements_of_user">ব্যবহারকারীর অর্জন: %1$s</string>
<string name="menu_view_user_page" fuzzy="true">ব্যবহারকারীর পাতা দেখুন</string>
<string name="advanced_options">উচ্চতর বিকল্প</string>
<string name="apply">প্রয়োগ করুন</string>
<string name="reset">পুনঃস্থাপন</string>
<string name="no_location_found_title">কোন অবস্থান পাওয়া যায়নি</string>
<string name="add_location">অবস্থান যোগ করুন</string>
<string name="add_location" fuzzy="true">অবস্থান যোগ করুন</string>
<string name="explore_map_details">বিস্তারিত</string>
<string name="api_level">এপিআই লেভেল</string>
<string name="android_version">অ্যান্ড্রয়েড সংস্করণ</string>

View file

@ -11,7 +11,7 @@
-->
<resources>
<string name="commons_facebook">Pajenn Facebook Commons</string>
<string name="commons_github">Kod mammenn Github Commons</string>
<string name="commons_github" fuzzy="true">Kod mammenn Github Commons</string>
<string name="commons_logo">Logo Commons</string>
<string name="commons_website">Lec\'hienn web Commons</string>
<string name="submit">Kas</string>
@ -31,27 +31,26 @@
<item quantity="many">%1$d restr o vezañ karget</item>
<item quantity="other">%1$d restr o vezañ karget</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d).</item>
<item quantity="two">(%1$d).</item>
<item quantity="few">(%1$d).</item>
<item quantity="many">(%1$d).</item>
<item quantity="other">(%1$d).</item>
</plurals>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">%1$d bellgargadenn loc\'het</item>
<item quantity="two">%1$d pellgargadennoù loc\'het</item>
<item quantity="few">%1$d pellgargadennoù loc\'het</item>
<item quantity="many">%1$d pellgargadennoù loc\'het</item>
<item quantity="other">%1$d pellgargadennoù loc\'het</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d enporzhiadur</item>
<item quantity="two">%d enporzhiadur</item>
<item quantity="few">%d enporzhiadur</item>
<item quantity="many">%d enporzhiadur</item>
<item quantity="other">%d enporzhiadur</item>
<item quantity="one">%1$d enporzhiadur</item>
<item quantity="two">%1$d enporzhiadur</item>
<item quantity="few">%1$d enporzhiadur</item>
<item quantity="many">%1$d enporzhiadur</item>
<item quantity="other">%1$d enporzhiadur</item>
</plurals>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">gant an aotre-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="other">gant an aotreoù-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="one">Gant an aotre-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="two">Gant an aotreoù-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="few">Gant an aotreoù-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="many">Gant an aotreoù-implijout %1$s e vo ar skeudenn-mañ</item>
<item quantity="other">Gant an aotreoù-implijout %1$s e vo ar skeudenn-mañ</item>
</plurals>
<plurals name="upload_count_title">
<item quantity="one">%1$d enporzhiadur</item>
@ -84,7 +83,7 @@
<string name="uploading_started">Kroget da enporzhiañ!</string>
<string name="upload_completed_notification_title">%1$s bet pellgaset !</string>
<string name="upload_completed_notification_text">Pouezit evit gwelet hoc\'h enporzhiadenn</string>
<string name="upload_progress_notification_title_start">Oc\'h enporzhiañ ar restr: %s</string>
<string name="upload_progress_notification_title_start">Oc\'h enporzhiañ ar restr: %1$s</string>
<string name="upload_progress_notification_title_in_progress">O enporzhiañ %1$s !</string>
<string name="upload_progress_notification_title_finishing">Oc\'h echuiñ enporzhiadenn %1$s</string>
<string name="upload_failed_notification_title">C\'hwitet en deus enporzhiañ %1$s</string>
@ -146,10 +145,10 @@
<string name="preference_license">Aotre-implijout dre ziouer</string>
<string name="use_previous">Ober gant an titl hag an deskrivadur kent</string>
<string name="preference_theme">Tem</string>
<string name="license_name_cc_by_sa_four">Deroadur-RannañHeñvel 4.0</string>
<string name="license_name_cc_by_four">Deroadur 4.0</string>
<string name="license_name_cc_by_sa"> Deroadur-RannañHeñvel 3.0</string>
<string name="license_name_cc_by">Deroadur 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Deroadur-RannañHeñvel 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Deroadur 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Deroadur-RannañHeñvel 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Deroadur 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -204,15 +203,14 @@
<string name="become_a_tester_description">En em enskrivañ en hor c\'hanol beta war Google Play ha kaout ur rakmoned d\'an arc\'hwelioù nevez d\'an drein difaziet</string>
<string name="_2fa_code">Kod 2FA</string>
<string name="logout_verification">Sur oc\'h e fell deoc\'h digevreañ ?</string>
<string name="mediaimage_failed">C\'hwitadenn war skeudenn ar media</string>
<string name="no_subcategory_found">Isrummad ebet kavet</string>
<string name="no_parentcategory_found">Rummad tad ebet kavet</string>
<string name="welcome_image_mount_zao">Menez Zao</string>
<string name="welcome_image_llamas">Lamaed</string>
<string name="welcome_image_rainbow_bridge">Pont Gwareg-ar-glav</string>
<string name="welcome_image_tulip">Tulipez</string>
<string name="welcome_image_welcome_wikipedia">Donemat e Wikipedia</string>
<string name="welcome_image_welcome_copyright">Gwirioù oberour donemat</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Donemat e Wikipedia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Gwirioù oberour donemat</string>
<string name="welcome_image_sydney_opera_house">Ti Opera Sydney</string>
<string name="cancel">Nullañ</string>
<string name="navigation_drawer_open">Digeriñ</string>
@ -308,11 +306,10 @@
<string name="delete">Dilemel</string>
<string name="Achievements">Trec\'hioù</string>
<string name="Profile">Profil</string>
<string name="statistics">Stadegoù</string>
<string name="statistics_thanks">Trugarekadennoù resevet</string>
<string name="statistics_featured">Skeudennoù lakaet a-wel</string>
<string name="statistics_wikidata_edits">Skeudennoù dre \"Lec\'hioù nepell\"</string>
<string name="level" fuzzy="true">Live</string>
<string name="level" fuzzy="true">Live %1$d</string>
<string name="images_uploaded">Skeudennoù pellgarget</string>
<string name="image_reverts">Skeudennoù nann nullet</string>
<string name="images_used_by_wiki">Skeudennoù implijet</string>
@ -346,9 +343,9 @@
<string name="option_allow">Aotren</string>
<string name="option_dismiss">Disteurel</string>
<string name="nominate_for_deletion_done">Graet</string>
<string name="send_thank_success_message">Trugarekaet eo bet %1$s gant berzh</string>
<string name="send_thank_failure_message">Ur fazi zo bet en ur drugarekaat %1$s</string>
<string name="send_thank_toast">Trugarekaat %1$s</string>
<string name="send_thank_success_message" fuzzy="true">Trugarekaet eo bet %1$s gant berzh</string>
<string name="send_thank_failure_message" fuzzy="true">Ur fazi zo bet en ur drugarekaat %1$s</string>
<string name="send_thank_toast" fuzzy="true">Trugarekaat %1$s</string>
<string name="review_thanks_yes_button_text">Skeudenn da-heul</string>
<string name="review_thanks_no_button_text">Ya, perak pas</string>
<string name="no_image">Skeudenn ebet implijet</string>
@ -386,7 +383,7 @@
<string name="place_state_exists">Bez\' ez eus anezhañ</string>
<string name="place_state_needs_photo">Ur skeudenn zo ezhomm</string>
<string name="place_type">Seurt lec\'h:</string>
<string name="nearby_search_hint">Pont, mirdi, leti h.a.</string>
<string name="nearby_search_hint" fuzzy="true">Pont, mirdi, leti h.a.</string>
<string name="title_for_media">MEDIA</string>
<string name="title_for_child_classes">KLASOÙ BUGALE</string>
<string name="title_for_parent_classes">KLASOÙ KERENT</string>
@ -435,13 +432,14 @@
<string name="back">Distreiñ</string>
<string name="welcome_custom_selector_ok">Fiskal</string>
<string name="learn_more">GOUZOUT HIROC\'H</string>
<string name="contributions_of_user">Degasadennoù an implijer: %s</string>
<string name="achievements_of_user">Taolioù-kaer an implijer: %s</string>
<string name="location_permission_rationale">Aotre diret : kaout al lec\'hiadur red evit kinnig rummadoù</string>
<string name="contributions_of_user">Degasadennoù an implijer: %1$s</string>
<string name="achievements_of_user">Taolioù-kaer an implijer: %1$s</string>
<string name="menu_view_user_page">Gwelet profil an implijer</string>
<string name="edit_categories">Kemmañ ar rummadoù</string>
<string name="advanced_options">Dibarzhioù araokaet</string>
<string name="no_location_found_title">Lec\'hiadur ebet kavet</string>
<string name="add_location">Ouzhpennañ ul lec\'hiadur</string>
<string name="add_location" fuzzy="true">Ouzhpennañ ul lec\'hiadur</string>
<string name="explore_map_details">Munudoù</string>
<string name="android_version">Stumm Android</string>
<string name="network_type">Seurt rouedad</string>

View file

@ -12,20 +12,21 @@
<item quantity="one">postavlja se %1$d datoteka</item>
<item quantity="other">postavlja se %1$d datoteka</item>
</plurals>
<plurals name="contributions_subtitle" fuzzy="true">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">postavljena %1$d datoteka</item>
<item quantity="other">postavljenih datoteka: %1$d</item>
</plurals>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">Započinjem postavljanje %1$d datoteke</item>
<item quantity="other">Započinjem postavljanje %1$d datoteka/-e</item>
<item quantity="few">Započinjem postavljanje %1$d datoteke</item>
<item quantity="other">Započinjem postavljanje %1$d datoteka</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<plurals name="multiple_uploads_title">
<item quantity="one">%1$d postavljanje</item>
<item quantity="few">%1$d postavljanja</item>
<item quantity="other">%1$d postavljanja</item>
</plurals>
<string name="share_license_summary" fuzzy="true">Slika će se voditi pod licencom %1$s</string>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">Ova slika će se voditi pod licencom %1$s</item>
<item quantity="few">Ove slike će se voditi pod licencom %1$s</item>
<item quantity="other">Ove slike će se voditi pod licencom %1$s</item>
</plurals>
<string name="navigation_item_explore">Istraži</string>
<string name="preference_category_appearance">Izgled</string>
<string name="preference_category_general">Općenito</string>
@ -48,7 +49,7 @@
<string name="uploading_started">Postavljanje je započelo!</string>
<string name="upload_completed_notification_title">Datoteka %1$s je postavljena!</string>
<string name="upload_completed_notification_text">Dodirnite da biste vidjeli datoteku</string>
<string name="upload_progress_notification_title_start">Postavljam datoteku: %s</string>
<string name="upload_progress_notification_title_start">Postavljam datoteku: %1$s</string>
<string name="upload_progress_notification_title_in_progress">Postavljanje datoteke %1$s u toku</string>
<string name="upload_progress_notification_title_finishing">Postavljanje datoteke %1$s završeno</string>
<string name="upload_failed_notification_title" fuzzy="true">Postavljanje datoteke %1$s nije uspjelo</string>
@ -107,10 +108,10 @@
<string name="preference_license">Predodređena licenca</string>
<string name="use_previous">Koristi prethodni naziv i opis</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four">Autorstvo-Dijeliti pod istim uslovima 4.0</string>
<string name="license_name_cc_by_four">Autorstvo 4.0</string>
<string name="license_name_cc_by_sa">Autorstvo-Dijeliti pod istim uvjetima 3.0</string>
<string name="license_name_cc_by">Autorstvo 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Autorstvo-Dijeliti pod istim uslovima 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Autorstvo 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Autorstvo-Dijeliti pod istim uvjetima 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Autorstvo 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -152,13 +153,12 @@
<string name="become_a_tester_description">Prijavite se na naš beta-kanal na Google Playu i dobijte raniji pristup novim mogućnostima i ispravkama grešaka</string>
<string name="_2fa_code">Kôd za provjeru u 2 koraka</string>
<string name="logout_verification">Želite li se zaista odjaviti?</string>
<string name="mediaimage_failed">Slika nije uspjela</string>
<string name="welcome_image_mount_zao">Zao</string>
<string name="welcome_image_llamas">Ljame</string>
<string name="welcome_image_rainbow_bridge">Dugin most</string>
<string name="welcome_image_tulip">Tulipan</string>
<string name="welcome_image_welcome_wikipedia">Dobro došli (Wikipedia)</string>
<string name="welcome_image_welcome_copyright">Dobro došli (autorska prava)</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Dobro došli (Wikipedia)</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Dobro došli (autorska prava)</string>
<string name="welcome_image_sydney_opera_house">Sidnejska opera</string>
<string name="cancel">Otkaži</string>
<string name="navigation_drawer_open">Otvori</string>
@ -184,4 +184,5 @@
<string name="about_faq">ČPP</string>
<string name="about_translate">Prevedi</string>
<string name="about_translate_title">Jezici</string>
<string name="location_permission_rationale">Neobavezna dozvola: Dobavljanje trenutne lokacije za predlaganje kategorija</string>
</resources>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Alvaro Vidal-Abarca
* Amire80
* Fitoschido
* Kippelboy
* MarionaDSR
@ -13,7 +14,7 @@
-->
<resources>
<string name="commons_facebook">Pàgina del Facebook del Commons</string>
<string name="commons_github">Codi font del Commons a GitHub</string>
<string name="commons_github" fuzzy="true">Codi font del Commons a GitHub</string>
<string name="commons_logo">Logo de Commons</string>
<string name="commons_website">Lloc web del Commons</string>
<string name="submit">Envia</string>
@ -22,18 +23,14 @@
<item quantity="one">s\'està carregant %1$d fitxer</item>
<item quantity="other">s\'estan carregant %1$d fitxers</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">S\'inicien les càrregues</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">S\'està processant %1$d càrrega</item>
<item quantity="other">S\'estan processant %1$d càrregues</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d càrrega</item>
<item quantity="other">%d càrregues</item>
<item quantity="one">%1$d càrrega</item>
<item quantity="other">%1$d càrregues</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Aquesta imatge quedarà sota llicència %1$s</item>
@ -66,7 +63,7 @@
<string name="uploading_started">Ha començat la càrrega!</string>
<string name="upload_completed_notification_title">Sha pujat %1$s.</string>
<string name="upload_completed_notification_text">Prem per veure la teva càrrega</string>
<string name="upload_progress_notification_title_start">Pujant el fitxer: %s</string>
<string name="upload_progress_notification_title_start">Pujant el fitxer: %1$s</string>
<string name="upload_progress_notification_title_in_progress">Carregant %1$s</string>
<string name="upload_progress_notification_title_finishing">Acabant la càrrega al servidor de %1$s</string>
<string name="upload_failed_notification_title" fuzzy="true">Error al carregar %1$s</string>
@ -125,10 +122,10 @@
<string name="preference_license">Llicència per defecte</string>
<string name="use_previous">Utilitzar títol i descripció anteriors</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four">Reconeixement-CompartirIgual 4.0</string>
<string name="license_name_cc_by_four">Reconeixement 4.0</string>
<string name="license_name_cc_by_sa">Reconeixement-CompartirIgual 3.0</string>
<string name="license_name_cc_by">Reconeixement 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Reconeixement-CompartirIgual 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Reconeixement 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Reconeixement-CompartirIgual 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Reconeixement 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -181,15 +178,14 @@
<string name="become_a_tester_title">Proveu la versió beta</string>
<string name="_2fa_code">Codi 2FA</string>
<string name="logout_verification">Realment voleu finalitzar la sessió?</string>
<string name="mediaimage_failed">Ha fallat la imatge multimèdia</string>
<string name="no_subcategory_found">No s\'han trobat subcategories</string>
<string name="no_parentcategory_found">No s\'ha trobat cap categoria pare</string>
<string name="welcome_image_mount_zao">Mont Zao</string>
<string name="welcome_image_llamas">Llames</string>
<string name="welcome_image_rainbow_bridge">Pont Rainbow</string>
<string name="welcome_image_tulip">Tulipa</string>
<string name="welcome_image_welcome_wikipedia">Benvinguts a la Viquipèdia</string>
<string name="welcome_image_welcome_copyright">Drets d\'autor de benvinguda</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Benvinguts a la Viquipèdia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Drets d\'autor de benvinguda</string>
<string name="welcome_image_sydney_opera_house">Casa d\'Òpera de Sydney</string>
<string name="cancel">Cancel·la</string>
<string name="navigation_drawer_open">Obre</string>
@ -299,11 +295,10 @@
<string name="delete">Suprimeix</string>
<string name="Achievements">Assoliments</string>
<string name="Profile">Perfil</string>
<string name="statistics">Estadístiques</string>
<string name="statistics_thanks">Agraïments rebuts</string>
<string name="statistics_featured">Imatges destacades</string>
<string name="statistics_wikidata_edits">Imatges per proximitat</string>
<string name="level" fuzzy="true">Nivell</string>
<string name="level">Nivell %1$d</string>
<string name="images_uploaded">Imatges carregades</string>
<string name="image_reverts">Imatges no revertides</string>
<string name="images_used_by_wiki">Imatges utilitzades</string>
@ -355,9 +350,9 @@
<string name="display_campaigns_explanation">Consulta les campanyes en curs</string>
<string name="error_processing_image">S\'ha produït un error en processar la imatge. Torneu-ho a provar!</string>
<string name="nominate_for_deletion_done">Fet</string>
<string name="send_thank_success_title">Enviament d\'agraïments: Èxit</string>
<string name="send_thank_failure_title">Enviament d\'agraïments: Fallada</string>
<string name="send_thank_toast">S\'estan enviant agraïments per %1$s</string>
<string name="send_thank_success_title" fuzzy="true">Enviament d\'agraïments: Èxit</string>
<string name="send_thank_failure_title" fuzzy="true">Enviament d\'agraïments: Fallada</string>
<string name="send_thank_toast" fuzzy="true">S\'estan enviant agraïments per %1$s</string>
<string name="review_copyright">Això segueix les regles de drets d\'autor?</string>
<string name="review_category">Té categorizació correcta?</string>
<string name="review_spam">S\'adiu al tema?</string>
@ -415,7 +410,7 @@
<string name="delete_helper_ask_alert_set_positive_button_reason">Perquè sí</string>
<string name="category_edit_button_text">Actualitza les categories</string>
<string name="share_image_via">Comparteix la imatge via</string>
<string name="no_achievements_yet" fuzzy="true">No hi heu fet cap contribució encara</string>
<string name="no_achievements_yet">%1$s no hi ha fet cap contribució encara</string>
<string name="account_created">S\'ha creat el compte</string>
<string name="text_copy">S\'ha copiat el text al porta-retalls</string>
<string name="notification_mark_read">La notificació s\'ha marcat com llegida</string>
@ -424,7 +419,7 @@
<string name="place_state_exists">Existeix</string>
<string name="place_state_needs_photo">Cal una foto</string>
<string name="place_type">Tipus de lloc:</string>
<string name="nearby_search_hint">Pont, museu, hotel, etc.</string>
<string name="nearby_search_hint" fuzzy="true">Pont, museu, hotel, etc.</string>
<string name="you_must_reset_your_passsword" fuzzy="true">Quelcom ha fallat amb la vostra sessió. Reinicieu la vostra contrasenya!!</string>
<string name="title_app_shortcut_setting">Paràmetres</string>
<string name="theme_default_name">Seguir el sistema</string>
@ -447,4 +442,5 @@
<string name="back">Enrere</string>
<string name="welcome_custom_selector_ok">Fantàstic</string>
<string name="display_monuments">Mostra els monuments</string>
<string name="location_permission_rationale">Permís opcional: obtén la ubicació actual per al suggeriment de categories</string>
</resources>

View file

@ -7,7 +7,7 @@
-->
<resources>
<string name="commons_facebook">Викилармера Facebook-агӀо</string>
<string name="commons_github">Викилармин йуьхьанцара кодаш гитхабехь</string>
<string name="commons_github" fuzzy="true">Викилармин йуьхьанцара кодаш гитхабехь</string>
<string name="commons_logo">Викилармин логотип</string>
<string name="commons_website">Викилармин веб-сайт</string>
<string name="exit_location_picker">Лаьтта меттиг хоржучу корера ара вала(йала)</string>
@ -31,18 +31,14 @@
<item quantity="one">%1$d файл чуйокхуш йу</item>
<item quantity="other">%1$d файл чуйокхуш йу</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Чуйаккхар долор</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Чуйаккхар %d кечдар</item>
<item quantity="other">Чуйаккхар %d кечдар</item>
<item quantity="one">Чуйаккхар %1$d кечдар</item>
<item quantity="other">Чуйаккхар %1$d кечдар</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d чуйаккхар</item>
<item quantity="other">%d чуйаккхар</item>
<item quantity="one">%1$d чуйаккхар</item>
<item quantity="other">%1$d чуйаккхар</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">ХIара суртан лицензи йийра йу кху бухахь %1$s</item>
@ -86,7 +82,7 @@
<string name="uploading_queued">Чуйакхар рогӀехь йу (зӀенан режим, доза тоьхна дӀахӀоттийна)</string>
<string name="upload_completed_notification_title">%1$s чуйаьккхина!</string>
<string name="upload_completed_notification_text">Чуйаьккхина файле хьажа тӀетаӀайe</string>
<string name="upload_progress_notification_title_start">%1$s чуйаккхар долина</string>
<string name="upload_progress_notification_title_start" fuzzy="true">%1$s чуйаккхар долина</string>
<string name="upload_progress_notification_title_in_progress">%1$s чуйоккхуш йу</string>
<string name="upload_progress_notification_title_finishing">%1$s чуйаккхар чекхдолуш ду</string>
<string name="upload_failed_notification_title">%1$s чуяккхуш гӀалат даьлла</string>
@ -139,9 +135,9 @@
<string name="menu_download">Схьаэца</string>
<string name="preference_license">Ӏадйитаран кепаца йолу лицензи</string>
<string name="preference_theme">Кечйар</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="tutorial_4_text">Чуйаккхаран масала:</string>
<string name="tutorial_4_subtext_1">ЦӀе: Сиднейн операн театр</string>
<string name="welcome_final_button_text">ХӀаъ!</string>
@ -168,8 +164,8 @@
<string name="media_detail_license">Лицензи</string>
<string name="media_detail_coordinates">Координаташ</string>
<string name="welcome_image_llamas">Ламаш</string>
<string name="welcome_image_welcome_wikipedia">Марша догӀийла Википеди чу</string>
<string name="welcome_image_welcome_copyright">Марша догӀийла — авторийн бакъонаш</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Марша догӀийла Википеди чу</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Марша догӀийла — авторийн бакъонаш</string>
<string name="welcome_image_sydney_opera_house">Сиднейн операн театр</string>
<string name="cancel">Йухайаккхар</string>
<string name="navigation_drawer_open">Схьайелла</string>
@ -237,10 +233,9 @@
<string name="delete">ДӀайаккхар</string>
<string name="Achievements">Кхиамаш</string>
<string name="Profile">Профиль</string>
<string name="statistics">Статистика</string>
<string name="statistics_thanks">Баркаллаш кхаьчна</string>
<string name="statistics_featured">Хаьржина суьрташ</string>
<string name="level" fuzzy="true">Локхалла</string>
<string name="level" fuzzy="true">Локхалла %1$d</string>
<string name="images_uploaded">Суьрташ чудаьхна</string>
<string name="image_reverts">Йуха ца дерзийна суьрташ</string>
<string name="images_used_by_wiki">Суьрташ лелийна</string>
@ -275,7 +270,7 @@
<string name="option_dismiss">Йухадаккха</string>
<string name="nearby_campaign_dismiss_message">ХӀуна кхий гура йац кампанеш. Делахь, хьайна лаахь, хьа йиш йу кампанех лаьцна нотификаци лато нисдаран гӀирс чохь.</string>
<string name="nominate_for_deletion_done">Кийчча йу</string>
<string name="send_thank_success_title">Баркалла дӀадахьийтар: Кхиамца</string>
<string name="send_thank_success_title" fuzzy="true">Баркалла дӀадахьийтар: Кхиамца</string>
<string name="review_spam">Файл нийса йуй Викилармин тӀехь?</string>
<string name="review_thanks">Декъашхочунна баркалла ала лаьий хьуна?</string>
<string name="review_thanks_yes_button_text" fuzzy="true">ХӀаъ</string>
@ -285,7 +280,7 @@
<string name="menu_option_unread">Хьажа ца дешначарга</string>
<string name="error_occurred_in_picking_images">Суьрташ чудохуш гӀалат даьлла</string>
<string name="please_wait">Дехар до, собарде…</string>
<string name="copy_image_caption_description">РогӀерчу гӀирсашка копеш йар</string>
<string name="copy_image_caption_description" fuzzy="true">РогӀерчу гӀирсашка копеш йар</string>
<string name="copied_successfully">Копийина</string>
<string name="skip_image">ХӀара сурт чекхдалийта</string>
<string name="manage_exif_tags">EXIF тегашца болх бар</string>
@ -296,7 +291,6 @@
<string name="exif_tag_name_lensModel">Объективан модель</string>
<string name="exif_tag_name_serialNumbers">Серийн лоьмар</string>
<string name="exif_tag_name_software">Программан кхачам</string>
<string name="media_location_permission_denied">Файл йолу меттиган тӀекхача бакъо ца ло</string>
<string name="share_via">Йекъа программа, гӀоьнца...</string>
<string name="image_info">Суьртан информаци</string>
<string name="no_categories_found">Цхьа а категори ца карийна.</string>
@ -341,7 +335,7 @@
<string name="description_activity_title">Хаамашна а, куьг йаздарна а хийцамаш бар</string>
<string name="share_image_via">Сурт декъа гӀоьнца</string>
<string name="you_have_no_achievements_yet">Цкъачунна ахьа къинхьегам ца бина.</string>
<string name="no_achievements_yet">%s цкъачунна къинхьегам бац</string>
<string name="no_achievements_yet">%1$s цкъачунна къинхьегам бац</string>
<string name="account_created">Аккаунт кхоьллина!</string>
<string name="text_copy">Текст буфере копийина</string>
<string name="notification_mark_read">Хаамаш \"бешна\" аьлла билгалбаьхна</string>
@ -350,7 +344,7 @@
<string name="place_state_exists">Йолуш йу</string>
<string name="place_state_needs_photo">Сурт оьшу</string>
<string name="place_type">Меттиган тайпа:</string>
<string name="nearby_search_hint">ТӀай, музей, отел, и.дӀ.кх.</string>
<string name="nearby_search_hint" fuzzy="true">ТӀай, музей, отел, и.дӀ.кх.</string>
<string name="you_must_reset_your_passsword">Цхьа хӀума галдаьлла логинца. Хьайн пароль меттахӀотто йеза ахьа!</string>
<string name="title_for_media">МЕДИА</string>
<string name="title_for_child_classes">БЕРИЙН КЛАССАШ</string>
@ -380,7 +374,7 @@
<string name="wikipedia_instructions_step_4">4. «Хийца» иконкин тӀетаӀайе (къоламах тера йу) хӀокху декъана</string>
<string name="wikipedia_instructions_step_5">5. Вики-код йогӀучу метте дӀайазйе</string>
<string name="wikipedia_instructions_step_7">7. Йаззам дӀайазбан</string>
<string name="copy_wikicode_to_clipboard">Вики-код буфер чу копийе</string>
<string name="copy_wikicode_to_clipboard" fuzzy="true">Вики-код буфер чу копийе</string>
<string name="pause">пауза</string>
<string name="resume">кхидӀа</string>
<string name="paused">Сацийна</string>

View file

@ -7,11 +7,14 @@
-->
<resources>
<string name="commons_facebook">پەڕەی فەیسبووکی کۆمنز</string>
<string name="commons_github">کۆدی سەرچاوەی کۆمنز لە گیتھەب</string>
<string name="commons_github" fuzzy="true">کۆدی سەرچاوەی کۆمنز لە گیتھەب</string>
<string name="commons_logo">لۆگۆی کۆمنز</string>
<string name="commons_website">وێبگەی کۆمنز</string>
<string name="show_captions">لێدوانەکان</string>
<string name="share_license_summary" fuzzy="true">ئەم پەڕەیە مۆڵەتنامەی %1 پێ دەدرێت</string>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">ئەم پەڕەیە مۆڵەتنامەی %1$s پێ دەدرێت</item>
<item quantity="other">ئەم پەڕەیە مۆڵەتیان %1$s پێ دەدرێت</item>
</plurals>
<string name="navigation_item_explore">بگەڕێ</string>
<string name="preference_category_appearance">ڕواڵەت</string>
<string name="preference_category_general">گشتی</string>

View file

@ -28,7 +28,7 @@
-->
<resources>
<string name="commons_facebook">Facebooková stránka Commons</string>
<string name="commons_github">Zdrojový kód Commons na GitHubu</string>
<string name="commons_github" fuzzy="true">Zdrojový kód Commons na GitHubu</string>
<string name="commons_logo">Logo Wikimedia Commons</string>
<string name="commons_website">Stránka Commons</string>
<string name="exit_location_picker">Ukončit výběr polohy</string>
@ -54,24 +54,18 @@
<item quantity="many">Nahrávání %1$d souborů</item>
<item quantity="other">Nahrávání %1$d souborů</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="few">(%1$d)</item>
<item quantity="many">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Spouštění nahrávání</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Zpracovávání %d nahrání</item>
<item quantity="few">Zpracovávání %d nahrání</item>
<item quantity="many">Zpracovávání %d nahrání</item>
<item quantity="other">Zpracovávání %d nahrání</item>
<item quantity="one">Zpracovávání %1$d nahrání</item>
<item quantity="few">Zpracovávání %1$d nahrání</item>
<item quantity="many">Zpracovávání %1$d nahrání</item>
<item quantity="other">Zpracovávání %1$d nahrání</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d nahrávání</item>
<item quantity="few">%d nahrávání</item>
<item quantity="many">%d nahrávání</item>
<item quantity="other">%d nahrávání</item>
<item quantity="one">%1$d nahrávání</item>
<item quantity="few">%1$d nahrávání</item>
<item quantity="many">%1$d nahrávání</item>
<item quantity="other">%1$d nahrávání</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Tento obrázek bude zveřejněn pod licencí %1$s</item>
@ -121,7 +115,7 @@
<string name="uploading_queued">Nahrávání je ve frontě (zapnut režim omezeného připojení)</string>
<string name="upload_completed_notification_title">%1$s nahráno!</string>
<string name="upload_completed_notification_text">Klepnutím zobrazíte upload</string>
<string name="upload_progress_notification_title_start">Načítání souboru: %s</string>
<string name="upload_progress_notification_title_start">Načítání souboru: %1$s</string>
<string name="upload_progress_notification_title_in_progress">Nahrává se soubor %1$s</string>
<string name="upload_progress_notification_title_finishing">Dokončení nahrávání souboru %1$s</string>
<string name="upload_failed_notification_title">Nepodařilo se nahrát soubor %1$s</string>
@ -171,6 +165,7 @@
<string name="title_activity_settings">Nastavení</string>
<string name="title_activity_signup">Zaregistrovat se</string>
<string name="title_activity_featured_images">Nejlepší obrázky</string>
<string name="images_featured_explanation" fuzzy="true">Nejlepší obrázky jsou soubory od vysoce zkušených fotografů a ilustrátorů, které vybrala komunita Wikimedia Commons jako jedny z nejkvalitnějších.</string>
<string name="title_activity_custom_selector">Vlastní výběr</string>
<string name="title_activity_category_details">Kategorie</string>
<string name="title_activity_review">Kontrola</string>
@ -192,10 +187,10 @@
<string name="preference_license">Výchozí licence</string>
<string name="use_previous">Použít předchozí název a popis</string>
<string name="preference_theme">Vzhled</string>
<string name="license_name_cc_by_sa_four">Uveďte autora-Zachovejte licenci 4.0</string>
<string name="license_name_cc_by_four">Uveďte autora 4.0</string>
<string name="license_name_cc_by_sa"> Uveďte autora-Zachovejte licenci 3.0</string>
<string name="license_name_cc_by">CC Uveďte autora 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Uveďte autora-Zachovejte licenci 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Uveďte autora 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Uveďte autora-Zachovejte licenci 3.0</string>
<string name="license_name_cc_by" fuzzy="true">CC Uveďte autora 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -258,15 +253,14 @@
<string name="_2fa_code">Kód pro dvoufázové ověření (2FA)</string>
<string name="email_auth_code">Ověřovací kód z e-mailu</string>
<string name="logout_verification">Opravdu se chcete odhlásit?</string>
<string name="mediaimage_failed">Obrázek</string>
<string name="no_subcategory_found">Nebyly nalezeny podkategorie</string>
<string name="no_parentcategory_found">Nebyly nalezeny rodičovské kategorie</string>
<string name="welcome_image_mount_zao">Hora Zao</string>
<string name="welcome_image_llamas">Lamy</string>
<string name="welcome_image_rainbow_bridge">Duhový most</string>
<string name="welcome_image_tulip">Tulipán</string>
<string name="welcome_image_welcome_wikipedia">Vítejte na Wikipedii</string>
<string name="welcome_image_welcome_copyright">Úvod k autorským právům</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Vítejte na Wikipedii</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Úvod k autorským právům</string>
<string name="welcome_image_sydney_opera_house">Opera v Sydney</string>
<string name="cancel">Zrušit</string>
<string name="navigation_drawer_open">Otevřít</string>
@ -402,12 +396,11 @@
<string name="Achievements">Dosažené úspěchy</string>
<string name="Profile">Profil</string>
<string name="badges">Odznaky</string>
<string name="statistics">Statistiky</string>
<string name="statistics_thanks">Obdržená poděkování</string>
<string name="statistics_featured">Nejlepší obrázky</string>
<string name="statistics_wikidata_edits">Obrázky přes „Místa v okolí“</string>
<string name="level">Úroveň %d</string>
<string name="profile_withLevel">%s (úroveň %s)</string>
<string name="level">Úroveň %1$d</string>
<string name="profile_withLevel">%1$s (úroveň %2$s)</string>
<string name="images_uploaded">Nahrané obrázky</string>
<string name="image_reverts">Nerevertované obrázky</string>
<string name="images_used_by_wiki">Použitých obrázků</string>
@ -467,7 +460,7 @@
<string name="never_ask_again">Znovu nezobrazovat</string>
<string name="display_location_permission_title">Požádat o oprávnění k poloze</string>
<string name="display_location_permission_explanation">Požádejte o oprávnění k umístění, pokud je zapotřebí pro funkci zobrazení pohledu v blízkosti.</string>
<string name="achievements_fetch_failed">Nastala neočekávaná chyba. Nemohli jsme načíst vaše úspěchy</string>
<string name="achievements_fetch_failed" fuzzy="true">Nastala neočekávaná chyba. Nemohli jsme načíst vaše úspěchy</string>
<string name="achievements_fetch_failed_ultimate_achievement">Vytvořili jste tolik příspěvků, že je náš systém výpočtu úspěchů nedokáže zvládnout. Toto je nejvyšší možný úspěch.</string>
<string name="ends_on">Končí:</string>
<string name="display_campaigns">Zobrazovat kampaně</string>
@ -495,11 +488,11 @@
<string name="check_category_failure_message">Nepodařilo se vyžádat kontrolu kategorie %1$s</string>
<string name="check_category_toast">Probíhá žádání o kontrolu kategorie souboru %1$s</string>
<string name="nominate_for_deletion_done">Hotovo</string>
<string name="send_thank_success_title">Poděkování bylo úspěšně odesláno</string>
<string name="send_thank_success_message">Úspěšně jste poděkovali uživateli %1$s</string>
<string name="send_thank_failure_message">Poděkování uživateli %1$s se nepodařilo odeslat</string>
<string name="send_thank_failure_title">Poděkování se nepodařilo odeslat</string>
<string name="send_thank_toast">Probíhá odesílání poděkování uživateli %1$s</string>
<string name="send_thank_success_title" fuzzy="true">Poděkování bylo úspěšně odesláno</string>
<string name="send_thank_success_message" fuzzy="true">Úspěšně jste poděkovali uživateli %1$s</string>
<string name="send_thank_failure_message" fuzzy="true">Poděkování uživateli %1$s se nepodařilo odeslat</string>
<string name="send_thank_failure_title" fuzzy="true">Poděkování se nepodařilo odeslat</string>
<string name="send_thank_toast" fuzzy="true">Probíhá odesílání poděkování uživateli %1$s</string>
<string name="review_copyright">Je to v souladu s pravidly autorskými práv?</string>
<string name="review_category">Je to správně kategorizováno?</string>
<string name="review_spam">Je to v pořádku?</string>
@ -526,15 +519,14 @@
<string name="menu_option_unread">Zobrazit nepřečtené</string>
<string name="error_occurred_in_picking_images">Nastala chyba při vybírání obrázků</string>
<string name="please_wait">Čekejte prosím…</string>
<string name="images_featured_explanation">Nejlepší obrázky jsou soubory od vysoce zkušených fotografů a ilustrátorů, které vybrala komunita Wikimedia Commons jako jedny z nejkvalitnějších.</string>
<string name="images_via_nearby_explanation">Obrázky nahrané přes Poblíž jsou obrázky, které jsou nahrané díky objevování míst na mapě.</string>
<string name="thanks_received_explanation">Tato funkce umožňuje uživatelům poslat poděkování za užitečné editace použitím odkazu poděkovat v historii stránky anebo na stránce rozdílu mezi revizemi.</string>
<string name="copy_image_caption_description">Kopírovat do následujícího média</string>
<string name="copy_image_caption_description" fuzzy="true">Kopírovat do následujícího média</string>
<string name="copied_successfully">Zkopírováno!</string>
<string name="welcome_do_upload_content_description">Příklady dobrých obrázků k nahrání na Commons</string>
<string name="welcome_dont_upload_content_description">Příklady obrázků, které byste neměli nahrávat</string>
<string name="skip_image">Přeskočit obrázek</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Stahování se nepodařilo! Nemůžeme stáhnout obrázek bez povolení k přístupu k úložišti.</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission" fuzzy="true">Stahování se nepodařilo! Nemůžeme stáhnout obrázek bez povolení k přístupu k úložišti.</string>
<string name="manage_exif_tags">Spravovat data EXIF</string>
<string name="manage_exif_tags_summary">Vybrat EXIF data, která se mají ponechat</string>
<string name="exif_tag_name_author">Autor</string>
@ -544,8 +536,6 @@
<string name="exif_tag_name_lensModel">Model objektivu</string>
<string name="exif_tag_name_serialNumbers">Sériová čísla</string>
<string name="exif_tag_name_software">Software</string>
<string name="media_location_permission_denied">Přístup k poloze médií odmítnut</string>
<string name="add_location_manually">Možná nebudeme schopni automaticky získat údaje o poloze z obrázků, které nahrajete. Před odesláním prosím přidejte odpovídající polohu ke každému obrázku</string>
<string name="share_text">Nahrávejte fotky na Wikimedia Commons přímo s vašeho mobilu. Stáhněte si aplikaci: %1$s</string>
<string name="share_via">Sdílet aplikaci pomocí…</string>
<string name="image_info">Informace o obrázku</string>
@ -605,7 +595,7 @@
<string name="description_activity_title">Upravit popisy a titulky</string>
<string name="share_image_via">Sdílet obrázek pomocí</string>
<string name="you_have_no_achievements_yet">Zatím nemáte žádné příspěvky</string>
<string name="no_achievements_yet">Zatím nemáte žádné příspěvky</string>
<string name="no_achievements_yet" fuzzy="true">%1$s zatím nepřispěl(a) žádné příspěvky</string>
<string name="account_created">Účet byl založen!</string>
<string name="text_copy">Text byl zkopírován do schránky.</string>
<string name="notification_mark_read">Oznámení označené jako přečtené</string>
@ -614,7 +604,7 @@
<string name="place_state_exists">Existuje</string>
<string name="place_state_needs_photo">Potřebuje fotku</string>
<string name="place_type">Typ místa:</string>
<string name="nearby_search_hint">Most, muzeum, hotel atd.</string>
<string name="nearby_search_hint" fuzzy="true">Most, muzeum, hotel atd.</string>
<string name="you_must_reset_your_passsword">Při přihlášení nastala chyba. Musíte si resetovat vaše heslo!</string>
<string name="title_for_media">MÉDIA</string>
<string name="title_for_child_classes">PODŘAZENÉ TŘÍDY</string>
@ -658,7 +648,7 @@
<string name="wikipedia_instructions_step_5">5. Vložte wikitext na vhodné místo.</string>
<string name="wikipedia_instructions_step_6">6. Pokud je to nutné, upravte wikitext pro vhodné umístění. Pro více informací se podívejte &lt;a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\"&gt;sem&lt;/a&gt;.</string>
<string name="wikipedia_instructions_step_7">7. Zveřejněte článek</string>
<string name="copy_wikicode_to_clipboard">Zkopírujte wikitext</string>
<string name="copy_wikicode_to_clipboard" fuzzy="true">Zkopírujte wikitext</string>
<string name="pause">pozastavit</string>
<string name="resume">pokračovat</string>
<string name="paused">Pozastaveno</string>
@ -713,7 +703,7 @@
<string name="show_in_map_app">Zobrazit v mapové aplikaci</string>
<string name="modify_location">Upravit umístění</string>
<string name="location_picker_image_view">Zobrazení obrázku výběru polohy</string>
<string name="location_picker_image_view_shadow">\n Stín zobrazení obrázku výběru polohy</string>
<string name="location_picker_image_view_shadow" fuzzy="true">\n Stín zobrazení obrázku výběru polohy</string>
<string name="image_location">Umístění obrázku</string>
<string name="check_whether_location_is_correct">Zkontrolujte, zda je umístění správné</string>
<string name="label">Štítek</string>
@ -725,7 +715,7 @@
<string name="back">Zpět</string>
<string name="welcome_custom_picture_selector_text">Vítejte ve výběru vlastních obrázků</string>
<string name="custom_selector_info_text1">Tento výběr zobrazuje, které obrázky jste již nahráli do Commons.</string>
<string name="custom_selector_info_text2">Na rozdíl od obrázku nalevo má obrázek napravo logo Commons, které značí, že byl již nahrán.\n Klepněte a podržte pro náhled obrázku.</string>
<string name="custom_selector_info_text2" fuzzy="true">Na rozdíl od obrázku nalevo má obrázek napravo logo Commons, které značí, že byl již nahrán.\n Klepněte a podržte pro náhled obrázku.</string>
<string name="welcome_custom_selector_ok">Skvělé</string>
<string name="custom_selector_already_uploaded_image_text">Tento obrázek byl již nahrán do Commons.</string>
<string name="custom_selector_over_limit_warning">Z technických důvodů nedokáže aplikace spolehlivě nahrát více než %1$d obrázků naráz. Limit %1$d byl překročen o %2$d.</string>
@ -739,8 +729,9 @@
<string name="wlm_campaign_description">Wiki miluje památky je mezinárodní soutěž týkající se památek, organizovaná Wikimedií</string>
<string name="need_permission">Je vyžadováno oprávnění</string>
<string name="read_phone_state_permission_message">Mapy v okolí potřebují ke správné funkčnosti číst STAV TELEFONU</string>
<string name="contributions_of_user">Příspěvky uživatele: %s</string>
<string name="achievements_of_user">Úspěchy uživatele: %s</string>
<string name="location_permission_rationale">Volitelně: Umožněte aplikaci, aby získávala aktuální polohu a nabízela na jejím základě kategorie</string>
<string name="contributions_of_user">Příspěvky uživatele: %1$s</string>
<string name="achievements_of_user">Úspěchy uživatele: %1$s</string>
<string name="menu_view_user_page">Zobrazit profil uživatele</string>
<string name="edit_depictions">Upravit znázornění</string>
<string name="edit_categories">Upravit kategorie</string>
@ -751,7 +742,7 @@
<string name="location_message">Údaje o poloze pomáhají editorům Wiki najít váš obrázek, díky čemuž je mnohem užitečnější.\nVaše nedávná nahrání nemají žádnou polohu.\nDoporučujeme zapnout polohu v nastavení aplikace fotoaparátu.\nDěkujeme, že nahráváte!</string>
<string name="no_location_found_title">Nenalezena žádná poloha</string>
<string name="no_location_found_message">Co takhle přidat místo, kde byl tento obrázek pořízen?\nÚdaje o poloze pomáhají editorům Wiki najít váš obrázek, díky čemuž je mnohem užitečnější.\nDěkujeme!</string>
<string name="add_location">Přidat polohu</string>
<string name="add_location" fuzzy="true">Přidat polohu</string>
<string name="feedback_sharing_data_alert">Odstraňte prosím z tohoto e-mailu všechny informace, které nechcete sdílet veřejně. Mějte také na paměti, že e-mailová adresa, kterou používáte, a související jméno a profilový obrázek, budou veřejně zobrazeny.</string>
<string name="explore_map_details">Podrobnosti</string>
<string name="achievements_unavailable_beta">Úspěchy jsou dostupné pouze v produkční verzi. Více informací viz dokumentace pro vývojáře.</string>
@ -772,8 +763,8 @@
<string name="unmark_as_not_for_upload">Zrušit označení jako neurčené k nahrání</string>
<string name="marking_as_not_for_upload">Označování jako neurčené k nahrání</string>
<string name="unmarking_as_not_for_upload">Rušení označení jako neurčené k nahrání</string>
<string name="show_already_actioned_pictures">Zobrazit již zpracované obrázky</string>
<string name="hiding_already_actioned_pictures">Skrývání již zpracovaných obrázků</string>
<string name="show_already_actioned_pictures" fuzzy="true">Zobrazit již zpracované obrázky</string>
<string name="hiding_already_actioned_pictures" fuzzy="true">Skrývání již zpracovaných obrázků</string>
<string name="no_more_images_found">Nenalezeny žádné další obrázky</string>
<string name="this_image_is_already_uploaded">Tento obrázek byl již nahrán</string>
<string name="can_not_select_this_image_for_upload">Tento obrázek nelze vybrat k nahrání</string>
@ -809,17 +800,17 @@
<string name="invalid_login_message">Vaše přihlášení vypršelo. Přihlaste se prosím znovu.</string>
<string name="no_application_available_to_open_gpx_files">Není dostupná žádná aplikace k otevření souborů GPX</string>
<string name="file_saved_successfully">Soubor úspěšně uložen</string>
<string name="do_you_want_to_open_gpx_file">Chcete otevřít soubor GPX?</string>
<string name="do_you_want_to_open_kml_file">Chcete otevřít soubor KML?</string>
<string name="failed_to_save_kml_file">Nepodařilo se uložit soubor KML.</string>
<string name="failed_to_save_gpx_file">Nepodařilo se uložit soubor GPX.</string>
<string name="saving_kml_file">Ukládání souboru KML</string>
<string name="saving_gpx_file">Ukládání souboru GPX</string>
<string name="do_you_want_to_open_gpx_file" fuzzy="true">Chcete otevřít soubor GPX?</string>
<string name="do_you_want_to_open_kml_file" fuzzy="true">Chcete otevřít soubor KML?</string>
<string name="failed_to_save_kml_file" fuzzy="true">Nepodařilo se uložit soubor KML.</string>
<string name="failed_to_save_gpx_file" fuzzy="true">Nepodařilo se uložit soubor GPX.</string>
<string name="saving_kml_file" fuzzy="true">Ukládání souboru KML</string>
<string name="saving_gpx_file" fuzzy="true">Ukládání souboru GPX</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">Vybrán %d obrázek</item>
<item quantity="few">Vybrány %d obrázky</item>
<item quantity="many">Vybráno %d obrázků</item>
<item quantity="other">Vybráno %d obrázků</item>
<item quantity="one">Vybrán %1$d obrázek</item>
<item quantity="few">Vybrány %1$d obrázky</item>
<item quantity="many">Vybráno %1$d obrázků</item>
<item quantity="other">Vybráno %1$d obrázků</item>
</plurals>
<string name="multiple_files_depiction">Nezapomeňte, že všechny obrázky ve hromadném nahrání získají stejné kategorie a znázornění. Pokud obrázky nesdílí znázornění a kategorie, nahrajte je prosím zvlášť.</string>
<string name="multiple_files_depiction_header">Informace o hromadných nahráních</string>
@ -855,7 +846,6 @@
<string name="usages_on_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Jiné wiki</string>
<string name="file_usages_container_heading">Použití souboru</string>
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
<string name="account">Účet</string>
<string name="vanish_account">Nechat zmizet účet</string>
<string name="account_vanish_request_confirm_title">Varování o zmizení účtu</string>

View file

@ -8,20 +8,20 @@
<item quantity="one">Wladënk %1$d lopka</item>
<item quantity="other">Wladënk %1$d lopków</item>
</plurals>
<plurals name="contributions_subtitle" fuzzy="true">
<item quantity="zero">Przesłano @string/contributions_subtitle_zero</item>
<item quantity="one">Przesłano %1$d lopk</item>
<item quantity="other">Przesłano %1$d lopczi</item>
</plurals>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">Naczãto %1$d wladënk</item>
<item quantity="other">Naczãto %1$d wladënczi</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<plurals name="multiple_uploads_title">
<item quantity="one">%1$d wladënk</item>
<item quantity="other">%1$d wladënczi</item>
</plurals>
<string name="share_license_summary" fuzzy="true">Nen òbrôzk bãdze ùprzistãpniony wedle licencëji %1$s</string>
<plurals name="share_license_summary" fuzzy="true">
<item quantity="one">Nen òbrôzk bãdze ùprzistãpniony wedle licencëji %1$s</item>
<item quantity="few">Neni òbrôzki bãdze ùprzistãpniony wedle licencëji %1$s</item>
<item quantity="many">Neni òbrôzki bãdze ùprzistãpniony wedle licencëji %1$s</item>
<item quantity="other">Neni òbrôzki bãdze ùprzistãpniony wedle licencëji %1$s</item>
</plurals>
<string name="app_name">Commons</string>
<string name="menu_settings">Nastôwë</string>
<string name="username">Miono brëkòwnika</string>
@ -86,10 +86,10 @@
<string name="preference_license" fuzzy="true">Licencëjô</string>
<string name="use_previous" fuzzy="true">Ùżëjë slédnegò titla/òpisënka</string>
<string name="preference_theme" fuzzy="true">Nocny trib</string>
<string name="license_name_cc_by_sa_four">Ùznanié ùsôdztwa na równych prawach 4.0</string>
<string name="license_name_cc_by_four">Ùznanié ùsôdztwa 4.0</string>
<string name="license_name_cc_by_sa">Ùznanié ùsôdztwa na równych prawach 3.0</string>
<string name="license_name_cc_by">Ùznanié ùsôdztwa 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true">Ùznanié ùsôdztwa na równych prawach 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true">Ùznanié ùsôdztwa 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">Ùznanié ùsôdztwa na równych prawach 3.0</string>
<string name="license_name_cc_by" fuzzy="true">Ùznanié ùsôdztwa 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -121,8 +121,8 @@
<string name="welcome_image_llamas">Lamy</string>
<string name="welcome_image_rainbow_bridge">Rainbow Bridge</string>
<string name="welcome_image_tulip">Tulpa</string>
<string name="welcome_image_welcome_wikipedia">Witôj na Wikipediji</string>
<string name="welcome_image_welcome_copyright">Witôj w prawnych zastrzégach</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Witôj na Wikipediji</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Witôj w prawnych zastrzégach</string>
<string name="welcome_image_sydney_opera_house">Sydney Opera House</string>
<string name="cancel">Òprzestóń</string>
<string name="navigation_drawer_open">Òtemkni</string>

View file

@ -24,22 +24,29 @@
<item quantity="one">%1$d ffeil yn uwchlwytho</item>
<item quantity="other">%1$d ffeil yn uwchlwytho</item>
</plurals>
<plurals name="contributions_subtitle" fuzzy="true">
<item quantity="zero">\@string/contributions_subtitle_zero</item>
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Cychwyn Uwchlwytho</string>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="zero">Cychwyn uwchlwytho %1$d ffeil</item>
<item quantity="one">Cychwyn %1$d uwchlwythiad</item>
<item quantity="two">Cychwyn uwchlwytho %1$d ffeil</item>
<item quantity="few">Cychwyn uwchlwytho %1$d ffeil</item>
<item quantity="many">Cychwyn uwchlwytho %1$d ffeil</item>
<item quantity="other">Cychwyn uwchlwytho %1$d ffeil</item>
</plurals>
<plurals name="multiple_uploads_title" fuzzy="true">
<plurals name="multiple_uploads_title">
<item quantity="zero">%1$d uwchlwythiad</item>
<item quantity="one">%1$d uwchlwythiad</item>
<item quantity="two">%1$d uwchlwythiad</item>
<item quantity="few">%1$d uwchlwythiad</item>
<item quantity="many">%1$d uwchlwythiad</item>
<item quantity="other">%1$d uwchlwythiad</item>
</plurals>
<plurals name="share_license_summary" fuzzy="true">
<plurals name="share_license_summary">
<item quantity="zero">Caiff y delweddau hyn eu trwyddedu dan %1$s</item>
<item quantity="one">Caiff y ddelwedd hon ei thrwyddedu yn ôl termau\'r drwydded %1$s</item>
<item quantity="two">Caiff y delweddau hyn eu trwyddedu dan %1$s</item>
<item quantity="few">Caiff y delweddau hyn eu trwyddedu dan %1$s</item>
<item quantity="many">Caiff y delweddau hyn eu trwyddedu dan %1$s</item>
<item quantity="other">Caiff y delweddau hyn eu trwyddedu dan %1$s</item>
</plurals>
<string name="navigation_item_explore">Archwilio</string>
@ -66,7 +73,7 @@
<string name="uploading_started">Dechreuodd yr uwchlwytho!</string>
<string name="upload_completed_notification_title">Uwchlwythwyd %1$s!</string>
<string name="upload_completed_notification_text">Tapiwch i weld eich uwchlwythiad</string>
<string name="upload_progress_notification_title_start">Wrthi\'n uwchlwytho ffeil: %s</string>
<string name="upload_progress_notification_title_start">Wrthi\'n uwchlwytho ffeil: %1$s</string>
<string name="upload_progress_notification_title_in_progress">Wrthi\'n uwchlwytho %1$s</string>
<string name="upload_progress_notification_title_finishing">Yn gorffen uwchlwytho %1$s</string>
<string name="upload_failed_notification_title">Wedi methu uwchlwytho %1$s</string>
@ -125,10 +132,10 @@
<string name="preference_license">Trwydded Ddiofyn (\'default\')</string>
<string name="use_previous" fuzzy="true">Defnydiwch y teitl/disgrifiad blaenorol</string>
<string name="preference_theme">Thema</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa">CC Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by">CC Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true">CC Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true">CC Attribution 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -185,14 +192,13 @@
<string name="become_a_tester_title">Dewch yn Brofwr Beta</string>
<string name="_2fa_code">Cod 2FA</string>
<string name="logout_verification">Ti\'n sicr dy fod am allgofnodi?</string>
<string name="mediaimage_failed">Methodd y ddelwedd</string>
<string name="no_subcategory_found">Ni chafwyd hyd i is-gategoriau</string>
<string name="welcome_image_mount_zao">Mount Zao</string>
<string name="welcome_image_llamas">Lamas</string>
<string name="welcome_image_rainbow_bridge">Pont yr Enfys</string>
<string name="welcome_image_tulip">Tiwlip</string>
<string name="welcome_image_welcome_wikipedia">Croeso Wicipedia</string>
<string name="welcome_image_welcome_copyright">Croeso Hawlfraint</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Croeso Wicipedia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Croeso Hawlfraint</string>
<string name="welcome_image_sydney_opera_house">Ty Opera Sydney</string>
<string name="cancel">Diddymu</string>
<string name="navigation_drawer_open">Agor</string>
@ -282,7 +288,6 @@
<string name="share_app_title">Rhannu Ap</string>
<string name="delete">Dileu</string>
<string name="Profile">Proffil</string>
<string name="statistics">Ystadegau</string>
<string name="contributions_fragment">Cyfraniadau</string>
<string name="notifications">Hysbysiadau</string>
<string name="option_allow">Caniatáu</string>
@ -301,6 +306,7 @@
<string name="description">Disgrifiad</string>
<string name="title_page_bookmarks_items">Eitemau</string>
<string name="learn_more">DYSGU MWY</string>
<string name="location_permission_rationale">Caniatad opsiynol: Ceisio\'r lleoliad cyfoes ar gyfer categoriau</string>
<string name="reset">Ailosod</string>
<string name="explore_map_details">Manylion</string>
<string name="api_level">Lefel API</string>

View file

@ -12,7 +12,7 @@
-->
<resources>
<string name="commons_facebook">Commons Facebook-side</string>
<string name="commons_github">Commons Github-kildekode</string>
<string name="commons_github" fuzzy="true">Commons Github-kildekode</string>
<string name="commons_logo">Commons-logo</string>
<string name="commons_website">Commons-hjemmeside</string>
<string name="exit_location_picker">Afslut stedvælger</string>
@ -36,18 +36,14 @@
<item quantity="one">%1$d fil uploades</item>
<item quantity="other">%1$d filer uploades</item>
</plurals>
<plurals name="contributions_subtitle">
<item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item>
</plurals>
<string name="starting_uploads">Starter upload</string>
<plurals name="starting_multiple_uploads">
<item quantity="one">Behandler %d upload</item>
<item quantity="other">Behandler %d uploads</item>
<item quantity="one">Behandler %1$d upload</item>
<item quantity="other">Behandler %1$d uploads</item>
</plurals>
<plurals name="multiple_uploads_title">
<item quantity="one">%d upload</item>
<item quantity="other">%d uploads</item>
<plurals name="multiple_uploads_title" fuzzy="true">
<item quantity="one">%1$d upload</item>
<item quantity="other">%1$d uploads</item>
</plurals>
<plurals name="share_license_summary">
<item quantity="one">Dette billede vil blive licenseret under %1$s</item>
@ -91,7 +87,7 @@
<string name="uploading_queued">Upload i kø (begrænset forbindelsestilstand aktiveret)</string>
<string name="upload_completed_notification_title">%1$s uploadet!</string>
<string name="upload_completed_notification_text">Tryk for at få vist dit upload</string>
<string name="upload_progress_notification_title_start">Uploader fil: %s</string>
<string name="upload_progress_notification_title_start">Uploader fil: %1$s</string>
<string name="upload_progress_notification_title_in_progress">%1$s uploades</string>
<string name="upload_progress_notification_title_finishing">Afslutter upload af %1$s</string>
<string name="upload_failed_notification_title">Upload af %1$s mislykkedes</string>
@ -141,6 +137,7 @@
<string name="title_activity_settings">Indstillinger</string>
<string name="title_activity_signup">Opret konto</string>
<string name="title_activity_featured_images">Fremhævede billeder</string>
<string name="images_featured_explanation" fuzzy="true">Fremhævede billeder er billeder fra højt kvalificerede fotografer og illustratører, som Wikimedia Commons-fællesskabet har udvalgt som nogle af dem med højeste kvalitet på webstedet.</string>
<string name="title_activity_custom_selector">Brugerdefineret vælger</string>
<string name="title_activity_category_details">Kategori</string>
<string name="title_activity_review">Gennemsyn</string>
@ -162,10 +159,10 @@
<string name="preference_license">Standardlicens</string>
<string name="use_previous">Brug forrige titel og beskrivelse</string>
<string name="preference_theme">Tema</string>
<string name="license_name_cc_by_sa_four"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four"> Attribution 4.0</string>
<string name="license_name_cc_by_sa"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by"> Attribution 3.0</string>
<string name="license_name_cc_by_sa_four" fuzzy="true"> Attribution-ShareAlike 4.0</string>
<string name="license_name_cc_by_four" fuzzy="true"> Attribution 4.0</string>
<string name="license_name_cc_by_sa" fuzzy="true"> Attribution-ShareAlike 3.0</string>
<string name="license_name_cc_by" fuzzy="true"> Attribution 3.0</string>
<string name="license_name_cc0">CC0</string>
<string name="license_name_cc_by_sa_3_0">CC BY-SA 3.0</string>
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
@ -228,15 +225,14 @@
<string name="_2fa_code">2FA-kode</string>
<string name="email_auth_code">E-mail-bekræftelseskode</string>
<string name="logout_verification">Ønsker du at logge ud?</string>
<string name="mediaimage_failed">Mediebillede mislykkedes</string>
<string name="no_subcategory_found">Ingen underkategorier fundet</string>
<string name="no_parentcategory_found">Ingen overordnede kategorier fundet</string>
<string name="welcome_image_mount_zao">Monter Zao</string>
<string name="welcome_image_llamas">Lamaer</string>
<string name="welcome_image_rainbow_bridge">Regnbuebro</string>
<string name="welcome_image_tulip">Tulipan</string>
<string name="welcome_image_welcome_wikipedia">Velkommen til Wikipedia</string>
<string name="welcome_image_welcome_copyright">Velkommen til ophavsret</string>
<string name="welcome_image_welcome_wikipedia" fuzzy="true">Velkommen til Wikipedia</string>
<string name="welcome_image_welcome_copyright" fuzzy="true">Velkommen til ophavsret</string>
<string name="welcome_image_sydney_opera_house">Operahuset i Sydney</string>
<string name="cancel">Afbryd</string>
<string name="navigation_drawer_open">Åbn</string>
@ -372,12 +368,11 @@
<string name="Achievements">Præstationer</string>
<string name="Profile">Profil</string>
<string name="badges">Emblemer</string>
<string name="statistics">Statistik</string>
<string name="statistics_thanks">Tak modtaget</string>
<string name="statistics_featured">Udvalgte billeder</string>
<string name="statistics_wikidata_edits">Billeder via \"Steder i nærheden\"</string>
<string name="level">Niveau %d</string>
<string name="profile_withLevel">%s (Niveau %s)</string>
<string name="level">Niveau %1$d</string>
<string name="profile_withLevel">%1$s (Niveau %2$s)</string>
<string name="images_uploaded">Uploadede billeder</string>
<string name="image_reverts">Billeder, som ikke er blevet trukket tilbage</string>
<string name="images_used_by_wiki">Billeder brugt</string>
@ -437,7 +432,7 @@
<string name="never_ask_again">Spørg aldrig om dette igen</string>
<string name="display_location_permission_title">Bed om placeringstilladelse</string>
<string name="display_location_permission_explanation">Spørg om placeringstilladelse, når det er nødvendigt for visning af \"I nærheden\"-notifikationskort.</string>
<string name="achievements_fetch_failed">Noget gik galt. Vi kunne ikke hente præstationer</string>
<string name="achievements_fetch_failed" fuzzy="true">Noget gik galt. Vi kunne ikke hente præstationer</string>
<string name="achievements_fetch_failed_ultimate_achievement">Du har bidraget så meget, at vores udregningssystem for præstationer ikke kan håndtere det. Dette er den ultimate præstationen.</string>
<string name="ends_on">Slutter den:</string>
<string name="display_campaigns">Vis kampagner</string>
@ -465,11 +460,11 @@
<string name="check_category_failure_message">Kunne ikke anmode om kategorikontrol for %1$s</string>
<string name="check_category_toast">Anmoder om kategorikontrol for %1$s</string>
<string name="nominate_for_deletion_done">Udført</string>
<string name="send_thank_success_title">Sender tak: Færdig</string>
<string name="send_thank_success_message">Sendte tak til %1$s</string>
<string name="send_thank_failure_message">Kunne ikke sende tak %1$s</string>
<string name="send_thank_failure_title">Sender tak: Mislykkedes</string>
<string name="send_thank_toast">Sender tak for %1$s</string>
<string name="send_thank_success_title" fuzzy="true">Sender tak: Færdig</string>
<string name="send_thank_success_message" fuzzy="true">Sendte tak til %1$s</string>
<string name="send_thank_failure_message" fuzzy="true">Kunne ikke sende tak %1$s</string>
<string name="send_thank_failure_title" fuzzy="true">Sender tak: Mislykkedes</string>
<string name="send_thank_toast" fuzzy="true">Sender tak for %1$s</string>
<string name="review_copyright">Følger dette reglerne for ophavsret?</string>
<string name="review_category">Er dette korrekt kategoriseret?</string>
<string name="review_spam">Er dette relevant?</string>
@ -496,15 +491,14 @@
<string name="menu_option_unread">Vis ulæste</string>
<string name="error_occurred_in_picking_images">Der opstod en fejl under udvælgelse af billeder</string>
<string name="please_wait">Vent venligst…</string>
<string name="images_featured_explanation">Fremhævede billeder er billeder fra højt kvalificerede fotografer og illustratører, som Wikimedia Commons-fællesskabet har udvalgt som nogle af dem med højeste kvalitet på webstedet.</string>
<string name="images_via_nearby_explanation">Billeder uploadet via nærliggende steder er de billeder, der uploades ved at opdage steder på kortet.</string>
<string name="thanks_received_explanation">Denne funktion giver redaktører mulighed for at sende en tak-notifikation til brugere, der foretager nyttige redigeringer - ved at bruge et lille takkelink på historiksiden eller diff-siden.</string>
<string name="copy_image_caption_description">Kopiér til efterfølgende medier</string>
<string name="copy_image_caption_description" fuzzy="true">Kopiér til efterfølgende medier</string>
<string name="copied_successfully">Kopieret</string>
<string name="welcome_do_upload_content_description">Eksempler på gode billeder til at uploade til Commons</string>
<string name="welcome_dont_upload_content_description">Eksempler på billeder, der ikke bør uploades</string>
<string name="skip_image">Spring dette billede over</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Download mislykkedes!!. Vi kan ikke downloade filen uden tilladelse til ekstern lagring.</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission" fuzzy="true">Download mislykkedes!!. Vi kan ikke downloade filen uden tilladelse til ekstern lagring.</string>
<string name="manage_exif_tags">Administrer EXIF-tags</string>
<string name="manage_exif_tags_summary">Vælg hvilke EXIF-tags, der skal beholdes i uploads</string>
<string name="exif_tag_name_author">Forfatter</string>
@ -514,8 +508,6 @@
<string name="exif_tag_name_lensModel">Objektivmodel</string>
<string name="exif_tag_name_serialNumbers">Serienumre</string>
<string name="exif_tag_name_software">Software</string>
<string name="media_location_permission_denied">Adgang til medieplacering nægtet</string>
<string name="add_location_manually">Vi kan muligvis ikke automatisk indhente placeringsdata fra billeder, du uploader. Tilføj den passende placering for hvert billede, før du indsender</string>
<string name="share_text">Upload billeder til Wikimedia Commons direkte fra din telefon. Download Commons-appen nu: %1$s</string>
<string name="share_via">Del app via...</string>
<string name="image_info">Billedoplysninger</string>
@ -571,7 +563,7 @@
<string name="description_activity_title">Rediger beskrivelser og billedtekster</string>
<string name="share_image_via">Del billede via</string>
<string name="you_have_no_achievements_yet">Du har ikke lavet nogen bidrag endnu</string>
<string name="no_achievements_yet">%s har ikke lavet nogen bidrag endnu</string>
<string name="no_achievements_yet">%1$s har ikke lavet nogen bidrag endnu</string>
<string name="account_created">Konto oprettet!</string>
<string name="text_copy">Tekst kopieret til udklipsholder</string>
<string name="notification_mark_read">Notifikation markeret som læst</string>
@ -580,7 +572,7 @@
<string name="place_state_exists">Findes</string>
<string name="place_state_needs_photo">Mangler et billede</string>
<string name="place_type">Stedtype:</string>
<string name="nearby_search_hint">Bro, museum, hotel, osv.</string>
<string name="nearby_search_hint" fuzzy="true">Bro, museum, hotel, osv.</string>
<string name="you_must_reset_your_passsword">Noget gik galt med login. Du skal nulstille din adgangskode!</string>
<string name="title_for_media">MEDIER</string>
<string name="title_for_child_classes">UNDERKLASSER</string>
@ -624,7 +616,7 @@
<string name="wikipedia_instructions_step_5">5. Indsæt wikiteksten på det rette sted.</string>
<string name="wikipedia_instructions_step_6">6. Rediger wikiteksten for passende placering, hvis det er nødvendigt. For mere information, se &lt;a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\"&gt;her&lt;/a&gt;.</string>
<string name="wikipedia_instructions_step_7">7. Udgiv artiklen</string>
<string name="copy_wikicode_to_clipboard">Kopier wikikode til udklipsholder</string>
<string name="copy_wikicode_to_clipboard" fuzzy="true">Kopier wikikode til udklipsholder</string>
<string name="pause">sæt på pause</string>
<string name="resume">genoptag</string>
<string name="paused">Sat på pause</string>
@ -679,7 +671,7 @@
<string name="show_in_map_app">Vis i kort-app</string>
<string name="modify_location">Rediger placering</string>
<string name="location_picker_image_view">Billedvisningen af placeringsvælgeren</string>
<string name="location_picker_image_view_shadow">Skyggen af billedvisningen af lokationsvælgeren</string>
<string name="location_picker_image_view_shadow" fuzzy="true">Skyggen af billedvisningen af lokationsvælgeren</string>
<string name="image_location">Billedplacering</string>
<string name="check_whether_location_is_correct">Tjek, om placeringen er korrekt</string>
<string name="label">Etiket</string>
@ -691,7 +683,7 @@
<string name="back">Tilbage</string>
<string name="welcome_custom_picture_selector_text">Velkommen til brugerdefineret billedvælger</string>
<string name="custom_selector_info_text1">Denne vælger viser dig, hvilke billeder du allerede har uploadet til Commons.</string>
<string name="custom_selector_info_text2">I modsætning til billedet til venstre har billedet til højre Commons-logoet, hvilket indikerer, at det allerede er uploadet. \n Tryk og hold for at se forhåndsvisning af billede.</string>
<string name="custom_selector_info_text2" fuzzy="true">I modsætning til billedet til venstre har billedet til højre Commons-logoet, hvilket indikerer, at det allerede er uploadet. \n Tryk og hold for at se forhåndsvisning af billede.</string>
<string name="welcome_custom_selector_ok">Fantastisk</string>
<string name="custom_selector_already_uploaded_image_text">Dette billede er allerede blevet uploadet til Commons.</string>
<string name="custom_selector_over_limit_warning">Af tekniske årsager kan appen ikke pålideligt uploade mere end %1$d billeder på én gang. Uploadgrænsen på %1$d er blevet overskredet med %2$d.</string>
@ -705,8 +697,9 @@
<string name="wlm_campaign_description">Wiki Loves Monuments er en international fotokonkurrence for monumenter arrangeret af Wikimedia</string>
<string name="need_permission">Har brug for tilladelse</string>
<string name="read_phone_state_permission_message">\"I nærheden\"-kort har brug for at aflæse TELEFON TILSTAND for at fungere ordentlig</string>
<string name="contributions_of_user">Bidrag fra bruger: %s</string>
<string name="achievements_of_user">Præstationer af bruger: %s</string>
<string name="location_permission_rationale">Valgfri tilladelse: Hent nuværende position for kategoriforslag</string>
<string name="contributions_of_user">Bidrag fra bruger: %1$s</string>
<string name="achievements_of_user">Præstationer af bruger: %1$s</string>
<string name="menu_view_user_page">Vis brugerprofil</string>
<string name="edit_depictions">Rediger afbildninger</string>
<string name="edit_categories">Rediger kategorier</string>
@ -717,7 +710,7 @@
<string name="location_message">Placeringsdata hjælper Wiki-redaktører med at finde dit billede, hvilket gør det meget mere nyttigt.\nDine seneste uploads har ingen placering.\nVi foreslår, at du slår placering til i indstillingerne for din kamera-app.\nTak, fordi du uploadede!</string>
<string name="no_location_found_title">Ingen placering fundet</string>
<string name="no_location_found_message">Hvad med at tilføje stedet, hvor dette billede blev taget?\nPlaceringsdata hjælper Wiki-redaktører med at finde dit billede, hvilket gør det meget mere nyttigt.\nTak!</string>
<string name="add_location">Tilføj placering</string>
<string name="add_location" fuzzy="true">Tilføj placering</string>
<string name="feedback_sharing_data_alert">Fjern enhver information fra denne e-mail, som du ikke er tryg ved at dele offentligt. Vær også opmærksom på, at din e-mailadresse, som du anvender, og det tilhørende navn og profilbillede, vil være offentligt synligt.</string>
<string name="explore_map_details">Detaljer</string>
<string name="achievements_unavailable_beta">Præstationer er kun tilgængelige i produktionsversionen. Tjek venligst udviklerdokumentationen.</string>
@ -738,8 +731,8 @@
<string name="unmark_as_not_for_upload">Fjern markeringen af ikke til upload</string>
<string name="marking_as_not_for_upload">Markerer som ikke til upload</string>
<string name="unmarking_as_not_for_upload">Fjerner markering af ikke til upload</string>
<string name="show_already_actioned_pictures">Vis allerede behandlede billeder</string>
<string name="hiding_already_actioned_pictures">Skjuler allerede behandlede billeder</string>
<string name="show_already_actioned_pictures" fuzzy="true">Vis allerede behandlede billeder</string>
<string name="hiding_already_actioned_pictures" fuzzy="true">Skjuler allerede behandlede billeder</string>
<string name="no_more_images_found">Ikke flere billeder fundet</string>
<string name="this_image_is_already_uploaded">Dette billede er allerede uploadet</string>
<string name="can_not_select_this_image_for_upload">Kan ikke vælge dette billede til upload</string>
@ -775,15 +768,15 @@
<string name="invalid_login_message">Login udløb. Log venligst ind igen.</string>
<string name="no_application_available_to_open_gpx_files">Der er ingen tilgængelig applikation til at åbne GPX-filer</string>
<string name="file_saved_successfully">Fil gemt</string>
<string name="do_you_want_to_open_gpx_file">Vil du åbne GPX-filen?</string>
<string name="do_you_want_to_open_kml_file">Vil du åbne KML-filen?</string>
<string name="failed_to_save_kml_file">Kunne ikke gemme KML-fil.</string>
<string name="failed_to_save_gpx_file">Kunne ikke gemme GPX-fil.</string>
<string name="saving_kml_file">Gemmer KML-fil</string>
<string name="saving_gpx_file">Gemmer GPX-fil</string>
<string name="do_you_want_to_open_gpx_file" fuzzy="true">Vil du åbne GPX-filen?</string>
<string name="do_you_want_to_open_kml_file" fuzzy="true">Vil du åbne KML-filen?</string>
<string name="failed_to_save_kml_file" fuzzy="true">Kunne ikke gemme KML-fil.</string>
<string name="failed_to_save_gpx_file" fuzzy="true">Kunne ikke gemme GPX-fil.</string>
<string name="saving_kml_file" fuzzy="true">Gemmer KML-fil</string>
<string name="saving_gpx_file" fuzzy="true">Gemmer GPX-fil</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%d billede valgt</item>
<item quantity="other"> %d billeder valgt</item>
<item quantity="one">%1$d billede valgt</item>
<item quantity="other">%1$d billeder valgt</item>
</plurals>
<string name="multiple_files_depiction">Husk, at alle billeder i et multi-upload får de samme kategorier og afbildninger. Hvis billederne ikke deler afbildninger og kategorier, skal du udføre flere separate uploads.</string>
<string name="multiple_files_depiction_header">Bemærkning om at uploade flere billeder</string>

Some files were not shown because too many files have changed in this diff Show more