Merge branch 'main' into issue_6262

This commit is contained in:
Ritika Pahwa 2025-05-04 15:51:53 +05:30 committed by GitHub
commit 887a7672eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 959 additions and 148 deletions

View file

@ -333,6 +333,7 @@ android {
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\""
buildConfigField "String", "CREATOR_PROPERTY", "\"P170\""
dimension 'tier'
}
@ -370,6 +371,7 @@ android {
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\""
buildConfigField "String", "CREATOR_PROPERTY", "\"P253075\""
dimension 'tier'
}
}

View file

@ -53,6 +53,7 @@ class Media constructor(
*/
var author: String? = null,
var user: String? = null,
var creatorName: String? = null,
/**
* Gets the categories the file falls under.
* @return file categories as an ArrayList of Strings
@ -66,6 +67,7 @@ class Media constructor(
var captions: Map<String, String> = emptyMap(),
var descriptions: Map<String, String> = emptyMap(),
var depictionIds: List<String> = emptyList(),
var creatorIds: List<String> = emptyList(),
/**
* This field was added to find non-hidden categories
* Stores the mapping of category title to hidden attribute
@ -130,6 +132,7 @@ class Media constructor(
* returns user
* @return Author or User
*/
@Deprecated("Use user for uploader username. Use attributedAuthor() for attribution. Note that the uploader may not be the creator/author.")
fun getAuthorOrUser(): String? {
return if (!author.isNullOrEmpty()) {
author
@ -138,6 +141,19 @@ class Media constructor(
}
}
/**
* Returns author if it's not null or empty, otherwise
* returns creator name
* @return name of author or creator
*/
fun getAttributedAuthor(): String? {
return if (!author.isNullOrEmpty()) {
author
} else{
creatorName
}
}
/**
* Gets media display title
* @return Media title

View file

@ -1,7 +1,7 @@
package fr.free.nrw.commons
import androidx.core.text.HtmlCompat
import fr.free.nrw.commons.media.IdAndCaptions
import fr.free.nrw.commons.media.IdAndLabels
import fr.free.nrw.commons.media.MediaClient
import fr.free.nrw.commons.media.PAGE_ID_PREFIX
import io.reactivex.Single
@ -23,13 +23,23 @@ class MediaDataExtractor
private val mediaClient: MediaClient,
) {
fun fetchDepictionIdsAndLabels(media: Media) =
mediaClient
mediaClient
.getEntities(media.depictionIds)
.map {
it
.entities()
.mapValues { entry -> entry.value.labels().mapValues { it.value.value() } }
}.map { it.map { (key, value) -> IdAndCaptions(key, value) } }
}.map { it.map { (key, value) -> IdAndLabels(key, value) } }
.onErrorReturn { emptyList() }
fun fetchCreatorIdsAndLabels(media: Media) =
mediaClient
.getEntities(media.creatorIds)
.map {
it
.entities()
.mapValues { entry -> entry.value.labels().mapValues { it.value.value() } }
}.map { it.map { (key, value) -> IdAndLabels(key, value) } }
.onErrorReturn { emptyList() }
fun checkDeletionRequestExists(media: Media) = mediaClient.checkPageExistsUsingTitle("Commons:Deletion_requests/" + media.filename)

View file

@ -8,23 +8,29 @@ import androidx.appcompat.app.AlertDialog
import androidx.recyclerview.widget.RecyclerView
import com.facebook.imagepipeline.request.ImageRequest
import com.facebook.imagepipeline.request.ImageRequestBuilder
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.utils.MediaAttributionUtil
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.R
import fr.free.nrw.commons.databinding.LayoutContributionBinding
import fr.free.nrw.commons.media.MediaClient
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import timber.log.Timber
import java.io.File
class ContributionViewHolder internal constructor(
private val parent: View, private val callback: ContributionsListAdapter.Callback,
private val mediaClient: MediaClient
parent: View,
private val callback: ContributionsListAdapter.Callback,
private val compositeDisposable: CompositeDisposable,
private val mediaClient: MediaClient,
private val mediaDataExtractor: MediaDataExtractor
) : RecyclerView.ViewHolder(parent) {
var binding: LayoutContributionBinding = LayoutContributionBinding.bind(parent)
private var position = 0
private var contribution: Contribution? = null
private val compositeDisposable = CompositeDisposable()
private var isWikipediaButtonDisplayed = false
private val pausingPopUp: AlertDialog
var imageRequest: ImageRequest? = null
@ -54,7 +60,7 @@ an upload might take a dozen seconds. */
this.contribution = contribution
this.position = position
binding.contributionTitle.text = contribution.media.mostRelevantCaption
binding.authorView.text = contribution.media.getAuthorOrUser()
setAuthorText(contribution.media)
//Removes flicker of loading image.
binding.contributionImage.hierarchy.fadeDuration = 0
@ -93,6 +99,30 @@ an upload might take a dozen seconds. */
checkIfMediaExistsOnWikipediaPage(contribution)
}
fun updateAttribution() {
if (contribution != null) {
val media = contribution!!.media
if (!media.getAttributedAuthor().isNullOrEmpty()) {
return
}
compositeDisposable.addAll(
mediaDataExtractor.fetchCreatorIdsAndLabels(media)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ idAndLabels ->
media.creatorName = MediaAttributionUtil.getCreatorName(idAndLabels)
setAuthorText(media)
},
{ t: Throwable? -> Timber.e(t) })
)
}
}
private fun setAuthorText(media: Media) {
binding.authorView.text = MediaAttributionUtil.getTagLine(media, itemView.context)
}
/**
* Checks if a media exists on the corresponding Wikipedia article Currently the check is made
* for the device's current language Wikipedia

View file

@ -4,21 +4,26 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DiffUtil
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.R
import fr.free.nrw.commons.media.MediaClient
import io.reactivex.disposables.CompositeDisposable
/**
* Represents The View Adapter for the List of Contributions
*/
class ContributionsListAdapter internal constructor(
private val callback: Callback,
private val mediaClient: MediaClient
private val mediaClient: MediaClient,
private val mediaDataExtractor: MediaDataExtractor,
private val compositeDisposable: CompositeDisposable
) : PagedListAdapter<Contribution, ContributionViewHolder>(DIFF_CALLBACK) {
/**
* Initializes the view holder with contribution data
*/
override fun onBindViewHolder(holder: ContributionViewHolder, position: Int) {
holder.init(position, getItem(position))
holder.updateAttribution()
}
fun getContributionForPosition(position: Int): Contribution? {
@ -36,7 +41,7 @@ class ContributionsListAdapter internal constructor(
val viewHolder = ContributionViewHolder(
LayoutInflater.from(parent.context)
.inflate(R.layout.layout_contribution, parent, false),
callback, mediaClient
callback, compositeDisposable, mediaClient, mediaDataExtractor
)
return viewHolder
}

View file

@ -27,6 +27,7 @@ import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
import androidx.recyclerview.widget.RecyclerView.OnItemTouchListener
import androidx.recyclerview.widget.SimpleItemAnimator
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.R
import fr.free.nrw.commons.Utils
import fr.free.nrw.commons.auth.SessionManager
@ -63,6 +64,10 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
@Inject
var mediaClient: MediaClient? = null
@JvmField
@Inject
var mediaDataExtractor: MediaDataExtractor? = null
@JvmField
@Named(NetworkingModule.NAMED_LANGUAGE_WIKI_PEDIA_WIKI_SITE)
@Inject
@ -231,7 +236,7 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
}
private fun initAdapter() {
adapter = ContributionsListAdapter(this, mediaClient!!)
adapter = ContributionsListAdapter(this, mediaClient!!, mediaDataExtractor!!, compositeDisposable)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

View file

@ -348,12 +348,12 @@ class ImageAdapter(
scope.launch(ioDispatcher) {
val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
withContext(Dispatchers.Main) {
if (holder.isItemUploaded()) {
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
if (holder.isItemUploaded()) {
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
return@withContext
}
if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) {
if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) {
holder.itemUploaded()
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
return@withContext
@ -369,7 +369,7 @@ class ImageAdapter(
selectedImages.add(image)
notifyItemChanged(position, ImageSelectedOrUpdated())
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
}
}
}

View file

@ -721,8 +721,20 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
authorUser = Html.fromHtml(authorUser, Html.FROM_HTML_MODE_LEGACY).toString();
}
OverlayItem item = new OverlayItem(nearbyBaseMarker.getPlace().name,
authorUser, point);
String title = nearbyBaseMarker.getPlace().name;
// Remove "File:" if present at start
if (title.startsWith("File:")) {
title = title.substring(5);
}
// Remove extensions like .jpg, .jpeg, .png, .svg (case insensitive)
title = title.replaceAll("(?i)\\.(jpg|jpeg|png|svg)$", "");
title = title.replace("_", " ");
//Truncate if too long because it doesn't fit the screen
if (title.length() > 43) {
title = title.substring(0, 40) + "";
}
OverlayItem item = new OverlayItem(title, authorUser, point);
item.setMarker(d);
items.add(item);
ItemizedOverlayWithFocus overlay = new ItemizedOverlayWithFocus(items,

View file

@ -18,6 +18,12 @@ import javax.inject.Inject
class MediaConverter
@Inject
constructor() {
/**
* Creating Media object from MWQueryPage.
*
* @param page response from the API
* @return Media object
*/
fun convert(
page: MwQueryPage,
entity: Entities.Entity,
@ -40,24 +46,17 @@ class MediaConverter
metadata.prefixedLicenseUrl,
getAuthor(metadata),
imageInfo.getUser(),
null,
MediaDataExtractorUtil.extractCategoriesFromList(metadata.categories()),
metadata.latLng,
entity.labels().mapValues { it.value.value() },
entity.descriptions().mapValues { it.value.value() },
entity.depictionIds(),
entity.creatorIds(),
myMap,
)
}
/**
* Creating Media object from MWQueryPage.
* Earlier only basic details were set for the media object but going forward,
* a full media object(with categories, descriptions, coordinates etc) can be constructed using this method
*
* @param page response from the API
* @return Media object
*/
private fun safeParseDate(dateStr: String): Date? =
try {
CommonsDateUtil.getMediaSimpleDateFormat().parse(dateStr)
@ -66,24 +65,32 @@ class MediaConverter
}
/**
* This method extracts the Commons Username from the artist HTML information
* This method extracts the Commons Username from the artist HTML information.
* When the HTML is in customized formatting, it may fail to parse and return null.
* @param metadata
* @return
*/
private fun getAuthor(metadata: ExtMetadata): String? {
return try {
val authorHtml = metadata.artist()
val anchorStartTagTerminalChars = "\">"
val anchorCloseTag = "</a>"
val authorHtml = metadata.artist()
val anchorStartTagTerminalString = "\">"
val anchorCloseTag = "</a>"
return authorHtml.substring(
authorHtml.indexOf(anchorStartTagTerminalChars) +
anchorStartTagTerminalChars
.length,
return if (!authorHtml.contains("<") && !authorHtml.contains(">") ) {
authorHtml.trim()
} else if (!authorHtml.contains(anchorStartTagTerminalString) || !authorHtml.endsWith(anchorCloseTag)) {
null
} else {
val authorText = authorHtml.substring(
authorHtml.indexOf(anchorStartTagTerminalString) +
anchorStartTagTerminalString.length,
authorHtml.indexOf(anchorCloseTag),
)
} catch (ex: java.lang.Exception) {
""
if (authorText.contains("<") || authorText.contains(">")) {
null
} else {
authorText
}
}
}
}
@ -92,6 +99,10 @@ private fun Entities.Entity.depictionIds() =
this[WikidataProperties.DEPICTS]?.mapNotNull { (it.mainSnak.dataValue as? DataValue.EntityId)?.value?.id }
?: emptyList()
private fun Entities.Entity.creatorIds() =
this[WikidataProperties.CREATOR]?.mapNotNull { (it.mainSnak.dataValue as? DataValue.EntityId)?.value?.id }
?: emptyList()
private val ExtMetadata.prefixedLicenseUrl: String
get() =
licenseUrl().let {

View file

@ -4,16 +4,18 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.R
import fr.free.nrw.commons.category.CategoryImagesCallback
import fr.free.nrw.commons.explore.paging.BasePagingFragment
import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider
import javax.inject.Inject
abstract class PageableMediaFragment :
BasePagingFragment<Media>(),
MediaDetailProvider {
override val pagedListAdapter by lazy {
PagedMediaAdapter(categoryImagesCallback::onMediaClicked)
PagedMediaAdapter(categoryImagesCallback::onMediaClicked, mediaDataExtractor)
}
override val errorTextId: Int = R.string.error_loading_images
@ -22,6 +24,9 @@ abstract class PageableMediaFragment :
lateinit var categoryImagesCallback: CategoryImagesCallback
@Inject
lateinit var mediaDataExtractor: MediaDataExtractor
override fun onAttach(context: Context) {
super.onAttach(context)
if (parentFragment != null) {

View file

@ -5,13 +5,22 @@ import android.view.ViewGroup
import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DiffUtil
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.utils.MediaAttributionUtil
import fr.free.nrw.commons.R
import fr.free.nrw.commons.databinding.LayoutCategoryImagesBinding
import fr.free.nrw.commons.explore.paging.BaseViewHolder
import fr.free.nrw.commons.explore.paging.inflate
import fr.free.nrw.commons.media.IdAndLabels
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import timber.log.Timber
class PagedMediaAdapter(
private val onImageClicked: (Int) -> Unit,
private val mediaDataExtractor: MediaDataExtractor,
private val compositeDisposable: CompositeDisposable = CompositeDisposable()
) : PagedListAdapter<Media, SearchImagesViewHolder>(
object : DiffUtil.ItemCallback<Media>() {
override fun areItemsTheSame(
@ -25,6 +34,7 @@ class PagedMediaAdapter(
) = oldItem.pageId == newItem.pageId
},
) {
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int,
@ -37,7 +47,24 @@ class PagedMediaAdapter(
holder: SearchImagesViewHolder,
position: Int,
) {
holder.bind(getItem(position)!! to position)
val media = getItem(position) ?: return
holder.bind(media to position)
if (!media.getAttributedAuthor().isNullOrEmpty()) {
return
}
compositeDisposable.addAll(
mediaDataExtractor.fetchCreatorIdsAndLabels(media)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ idAndLabels ->
media.creatorName = MediaAttributionUtil.getCreatorName(idAndLabels);
holder.setAuthorText(media)
},
{ t: Throwable? -> Timber.e(t) })
)
}
}
@ -52,7 +79,10 @@ class SearchImagesViewHolder(
binding.categoryImageView.setOnClickListener { onImageClicked(item.second) }
binding.categoryImageTitle.text = media.mostRelevantCaption
binding.categoryImageView.setImageURI(media.thumbUrl)
binding.categoryImageAuthor.text =
containerView.context.getString(R.string.image_uploaded_by, media.getAuthorOrUser())
setAuthorText(media)
}
fun setAuthorText(media: Media) {
binding.categoryImageAuthor.text = MediaAttributionUtil.getTagLine(media, containerView.context)
}
}

View file

@ -1,6 +0,0 @@
package fr.free.nrw.commons.media
data class IdAndCaptions(
val id: String,
val captions: Map<String, String>,
)

View file

@ -0,0 +1,18 @@
package fr.free.nrw.commons.media
data class IdAndLabels(
val id: String,
val labels: Map<String, String>,
) {
// if a label is available in user's locale, return it
// if not then check for english, else show any available.
fun getLocalizedLabel(locale: String): String? {
if (labels[locale] != null) {
return labels[locale]
}
if (labels["en"] != null) {
return labels["en"]
}
return labels.values.firstOrNull() ?: id
}
}

View file

@ -16,7 +16,6 @@ import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewTreeObserver
import android.view.ViewTreeObserver.OnGlobalLayoutListener
import android.widget.ArrayAdapter
import android.widget.Button
@ -622,10 +621,9 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ idAndCaptions: List<IdAndCaptions> -> onDepictionsLoaded(idAndCaptions) },
{ idAndCaptions: List<IdAndLabels> -> onDepictionsLoaded(idAndCaptions) },
{ t: Throwable? -> Timber.e(t) })
)
// compositeDisposable.add(disposable);
}
private fun onDiscussionLoaded(discussion: String) {
@ -655,7 +653,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
}
}
private fun onDepictionsLoaded(idAndCaptions: List<IdAndCaptions>) {
private fun onDepictionsLoaded(idAndCaptions: List<IdAndLabels>) {
binding.depictsLayout.visibility = View.VISIBLE
binding.depictionsEditButton.visibility = View.VISIBLE
buildDepictionList(idAndCaptions)
@ -865,24 +863,24 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
* Populates media details fragment with depiction list
* @param idAndCaptions
*/
private fun buildDepictionList(idAndCaptions: List<IdAndCaptions>) {
private fun buildDepictionList(idAndCaptions: List<IdAndLabels>) {
binding.mediaDetailDepictionContainer.removeAllViews()
// Create a mutable list from the original list
val mutableIdAndCaptions = idAndCaptions.toMutableList()
if (mutableIdAndCaptions.isEmpty()) {
// Create a placeholder IdAndCaptions object and add it to the list
// Create a placeholder IdAndLabels object and add it to the list
mutableIdAndCaptions.add(
IdAndCaptions(
IdAndLabels(
id = media?.pageId ?: "", // Use an empty string if media?.pageId is null
captions = mapOf(Locale.getDefault().language to getString(R.string.detail_panel_cats_none)) // Create a Map with the language as the key and the message as the value
labels = mapOf(Locale.getDefault().language to getString(R.string.detail_panel_cats_none)) // Create a Map with the language as the key and the message as the value
)
)
}
val locale: String = Locale.getDefault().language
for (idAndCaption: IdAndCaptions in mutableIdAndCaptions) {
for (idAndCaption in mutableIdAndCaptions) {
binding.mediaDetailDepictionContainer.addView(
buildDepictLabel(
getDepictionCaption(idAndCaption, locale),
@ -894,16 +892,16 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
}
private fun getDepictionCaption(idAndCaption: IdAndCaptions, locale: String): String? {
private fun getDepictionCaption(idAndCaption: IdAndLabels, locale: String): String? {
// Check if the Depiction Caption is available in user's locale
// if not then check for english, else show any available.
if (idAndCaption.captions[locale] != null) {
return idAndCaption.captions[locale]
if (idAndCaption.labels[locale] != null) {
return idAndCaption.labels[locale]
}
if (idAndCaption.captions["en"] != null) {
return idAndCaption.captions["en"]
if (idAndCaption.labels["en"] != null) {
return idAndCaption.labels["en"]
}
return idAndCaption.captions.values.iterator().next()
return idAndCaption.labels.values.iterator().next()
}
private fun onMediaDetailLicenceClicked() {

View file

@ -1064,7 +1064,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
override fun updateListFragment(placeList: List<Place>) {
adapter!!.clear()
adapter!!.items = placeList
adapter!!.items = placeList.filter{ it.name.isNotEmpty() }
binding!!.bottomSheetNearby.noResultsMessage.visibility =
if (placeList.isEmpty()) View.VISIBLE else View.GONE
}

View file

@ -0,0 +1,39 @@
package fr.free.nrw.commons.utils
import android.content.Context
import android.icu.text.ListFormatter
import android.os.Build
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.R
import fr.free.nrw.commons.media.IdAndLabels
import java.util.Locale
object MediaAttributionUtil {
fun getTagLine(media: Media, context: Context): String {
val uploader = media.user
val author = media.getAttributedAuthor()
return if (author.isNullOrEmpty()) {
context.getString(R.string.image_uploaded_by, uploader)
} else if (author == uploader) {
context.getString(R.string.image_tag_line_created_and_uploaded_by, author)
} else {
context.getString(
R.string.image_tag_line_created_by_and_uploaded_by,
author,
uploader
)
}
}
fun getCreatorName(idAndLabels: List<IdAndLabels>): String? {
val locale = Locale.getDefault()
val names = idAndLabels.map{ x -> x.getLocalizedLabel(locale.language)}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val formatter = ListFormatter.getInstance(locale)
return formatter.format(names)
} else {
return names.joinToString(", ")
}
}
}

View file

@ -1,9 +1,8 @@
package fr.free.nrw.commons.utils
import android.os.Build
import android.text.Html
import android.text.Spanned
import android.text.SpannedString
import androidx.core.text.HtmlCompat
object StringUtil {
@ -26,12 +25,6 @@ object StringUtil {
.replace("&#8207;", "\u200F")
.replace("&amp;", "&")
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(processedSource, Html.FROM_HTML_MODE_LEGACY)
} else {
//noinspection deprecation
@Suppress("DEPRECATION")
Html.fromHtml(processedSource)
}
return HtmlCompat.fromHtml(processedSource, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
}

View file

@ -7,6 +7,7 @@ enum class WikidataProperties(
) {
IMAGE("P18"),
DEPICTS(BuildConfig.DEPICTS_PROPERTY),
CREATOR(BuildConfig.CREATOR_PROPERTY),
COMMONS_CATEGORY("P373"),
INSTANCE_OF("P31"),
MEDIA_LEGENDS("P2096"),

View file

@ -1,7 +1,6 @@
package fr.free.nrw.commons.wikidata.model.gallery
import com.google.gson.annotations.SerializedName
import org.apache.commons.lang3.StringUtils
class ExtMetadata {
@SerializedName("DateTime") private val dateTime: Values? = null

View file

@ -889,4 +889,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">مبروك، جميع الصور الموجودة في هذا الألبوم تم تحميلها أو تم وضع علامة عليها بأنها غير قابلة للتحميل.</string>
<string name="show_in_explore">عرض في استكشاف</string>
<string name="show_in_nearby">عرض في المناطق القريبة</string>
<string name="image_tag_line_created_and_uploaded_by">تم الإنشاء والتحميل بواسطة: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">تم إنشاؤه بواسطة %1$s وتم تحميله بواسطة %2$s</string>
</resources>

View file

@ -2,6 +2,7 @@
<!-- Authors:
* Aftabuzzaman
* Bellayet
* Bodhisattwa
* Borhan
* Elias Ahmmad
* Leemon2010
@ -418,7 +419,11 @@
<string name="category_edit_helper_edit_message_else">বিষয়শ্রেণী হালনাগাদ করা সম্ভব হয়নি।</string>
<string name="category_edit_button_text">বিষয়শ্রেণীগুলি হালনাগাদ করুন</string>
<string name="depictions_edit_helper_show_edit_title">চিত্রণ সম্পাদনা</string>
<string name="coordinates_edit_helper_show_edit_title">স্থানাঙ্ক হালনাগাদ</string>
<string name="description_edit_helper_show_edit_title">বিবরণ হালনাগাদ</string>
<string name="coordinates_edit_helper_show_edit_title_success">সফল</string>
<string name="coordinates_edit_helper_show_edit_message">স্থানাঙ্ক %1$s যোগ করা হয়েছে।</string>
<string name="description_edit_helper_show_edit_message">বর্ণনা যোগ করা হয়েছে।</string>
<string name="you_have_no_achievements_yet">আপনি এখনও কোনও অবদান রাখেন নি</string>
<string name="account_created">অ্যাকাউন্ট তৈরি করা হয়েছে!</string>
<string name="some_error">একটি ত্রুটি হয়েছে!</string>
@ -470,6 +475,9 @@
<string name="limited_connection_enabled">সীমিত সংযোগ মোড সক্রিয় করা হয়েছে!</string>
<string name="limited_connection_mode">সীমিত সংযোগ মোড</string>
<string name="statistics_quality">মানসম্মত ছবি</string>
<string name="resuming_upload">আপলোড আবার শুরু হচ্ছে...</string>
<string name="pausing_upload">আপলোড থামানো হচ্ছে...</string>
<string name="cancelling_upload">আপলোড বাতিল করা হচ্ছে…</string>
<string name="cancel_upload">আপলোড বাতিল করুন</string>
<string name="limited_connection_explanation">আপনি সীমিত সংযোগ মোড সক্রিয় করেছেন। সমস্ত আপলোডকে এখন বিরাম দেওয়া হয়েছে ও আপনি এই মোডটি নিষ্ক্রিয় করলে আপলোড পুনরায় শুরু করা হবে।</string>
<string name="license_step_title">মিডিয়ার লাইসেন্স</string>

View file

@ -83,8 +83,10 @@
<item quantity="many">%1$d nahrání</item>
<item quantity="other">%1$d nahrání</item>
</plurals>
<plurals name="receiving_shared_content" fuzzy="true">
<plurals name="receiving_shared_content">
<item quantity="one">Probíhá příjem sdíleného obsahu. Zpracování obrázku může chvíli trvat v závislosti na velikosti obrázku a vašem zařízení</item>
<item quantity="few">Probíhá příjem sdíleného obsahu. Zpracování obrázků může chvíli trvat v závislosti na velikosti obrázků a vašem zařízení</item>
<item quantity="many">Probíhá příjem sdíleného obsahu. Zpracování obrázků může chvíli trvat v závislosti na velikosti obrázků a vašem zařízení</item>
<item quantity="other">Probíhá příjem sdíleného obsahu. Zpracování obrázků může chvíli trvat v závislosti na velikosti obrázků a vašem zařízení</item>
</plurals>
<string name="navigation_item_explore">Objevit</string>
@ -107,10 +109,14 @@
<string name="updating_caption_title">Nahrávání titulků a popisů</string>
<string name="updating_caption_message">Čekejte prosím…</string>
<string name="login_success">Úspěšně přihlášeni!</string>
<string name="login_failed" fuzzy="true">Přihlášení se nezdařilo!</string>
<string name="login_failed">Přihlášení se nezdařilo!</string>
<string name="upload_failed">Soubor nebyl nalezen. Prosím, zkuste jiný soubor.</string>
<string name="authentication_failed" fuzzy="true">Ověření se nezdařilo, prosím přihlaste se znovu</string>
<string name="retry_limit_reached">Byl dosažen maximální limit opakování! Zrušte prosím nahrávání a zkuste to znovu</string>
<string name="unrestricted_battery_mode">Vypnout optimalizaci baterie?</string>
<string name="suggest_unrestricted_mode">Nahrávání více než 3 obrázků funguje spolehlivě při vypnuté optimalizaci baterie. Pro bezproblémové nahrávání prosím vypněte pro aplikaci Commons optimalizaci baterie.\n\nMožné kroky pro vypnutí optimalizace baterie:\n\nKrok 1: Klepněte na tlačítko „Nastavení“ níže.\n\nKrok 2: Přepněte kategorii z „Neomezeno“ na „Všechny aplikace“.\n\nKrok 3: Vyhledejte aplikaci „Commons“ nebo „fr.free.nrw.commons“.\n\nKrok 4: Klepněte na ni a vyberte „Neomezeno“.\n\nKrok 5: Klepněte na „Hotovo“.</string>
<string name="authentication_failed">Ověření se nezdařilo. Přihlaste se prosím znovu.</string>
<string name="uploading_started">Nahrávání začalo!</string>
<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>
@ -129,31 +135,41 @@
<string name="menu_from_camera">Vyfotit</string>
<string name="menu_nearby">Poblíž</string>
<string name="provider_contributions">Moje obrázky</string>
<string name="menu_copy_link">Kopírovat odkaz</string>
<string name="menu_link_copied">Odkaz byl zkopírován do schránky</string>
<string name="menu_share">Sdílet</string>
<string name="menu_view_file_page">Zobrazit stránku souboru</string>
<string name="share_title_hint">Název (povinný)</string>
<string name="add_caption_toast">Prosím, zadejte titulek pro tento soubor</string>
<string name="add_caption_toast">Zadejte prosím titulek pro tento soubor</string>
<string name="share_description_hint">Popis</string>
<string name="share_caption_hint" fuzzy="true">Popisek (max. 255 znaků)</string>
<string name="login_failed_network" fuzzy="true">Nelze se přihlásit - selhání sítě</string>
<string name="share_caption_hint">Titulek</string>
<string name="login_failed_network">Nelze se přihlásit selhání sítě</string>
<string name="login_failed_throttled">Příliš mnoho neúspěšných pokusů. Zkuste to prosím znovu za několik minut.</string>
<string name="login_failed_blocked">Omlouváme se, tento uživatel byl na Commons zablokován</string>
<string name="login_failed_2fa_needed">Prosím vložte kód pro své dvoufázové ověření.</string>
<string name="login_failed_generic" fuzzy="true">Přihlášení se nezdařilo</string>
<string name="login_failed_email_auth_needed">Ověřovací kód byl odeslán na vaši e-mailovou adresu. Pro přihlášení prosím zadejte kód.</string>
<string name="login_failed_generic">Přihlášení se nezdařilo</string>
<string name="share_upload_button">Nahrát</string>
<string name="multiple_share_base_title">Pojmenujte tuto sadu</string>
<string name="provider_modifications">Úpravy</string>
<string name="menu_upload_single">Načíst</string>
<string name="categories_search_text_hint">Hledání kategorií</string>
<string name="depicts_search_text_hint">Hledat položky, které váš multimediální soubor zobrazuje (hora, Tádž Mahal atd.)</string>
<string name="menu_save_categories">Uložit</string>
<string name="menu_overflow_desc">Rozbalovací nabídka</string>
<string name="refresh_button">Obnovit</string>
<string name="display_list_button">Seznam</string>
<string name="contributions_subtitle_zero">(Žádné nahrané soubory)</string>
<string name="categories_not_found">Žádné kategorie neodpovídají „%1$s“</string>
<string name="depictions_not_found">Nenalezeny žádné položky Wikidata odpovídající %1$s</string>
<string name="no_child_classes">%1$s nemá žádné podřazené třídy</string>
<string name="no_parent_classes">%1$s nemá žádné nadřazené třídy</string>
<string name="categories_skip_explanation">Přidejte kategorie, aby bylo vaše obrázky možno na Wikimedia Commons najít.</string>
<string name="categories_activity_title">Kategorie</string>
<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="title_activity_custom_selector">Vlastní výběr</string>
<string name="title_activity_category_details">Kategorie</string>
<string name="title_activity_review">Kontrola</string>
<string name="menu_about">O aplikaci</string>
@ -216,13 +232,17 @@
<string name="read_storage_permission_rationale">Požadované oprávnění: Čtení externího úložiště. Bez něj nemůže aplikace číst vaši galerii.</string>
<string name="write_storage_permission_rationale">Požadované oprávnění: Zapisování do externího úložiště. Bez něj nemůže aplikace používat vaši kameru/galerii.</string>
<string name="location_permission_title">Požadavek na přístup k poloze</string>
<string name="in_app_camera_location_permission_title">Poloha záznamu pro snímky v aplikaci</string>
<string name="in_app_camera_location_switch_pref_summary">Povolte pro zaznamenání polohy u snímků v aplikaci v případě, že ji fotoaparát zařízení nezaznamená</string>
<string name="ok">OK</string>
<string name="warning">Upozornění</string>
<string name="duplicate_file_name">Nalezen duplicitní název souboru</string>
<string name="upload">Nahrát</string>
<string name="yes">Ano</string>
<string name="no">Ne</string>
<string name="media_detail_caption">Titulek</string>
<string name="media_detail_title">Název</string>
<string name="media_detail_depiction">Znázornění</string>
<string name="media_detail_description">Popis</string>
<string name="media_detail_discussion">Diskuse</string>
<string name="media_detail_author">Autor</string>
@ -233,6 +253,7 @@
<string name="become_a_tester_title">Staňte se beta testery</string>
<string name="become_a_tester_description">Přihlásit se do našeho beta kanálu na Google Play a dostávat včasný přístup k novinkám a opravám chyb</string>
<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>
@ -253,6 +274,7 @@
<string name="navigation_item_about">O aplikaci</string>
<string name="navigation_item_settings">Nastavení</string>
<string name="navigation_item_feedback">Zpětná vazba</string>
<string name="navigation_item_feedback_github">Zpětná vazba přes GitHub</string>
<string name="navigation_item_logout">Odhlášení</string>
<string name="navigation_item_info">Průvodce</string>
<string name="navigation_item_notification">Upozornění</string>
@ -262,6 +284,7 @@
<string name="nearby_info_menu_wikidata_article">Položka Wikidat</string>
<string name="nearby_info_menu_wikipedia_article">Článek na Wikipedii</string>
<string name="description_info">Popište prosím obrázek, jak jen to je možné: Kde byl pořízen? Co znázorňuje? Jaký je kontext obrázku? Popisujte prosím významné předměty nebo osoby na obrázku a nezapomeňte na informace, které není možné snadno odhadnout ze samotného obrázku, jako je například denní doba, pokud jde o krajinu. Pokud je na obrázku něco neobvyklého, popište, co to dělá neobvyklým.</string>
<string name="caption_info">Napište prosím stručný popis obrázku. První titulek bude použit jako název obrázku. Maximálně 255 znaků.</string>
<string name="upload_problem_exist">Potenciální problémy s tímto obrázkem:</string>
<string name="upload_problem_image_dark">Obrázek je příliš tmavý.</string>
<string name="upload_problem_image_blurry">Obrázek je rozmazaný.</string>
@ -269,9 +292,12 @@
<string name="upload_problem_different_geolocation">Tento obrázek byl pořízen na jiném místě.</string>
<string name="upload_problem_fbmd">Prosíme, nahrávejte pouze obrázky, které jste sami pořídili. Nenahrávejte obrázky, které jste našli na něčím Facebookovém profilu.</string>
<string name="upload_problem_do_you_continue">Pořád chcete tento obrázek nahrát?</string>
<string name="upload_connection_error_alert_title">Chyba připojení</string>
<string name="upload_connection_error_alert_detail">Proces nahrávání vyžaduje aktivní přístup k internetu. Zkontrolujte prosím své internetové připojení.</string>
<string name="upload_problem_image">V obrázku byly nalezeny problémy</string>
<string name="internet_downloaded">Prosíme, nahrávejte pouze obrázky, které jste sami vytvořili. Nenahrávejte obrázky, které jste našli na internetu.</string>
<string name="use_external_storage" fuzzy="true">Použít externí úložiště</string>
<string name="use_external_storage_summary" fuzzy="true">Uložit obrázky pořízené fotoaparátem, jenž je součástí této aplikace</string>
<string name="use_external_storage">Uložit snímky z aplikace</string>
<string name="use_external_storage_summary">Uložit obrázky pořízené fotoaparátem v aplikaci do úložiště vašeho zařízení</string>
<string name="login_to_your_account">Přihlásit se k účtu</string>
<string name="send_log_file">Odeslat log</string>
<string name="send_log_file_description">Odeslat log vývojářům e-mailem za účelem odstranění problémů s aplikací. Poznámka: Logy mohou obsahovat identifikační údaje.</string>
@ -282,19 +308,23 @@
<string name="nominated_see_more">Zobrazit webovou stránku pro více informací</string>
<string name="skip_login">Přeskočit</string>
<string name="navigation_item_login">Přihlásit se</string>
<string name="skip_login_title" fuzzy="true">Opravdu chcete přeskočit přihlášení?</string>
<string name="skip_login_message" fuzzy="true">Budete-li chtít nahrát obrázky v budoucnu, musíte se přihlásit.</string>
<string name="skip_login_title">Opravdu chcete přeskočit přihlášení?</string>
<string name="skip_login_message">Budete-li chtít nahrát obrázky v budoucnu, musíte se přihlásit.</string>
<string name="login_alert_message">K použití této funkce se musíte přihlásit</string>
<string name="copy_wikicode">Zkopírovat wikitext do schránky</string>
<string name="wikicode_copied">Wikitext byl zkopírován do schránky</string>
<string name="nearby_location_not_available">Funkce Poblíž nemusí pracovat správně, poloha není dostupná.</string>
<string name="nearby_showing_pins_offline">Internet není dostupný. Zobrazuji místa z mezipaměti.</string>
<string name="upload_location_access_denied">Přístup k poloze zamítnut. Pro používání této funkce prosím nastavte svoji polohu ručně.</string>
<string name="location_permission_rationale_nearby">Vyžadováno povolení k zobrazení seznamu míst v okolí</string>
<string name="location_permission_rationale_explore">K zobrazení seznamu obrázků v okolí je vyžadováno oprávnění</string>
<string name="nearby_directions">Trasa</string>
<string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Wikipedie</string>
<string name="nearby_commons">Commons</string>
<string name="about_rate_us">Ohodnoťte nás</string>
<string name="about_faq">Často kladené otázky</string>
<string name="user_guide">Uživatelská příručka</string>
<string name="welcome_skip_button">Přeskočit úvod</string>
<string name="no_internet">Internet je nedostupný</string>
<string name="error_notifications">Při načítání upozornění došlo k chybě</string>
@ -321,12 +351,15 @@
<string name="title_activity_search">Hledat</string>
<string name="search_recent_header">Nedávná hledání:</string>
<string name="provider_searches">Nedávno hledané dotazy</string>
<string name="provider_recent_languages">Pořadí nejnovějších jazyků</string>
<string name="error_loading_categories">Chyba při načítání kategorií.</string>
<string name="error_loading_depictions">Během načítání znázornění došlo k chybě.</string>
<string name="search_tab_title_media">Mediální soubory</string>
<string name="search_tab_title_categories">Kategorie</string>
<string name="search_tab_title_depictions">Položky</string>
<string name="explore_tab_title_featured">Nejlepší</string>
<string name="explore_tab_title_mobile">Nahrané z mobilu</string>
<string name="explore_tab_title_map">Mapa</string>
<string name="successful_wikidata_edit">Obrázek byl přidán do položky %1$s na Wikidatech!</string>
<string name="wikidata_edit_failure">Nepodařilo se aktualizovat příslušnou položku na Wikidatech!</string>
<string name="menu_set_wallpaper">Nastavit jako pozadí</string>
@ -344,27 +377,34 @@
<string name="construction_event_answer">Obrázky s technickou či kulturní tematikou jsou na Commons vítány.</string>
<string name="congratulatory_message_quiz">Zodpověděli jste správně %1$s otázek. Gratulujeme!</string>
<string name="warning_for_no_answer">Vyberte správnou možnost</string>
<string name="user_not_logged_in" fuzzy="true">Došlo k odhlášení, prosím přihlašte se.</string>
<string name="user_not_logged_in">Přihlášení vypršelo. Přihlaste se prosím znovu.</string>
<string name="quiz_result_share_message">Sdílejte váš kvíz s přáteli!</string>
<string name="continue_message">Pokračovat</string>
<string name="correct">Správná odpověď</string>
<string name="wrong">Nesprávná odpověď</string>
<string name="quiz_screenshot_question">Je v pořádku nahrát tento snímek obrazovky?</string>
<string name="share_app_title">Sdílet aplikaci</string>
<string name="error_fetching_nearby_places" fuzzy="true">Nastala chyba při hledání míst v okolí.</string>
<string name="rotate">Otočit</string>
<string name="error_fetching_nearby_places">Nepodařilo se načíst místa v okolí</string>
<string name="no_pictures_in_this_area">Žádné obrázky v této oblasti</string>
<string name="no_nearby_places_around">Nenalezena žádná místa v okolí</string>
<string name="error_fetching_nearby_monuments">Chyba při načítání míst v okolí.</string>
<string name="no_recent_searches">Zatím žádné vyhledávání</string>
<string name="delete_recent_searches_dialog">Opravdu chcete vyčistit historii vašeho hledání?</string>
<string name="cancel_upload_dialog">Opravdu chcete zrušit toto nahrávání?</string>
<string name="delete_search_dialog">Chcete odstranit toto hledání?</string>
<string name="search_history_deleted">Historie hledání byla odstraněna</string>
<string name="nominate_delete">Navrhnout na smazání</string>
<string name="delete">Smazat</string>
<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" fuzzy="true">Úroveň</string>
<string name="level">Úroveň %d</string>
<string name="profileLevel">%s (úroveň %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>
@ -376,15 +416,15 @@
<string name="images_used_explanation">Počet obrázků, které jste nahrál/a na Commons a jsou použity v projektech Wikimedia</string>
<string name="error_occurred">Chyba!</string>
<string name="notifications_channel_name_all">Upozornění z Commons</string>
<string name="preference_author_name_toggle">Použít vlastní název autora</string>
<string name="preference_author_name_toggle">Použít vlastní jméno autora</string>
<string name="preference_author_name_toggle_summary">Při nahrávání fotografií používejte vlastní jméno autora namísto uživatelského jména</string>
<string name="preference_author_name">Vlastní název autora</string>
<string name="preference_author_name">Vlastní jméno autora</string>
<string name="contributions_fragment">Příspěvky</string>
<string name="nearby_fragment">Poblíž</string>
<string name="notifications">Upozornění</string>
<string name="read_notifications">Upozornění (přečtená)</string>
<string name="display_nearby_notification">Zobrazit upozornění v okolí</string>
<string name="display_nearby_notification_summary" fuzzy="true">Klepnutím sem zobrazíte nejbližší místo, které potřebuje obrázky</string>
<string name="display_nearby_notification_summary">Zobrazit oznámení v aplikaci pro nejbližší místo, které potřebuje obrázky</string>
<string name="list_sheet">Seznam</string>
<string name="storage_permission">Povolení k ukládání</string>
<string name="write_storage_permission_rationale_for_image_share">Potřebujeme povolení k přístupu k externí paměti vašeho zařízení, abychom mohli nahrávat obrázky.</string>
@ -392,10 +432,11 @@
<string name="step_count">Krok %1$d z %2$d: %3$s</string>
<string name="next">Další</string>
<string name="previous">Předchozí</string>
<string name="upload_title_duplicate" fuzzy="true">Soubor s názvem %1$s již existuje. Opravdu chcete pokračovat?</string>
<string name="upload_title_duplicate">Soubor s názvem %1$s již existuje. Opravdu chcete pokračovat?\n\nPoznámka: k názvu souboru bude automaticky připojena správná přípona.</string>
<string name="map_application_missing">Na vašem zařízení nebyla nalezena žádná kompatibilní aplikace poskytující mapy. Pro použití této funkce nainstalujte aplikaci poskytující mapy.</string>
<string name="title_page_bookmarks_pictures">Obrázky</string>
<string name="title_page_bookmarks_locations">Místa</string>
<string name="title_page_bookmarks_categories">Kategorie</string>
<string name="menu_bookmark">Přidat/Odstranit ze záložek</string>
<string name="provider_bookmarks">Záložky</string>
<string name="bookmark_empty">Nemáte zatím žádné záložky</string>
@ -410,20 +451,36 @@
<string name="no_uploads">Vítejte na Commons!\n\nNahrajte svá první média klepnutím na tlačítko přidat.</string>
<string name="no_categories_selected">Nebyly vybrány žádné kategorie</string>
<string name="no_categories_selected_warning_desc">Obrázky bez kategorií jsou používány jen zřídka. Opravdu chcete nahrát obrázek bez výběru kategorií?</string>
<string name="upload_flow_all_images_in_set" fuzzy="true">(Pro všechny snímky v sadě)</string>
<string name="no_depictions_selected">Nebyla vybrána žádná znázornění</string>
<string name="no_depictions_selected_warning_desc">Obrázky se znázorněními lze lépe nalézt a je větší šance, že budou použity. Opravdu chcete pokračovat bez vybrání znázornění?</string>
<string name="back_button_warning">Zrušit nahrávání</string>
<string name="back_button_warning_desc">Použitím tlačítka zpět zrušíte toto nahrávání a ztratíte svůj postup.</string>
<string name="back_button_continue">Pokračovat v nahrávání</string>
<string name="upload_flow_all_images_in_set">(Pro všechny snímky v sadě)</string>
<string name="search_this_area">Prohledat tuto oblast</string>
<string name="nearby_card_permission_title">Je požadováno oprávnění</string>
<string name="nearby_card_permission_explanation">Chtěli byste, abychom pomocí aktuální polohy zobrazili nejbližší místo, které potřebuje obrázky?</string>
<string name="unable_to_display_nearest_place">Nelze zobrazit nejbližší místo, které potřebuje snímky bez oprávnění k umístění</string>
<string name="never_ask_again">Znovu nezobrazovat</string>
<string name="display_location_permission_title" fuzzy="true">Zobrazit oprávnění k umístění</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_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>
<string name="display_campaigns_explanation">Podívejte se na probíhající kampaně</string>
<string name="in_app_camera_location_access_explanation">Povolte aplikaci zjišťovat polohu v případě, že ji fotoaparát nezaznamenává. Některé fotoaparáty zařízení nezaznamenávají polohu. V takových případech je užitečnější nechat aplikaci samotnou polohu zjistit a připojit. Tuto možnost lze kdykoli změnit v Nastavení</string>
<string name="option_allow">Povolit</string>
<string name="option_dismiss">Zavřít</string>
<string name="in_app_camera_needs_location">Zapněte prosím v nastavení přístup k poloze a zkuste to znovu.\n\nPoznámka: nahrání nemusí mít polohu, pokud ji aplikace nemohla během krátké doby získat ze zařízení.</string>
<string name="in_app_camera_location_permission_rationale">Fotoaparát v aplikaci potřebuje přístup k poloze, aby ji přiložil k vašem obrázkům, pokud nejsou dostupné v metadatech EXIF. Povolte prosím aplikaci přístup k vaší poloze a zkuste to znovu.\n\nPoznámka: nahrání nemusí mít polohu, pokud ji aplikace nemohla během krátké doby získat ze zařízení.</string>
<string name="in_app_camera_location_permission_denied">Aplikace nezaznamenala polohu spolu s fotkami z důvodu chybějícího oprávnění k poloze</string>
<string name="in_app_camera_location_unavailable">Aplikace nezaznamenala polohu spolu s fotkami z důvodu vypnutého zjišťování polohy</string>
<string name="open_document_photo_picker_title">Použít výběr fotky založený na dokumentech</string>
<string name="open_document_photo_picker_explanation">Nový nástroj pro výběr fotek systému Android může ztrácet informace o poloze. Povolte, pokud jej používáte.</string>
<string name="location_loss_warning">Vypnutí může vést spuštění nového nástroje pro výběr fotek systému Android. Riskujete tím ztrátu informací o poloze.\n\nKlepněte na „Zjistit více“ pro více informací.</string>
<string name="nearby_campaign_dismiss_message">Kampaně již neuvidíte. Toto oznámení však můžete znovu zapnout v Nastavení.</string>
<string name="this_function_needs_network_connection" fuzzy="true">Tato funkce vyžaduje připojení k síti, zkontrolujte prosím nastavení připojení.</string>
<string name="this_function_needs_network_connection">Tato funkce vyžaduje připojení k síti. Zkontrolujte prosím nastavení připojení.</string>
<string name="error_processing_image">Během zpracování obrázku došlo k chybě. Prosím zkuste to znovu!</string>
<string name="getting_edit_token">Probíhá získávání tokenu pro editaci</string>
<string name="check_category_adding_template">Probíhá přidávání šablony na zkontrolování kategorie</string>
@ -454,13 +511,14 @@
<string name="review_thanks_yes_button_text">Další obrázek</string>
<string name="review_thanks_no_button_text">Ano, proč ne</string>
<string name="skip_image_explanation">Kliknutím na toto tlačítko se zobrazí další nedávno nahraný obrázek z Wikimedia Commons</string>
<string name="review_image_explanation" fuzzy="true">Můžete kontrolovat obrázky a zlepšit kvalitu Wikimedia Commons.\n\nTři aspekty, které se posuzují:\n  - Je tento obrázek v pořádku?\n  - Dodržuje tento obrázok pravidla autorských práv?\n  - Je tento obrázek správně kategorizován?\n\nPokud je vše v pořádku, autorovi můžete poděkovat.</string>
<string name="review_image_explanation">Můžete kontrolovat obrázky a zlepšit kvalitu Wikimedia Commons.\nTři aspekty, které se posuzují:\n\n- Dodržuje tento obrázek téma?\nPokud klepnete na Ne (mimo téma), přidáte k tomuto obrázku šablonu nominace na smazání.\n\n- Dodržuje tento obrázek pravidla autorských práv?\nPokud klepnete na Ne (nedodržuje pravidla autorských práv), přidáte k tomuto obrázku šablonu nominace na smazání.\n\n- Je tento obrázek správně kategorizován?\nPokud klepnete na Ne (není správně kategorizován), přidáte k tomuto obrázku šablonu nominace na kategorizaci.\n\nPokud je vše v pořádku, nebude k obrázku přidána žádná šablona a autorovi budete moci poděkovat.</string>
<string name="no_image">Nejsou použity žádné obrázky</string>
<string name="no_image_reverted">Žádné revertované obrázky</string>
<string name="no_image_uploaded">Žádné nahrané obrázky</string>
<string name="no_notification">Nemáte žádná nepřečtená upozornění</string>
<string name="no_read_notification">Nemáte žádná přečtená upozornění</string>
<string name="share_logs_using">Sdílet logy pomocí</string>
<string name="check_your_email_inbox">Zkontrolujte svou e-mailovou schránku</string>
<string name="menu_option_read">Zobrazit přečtené</string>
<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>
@ -483,10 +541,13 @@
<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>
<string name="no_categories_found">Nebyly nalezeny žádné kategorie</string>
<string name="no_depiction_found">Nenalezena žádná znázornění</string>
<string name="upload_cancelled">Nahrání zrušeno</string>
<string name="previous_image_title_description_not_found">Neexistují žádné údaje k titulku a popisu předcházejícího obrázku</string>
<string name="dialog_box_text_nomination">Proč by měl být soubor %1$s smazán?</string>
@ -497,15 +558,50 @@
<string name="delete_helper_show_deletion_message_if">Soubor %1$s byl nominován na smazání.</string>
<string name="delete_helper_show_deletion_title_failed">Chyba</string>
<string name="delete_helper_show_deletion_message_else">Nepodařilo se požádat o smazání.</string>
<string name="delete_helper_ask_spam_selfie" fuzzy="true">Selfie</string>
<string name="delete_helper_ask_spam_blurry" fuzzy="true">Rozmazané</string>
<string name="delete_helper_ask_spam_nonsense" fuzzy="true">Nesmysl</string>
<string name="delete_helper_ask_spam_selfie">selfie, které není použito v žádném článku</string>
<string name="delete_helper_ask_spam_blurry">úplně rozmazané</string>
<string name="delete_helper_ask_spam_nonsense">nesmysl, naprosto nepoužitelné v jakémkoli článku</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Tisková fotka</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Náhodná fotka z internetu</string>
<string name="delete_helper_ask_reason_copyright_logo">Logo</string>
<string name="delete_helper_ask_reason_copyright_no_freedom_of_panorama">Porušení svobody panoramatu</string>
<string name="delete_helper_ask_alert_set_positive_button_reason">Pretože to je</string>
<string name="category_edit_helper_make_edit_toast">Pokouším se aktualizovat kategorie.</string>
<string name="category_edit_helper_show_edit_title">Aktualizace kategorií</string>
<string name="category_edit_helper_show_edit_title_success">Úspěch</string>
<plurals name="category_edit_helper_show_edit_message_if">
<item quantity="one">Byla přidána kategorie %1$s.</item>
<item quantity="few">Byly přidány kategorie %1$s.</item>
<item quantity="many">Byly přidány kategorie %1$s.</item>
<item quantity="other">Byly přidány kategorie %1$s.</item>
</plurals>
<string name="category_edit_helper_edit_message_else">Nepodařilo se přidat kategorie.</string>
<string name="category_edit_button_text">Aktualizovat kategorie</string>
<string name="depictions_edit_helper_make_edit_toast">Pokouším se aktualizovat znázornění.</string>
<string name="depictions_edit_helper_show_edit_title">Upravit znázornění</string>
<plurals name="depictions_edit_helper_show_edit_message_if">
<item quantity="one">Bylo přidáno znázornění %1$s.</item>
<item quantity="few">Byla přidána znázornění %1$s.</item>
<item quantity="many">Byla přidána znázornění %1$s.</item>
<item quantity="other">Byla přidána znázornění %1$s.</item>
</plurals>
<string name="depictions_edit_helper_edit_message_else">Nepodařilo se přidat znázornění.</string>
<string name="coordinates_edit_helper_make_edit_toast">Pokouším se aktualizovat souřadnice.</string>
<string name="coordinates_edit_helper_show_edit_title">Aktualizace souřadnicí</string>
<string name="description_edit_helper_show_edit_title">Aktualizace popisu</string>
<string name="caption_edit_helper_show_edit_title">Aktualizace titulku</string>
<string name="coordinates_edit_helper_show_edit_title_success">Úspěch</string>
<string name="coordinates_edit_helper_show_edit_message">Souřadnice %1$s byly přidány.</string>
<string name="description_edit_helper_show_edit_message">Popisy byly přidány.</string>
<string name="caption_edit_helper_show_edit_message">Titulek byl přidán.</string>
<string name="coordinates_edit_helper_edit_message_else">Nepodařilo se přidat souřadnice.</string>
<string name="description_edit_helper_edit_message_else">Nepodařilo se přidat popisy.</string>
<string name="caption_edit_helper_edit_message_else">Nepodařilo se přidat titulek.</string>
<string name="coordinates_picking_unsuccessful">Souřadnice obrázku nebyly aktualizovány</string>
<string name="descriptions_picking_unsuccessful">Nepodařilo se získat popisy.</string>
<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="account_created">Účet byl založen!</string>
<string name="text_copy">Text byl zkopírován do schránky.</string>
@ -516,9 +612,13 @@
<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="you_must_reset_your_passsword" fuzzy="true">Při přihlášení nastala chyba, musíte si resetovat vaše heslo!</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>
<string name="title_for_parent_classes">NADŘAZENÉ TŘÍDY</string>
<string name="upload_nearby_place_found_title">Místo v okolí nalezeno</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Je toto fotka místa %1$s?</string>
<string name="upload_nearby_place_found_description_plural">Je na těchto obrázcích %1$s?</string>
<string name="upload_nearby_place_found_description_singular">Je toto obrázek místa %1$s?</string>
<string name="title_app_shortcut_bookmark">Záložky</string>
<string name="title_app_shortcut_setting">Nastavení</string>
<string name="remove_bookmark">Odebráno ze záložek</string>
@ -526,15 +626,21 @@
<string name="wallpaper_set_unsuccessfully">Něco se pokazilo. Tapetu se nepodařilo nastavit</string>
<string name="setting_wallpaper_dialog_title">Nastavit jako tapetu</string>
<string name="setting_wallpaper_dialog_message">Nastavování tapety. Prosím, čekejte…</string>
<string name="theme_default_name">Podle systému</string>
<string name="theme_dark_name">Tmavý</string>
<string name="theme_light_name">Světlý</string>
<string name="cannot_open_location_settings">Nepodařilo se otevřít nastavení polohy. Zapněte prosím polohu ručně</string>
<string name="recommend_high_accuracy_mode">Pro nejpřesnější výsledky zvolte režim vysoké přesnosti.</string>
<string name="ask_to_turn_location_on">Zapnout lokaci?</string>
<string name="ask_to_turn_location_on_text">Zapněte prosím funkci polohy, aby mohla aplikace zobrazovat vaší aktuální polohu</string>
<string name="nearby_needs_location">Funkce Poblíž potřebuje pro správné fungování povolenou polohu</string>
<string name="explore_map_needs_location">Používání mapy vyžaduje oprávnění k poloze pro zobrazení obrázků v okolí</string>
<string name="upload_map_location_access">Pro automatické nastavení polohy musíte udělit přístup k poloze.</string>
<string name="use_location_from_similar_image">Pořídili jste tyto dva obrázky na stejném místě? Chcete použít zeměpisnou šířku/délku obrázku vpravo?</string>
<string name="load_more">Načíst další</string>
<string name="nearby_no_results">Nebyla nalezená žádná místa, zkuste změnit kritéria vyhledávání.</string>
<string name="todo_improve">Navrhovaná vylepšení:</string>
<string name="missing_category">- Přidejte kategorie k tomuto obrázku pro zlepšení použitelnosti.</string>
<string name="missing_article">Přidejte tento obrázek do přidruženého článku na Wikipedii, který neobsahuje žádné obrázky.</string>
<string name="add_picture_to_wikipedia_article_title">Přidat obrázek na Wikipedii</string>
<string name="add_picture_to_wikipedia_article_desc">Chcete přidat tento obrázek do článku na %1$s Wikipedii?</string>
@ -545,11 +651,14 @@
<string name="wikipedia_instructions_step_3">3. Najděte v článku odpovídající sekci pro Váš obrázek</string>
<string name="wikipedia_instructions_step_4">4. Klikněte na ikonu Editovat (ikona tužky) pro danou sekci.</string>
<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="pause">pozastavit</string>
<string name="resume">pokračovat</string>
<string name="paused">Pozastaveno</string>
<string name="more">Další</string>
<string name="bookmarks">Záložky</string>
<string name="achievements_tab_title">Dosažené úspěchy</string>
<string name="leaderboard_tab_title">Žebříček</string>
<string name="rank_prefix">Pořadí</string>
@ -564,6 +673,190 @@
<string name="menu_set_avatar">Nastavit jako avatar</string>
<string name="leaderboard_yearly">Ročně</string>
<string name="leaderboard_weekly">Týdně</string>
<string name="leaderboard_all_time">Celou dobu</string>
<string name="leaderboard_upload">Nahrát</string>
<string name="leaderboard_nearby">Poblíž</string>
<string name="leaderboard_used">Použito</string>
<string name="leaderboard_my_rank_button_text">Moje pořadí</string>
<string name="limited_connection_enabled">Režim omezeného připojení zapnut!</string>
<string name="limited_connection_disabled">Režim omezeného připojení vypnut. Čekající nahrávání budou nyní pokračovat.</string>
<string name="limited_connection_mode">Režim omezeného připojení</string>
<string name="statistics_quality">Kvalitní obrázky</string>
<string name="quality_images_info">Kvalitní obrázky jsou diagramy nebo fotografie, které splňují určité standardy kvality (obvykle technického charakteru) a jsou hodnotné pro projekty Wikimedia</string>
<string name="resuming_upload">Pokračování v nahrávání…</string>
<string name="pausing_upload">Pozastavování nahrávání…</string>
<string name="cancelling_upload">Přerušování nahrávání…</string>
<string name="cancel_upload">Zrušit nahrávání</string>
<string name="limited_connection_explanation">Zapnuli jste režim omezeného připojení. Všechna nahrávání jsou pozastavena a budou pokračovat po vypnutí tohoto režimu.</string>
<string name="limited_connection_is_on">Režim omezeného připojení je zapnutý.</string>
<string name="media_details_tooltip">Napište prosím krátký titulek, který shrnuje obsah obrázku. Do popisu napište, čím je obrázek zajímavý, typický nebo zvláštní a popište kontext, ať už je viditelný, či nikoli. Pokuste se co nejvíce používat přesnou terminologii.</string>
<string name="depicts_tooltip">Najděte a vyberte všechny koncepty, které tento obrázek zobrazuje. Buďte co nejvíce konkrétní. Pokud obrázek zobrazuje více položek, vyberte všechny v rozumné míře. Nevybírejte obecné štítky, pokud jsou dostupné konkrétnější.</string>
<string name="categories_tooltip">Vyberte prosím všechny příslušné kategorie. Na rozdíl od znázornění jsou kategorie pouze v angličtině.</string>
<string name="license_tooltip">Díky Commons může váš obrázek kdykoli kdokoli znovu použít a přizpůsobit. Chcete se vzdát všech práv? Chcete, aby vám bylo vždy připsáno autorství? Chcete, aby úpravy používaly stejnou licenci?</string>
<string name="depicts_step_title">Znázornění</string>
<string name="license_step_title">Licence média</string>
<string name="media_detail_step_title">Podrobnosti o médiu</string>
<string name="menu_view_category_page">Zobrazit stránku kategorie</string>
<string name="menu_view_item_page">Zobrazit stránku položky</string>
<string name="app_ui_language">Jazyk rozhraní aplikace</string>
<string name="remove">Odstraní titulek a popisek</string>
<string name="read_help_link">Číst dál</string>
<string name="media_detail_in_all_languages">Ve všech jazycích</string>
<string name="choose_a_location">Vybrat polohu</string>
<string name="pan_and_zoom_to_adjust">Posuňte a přibližte pro úpravu</string>
<string name="select_location_location_picker">Vybrat umístění</string>
<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="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>
<string name="description">Popis</string>
<string name="title_page_bookmarks_items">Položky</string>
<string name="custom_selector_title">Vlastní výběr</string>
<string name="custom_selector_empty_text">Žádné obrázky</string>
<string name="done">Hotovo</string>
<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="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>
<string name="custom_selector_dismiss_limit_warning_button_text">Zavřít</string>
<string name="custom_selector_button_limit_text">Maximum: %1$d</string>
<string name="custom_selector_limit_error_desc">Chyba: překročen limit nahrání</string>
<string name="wlm_upload_info">Tento obrázek bude zařazen do soutěže Wiki miluje památky</string>
<string name="display_monuments">Zobrazit památky</string>
<string name="wlm_month_message">Je měsíc soutěže Wiki miluje památky!</string>
<string name="learn_more">ZJISTIT VÍCE</string>
<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="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>
<string name="advanced_options">Pokročilé možnosti</string>
<string name="advanced_query_info_text">Dotaz na objekty v okolí si můžete přizpůsobit. Pokud se objeví chyby, možnost resetujte.</string>
<string name="apply">Použít</string>
<string name="reset">Resetovat</string>
<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="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>
<string name="leaderboard_unavailable_beta">Žebříček je dostupný pouze v produkční verzi. Více informací viz dokumentace pro vývojáře.</string>
<string name="copyright_popup">Nahrávejte pouze obrázky, které jste sami pořídili. Uživatelé, kteří nahrají obrázky chráněné autorským právem, budou zablokováni. To platí i pro beta verzi. Děkujeme za testování aplikace!</string>
<string name="select_feedback_data_choice">Zrušte zaškrtnutí všech informací, které nechcete sdílet veřejně.</string>
<string name="api_level">Úroveň API</string>
<string name="android_version">Verze systému Android</string>
<string name="device_manufacturer">Výrobce zařízení</string>
<string name="device_model">Model zařízení</string>
<string name="device_name">Název zařízení</string>
<string name="network_type">Typ sítě</string>
<string name="thanks_feedback">Děkujeme za odeslání zpětné vazby</string>
<string name="error_feedback">Chyba při odesílání zpětné vazby</string>
<string name="enter_description">Jaká je vaše zpětná vazba?</string>
<string name="your_feedback">Vaše zpětná vazba</string>
<string name="mark_as_not_for_upload">Označit jako neurčené k nahrání</string>
<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="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>
<string name="image_selected">Obrázek vybrán</string>
<string name="image_marked_as_not_for_upload">Obrázek označen jako neurčen k nahrání</string>
<string name="menu_view_report">Nahlásit</string>
<string name="menu_view_set_white_background">Nastavit bílé pozadí</string>
<string name="menu_view_set_black_background">Nastavit černé pozadí</string>
<string name="report_violation">Nahlásit porušení podmínek</string>
<string name="report_user">Nahlásit tohoto uživatele</string>
<string name="report_content">Nahlásit tento obsah</string>
<string name="request_user_block">Požádat o zablokování tohoto uživatele</string>
<string name="welcome_to_full_screen_mode_text">Vítejte v celoobrazovkovém režimu výběru</string>
<string name="full_screen_mode_zoom_info">Použijte dva prsty pro přiblížení a oddálení.</string>
<string name="full_screen_mode_features_info">Rychlým a dlouhým přejetím prstem provedete tyto akce: \n- Doleva/doprava: Přejít na předchozí/další \n- Nahoru: Vybrat\n- Dolů: Označit jako neurčené k nahrání.</string>
<string name="set_up_avatar_toast_string">Pro nastavení vašeho avatara v žebříčku klepněte na tlačítko „Nastavit jako avatar“ v rozbalovací nabídce u jakéhokoli obrázku.</string>
<string name="similar_coordinate_description_auto_set">Souřadnice nejsou přesné souřadnice, ale osoba, která nahrála tento obrázek, si myslí, že jsou dostatečně blízko.</string>
<string name="storage_permissions_denied">Přístup k úložišti zamítnut</string>
<string name="unable_to_share_upload_item">Tuto položku nelze sdílet</string>
<string name="permissions_are_required_for_functionality">Pro funkčnost jsou vyžadována oprávnění</string>
<string name="learn_how_to_write_a_useful_description">Naučte se, jak psát užitečný popis</string>
<string name="learn_how_to_write_a_useful_caption">Naučte se, jak psát užitečný popis</string>
<string name="see_your_achievements">Podívejte se na své úspěchy</string>
<string name="edit_image">Upravit obrázek</string>
<string name="edit_location">Upravit polohu</string>
<string name="location_updated">Poloha aktualizována!</string>
<string name="remove_location">Odstranit polohu</string>
<string name="remove_location_warning_title">Odstranit varování o poloze</string>
<string name="remove_location_warning_desc">Díky poloze jsou obrázky užitečnější a lze je lépe najít. Opravdu chcete polohu z tohoto obrázku odebrat?</string>
<string name="location_removed">Poloha odebrána!</string>
<string name="send_thanks_to_author">Poděkovat autorovi</string>
<string name="error_sending_thanks">Chyba při děkování autorovi.</string>
<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>
<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>
</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>
<string name="nearby_wikitalk">Nahlásit problém s touto položkou do Wikidat</string>
<string name="please_enter_some_comments">Zadejte prosím komentář</string>
<string name="talk">Diskuze</string>
<string name="write_something_about_the_item">Napište komentář o položce „%1$s“. Bude veřejně viditelný.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">„%1$s“ již neexistuje, nelze z něj již tedy pořídit obrázek.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">„%1$s“ je na jiném místě. Zadejte prosím správné místo, a pokud je to možné, napište správnou zeměpisnou šířku a délku.</string>
<string name="other_problem_or_information_please_explain_below">Jiný problém nebo informace (vysvětlete prosím níže).</string>
<string name="feedback_destination_note">Vaše zpětná vazba bude zveřejněna na následující stránce wiki: &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">Opravdu chcete zrušit všechna nahrávání?</string>
<string name="cancelling_all_the_uploads">Rušení všech nahrávání…</string>
<string name="uploads">Nahrávání</string>
<string name="pending">Čekající</string>
<string name="failed">Selhaná</string>
<string name="could_not_load_place_data">Nepodařilo se načíst údaje o místě</string>
<string name="custom_selector_delete_folder">Smazat složku</string>
<string name="custom_selector_confirm_deletion_title">Potvrďte smazání</string>
<string name="custom_selector_confirm_deletion_message">Opravdu chcete smazat složku %1$s obsahující %2$d položek?</string>
<string name="custom_selector_delete">Smazat</string>
<string name="custom_selector_cancel">Zrušit</string>
<string name="custom_selector_folder_deleted_success">Složka %1$s úspěšně smazána</string>
<string name="custom_selector_folder_deleted_failure">Nepodařilo se smazat složku %1$s</string>
<string name="custom_selector_error_trashing_folder_contents">Chyba při vyhazování obsahu složky: %1$s</string>
<string name="custom_selector_folder_not_found_error">Nepodařilo se načíst cestu ke složce pro ID bucketu: %1$d</string>
<string name="red_pin">Toto místo zatím nemá žádný obrázek, vyfoťte jej!</string>
<string name="green_pin">Toto místo již má obrázek.</string>
<string name="grey_pin">Kontrola, zda má toto místo obrázek.</string>
<string name="error_while_loading">Chyba při načítání</string>
<string name="no_usages_found">Nenalezena žádná použití</string>
<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>
<string name="account_vanish_request_confirm">Zmizení je &lt;b&gt;poslední možností&lt;/b&gt; a mělo by se &lt;b&gt;používat pouze tehdy, když si přejete navždy přestat editovat&lt;/b&gt; a také skrýt co nejvíce svých minulých asociací.&lt;br/&gt;&lt;br/&gt;Smazání účtu na Wikimedia Commons se provádí změnou jména účtu tak, aby ostatní nemohli rozpoznat vaše příspěvky, v procesu nazývaném zmizení účtu. &lt;b&gt;Zmizení nezaručuje úplnou anonymitu ani neodstraní příspěvky do projektů&lt;/b&gt;.</string>
<string name="caption">Titulek</string>
<string name="caption_copied_to_clipboard">Titulek zkopírován do schránky</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gratulujeme, všechny obrázky v tomto albu byly buď nahrány, nebo označeny jako neurčené k nahrání.</string>
<string name="show_in_explore">Zobrazit v kartě Objevit</string>
<string name="show_in_nearby">Zobrazit v kartě Poblíž</string>
</resources>

View file

@ -825,4 +825,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Tillykke, alle billeder i dette album er enten blevet uploadet eller markeret som ikke til upload.</string>
<string name="show_in_explore">Vis i Udforsk</string>
<string name="show_in_nearby">Vis i I nærheden</string>
<string name="image_tag_line_created_and_uploaded_by">Oprettet og uploadet af: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Oprettet af %1$s og uploadet af %2$s</string>
</resources>

View file

@ -16,6 +16,7 @@
* Justman10000
* Kghbln
* Killarnee
* Laserlicht
* ManuelFranz
* Mcliquid
* Metalhead64
@ -140,6 +141,8 @@
<string name="menu_from_camera">Foto schießen</string>
<string name="menu_nearby">In der Nähe</string>
<string name="provider_contributions">Meine hochgeladenen Dateien</string>
<string name="menu_copy_link">Link kopieren</string>
<string name="menu_link_copied">Der Link wurde in die Zwischenablage kopiert.</string>
<string name="menu_share">Teilen</string>
<string name="menu_view_file_page">Dateiseite anzeigen</string>
<string name="share_title_hint">Titel (erforderlich)</string>
@ -150,6 +153,7 @@
<string name="login_failed_throttled">Zu viele erfolglose Versuche. Bitte in einigen Minuten erneut versuchen.</string>
<string name="login_failed_blocked">Dieser Benutzer wurde leider auf Commons gesperrt</string>
<string name="login_failed_2fa_needed">Du musst deinen Code zur Zwei-Faktor-Authentifizierung angeben.</string>
<string name="login_failed_email_auth_needed">Ein Login-Code wurde an Ihre E-Mail-Adresse gesendet. Bitte geben Sie den Code ein, um sich anzumelden.</string>
<string name="login_failed_generic">Anmeldung fehlgeschlagen</string>
<string name="share_upload_button">Hochladen</string>
<string name="multiple_share_base_title">Benenne dieses Set</string>
@ -254,6 +258,7 @@
<string name="become_a_tester_title">Beta-Tester werden</string>
<string name="become_a_tester_description">Melde dich bei unserem Beta-Kanal auf Google Play an und erhalte frühen Zugriff auf neue Funktionen und Fehlerbehebungen</string>
<string name="_2fa_code">2FA-Code</string>
<string name="email_auth_code">E-Mail-Bestätigungscode</string>
<string name="logout_verification">Möchtest du dich wirklich abmelden?</string>
<string name="mediaimage_failed">Medienbild fehlgeschlagen</string>
<string name="no_subcategory_found">Keine Unterkategorien gefunden</string>
@ -398,11 +403,13 @@
<string name="delete">Löschen</string>
<string name="Achievements">Errungenschaften</string>
<string name="Profile">Profil</string>
<string name="badges">Auszeichnungen</string>
<string name="statistics">Statistiken</string>
<string name="statistics_thanks">Erhaltene Dankeschöns</string>
<string name="statistics_featured">Vorgestellte Bilder</string>
<string name="statistics_wikidata_edits">Bilder über „Orte in der Nähe“</string>
<string name="level" fuzzy="true">Niveau</string>
<string name="level">Level %d</string>
<string name="profileLevel">%s (Level %s)</string>
<string name="images_uploaded">Hochgeladene Bilder</string>
<string name="image_reverts">Bilder nicht zurückgesetzt</string>
<string name="images_used_by_wiki">Verwendete Bilder</string>
@ -434,6 +441,7 @@
<string name="map_application_missing">Auf deinem Gerät konnte keine kompatible Karten-App gefunden werden. Bitte installiere eine Karten-App, um diese Funktion nutzen zu können.</string>
<string name="title_page_bookmarks_pictures">Bilder</string>
<string name="title_page_bookmarks_locations">Standorte</string>
<string name="title_page_bookmarks_categories">Kategorien</string>
<string name="menu_bookmark">Zu den Lesezeichen hinzufügen/entfernen</string>
<string name="provider_bookmarks">Lesezeichen</string>
<string name="bookmark_empty">Du hast keine Lesezeichen hinzugefügt</string>
@ -696,7 +704,7 @@
<string name="pan_and_zoom_to_adjust">Schwenken und Zoomen zum Anpassen</string>
<string name="select_location_location_picker">Ort auswählen</string>
<string name="show_in_map_app">In Karten-App anzeigen</string>
<string name="modify_location">Standort beabeiten</string>
<string name="modify_location">Standort bearbeiten</string>
<string name="location_picker_image_view">Die Bildansicht der Standortauswahl</string>
<string name="location_picker_image_view_shadow">Der Schatten der Bildansicht der Ortsauswahl</string>
<string name="image_location">Bildstandort</string>
@ -783,7 +791,7 @@
<string name="learn_how_to_write_a_useful_caption">Erfahre, wie man eine nützliche Überschrift schreibt</string>
<string name="see_your_achievements">Deine Erfolge ansehen</string>
<string name="edit_image">Bild bearbeiten</string>
<string name="edit_location">Standort beabeiten</string>
<string name="edit_location">Standort bearbeiten</string>
<string name="location_updated">Standort aktualisiert!</string>
<string name="remove_location">Standort entfernen</string>
<string name="remove_location_warning_title">Standortwarnung entfernen</string>

View file

@ -123,6 +123,8 @@
<string name="menu_from_camera">Τραβήξτε φωτογραφία</string>
<string name="menu_nearby">Κοντά</string>
<string name="provider_contributions">Οι μεταφορτώσεις μου</string>
<string name="menu_copy_link">Αντιγραφή συνδέσμου</string>
<string name="menu_link_copied">Ο σύνδεσμος αντιγράφηκε στο πρόχειρο</string>
<string name="menu_share">Κοινοποίηση</string>
<string name="menu_view_file_page">Προβολή σελίδας αρχείου</string>
<string name="share_title_hint">Λεζάντα (Απαιτείται)</string>
@ -237,6 +239,7 @@
<string name="become_a_tester_title">Γίνετε Δοκιμαστής Beta</string>
<string name="become_a_tester_description">Συμμετέχετε στο κανάλι beta στο Google Play και αποκτήστε πρώιμη πρόσβαση σε νέες λειτουργίες και διορθώσεις σφαλμάτων</string>
<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>
@ -381,11 +384,13 @@
<string name="delete">Διαγραφή</string>
<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" fuzzy="true">Επίπεδο</string>
<string name="level">Επίπεδο %d</string>
<string name="profileLevel">%s (Επίπεδο %s)</string>
<string name="images_uploaded">Εικόνες που μεταφορτώθηκαν</string>
<string name="image_reverts">Εικόνες που δεν ανεστράφησαν</string>
<string name="images_used_by_wiki">Εικόνες που χρησιμοποιήθηκαν</string>
@ -417,6 +422,7 @@
<string name="map_application_missing">Δε βρέθηκε καμία συμβατή εφαρμογή χάρτη στη συσκευή σας. Εγκαταστήστε μια εφαρμογή χάρτη για να χρησιμοποιήσετε αυτήν τη δυνατότητα.</string>
<string name="title_page_bookmarks_pictures">Φωτογραφίες</string>
<string name="title_page_bookmarks_locations">Τοποθεσίες</string>
<string name="title_page_bookmarks_categories">Κατηγορίες</string>
<string name="menu_bookmark">Προσθήκη/Κατάργηση σε σελιδοδείκτες</string>
<string name="provider_bookmarks">Σελιδοδείκτες</string>
<string name="bookmark_empty">Δεν έχετε προσθέσει σελιδοδείκτες</string>
@ -498,6 +504,7 @@
<string name="no_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string>
<string name="no_read_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string>
<string name="share_logs_using">Κοινή χρήση αρχείων καταγραφής χρησιμοποιώντας</string>
<string name="check_your_email_inbox">Ελέγξτε τα εισερχόμενα του email σας</string>
<string name="menu_option_read">Προβολή αναγνωσμένων</string>
<string name="menu_option_unread">Προβολή μη αναγνωσμένων</string>
<string name="error_occurred_in_picking_images">Παρουσιάστηκε σφάλμα κατά την επιλογή εικόνων</string>
@ -805,4 +812,20 @@
<string name="pending">Σε εκκρεμότητα</string>
<string name="failed">Απέτυχε</string>
<string name="could_not_load_place_data">Δεν ήταν δυνατή η φόρτωση δεδομένων της θέσης</string>
<string name="custom_selector_delete_folder">Διαγραφή φακέλου</string>
<string name="custom_selector_confirm_deletion_title">Επιβεβαίωση διαγραφής</string>
<string name="custom_selector_confirm_deletion_message">Είστε βέβαιοι ότι θέλετε να διαγράψετε τον φάκελο %1$s που περιέχει %2$d στοιχεία;</string>
<string name="custom_selector_delete">Διαγραφή</string>
<string name="custom_selector_cancel">Ακύρωση</string>
<string name="custom_selector_folder_deleted_success">Ο φάκελος %1$s διαγράφηκε με επιτυχία</string>
<string name="custom_selector_folder_deleted_failure">Αποτυχία διαγραφής του φακέλου %1$s</string>
<string name="red_pin">Αυτό το μέρος δεν έχει ακόμα φωτογραφία, πήγαινε να βγάλεις μία!</string>
<string name="green_pin">Αυτό το μέρος έχει ήδη μια φωτογραφία.</string>
<string name="grey_pin">Τώρα ελέγχεται αν αυτό το μέρος έχει φωτογραφία.</string>
<string name="error_while_loading">Σφάλμα κατά τη φόρτωση</string>
<string name="no_usages_found">Δεν βρέθηκαν χρήσεις</string>
<string name="file_usages_container_heading">Χρήσεις αρχείου</string>
<string name="account">Λογαριασμός</string>
<string name="caption">Λεζάντα</string>
<string name="caption_copied_to_clipboard">Η λεζάντα αντιγράφηκε στο πρόχειρο</string>
</resources>

View file

@ -15,6 +15,7 @@
* Freshman404
* Jeeputer
* Ladsgroup
* Lakzon
* Mardetanha
* Mehdi
* Mjbmr
@ -41,6 +42,14 @@
<string name="submit">ارسال</string>
<string name="add_another_description">توضیح دیگری را بیفزایید</string>
<string name="add_new_contribution">افزودن مشارکت جدید</string>
<string name="add_contribution_from_camera">افزودن مشارکت از دوربین</string>
<string name="add_contribution_from_photos">افزودن مشارکت از تصاویر</string>
<string name="add_contribution_from_contributions_gallery">افزودن مشارکت از گالری مشارکت‌های پیشین</string>
<string name="show_captions">برنگاشت</string>
<string name="row_item_language_description">شرح زبان</string>
<string name="row_item_caption">برنگاشت</string>
<string name="nearby_row_image">تصویر</string>
<string name="nearby_all">همه</string>
<string name="appwidget_img">تصویر روز</string>
<plurals name="uploads_pending_notification_indicator">
<item quantity="one">%1$d پرونده در حال بارگذاری</item>
@ -84,6 +93,7 @@
<string name="signup">ثبت نام</string>
<string name="logging_in_title">واردشدن</string>
<string name="logging_in_message">شکیبا باشید...</string>
<string name="updating_caption_message">لطفاً صبر کنید...</string>
<string name="login_success" fuzzy="true">ورود موفق!</string>
<string name="login_failed" fuzzy="true">ورود ناموفق!</string>
<string name="upload_failed">پرونده یافت نشد لطفاً پرونده دیگری را امتحان کنید.</string>

View file

@ -5,6 +5,7 @@
* Alno
* Assorted-Interests
* BaRaN6161 TURK
* Bananax47
* BlueCamille
* Cigaryno
* Cyclicus
@ -156,6 +157,7 @@
<string name="login_failed_throttled">Trop de tentatives infructueuses. Veuillez réessayer dans quelques minutes.</string>
<string name="login_failed_blocked">Désolé, cet utilisateur a été bloqué sur Commons</string>
<string name="login_failed_2fa_needed">Vous devez fournir votre code dauthentification à deux facteurs.</string>
<string name="login_failed_email_auth_needed">Un code de vérification de connexion a été envoyé à votre adresse e-mail. Veuillez saisir ce code pour vous connecter.</string>
<string name="login_failed_generic">Échec de connexion</string>
<string name="share_upload_button">Téléverser</string>
<string name="multiple_share_base_title">Nommer cet ensemble</string>
@ -261,6 +263,7 @@
<string name="become_a_tester_title">Devenir un bêta-testeur</string>
<string name="become_a_tester_description">Sinscrire à notre canal bêta sur Google Play et obtenir un accès anticipé aux nouvelles fonctionnalités et corrections danomalies</string>
<string name="_2fa_code">Code 2FA</string>
<string name="email_auth_code">Code de vérification par email</string>
<string name="logout_verification">Voulez-vous vraiment vous déconnecter?</string>
<string name="mediaimage_failed">Échec sur limage du média</string>
<string name="no_subcategory_found">Aucune sous-catégorie trouvée</string>
@ -863,4 +866,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Félicitations, toutes les images dans cet album ont été soit téléchargées soit marquées comme non téléchargeables.</string>
<string name="show_in_explore">Afficher dans Explorer</string>
<string name="show_in_nearby">Afficher à proximité</string>
<string name="image_tag_line_created_and_uploaded_by">Crée et publiée par: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Créé par %1$s et publiée par %2$s</string>
</resources>

View file

@ -112,6 +112,7 @@
<string name="login_failed_throttled">Multa sensucesa probi pri konektar. Voluntez probar itere pos kelka minuti.</string>
<string name="login_failed_blocked">Pardonez, ca uzero blokusesis che Commons</string>
<string name="login_failed_2fa_needed">Vu mustas uzar vua autentikigo en du etapi.</string>
<string name="login_failed_email_auth_needed">Kodexo por konfirmar \'\'log in\'\' sendesis a vua e-postal adreso. Voluntez informar la kodexo, por enirar.</string>
<string name="login_failed_generic">Eniro faliis</string>
<string name="share_upload_button">Kargar</string>
<string name="multiple_share_base_title">Nomizes ca ajusto</string>
@ -215,6 +216,7 @@
<string name="become_a_tester_title">Divenez probero di \'\'Beta\'\'-versioni</string>
<string name="become_a_tester_description">Enirez nia kanalo \'\'beta\'\' che Google Play ed anticipez aceso a nova resursi e korektigo di erori</string>
<string name="_2fa_code">Kodexo 2FA</string>
<string name="email_auth_code">Kodexo sendita ad e-postal adreso</string>
<string name="logout_verification">Ka vu deziras ekirar?</string>
<string name="mediaimage_failed">Faliis montrar imajo</string>
<string name="no_subcategory_found">Nula subkategorio trovesis</string>
@ -394,6 +396,7 @@
<string name="next">Sequanta</string>
<string name="previous">Antea</string>
<string name="upload_title_duplicate">Arkivo kun la nomo %1$s ja existas. Ka vu deziras durigar?\n\nNoto: Sufixo adequata adjuntesos automatale a la nomo dil imajo.</string>
<string name="map_application_missing">Ne trovesis irga \'\'app\'\' por mapi en vua aparato. Voluntez instalar \'\'app\'\' por uzo di mapi, se vu deziras uzar ca resurso.</string>
<string name="title_page_bookmarks_pictures">Imaji</string>
<string name="title_page_bookmarks_locations">Loki</string>
<string name="title_page_bookmarks_categories">Kategorii</string>
@ -412,7 +415,9 @@
<string name="no_categories_selected">Nula kategorio selektita</string>
<string name="no_categories_selected_warning_desc">Imaji sen kategorii rare esas uzebla. Ka vu fakte deziras sendar ol sen selektar irga kategorio?</string>
<string name="no_depictions_selected">Nula deskripturo selektita</string>
<string name="no_depictions_selected_warning_desc">Imaji kun desegni esas plu facile trovebla, e plu probable uzebla. Ka vu fakte deziras durar, sen selektar desegni?</string>
<string name="back_button_warning">Cesar kargajo</string>
<string name="back_button_warning_desc">Kliktanta la butono \"desfacez/retroirar\" nihiligos la sendo dil arkivo</string>
<string name="back_button_continue">Durar kargajo</string>
<string name="upload_flow_all_images_in_set">(Por omna imaji en la grupo)</string>
<string name="search_this_area">Serchez ca areo</string>
@ -431,6 +436,8 @@
<string name="option_allow">Permisar</string>
<string name="option_dismiss">Eskartar</string>
<string name="in_app_camera_needs_location">Voluntez kapabligar registrago di lokizo en \'\'Settings\'\', e probez itere.\n\nNoto: l\'arkivo sendanta povas ne havar informo pri lokizo, se l\'\'\'app\'\' ne povas rekuperar l\'informo pri lokizo en kurta intervalo.</string>
<string name="in_app_camera_location_unavailable">Sen kapabligar GPS, l\'enrejistro di la lokizo en la fotografuri ne facesas.</string>
<string name="open_document_photo_picker_title">Uzez selektilo di fotografuri segun dokumenti</string>
<string name="getting_edit_token">Kaptanta \'\'token\'\' por redaktar.</string>
<string name="check_category_adding_template">Adjuntanta shablono por verifikar kategorio</string>
<string name="check_category_notification_title">Demandanta verifiko di kategorio por %1$s</string>
@ -451,6 +458,7 @@
<string name="review_spam">Ka to apartenas al skopo dil projeto?</string>
<string name="review_thanks">Ka vu deziras dankar la kontributero?</string>
<string name="review_spam_explanation">Kliktez NO por indikar ca imajo por efaco, se ol ne havas irga utileso.</string>
<string name="review_thanks_explanation">Vua opiniono stimulos %1$s</string>
<string name="review_no_category">Ho, to ne mem havas kategorio!</string>
<string name="review_category_explanation">Ca imajo havas %1$s kategorii.</string>
<string name="review_spam_report_question">Ol esas kontre la skopo, nam ol esas</string>
@ -464,11 +472,16 @@
<string name="no_image_uploaded">Nula imajo sendita</string>
<string name="no_notification">Vu havas nul avizi sen lektar</string>
<string name="no_read_notification">Vu ne lektis irga avizo</string>
<string name="share_logs_using">Partigar enrejistruri uzanta</string>
<string name="check_your_email_inbox">Verifikez vua e-postal adreso</string>
<string name="menu_option_read">Vidar lektita</string>
<string name="menu_option_unread">Vidar ne-lektata</string>
<string name="error_occurred_in_picking_images">Eventis eroro dum selekto di imaji</string>
<string name="please_wait">Vartez...</string>
<string name="images_featured_explanation">Imaji saliigita (Angle: \'\'featured\'\') esas fotografuri facita da multe habila fotografisti ed ilustristi, qui selektesis da la komunitato di Wikimedia kom apartenanta a la maxim bona imaji de la retosituo.</string>
<string name="images_via_nearby_explanation">Imaji sendita uzanta resurso \'\'Nearby places\'\' esas imaji sendita pos deskovro di loki en la mapo.</string>
<string name="thanks_received_explanation">Ca utensilo posibligas editeri sendar \'\'danko\'\' ad uzeri qui facis utila redakturi - per sendo di mikra ligilo \"danko\" che historio-pagino o pagino pri diferi.</string>
<string name="copy_image_caption_description">Kopiar a sequanta enmagazinigo-moyeno</string>
<string name="copied_successfully">Kopiita</string>
<string name="welcome_do_upload_content_description">Exempli pri bona imaji por sendar a Commons</string>
<string name="welcome_dont_upload_content_description">Exempli pri imaji por NE SENDAR</string>
@ -483,8 +496,12 @@
<string name="exif_tag_name_lensModel">Modelo di lenso</string>
<string name="exif_tag_name_serialNumbers">Serio-nombro</string>
<string name="exif_tag_name_software">Software</string>
<string name="media_location_permission_denied">Aceso ad enmagazinigo-moyeno ne permisita</string>
<string name="image_info">Informo pri imajo</string>
<string name="no_categories_found">Nula kategorio trovesis</string>
<string name="upload_cancelled">Kargajo di arkivo cesis</string>
<string name="dialog_box_text_nomination">Pro quo %1$s devas efacesar?</string>
<string name="review_is_uploaded_by">%1$s sendesis da: %2$s</string>
<string name="default_description_language">implicita deskripto-linguo</string>
<string name="delete_helper_show_deletion_title">Indikita por efaco</string>
<string name="delete_helper_show_deletion_title_success">Suceso</string>
@ -558,6 +575,8 @@
<string name="theme_default_name">Sequar sistemo</string>
<string name="theme_dark_name">Koloro obskura</string>
<string name="theme_light_name">Koloro klara</string>
<string name="recommend_high_accuracy_mode">Por plu bona rezulti, selektez modo \"granda exakteso\" (\'\'High Accuracy\'\').</string>
<string name="ask_to_turn_location_on">Kad montrar lokizo?</string>
<string name="load_more">Charjez pluse</string>
<string name="add_picture_to_wikipedia_article_title">Adjuntar imajo a Wikipedio</string>
<string name="add_picture_to_wikipedia_article_desc">Ka vu deziras adjuntar ca imajo al artiklo de Wikipedio en idiomo %1$s?</string>
@ -566,6 +585,8 @@
<string name="wikipedia_instructions_step_1">1. Uzez la sequanta wikitexto:</string>
<string name="wikipedia_instructions_step_2">Kliktanta \"konfirmar\" (\'\'Confirm\'\') apertos l\'artiklo che Wikipedio</string>
<string name="wikipedia_instructions_step_3">3. Trovez adequata fako dil artiklo por inkluzar vua imajo</string>
<string name="wikipedia_instructions_step_7">Publikigar l\'artiklo</string>
<string name="copy_wikicode_to_clipboard">Kopiar wikikodexo a transfero-areo di la komputatoro</string>
<string name="pause">pauzar</string>
<string name="resume">durigar</string>
<string name="paused">Pauzita</string>
@ -579,6 +600,7 @@
<string name="leaderboard_column_user">Uzero</string>
<string name="leaderboard_column_count">Quanteso</string>
<string name="setting_avatar_dialog_title">Uzar kom \'\'avatar\'\' di la tabelo pri precipua kunlaboranti</string>
<string name="setting_avatar_dialog_message">Ajustanta kom avataro, voluntez vartar</string>
<string name="avatar_set_successfully">Ajusto di avataro</string>
<string name="avatar_set_unsuccessfully">Eroro dum ajusto di nov avataro, voluntez probar itere</string>
<string name="menu_set_avatar">Uzar kom avataro</string>
@ -589,7 +611,10 @@
<string name="leaderboard_nearby">Vicina</string>
<string name="leaderboard_used">Uzita</string>
<string name="leaderboard_my_rank_button_text">Mea rango</string>
<string name="limited_connection_enabled">Kapabligesis por uzar kun limitizita konekti!</string>
<string name="statistics_quality">Imaji di qualeso</string>
<string name="resuming_upload">Duriganta sendajo...</string>
<string name="pausing_upload">Pauzanta sendajo...</string>
<string name="cancelling_upload">Nuliganta sendajo...</string>
<string name="cancel_upload">Cesar kargajo</string>
<string name="depicts_step_title">Montras</string>
@ -619,8 +644,11 @@
<string name="custom_selector_limit_error_desc">Eroro: Limito pri sendajo transpasita</string>
<string name="wlm_upload_info">Ca imajo partoprenos en konkurso \'\'Wiki Loves Monuments\'\'</string>
<string name="display_monuments">Montrez monumenti</string>
<string name="wlm_month_message">Esas monato di \'\'Wiki Loves Monuments\'\'!</string>
<string name="learn_more">SAVEZ PLUSE</string>
<string name="wlm_campaign_description">\'\'Wiki Loves Monuments\'\' esas internaciona konkurso pri fotografado di monumenti, organizita da Wikimedia</string>
<string name="need_permission">Bezonas permiso</string>
<string name="read_phone_state_permission_message">Mapi di vicina loki mustas lektar la STANDO DI TELEFONO, por funcionar korekte</string>
<string name="contributions_of_user">Kontributadi dil uzero: %s</string>
<string name="achievements_of_user">Sucesi dil uzero: %s</string>
<string name="menu_view_user_page">Vidar profilo dil uzero</string>
@ -646,6 +674,7 @@
<string name="mark_as_not_for_upload">Indikez por ne sendar ol</string>
<string name="unmark_as_not_for_upload">Itere indikez por sendar ol</string>
<string name="marking_as_not_for_upload">Indikanta ke ol ne sendesos</string>
<string name="no_more_images_found">Ne trovesis plusa imaji</string>
<string name="this_image_is_already_uploaded">Ca imajo ja sendesis</string>
<string name="can_not_select_this_image_for_upload">Ne povis selektar ca imajo por sendar (\'\'upload\'\')</string>
<string name="image_selected">Imajo selektita</string>
@ -657,13 +686,19 @@
<string name="report_user">Avizar ca uzero</string>
<string name="report_content">Informar ca kontenajo</string>
<string name="request_user_block">Demandar blokuso di ca uzero</string>
<string name="welcome_to_full_screen_mode_text">Bonveno a selekto di Modo \"tota-skreno\"</string>
<string name="full_screen_mode_zoom_info">Uzez du fingri por augmentar o diminutar \'\'zoom\'\'.</string>
<string name="similar_coordinate_description_auto_set">Koordinati ne esas l\'exakta, tamen l\'individuo qua sendis ca imajo kredas ke la koordinati quin lu informis esas suficante proxima.</string>
<string name="unable_to_share_upload_item">Ne povis partigar ca arkivo</string>
<string name="learn_how_to_write_a_useful_description">Savez quale skribar utila deskripto</string>
<string name="learn_how_to_write_a_useful_caption">Savez quale skribar utila etiketo</string>
<string name="see_your_achievements">Videz vua sucesi</string>
<string name="edit_image">Modifikar imajo</string>
<string name="edit_location">Aktualigar lokizo</string>
<string name="location_updated">Lokizo aktualigita!</string>
<string name="remove_location">Removar lokizo</string>
<string name="remove_location_warning_title">Removar avizo pri lokizo</string>
<string name="remove_location_warning_desc">Imaji kun informi pri lokizo esas plu utila e trovebla. Ka vu fakte deziras removar la lokizo di ca imajo?</string>
<string name="location_removed">Lokizo efacita!</string>
<string name="send_thanks_to_author">Dankar l\'autoro</string>
<string name="error_sending_thanks">Eroro sendanta danki al autoro.</string>
@ -681,6 +716,7 @@
</plurals>
<string name="talk">Diskuto</string>
<string name="write_something_about_the_item">Dicez irgu pri l\'arkivo \'%1$s\'. Ol esos videbla publike.</string>
<string name="cancelling_all_the_uploads">Extinganta la tota sendaji...</string>
<string name="uploads">Arkivi sendita</string>
<string name="pending">Vartanta</string>
<string name="failed">Faliis</string>
@ -692,6 +728,12 @@
<string name="custom_selector_cancel">Nuligez</string>
<string name="custom_selector_folder_deleted_success">Faldilo %1$s sucese efacita</string>
<string name="custom_selector_folder_deleted_failure">Faliis pri efacar faldilo %1$s</string>
<string name="custom_selector_error_trashing_folder_contents">Eroro dum efaco di kontenajo di dokumentaro: %1$s</string>
<string name="custom_selector_folder_not_found_error">Faliis trovar quale rekuperar dokumentaro kun \'\'bucket ID\'\' %1$d</string>
<string name="red_pin">Ankore ne existas fotografuro pr ta loko, facez fotografuro!</string>
<string name="green_pin">Ja existas imajo pri ta loko.</string>
<string name="error_while_loading">Eroro dum kargado</string>
<string name="no_usages_found">Nula uzo trovesis</string>
<string name="usages_on_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Altra wiki</string>
<string name="file_usages_container_heading">Uzi dil arkivo</string>
@ -699,7 +741,10 @@
<string name="account">Konto</string>
<string name="vanish_account">Efacar konto</string>
<string name="account_vanish_request_confirm_title">Avizo pri efaco di konto</string>
<string name="account_vanish_request_confirm">Efaco esas &lt;b&gt;lasta resurso&lt;/b&gt; e devas uzesar &lt;b&gt;nur se vu fakte e definitive ne pluse deziras redaktar&lt;/b&gt;, ed anke celar la maxim multa kam posibla de vua pasinta asocii.&lt;br/&gt;&lt;br/&gt;Efaco di konto che Wikimedia Commons facesas modifikanta la nomo di vua konto, por ke altri ne povas agnoskar vua kontributadi; procedo nomizita Angle \'\'vanishing\'\' (\"desaparo\"). &lt;b&gt;\'\'Vanishing\'\' ne grantas kompleta anonimeso, o removo di kontributadi en la tota projeti&lt;/b&gt;.</string>
<string name="caption">Deskripto-texto</string>
<string name="caption_copied_to_clipboard">Deskripto-texto kopiita a \'\'clipboard\'\'</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gratuli! Omna imaji en ca albumo sive sendesis, sive indikesis por ne sendar.</string>
<string name="image_tag_line_created_and_uploaded_by">Kreesis e sendesis da: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Kreita da %1$s e sendita da %2$s</string>
</resources>

View file

@ -775,4 +775,6 @@
<string name="file_usages_container_heading">Utilizzi del file</string>
<string name="caption">Didascalia</string>
<string name="caption_copied_to_clipboard">Didascalia copiata negli appunti</string>
<string name="image_tag_line_created_and_uploaded_by">Creato e caricato da: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Creato da %1$s e caricato da %2$s</string>
</resources>

View file

@ -333,7 +333,7 @@
<string name="about_translate_proceed">המשך</string>
<string name="about_translate_cancel">ביטול</string>
<string name="retry">לנסות שוב</string>
<string name="showcase_view_whole_nearby_activity">אלה המקומות בסביבתך שזקוקים לתמונות כדי להמחיש את הערכים שלהם בוויקיפדיה.\n\nלחיצה על חיפוש באזור הזה נועלת את המפה ומתחילה חיפוש סביב המיקום הזה.</string>
<string name="showcase_view_whole_nearby_activity">אלה המקומות בסביבתך שזקוקים לתמונות כדי להמחיש את הערכים שלהם בוויקיפדיה.\n\nלחיצה על \"חיפוש באזור הזה\" נועלת את המפה ומתחילה חיפוש סביב המיקום הזה.</string>
<string name="showcase_view_needs_photo">המקום הזה צריך תמונה.</string>
<string name="showcase_view_has_photo">למקום הזה יש כבר תמונה.</string>
<string name="showcase_view_no_longer_exists">המקום הזה כבר לא קיים.</string>
@ -859,4 +859,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">ברכותינו, כל התמונות באלבום הזה הועלו או שסומנו לא להעלאה.</string>
<string name="show_in_explore">בתצוגת סיור</string>
<string name="show_in_nearby">בתצוגת בסביבה</string>
<string name="image_tag_line_created_and_uploaded_by">נוצר והועלה על־ידי: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">נוצר על־ידי %1$s והועלה על־ידי %2$s</string>
</resources>

View file

@ -16,6 +16,7 @@
* Revi
* Suleiman the Magnificent Television
* Theshinster123
* YeBoy371
* Ykhwong
* YuzaTea
* 그냥기여자
@ -229,7 +230,7 @@
<string name="logout_verification">정말 로그아웃하시겠습니까?</string>
<string name="mediaimage_failed">미디어 그림 실패</string>
<string name="no_subcategory_found">하위 분류가 없습니다</string>
<string name="no_parentcategory_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>
@ -530,7 +531,7 @@
<string name="you_must_reset_your_passsword">로그인에 문제가 생겼습니다, 비밀번호를 재설정해야 합니다!</string>
<string name="title_for_media">미디어</string>
<string name="title_for_child_classes">자식 클래스</string>
<string name="title_for_parent_classes">부모 클래스</string>
<string name="title_for_parent_classes">상위 클래스</string>
<string name="upload_nearby_place_found_title">주변 장소 발견</string>
<string name="upload_nearby_place_found_description_plural">%1$s의 사진이 맞습니까?</string>
<string name="upload_nearby_place_found_description_singular">%1$s의 사진이 맞습니까?</string>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Askar Nazyrov
* Baydastann
* Bosogo
* Kotormochu
* Maksat
@ -10,12 +11,21 @@
<string name="commons_facebook">Викиказынанын Facebook баракчасы</string>
<string name="commons_logo">Викиказынанын логотиби</string>
<string name="commons_website">Викиказынанын сайты</string>
<string name="submit">Жөнөтүү</string>
<string name="add_another_description">Башка сүрөттөмө кошуу</string>
<string name="add_new_contribution">Жаңы салым кошуу</string>
<string name="add_contribution_from_camera">Камерадан салым кошуу</string>
<string name="add_contribution_from_photos">Фотографиялардан салым кошуу</string>
<string name="add_contribution_from_contributions_gallery">Мурунку салымдар галереясынан салым кошуу</string>
<string name="show_captions">Коштомо жазуу</string>
<string name="row_item_language_description">Тилдин мүнөздөмөлөрү</string>
<string name="row_item_caption">Коштомо жазуу</string>
<string name="show_captions_description">Сыпаттама</string>
<string name="nearby_row_image">Сүрөт</string>
<string name="nearby_all">Баары</string>
<string name="nearby_filter_search">Кызыктуу жерди издөө</string>
<string name="nearby_filter_state">Жердин абалы</string>
<string name="appwidget_img">Күндүн сүрөтү</string>
<plurals name="uploads_pending_notification_indicator" fuzzy="true">
<item quantity="one">1 файл жүктөлүүдө</item>
<item quantity="other">%1$d файл жүктөлүүдө</item>
@ -25,6 +35,7 @@
<item quantity="one">1 жүктөө</item>
<item quantity="other">%1$d жүктөө</item>
</plurals>
<string name="starting_uploads">Жүктөө башталууда</string>
<plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">1 жүктөө башталды</item>
<item quantity="other">%1$d жүктөө башталды</item>
@ -34,29 +45,40 @@
<item quantity="other">%d жүктөө</item>
</plurals>
<string name="share_license_summary" fuzzy="true">Бул сүрөт %1$s лицензияланат</string>
<string name="navigation_item_explore">Изилдөө</string>
<string name="preference_category_appearance">Көрүнүш</string>
<string name="preference_category_general">Жалпы</string>
<string name="preference_category_feedback">Кайтарым байланыш</string>
<string name="preference_category_privacy">Купуялык</string>
<string name="app_name">Викиказына</string>
<string name="menu_settings">Параметрлер</string>
<string name="intent_share_upload_label">Викиказынага жүктөө</string>
<string name="upload_in_progress">Жүктөлүүдө</string>
<string name="username">Колдонуучунун аты</string>
<string name="password">Сырсөз</string>
<string name="login_credential">Commons Beta аккаунтуңузга кириңиз</string>
<string name="login">Кирүү</string>
<string name="forgot_password">Сырсөздү унуттуңузбу?</string>
<string name="signup">Катталуу</string>
<string name="logging_in_title">Кирүү</string>
<string name="logging_in_message">Сураныч, күтө туруңуз…</string>
<string name="updating_caption_title">Коштомо жазуулар жана сыпаттамалар жаңыртылууда</string>
<string name="updating_caption_message">Күтө туруңуз…</string>
<string name="login_success" fuzzy="true">Сиз ийгиликтүү кирдиңиз</string>
<string name="login_failed" fuzzy="true">Системага кирүүдө катачылык бар!</string>
<string name="authentication_failed" fuzzy="true">Таану катачылыгы!</string>
<string name="login_success">Ийгиликтүү кирдиңиз!</string>
<string name="login_failed">Системага кирүүдө катачылык бар!</string>
<string name="upload_failed">Файл табылган жок. Башка файлды издеп көрүңүз.</string>
<string name="authentication_failed">Аутентификация ишке ашкан жок. Кайра кириңиз.</string>
<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" fuzzy="true">Жүктөө %1$s башталды</string>
<string name="upload_progress_notification_title_start">Файл жүктөлүүдө: %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" fuzzy="true">Жүктөө %1$s иш жүзүнө ашкан жок</string>
<string name="upload_failed_notification_title">Жүктөө %1$s иш жүзүнө ашкан жок</string>
<string name="upload_paused_notification_title">%1$s жүктөө токтотулду</string>
<string name="upload_failed_notification_subtitle">Көрүү үчүн басыңыз</string>
<string name="title_activity_contributions" fuzzy="true">Менин жүктөөлөрүм</string>
<string name="upload_paused_notification_subtitle">Көрүү үчүн басыңыз</string>
<string name="title_activity_contributions">Соңку жүктөөлөрүм</string>
<string name="contribution_state_queued">Кезек</string>
<string name="contribution_state_failed">Жүктөө каталары</string>
<string name="contribution_state_in_progress">%1$d%% соңуна чыкты</string>
@ -65,18 +87,24 @@
<string name="menu_from_camera">Сүрөткө тартуу</string>
<string name="menu_nearby">Жакынкы</string>
<string name="provider_contributions">Жүктөөлөрүм</string>
<string name="menu_copy_link">Шилтемени көчүрүү</string>
<string name="menu_share">Бөлүшүү</string>
<string name="share_title_hint" fuzzy="true">Аталышы</string>
<string name="share_title_hint">Коштомо жазуу (талап кылынат)</string>
<string name="add_caption_toast">Бул файлга коштомо жазуу бериңиз</string>
<string name="share_description_hint">Сыпаттама</string>
<string name="login_failed_network" fuzzy="true">Кирүүгө болбой жатат - тармакта үзгүлтүк бар</string>
<string name="login_failed_throttled" fuzzy="true">Өтө көп натыйжасыз иш аракет. Суранабыз, бир нече мүнөттөн кийин кайталаңыз</string>
<string name="share_caption_hint">Коштомо жазуу</string>
<string name="login_failed_network">Кирүүгө болбой жатат - тармакта үзгүлтүк бар</string>
<string name="login_failed_throttled">Өтө көп натыйжасыз аракет. Бир нече мүнөттөн кийин кайта кирип көрүңүз.</string>
<string name="login_failed_blocked">Кечириңиз, бул кодонуучу Уикиказынада блокко алынган.</string>
<string name="login_failed_generic" fuzzy="true">Системага кирүүдө катачылык бар!</string>
<string name="login_failed_2fa_needed">Эки фактордук аутентификация кодун теришиңиз керек.</string>
<string name="login_failed_email_auth_needed">Ырастоочу код электрондук почтаңызга жөнөтүлдү. Аккаунтка кирүү үчүн аны териңиз.</string>
<string name="login_failed_generic">Системага кирүүдө катачылык бар!</string>
<string name="share_upload_button">Жүктөө</string>
<string name="multiple_share_base_title">Файлардын бул тайпасынын аталышын жазыңыз</string>
<string name="provider_modifications">Өзгөрүүлөр</string>
<string name="menu_upload_single">Жүктөө</string>
<string name="categories_search_text_hint">Түрмөктөрдү издөө</string>
<string name="depicts_search_text_hint">Файлдагы элементтерди издөө (тоо, Таж-Махал ж.б.)</string>
<string name="menu_save_categories">Сактоо</string>
<string name="refresh_button">Жаңылоо</string>
<string name="display_list_button">Тизме</string>
@ -86,11 +114,12 @@
<string name="categories_activity_title">Категориялар</string>
<string name="title_activity_settings">Параметрлер</string>
<string name="title_activity_signup">Катталуу</string>
<string name="menu_about">Тиркеме жөнүндө</string>
<string name="title_activity_category_details">Категория</string>
<string name="menu_about">Колдонмо тууралуу</string>
<string name="about_license" fuzzy="true">баштапкы коду ачык тиркемелер, &lt;a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\"&gt;Apache License v2&lt;/a&gt; лицензиясынын негизинде чыгарылган</string>
<string name="about_improve" fuzzy="true">&lt;a href=\"https://github.com/commons-app/apps-android-commons\"&gt;GitHub&lt;/a&gt; шилтемесине баштапкы код. &lt;a href=\" https://github.com/commons-app/apps-android-commons/issues\"&gt;Github&lt;/a&gt; шилтемесиндеги катачылык.</string>
<string name="about_privacy_policy">Купуялык саясаты</string>
<string name="title_activity_about">Тиркеме жөнүндө</string>
<string name="title_activity_about">Колдонмо тууралуу</string>
<string name="menu_feedback">Шарттуу жооп жөнөтүү (Email)</string>
<string name="provider_categories">Жакында колдонулган түрмөктөр</string>
<string name="waiting_first_sync">Алгачкы мезгилдештирүүнү күтүү…</string>
@ -99,6 +128,7 @@
<string name="menu_cancel_upload">Жокко чыгаруу</string>
<string name="menu_download">Жүктөп алуу</string>
<string name="preference_license" fuzzy="true">Лицензия</string>
<string name="preference_theme">Тема</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>
@ -116,23 +146,54 @@
<string name="detail_description_empty">Сыпаттама жок</string>
<string name="menu_refresh">Жаңылоо</string>
<string name="ok">Макул</string>
<string name="upload">Жүктөө</string>
<string name="yes">Ооба</string>
<string name="no">Жок</string>
<string name="media_detail_caption">Коштомо жазуу</string>
<string name="media_detail_title">Аталыш</string>
<string name="media_detail_description">Сыпаттама</string>
<string name="media_detail_discussion">Талкуу</string>
<string name="media_detail_author">Автор</string>
<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="cancel">Жокко чыгаруу</string>
<string name="navigation_drawer_open">Ачуу</string>
<string name="navigation_drawer_close">Жабуу</string>
<string name="navigation_item_home">Башкы бет</string>
<string name="navigation_item_upload">Жүктөө</string>
<string name="navigation_item_nearby">Жакынкы</string>
<string name="navigation_item_about">Тууралуу</string>
<string name="navigation_item_settings">Параметрлер</string>
<string name="navigation_item_feedback">Кайтарым байланыш</string>
<string name="navigation_item_feedback_github">GitHub аркылуу кайтарым байланыш</string>
<string name="navigation_item_logout">Чыгуу</string>
<string name="navigation_item_info">Нускама</string>
<string name="navigation_item_notification">Кабарламалар</string>
<string name="navigation_item_review">Ырастоо</string>
<string name="no_description_found">сыпаттама табылган жок</string>
<string name="nearby_info_menu_commons_article">Файлдын Викиказынадагы барагы</string>
<string name="nearby_info_menu_wikidata_article">Викимаалыматтын элементи</string>
<string name="nearby_info_menu_wikipedia_article">Википедия макаласы</string>
<string name="null_url">Ката! URL табылган жок</string>
<string name="nominate_deletion">Өчүрүүгө сунуштоо</string>
<string name="nominated_for_deletion">Бул файлды өчүрүү сунушталган.</string>
<string name="nominated_see_more">Толук маалымат алуу үчүн бул баракты караңыз</string>
<string name="skip_login">Аттоо</string>
<string name="navigation_item_login">Кирүү</string>
<string name="skip_login_title">Аккаунтка кирүүнү чындап эле өткөрүп жибергиңиз келеби?</string>
<string name="skip_login_message">Кийин файлдарды жүктөө үчүн аккаунтка кирген болгонуңуз керек болот.</string>
<string name="login_alert_message">Бул функцияны колдонуу үчүн аккаунтка кириңиз</string>
<string name="nearby_wikidata">Викимаалымат</string>
<string name="nearby_wikipedia">Википедия</string>
<string name="about_faq">КБС</string>
<string name="about_translate">Которуу</string>
<string name="about_translate_title">Тилдер</string>
<string name="about_translate_cancel">Жокко чыгаруу</string>
<string name="search_tab_title_media">Медиа</string>
<string name="search_tab_title_categories">Категориялар</string>
<string name="explore_tab_title_mobile">Уюлдук телефон аркылуу жүктөлгөн</string>
<string name="explore_tab_title_map">Карта</string>
<string name="back_button_warning">Жүктөөнү жокко чыгаруу</string>
<string name="back_button_warning_desc">Артка баскычын колдонуу менен бул жүктөө жокко чыгарылат жана сиз ийгиликти жоготосуз</string>

View file

@ -822,4 +822,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Честитаме. Сите слики од овој албум се подигнати или обележани за неподигање.</string>
<string name="show_in_explore">Прикажи во „Истражи“</string>
<string name="show_in_nearby">Прикажи во „Во близина“</string>
<string name="image_tag_line_created_and_uploaded_by">Создал: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Создал %1$s, а подигнал %2$s</string>
</resources>

View file

@ -818,4 +818,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Congratulassion, tute le fòto ëd s\'àlbom a son ëstàita carià opura marcà coma da nen carié.</string>
<string name="show_in_explore">Smon-e andrinta a Explore</string>
<string name="show_in_nearby">Smon-e andrinta a Nearby</string>
<string name="image_tag_line_created_and_uploaded_by">Creà e carià da: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Creà da %1$s e carià da %2$s</string>
</resources>

View file

@ -20,9 +20,9 @@
<string name="add_contribution_from_camera">د کامرې له لارې ونډه ورزياتول</string>
<string name="add_contribution_from_photos">انځورونو له لارې ونډه ورزياتول</string>
<string name="add_contribution_from_contributions_gallery">د پخوانيو ونډو له انځورتونه د ونډې ورزياتول</string>
<string name="show_captions">نيونګې</string>
<string name="show_captions">نيونگې</string>
<string name="row_item_language_description">ژبې سپيناوی</string>
<string name="row_item_caption">نيونګ</string>
<string name="row_item_caption">نيونگ</string>
<string name="show_captions_description">سپيناوی</string>
<string name="nearby_row_image">انځور</string>
<string name="nearby_all">ټول</string>
@ -55,34 +55,47 @@
<item quantity="one">%1$d راپورته کول</item>
<item quantity="other">%1$d راپورته کېدنې</item>
</plurals>
<plurals name="receiving_shared_content">
<item quantity="one">وېشل شوې منځپانگه ترلاسه کوي.د انځورونو بهير شايد يو څه وخت ونيسي، دا د انځورونو په کچې او ستاسو وسيلې پورې اړه لري</item>
<item quantity="other">وېشل شوې منځپانگه ترلاسه کوي.د انځورونو بهير شايد يو څه وخت ونيسي، دا د انځورونو په کچې او ستاسو وسيلې پورې اړه لري</item>
</plurals>
<string name="navigation_item_explore">سپړنه</string>
<string name="preference_category_appearance">ښکارېدنه</string>
<string name="preference_category_general">ټولګړی</string>
<string name="preference_category_feedback">غبرګون</string>
<string name="preference_category_general">ټولگړی</string>
<string name="preference_category_feedback">غبرگون</string>
<string name="preference_category_privacy">پټنتيا</string>
<string name="app_name">ويکي خونديځ</string>
<string name="menu_settings">امستنې</string>
<string name="app_name">ويکيخونديځ</string>
<string name="menu_settings">اوڼنې</string>
<string name="intent_share_upload_label">خونديځ ته راپورته کول</string>
<string name="upload_in_progress">راپورته کول جريان لري</string>
<string name="username">کارن‌نوم</string>
<string name="password">پټنوم</string>
<string name="login_credential">خپل خونديځ بېټا ګڼون ته ورننوځئ</string>
<string name="login_credential">خپل خونديځ بېټا گڼون ته ورننوځئ</string>
<string name="login">ننوتل</string>
<string name="forgot_password">پټنوم مو هېر شوی؟</string>
<string name="signup">نومليکنه</string>
<string name="logging_in_title">په ننوتلو کې دی</string>
<string name="logging_in_message">لطفاً تم شۍ …</string>
<string name="updating_caption_title">نيونګې او سپيناوي تازه کول</string>
<string name="updating_caption_message">په تمه اوسئ</string>
<string name="login_success">بريالی ننوتون</string>
<string name="login_failed">ناسم ننوتون</string>
<string name="upload_failed">دوتنه و نه موندل شوه. لطفاً د يوې بلې دوتنې د موندلو هڅه وکړئ.</string>
<string name="retry_limit_reached">د بياځلي هڅې وروستۍ اندازه پوره شوه! مهرباني وکړئ، لغوه يې کړئ او بيا د راپورته کولو هڅه وکړئ</string>
<string name="logging_in_message">په تمه اوسئ...</string>
<string name="updating_caption_title">نيونگې او سپيناوي تازه کول</string>
<string name="updating_caption_message">په تمه اوسئ...</string>
<string name="login_success">بريالی ننوتون!</string>
<string name="login_failed">ناسم ننوتون!</string>
<string name="upload_failed">دوتنه و نه موندل شوه. مهرباني وکړئ د يوې بلې دوتنې د موندلو هڅه وکړئ.</string>
<string name="retry_limit_reached">د بياځلي هڅې وروستۍ اندازه پوره شوه! مهرباني وکړئ، ناگاره يې کړئ او بيا د راپورته کولو هڅه وکړئ</string>
<string name="unrestricted_battery_mode">بيټري سمون بندول؟</string>
<string name="suggest_unrestricted_mode">کله چې د بیټرۍ اصلاح بنده وي، له ۳ څخه زیاتو عکسونو اپلوډ کول ډیر باوري کار کوي. مهرباني وکړئ د اسانه اپلوډ تجربې لپاره د کامنز ایپ لپاره د ترتیباتو څخه د بیټرۍ اصلاح بند کړئ. \n\n د بیټرۍ اصلاح بندولو لپاره ممکنه ګامونه:\n\n لومړی ګام: لاندې \'ترتیبات\' تڼۍ باندې کلیک وکړئ.\n\n دوهم ګام: له \'نه غوره شوی\' څخه \'ټول ایپس\' ته واړوئ.\n\n دریم ګام: د \"کامن\" یا \"fr.free.nrw.commons\" لټون وکړئ.\n\n څلورم ګام: دا کلیک کړئ او \'غوره نه کړئ\' غوره کړئ.\n\n پنځم ګام: \'بشپړ شوی\' فشار ورکړئ.</string>
<string name="suggest_unrestricted_mode">کله چې د بيټرۍ سمون بند وي، له ۳ څخه زیاتو انځورونو راپورته کول ډېر باوري کار کوي. مهرباني وکړئ د اسانه راپورته کولو تجربې لپاره د خونديځ کارل د اوڼنو څخه بيټرۍ سمون بند کړئ.\n د بيټرۍ سمون بندولو لپاره شوني گامونه:\n\nلومړی گام: لاندې د \'اوڼنې\' تڼۍ کېکاږئ.\n\nدوهم گام: د \'ناسمون\' پرځای \'ټول کاريالونه\' وټاکئ.\n\nدرېم گام: \"خونديځ\" يا \"fr.free.nrw.commons\" وپلټئ.\nڅلورم گام: پرانيزئ او \'ناسمون\' وټاکئ.\nپينځم گام: \'وشو\'کېکاږئ.</string>
<string name="authentication_failed">کره توب نابريالی شو. مهرباني وکړئ، بياځلي ننوځئ.</string>
<string name="uploading_started">پورته کېدنه پيل شوه!</string>
<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_in_progress">د %1$s پورته کول</string>
<string name="upload_progress_notification_title_finishing">%1$s راپورته کېدنه بشپړېږي</string>
<string name="upload_failed_notification_title">%1$s راپورته کېدنه نابريالۍ شوه</string>
<string name="upload_paused_notification_title">د %1$s راپورته کېدنه ځنډول شوې</string>
<string name="upload_failed_notification_subtitle">کتلو لپاره دلته وټاپئ</string>
<string name="upload_paused_notification_subtitle">کتلو لپاره دلته وټاپئ</string>
<string name="title_activity_contributions">زما تازه پورته کېدنې</string>
<string name="contribution_state_queued">لږ</string>
<string name="contribution_state_failed">نابريال شو</string>
@ -92,32 +105,61 @@
<string name="menu_from_camera">انځور اخيستل</string>
<string name="menu_nearby">نژدې</string>
<string name="provider_contributions">زما پورته کېدنې</string>
<string name="menu_copy_link">وېبتړ لمېسل</string>
<string name="menu_link_copied">وېبتړ ټينگدړې ته لمېسل شوی دی</string>
<string name="menu_share">شريکول</string>
<string name="share_title_hint" fuzzy="true">سرليک</string>
<string name="menu_view_file_page">د دوتنې مخ کتل</string>
<string name="share_title_hint">نيونگ (اړين دی)</string>
<string name="add_caption_toast">مهرباني وکړئ، د دې دوتنې لپاره نيونگ ورکړئ</string>
<string name="share_description_hint">څرگندونه</string>
<string name="login_failed_network" fuzzy="true">د ننوتلو توان نلري - د شبکې ناکامي</string>
<string name="share_caption_hint">نيونگ</string>
<string name="login_failed_network">غونډال ته ننوتنه ناشونې ده - د جال پاتې راتلنه</string>
<string name="login_failed_throttled">ډیری ناکامه هڅې. لطفا څو دقیقې وروسته بیا هڅه وکړئ.</string>
<string name="login_failed_blocked">بخښنه غواړو، په دي کارن د کامنز لخوا بنديز ولګول شو</string>
<string name="login_failed_generic" fuzzy="true">غونډال کې ننوتنه نابريالې شوه</string>
<string name="login_failed_2fa_needed">تاسو بايد خپل دوه لامليز تاييد کوډ ورکړئ.</string>
<string name="login_failed_email_auth_needed">ستاسو برېښليک پتې ته د ننوتلو تاييد کوډ لېږل شوی دی. مهرباني وکړئ د ننوتلو لپاره کوډ ورکړئ.</string>
<string name="login_failed_generic">غونډال کې ننوتنه نابريالۍ شوه</string>
<string name="share_upload_button">پورته کول</string>
<string name="multiple_share_base_title">د دې ټولگې نوم</string>
<string name="provider_modifications">بدلونونه</string>
<string name="menu_upload_single">پورته کول</string>
<string name="categories_search_text_hint">وېشنيزې پلټل</string>
<string name="depicts_search_text_hint">هغه توکي وپلټئ چې ستاسو رسنۍ يې انځوروي (غر، تاج مح، او نور.)</string>
<string name="menu_save_categories">خوندي کول</string>
<string name="menu_overflow_desc">څنگزنه خوښنۍ</string>
<string name="refresh_button">بياتازه کول</string>
<string name="display_list_button">لړليک</string>
<string name="contributions_subtitle_zero">(تراوسه هيڅ راپورته کېدنه نشته)</string>
<string name="categories_not_found">%1$s سره ورته هيڅ وېشنيزې ونه موندل شوې</string>
<string name="depictions_not_found">%1$s سره هيڅ ورته ويکي‌اومتوک توکي ونه موندل شوه</string>
<string name="no_child_classes">%1$s هيڅ کوشنۍ ټولگې نه لري</string>
<string name="no_parent_classes">%1$s مور ټولگې نه لري</string>
<string name="categories_skip_explanation">ويکي‌اوتوک خونديځ کې د خپلو انځورونو موندلو لپاره وېشنيزې ورگډې کړئ.\nوېشنيزو ورگډولو لپاره ټاپل پيل کړئ.</string>
<string name="categories_activity_title">وېشنيزې</string>
<string name="title_activity_settings">امستنې</string>
<string name="title_activity_signup">نومليکنه</string>
<string name="title_activity_featured_images">ټاکلی انځور</string>
<string name="title_activity_custom_selector">دوديز ټاکونکی</string>
<string name="title_activity_category_details">وېشنيزه</string>
<string name="title_activity_review">ملگرو بياکتنه</string>
<string name="menu_about">په اړه</string>
<string name="about_privacy_policy" fuzzy="true">&lt;a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\"&gt;د پټنتيا تگلاره&lt;/a&gt;</string>
<string name="title_activity_about">په اړه</string>
<string name="menu_feedback">غبرگون لېږنه (برېښليک له لارې)</string>
<string name="no_email_client">هيڅ برېښليک سرچينه نه ده ځای پرځای شوې</string>
<string name="provider_categories">وروستۍ کارېدلې وېشنيزې</string>
<string name="waiting_first_sync">د لومړۍ همغږۍ په تمه...</string>
<string name="no_uploads_yet">تاسې تر اوسه کوم انځور نه دی پورته کړی.</string>
<string name="menu_retry_upload">بياآزمويل</string>
<string name="menu_cancel_upload">ناگارل</string>
<string name="menu_download">ښکته کول</string>
<string name="preference_license">تلواليز منښتليک</string>
<string name="preference_theme" fuzzy="true">د شپې بڼه</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_3_0">CC BY 3.0</string>
<string name="welcome_final_button_text">هو</string>
<string name="detail_panel_cats_label">وېشنيزې</string>

View file

@ -884,4 +884,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Поздравляем, все фотографии в этом альбоме либо загружены, либо помечены как не предназначенные для загрузки.</string>
<string name="show_in_explore">Показать в Explore</string>
<string name="show_in_nearby">Показать в Nearby</string>
<string name="image_tag_line_created_and_uploaded_by">Создано и загружено: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Создано %1$s и загружено %2$s</string>
</resources>

View file

@ -748,4 +748,6 @@
<string name="account_vanish_request_confirm">Нестајање је &lt;b&gt;последња опција&lt;/b&gt; и треба је користити &lt;b&gt;само када желите да заувек престанете са уређивањем&lt;/b&gt;, као и да сакријете што више својих прошлих асоцијација.&lt;br/&gt;&lt;br/&gt;Брисање налога на Викимедијној остави се врши променом назива налога тако да други не могу да препознају Ваше доприносе у процесу који се зове учтиви нестанак. &lt;b&gt;Нестајање не гарантује потпуну анонимност и не уклања доприносе на пројектима&lt;/b&gt;.</string>
<string name="caption">Поднапис</string>
<string name="caption_copied_to_clipboard">Поднапис копиран</string>
<string name="image_tag_line_created_and_uploaded_by">Направио и отпремио: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Направио %1$s а отпремио %2$s</string>
</resources>

View file

@ -25,6 +25,7 @@
* Liuxinyu970226
* Looong
* McDutchie
* Mishidexfc
* NACHOgao3
* Qiyue2001
* Shizhao
@ -168,6 +169,7 @@
<string name="login_failed_throttled">失败次数过多。请在几分钟后重试。</string>
<string name="login_failed_blocked">对不起,该用户已经被共享资源封禁</string>
<string name="login_failed_2fa_needed">您必须提供您的双因素验证代码。</string>
<string name="login_failed_email_auth_needed">登录验证码已发送至您的邮箱,请提供该验证码进行登录。</string>
<string name="login_failed_generic">登录失败</string>
<string name="share_upload_button">上传</string>
<string name="multiple_share_base_title">命名这组图像</string>
@ -273,6 +275,7 @@
<string name="become_a_tester_title">成为测试版的测试者</string>
<string name="become_a_tester_description">加入我们在Google Play上的测试计划更早获取新功能以及错误修复</string>
<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>
@ -873,4 +876,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">恭喜,专辑中的所有图片都已上传或标记为不上传。</string>
<string name="show_in_explore">在探索中显示</string>
<string name="show_in_nearby">显示在附近</string>
<string name="image_tag_line_created_and_uploaded_by">创建并上传者: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">由%1$s创建并由%2$s上传</string>
</resources>

View file

@ -873,4 +873,6 @@ Upload your first media by tapping on the add button.</string>
<string name="show_in_explore">Show in Explore</string>
<string name="show_in_nearby">Show in Nearby</string>
<string name="image_tag_line_created_and_uploaded_by">Created and uploaded by: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Created by %1$s and uploaded by %2$s</string>
</resources>

View file

@ -50,6 +50,7 @@ fun media(
licenseUrl: String? = "licenseUrl",
author: String? = "creator",
user: String? = "user",
creatorName: String? = null,
pageId: String = "pageId",
categories: List<String>? = listOf("categories"),
coordinates: LatLng? = LatLng(0.0, 0.0, 0.0f),
@ -67,6 +68,7 @@ fun media(
licenseUrl,
author,
user,
creatorName,
categories,
coordinates,
captions,

View file

@ -8,6 +8,7 @@ import androidx.test.core.app.ApplicationProvider
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.soloader.SoLoader
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.MediaDataExtractor
import fr.free.nrw.commons.R
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.TestUtility.setFinalStatic
@ -46,6 +47,9 @@ class ContributionViewHolderUnitTests {
@Mock
private lateinit var mediaClient: MediaClient
@Mock
private lateinit var mediaDataExtractor: MediaDataExtractor
@Mock
private lateinit var uri: Uri
@ -66,8 +70,9 @@ class ContributionViewHolderUnitTests {
SoLoader.setInTestMode()
Fresco.initialize(ApplicationProvider.getApplicationContext())
activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
compositeDisposable = CompositeDisposable()
parent = LayoutInflater.from(activity).inflate(R.layout.layout_contribution, null)
contributionViewHolder = ContributionViewHolder(parent, callback, mediaClient)
contributionViewHolder = ContributionViewHolder(parent, callback, compositeDisposable, mediaClient, mediaDataExtractor)
bindind = LayoutContributionBinding.bind(parent)

View file

@ -10,6 +10,7 @@ import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import java.lang.IllegalArgumentException
@ -42,23 +43,61 @@ class MediaConverterTest {
@Test
fun testConvertIfThumbUrlBlank() {
Mockito.`when`(imageInfo.getMetadata()).thenReturn(metadata)
Mockito.`when`(imageInfo.getThumbUrl()).thenReturn("")
Mockito.`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
Mockito.`when`(imageInfo.getMetadata()?.licenseUrl()).thenReturn("licenseUrl")
Mockito.`when`(imageInfo.getMetadata()?.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(imageInfo.getMetadata()).thenReturn(metadata)
`when`(imageInfo.getThumbUrl()).thenReturn("")
`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
`when`(metadata.licenseUrl()).thenReturn("licenseUrl")
`when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("Foo Bar")
media = mediaConverter.convert(page, entity, imageInfo)
assertEquals(media.thumbUrl, media.imageUrl, "originalUrl")
}
@Test
fun testConvertIfThumbUrlNotBlank() {
Mockito.`when`(imageInfo.getMetadata()).thenReturn(metadata)
Mockito.`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
Mockito.`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
Mockito.`when`(imageInfo.getMetadata()?.licenseUrl()).thenReturn("licenseUrl")
Mockito.`when`(imageInfo.getMetadata()?.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(imageInfo.getMetadata()).thenReturn(metadata)
`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
`when`(metadata.licenseUrl()).thenReturn("licenseUrl")
`when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("Foo Bar")
media = mediaConverter.convert(page, entity, imageInfo)
assertEquals(media.thumbUrl, "thumbUrl")
}
@Test
fun `test converting artist value (author) with html links`() {
`when`(imageInfo.getMetadata()).thenReturn(metadata)
`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
`when`(metadata.licenseUrl()).thenReturn("licenseUrl")
`when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("<a href=\"//commons.wikimedia.org/wiki/User:Foo_Bar\" title=\"Foo Bar\">Foo Bar</a>")
// Artist values like above is very common, found in file pages created via UploadWizard
media = mediaConverter.convert(page, entity, imageInfo)
assertEquals("Foo Bar", media.author)
}
@Test
fun `test convert artist value (author) in plain text`() {
`when`(imageInfo.getMetadata()).thenReturn(metadata)
`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
`when`(metadata.licenseUrl()).thenReturn("licenseUrl")
`when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("Foo Bar")
media = mediaConverter.convert(page, entity, imageInfo)
assertEquals("Foo Bar", media.author)
}
@Test
fun `test convert artist value (author) containing red link`() {
`when`(imageInfo.getMetadata()).thenReturn(metadata)
`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
`when`(metadata.licenseUrl()).thenReturn("licenseUrl")
`when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("<a href=\"/w/index.php?title=User:Foo&action=edit&redlink=1\" class=\"new\" title=\"User:Foo (page does not exist)\">Foo</a>")
media = mediaConverter.convert(page, entity, imageInfo)
assertEquals("Foo", media.author)
}
}

View file

@ -0,0 +1,78 @@
package fr.free.nrw.commons.utils
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import com.nhaarman.mockitokotlin2.whenever
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.media.IdAndLabels
import org.junit.Assert.*
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [21], application = TestCommonsApplication::class, qualifiers="en-rUS")
class MediaAttributionUtilTest {
@Mock
private lateinit var appContext: Context
@Before
fun setup() {
appContext = ApplicationProvider.getApplicationContext()
}
@Test
fun getTagLineWithUploaderOnly() {
val media = mock(Media::class.java)
whenever(media.user).thenReturn("TestUploader")
whenever(media.author).thenReturn(null)
assertEquals("Uploaded by: TestUploader",
MediaAttributionUtil.getTagLine(media, appContext))
}
@Test
fun `get tag line from same author and uploader`() {
val media = mock(Media::class.java)
whenever(media.user).thenReturn("TestUser")
whenever(media.getAttributedAuthor()).thenReturn("TestUser")
assertEquals("Created and uploaded by: TestUser",
MediaAttributionUtil.getTagLine(media, appContext))
}
@Test
fun `get creator name from EN label`() {
assertEquals("FooBar",
MediaAttributionUtil.getCreatorName(listOf(IdAndLabels("Q1", mapOf("en" to "FooBar")))))
}
@Test
fun `get creator name from ES label`() {
assertEquals("FooBar",
MediaAttributionUtil.getCreatorName(listOf(IdAndLabels("Q2", mapOf("es" to "FooBar")))))
}
@Test
fun `get creator name from EN label and ignore ES label`() {
assertEquals("Bar",
MediaAttributionUtil.getCreatorName(listOf(
IdAndLabels("Q3", mapOf("en" to "Bar", "es" to "Foo")))))
}
@Test
fun `get creator name from two creators`() {
val name = MediaAttributionUtil.getCreatorName(listOf(
IdAndLabels("Q1", mapOf("en" to "Foo")),
IdAndLabels("Q1", mapOf("en" to "Bar"))
))
assertNotNull(name)
assertTrue(name!!.contains("Foo"))
assertTrue(name.contains("Bar"))
}
}