Merge branch 'main' into fix_duplicate_file_crash

This commit is contained in:
Nicolas Raoul 2025-05-27 22:57:18 +09:00 committed by GitHub
commit 5269327f40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
96 changed files with 1939 additions and 464 deletions

View file

@ -1,5 +1,46 @@
# Wikimedia Commons for Android # Wikimedia Commons for Android
## v5.3.0
### What's changed
* Enable EmailAuth support
* Explore map images no longer show "Unknown"
* Fix crash when removing last two images of multiupload
* Mark ❌ for closed locations (P3999) in Nearby
* Fix two pin labels staying visible at the same time in Explore map
* Refactoring and minor UI improvements
## v5.2.0
v5.2.0 boasts several new functionalities like:
* A new refresh button lets you quickly reload the Nearby map
* Bookmarks now support categories
* Improved feedback and consistency in the user interface
* Bug fixes and performance improvements
### What's changed
* Implement "Refresh" button to clear the cache and reload the Nearby map.
* `CommonsApplication` migrate to kotlin & some lint fixes.
* Revert back to MainScope for database and UI updates and make database operations thread safe.
* Hide edit options for logged-out users in Explore screen.
* Introduced a button to delete the current folder in custom selector.
* Improve Unique File Name Search.
* Migration of several modules from Java to Kotlin.
* Fix modification on bottom sheet's data when coming from Nearby Banner and clicked on other pins.
* Bug fixes and enhancement of Achievements screen.
* Show where file is being used on Commons and other wikis.
* Migrate android.media.ExifInterface to androidx.exifinterface.media.ExifInterface as android.media.ExifInterface had security flaws on older devices.
* Make dialogs modal and always show the upload icon.
* Fix unintentional deletion of subfolders and non-images by custom selector.
* Bookmark categories.
* Add pull down to refresh in the Contributions screen.
* Fix race condition and lag when loading pin details, faster overlay management.
* Show cached pins in Nearby even when internet is unavailable
Full changelog with the list of contributors: [`v5.1.2...v5.2.0`](https://github.com/commons-app/apps-android-commons/compare/v5.1.2...v5.2.0).
## v5.1.2 ## v5.1.2
### What's changed ### What's changed

View file

@ -119,7 +119,8 @@ dependencies {
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.0" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.0"
testImplementation 'com.facebook.soloader:soloader:0.10.5' testImplementation 'com.facebook.soloader:soloader:0.10.5'
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3" testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3"
debugImplementation("androidx.fragment:fragment-testing:1.6.2") debugImplementation("androidx.fragment:fragment-testing-manifest:1.6.2")
androidTestImplementation("androidx.fragment:fragment-testing:1.6.2")
testImplementation "commons-io:commons-io:2.6" testImplementation "commons-io:commons-io:2.6"
// Android testing // Android testing
@ -212,8 +213,8 @@ android {
defaultConfig { defaultConfig {
//applicationId 'fr.free.nrw.commons' //applicationId 'fr.free.nrw.commons'
versionCode 1046 versionCode 1051
versionName '5.1.3' versionName '5.4.0'
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
minSdkVersion 21 minSdkVersion 21
@ -318,7 +319,7 @@ android {
buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\""
buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\""
buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\"" buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\""
buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"" buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://commons-app.github.io/privacy-policy\""
buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\"" buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\""
buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons\"" buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons\""
buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.contributions.contentprovider\"" buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.contributions.contentprovider\""
@ -333,6 +334,7 @@ android {
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\"" buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\"" buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\"" buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\""
buildConfigField "String", "CREATOR_PROPERTY", "\"P170\""
dimension 'tier' dimension 'tier'
} }
@ -355,7 +357,7 @@ android {
buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\""
buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\""
buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\"" buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\""
buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"" buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://commons-app.github.io/privacy-policy\""
buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\"" buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\""
buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons.beta\"" buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons.beta\""
buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.beta.contributions.contentprovider\"" buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.beta.contributions.contentprovider\""
@ -370,6 +372,7 @@ android {
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\"" buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\"" buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\"" buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\""
buildConfigField "String", "CREATOR_PROPERTY", "\"P253075\""
dimension 'tier' dimension 'tier'
} }
} }

View file

@ -53,6 +53,7 @@ class Media constructor(
*/ */
var author: String? = null, var author: String? = null,
var user: String? = null, var user: String? = null,
var creatorName: String? = null,
/** /**
* Gets the categories the file falls under. * Gets the categories the file falls under.
* @return file categories as an ArrayList of Strings * @return file categories as an ArrayList of Strings
@ -66,6 +67,7 @@ class Media constructor(
var captions: Map<String, String> = emptyMap(), var captions: Map<String, String> = emptyMap(),
var descriptions: Map<String, String> = emptyMap(), var descriptions: Map<String, String> = emptyMap(),
var depictionIds: List<String> = emptyList(), var depictionIds: List<String> = emptyList(),
var creatorIds: List<String> = emptyList(),
/** /**
* This field was added to find non-hidden categories * This field was added to find non-hidden categories
* Stores the mapping of category title to hidden attribute * Stores the mapping of category title to hidden attribute
@ -130,6 +132,7 @@ class Media constructor(
* returns user * returns user
* @return Author or 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? { fun getAuthorOrUser(): String? {
return if (!author.isNullOrEmpty()) { return if (!author.isNullOrEmpty()) {
author 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 * Gets media display title
* @return Media title * @return Media title

View file

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

View file

@ -18,6 +18,17 @@ public class ViewPagerAdapter extends FragmentPagerAdapter {
super(manager); super(manager);
} }
/**
* Constructs a ViewPagerAdapter with a specified Fragment Manager and Fragment resume behavior.
*
* @param manager The FragmentManager
* @param behavior An integer which represents the behavior of non visible fragments. See
* FragmentPagerAdapter.java for options.
*/
public ViewPagerAdapter(FragmentManager manager, int behavior) {
super(manager, behavior);
}
/** /**
* This method returns the fragment of the viewpager at a particular position * This method returns the fragment of the viewpager at a particular position
* @param position * @param position

View file

@ -65,6 +65,7 @@ class LoginActivity : AccountAuthenticatorActivity() {
private val delegate: AppCompatDelegate by lazy { private val delegate: AppCompatDelegate by lazy {
AppCompatDelegate.create(this, null) AppCompatDelegate.create(this, null)
} }
private var lastLoginResult: LoginResult? = null
public override fun onCreate(savedInstanceState: Bundle?) { public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -271,6 +272,7 @@ class LoginActivity : AccountAuthenticatorActivity() {
showLoggingProgressBar() showLoggingProgressBar()
loginClient.doLogin(username, loginClient.doLogin(username,
password, password,
lastLoginResult,
twoFactorCode, twoFactorCode,
Locale.getDefault().language, Locale.getDefault().language,
object : LoginCallback { object : LoginCallback {
@ -280,9 +282,17 @@ class LoginActivity : AccountAuthenticatorActivity() {
onLoginSuccess(loginResult) onLoginSuccess(loginResult)
} }
override fun twoFactorPrompt(caught: Throwable, token: String?) = runOnUiThread { override fun twoFactorPrompt(loginResult: LoginResult, caught: Throwable, token: String?) = runOnUiThread {
Timber.d("Requesting 2FA prompt") Timber.d("Requesting 2FA prompt")
progressDialog!!.dismiss() progressDialog!!.dismiss()
lastLoginResult = loginResult
askUserForTwoFactorAuth()
}
override fun emailAuthPrompt(loginResult: LoginResult, caught: Throwable, token: String?) {
Timber.d("Requesting email auth prompt")
progressDialog!!.dismiss()
lastLoginResult = loginResult
askUserForTwoFactorAuth() askUserForTwoFactorAuth()
} }
@ -341,12 +351,13 @@ class LoginActivity : AccountAuthenticatorActivity() {
progressDialog!!.dismiss() progressDialog!!.dismiss()
with(binding!!) { with(binding!!) {
twoFactorContainer.visibility = View.VISIBLE twoFactorContainer.visibility = View.VISIBLE
twoFactorContainer.hint = getString(if (lastLoginResult is LoginResult.EmailAuthResult) R.string.email_auth_code else R.string._2fa_code)
loginTwoFactor.visibility = View.VISIBLE loginTwoFactor.visibility = View.VISIBLE
loginTwoFactor.requestFocus() loginTwoFactor.requestFocus()
} }
val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY) imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY)
showMessageAndCancelDialog(R.string.login_failed_2fa_needed) showMessageAndCancelDialog(getString(if (lastLoginResult is LoginResult.EmailAuthResult) R.string.login_failed_email_auth_needed else R.string.login_failed_2fa_needed))
} }
@VisibleForTesting @VisibleForTesting

View file

@ -32,7 +32,7 @@ class CsrfTokenClient(
try { try {
if (retry > 0) { if (retry > 0) {
// Log in explicitly // Log in explicitly
loginClient.loginBlocking(userName, password, "") loginClient.loginBlocking(userName, password)
} }
// Get CSRFToken response off the main thread. // Get CSRFToken response off the main thread.
@ -92,6 +92,8 @@ class CsrfTokenClient(
override fun failure(caught: Throwable?) = retryWithLogin(cb) { caught } override fun failure(caught: Throwable?) = retryWithLogin(cb) { caught }
override fun twoFactorPrompt() = cb.twoFactorPrompt() override fun twoFactorPrompt() = cb.twoFactorPrompt()
override fun emailAuthPrompt() = cb.emailAuthPrompt()
}, },
) )
@ -165,10 +167,17 @@ class CsrfTokenClient(
} }
override fun twoFactorPrompt( override fun twoFactorPrompt(
loginResult: LoginResult,
caught: Throwable, caught: Throwable,
token: String?, token: String?,
) = callback.twoFactorPrompt() ) = callback.twoFactorPrompt()
override fun emailAuthPrompt(
loginResult: LoginResult,
caught: Throwable,
token: String?,
) = callback.emailAuthPrompt()
// Should not happen here, but call the callback just in case. // Should not happen here, but call the callback just in case.
override fun passwordResetPrompt(token: String?) = callback.failure(LoginFailedException("Logged in with temporary password.")) override fun passwordResetPrompt(token: String?) = callback.failure(LoginFailedException("Logged in with temporary password."))
@ -190,6 +199,8 @@ class CsrfTokenClient(
fun failure(caught: Throwable?) fun failure(caught: Throwable?)
fun twoFactorPrompt() fun twoFactorPrompt()
fun emailAuthPrompt()
} }
companion object { companion object {

View file

@ -4,6 +4,13 @@ interface LoginCallback {
fun success(loginResult: LoginResult) fun success(loginResult: LoginResult)
fun twoFactorPrompt( fun twoFactorPrompt(
loginResult: LoginResult,
caught: Throwable,
token: String?,
)
fun emailAuthPrompt(
loginResult: LoginResult,
caught: Throwable, caught: Throwable,
token: String?, token: String?,
) )

View file

@ -1,6 +1,7 @@
package fr.free.nrw.commons.auth.login package fr.free.nrw.commons.auth.login
import android.text.TextUtils import android.text.TextUtils
import fr.free.nrw.commons.auth.login.LoginResult.EmailAuthResult
import fr.free.nrw.commons.auth.login.LoginResult.OAuthResult import fr.free.nrw.commons.auth.login.LoginResult.OAuthResult
import fr.free.nrw.commons.auth.login.LoginResult.ResetPasswordResult import fr.free.nrw.commons.auth.login.LoginResult.ResetPasswordResult
import fr.free.nrw.commons.wikidata.WikidataConstants.WIKIPEDIA_URL import fr.free.nrw.commons.wikidata.WikidataConstants.WIKIPEDIA_URL
@ -51,6 +52,7 @@ class LoginClient(
password, password,
null, null,
null, null,
null,
response.body()!!.query()!!.loginToken(), response.body()!!.query()!!.loginToken(),
userLanguage, userLanguage,
cb, cb,
@ -75,6 +77,7 @@ class LoginClient(
password: String, password: String,
retypedPassword: String?, retypedPassword: String?,
twoFactorCode: String?, twoFactorCode: String?,
emailAuthCode: String?,
loginToken: String?, loginToken: String?,
userLanguage: String, userLanguage: String,
cb: LoginCallback, cb: LoginCallback,
@ -82,7 +85,7 @@ class LoginClient(
this.userLanguage = userLanguage this.userLanguage = userLanguage
loginCall = loginCall =
if (twoFactorCode.isNullOrEmpty() && retypedPassword.isNullOrEmpty()) { if (twoFactorCode.isNullOrEmpty() && emailAuthCode.isNullOrEmpty() && retypedPassword.isNullOrEmpty()) {
loginInterface.postLogIn(userName, password, loginToken, userLanguage, WIKIPEDIA_URL) loginInterface.postLogIn(userName, password, loginToken, userLanguage, WIKIPEDIA_URL)
} else { } else {
loginInterface.postLogIn( loginInterface.postLogIn(
@ -90,6 +93,7 @@ class LoginClient(
password, password,
retypedPassword, retypedPassword,
twoFactorCode, twoFactorCode,
emailAuthCode,
loginToken, loginToken,
userLanguage, userLanguage,
true, true,
@ -112,10 +116,18 @@ class LoginClient(
when (loginResult) { when (loginResult) {
is OAuthResult -> is OAuthResult ->
cb.twoFactorPrompt( cb.twoFactorPrompt(
loginResult,
LoginFailedException(loginResult.message), LoginFailedException(loginResult.message),
loginToken, loginToken,
) )
is EmailAuthResult ->
cb.emailAuthPrompt(
loginResult,
LoginFailedException(loginResult.message),
loginToken
)
is ResetPasswordResult -> cb.passwordResetPrompt(loginToken) is ResetPasswordResult -> cb.passwordResetPrompt(loginToken)
is LoginResult.Result -> is LoginResult.Result ->
@ -147,6 +159,7 @@ class LoginClient(
fun doLogin( fun doLogin(
username: String, username: String,
password: String, password: String,
lastLoginResult: LoginResult?,
twoFactorCode: String, twoFactorCode: String,
userLanguage: String, userLanguage: String,
loginCallback: LoginCallback, loginCallback: LoginCallback,
@ -159,7 +172,10 @@ class LoginClient(
) = if (response.isSuccessful) { ) = if (response.isSuccessful) {
val loginToken = response.body()?.query()?.loginToken() val loginToken = response.body()?.query()?.loginToken()
loginToken?.let { loginToken?.let {
login(username, password, null, twoFactorCode, it, userLanguage, loginCallback) login(username, password, null,
if (lastLoginResult is OAuthResult) twoFactorCode else null,
if (lastLoginResult is EmailAuthResult) twoFactorCode else null,
it, userLanguage, loginCallback)
} ?: run { } ?: run {
loginCallback.error(IOException("Failed to retrieve login token")) loginCallback.error(IOException("Failed to retrieve login token"))
} }
@ -181,7 +197,8 @@ class LoginClient(
fun loginBlocking( fun loginBlocking(
userName: String, userName: String,
password: String, password: String,
twoFactorCode: String?, twoFactorCode: String? = null,
emailAuthCode: String? = null
) { ) {
val tokenResponse = getLoginToken().execute() val tokenResponse = getLoginToken().execute()
if (tokenResponse if (tokenResponse
@ -195,7 +212,7 @@ class LoginClient(
val loginToken = tokenResponse.body()?.query()?.loginToken() val loginToken = tokenResponse.body()?.query()?.loginToken()
val tempLoginCall = val tempLoginCall =
if (twoFactorCode.isNullOrEmpty()) { if (twoFactorCode.isNullOrEmpty() && emailAuthCode.isNullOrEmpty()) {
loginInterface.postLogIn(userName, password, loginToken, userLanguage, WIKIPEDIA_URL) loginInterface.postLogIn(userName, password, loginToken, userLanguage, WIKIPEDIA_URL)
} else { } else {
loginInterface.postLogIn( loginInterface.postLogIn(
@ -203,6 +220,7 @@ class LoginClient(
password, password,
null, null,
twoFactorCode, twoFactorCode,
emailAuthCode,
loginToken, loginToken,
userLanguage, userLanguage,
true, true,
@ -214,7 +232,7 @@ class LoginClient(
val loginResult = loginResponse.toLoginResult(password) ?: throw IOException("Unexpected response when logging in.") val loginResult = loginResponse.toLoginResult(password) ?: throw IOException("Unexpected response when logging in.")
if ("UI" == loginResult.status) { if ("UI" == loginResult.status) {
if (loginResult is OAuthResult) { if (loginResult is OAuthResult || loginResult is EmailAuthResult) {
// TODO: Find a better way to boil up the warning about 2FA // TODO: Find a better way to boil up the warning about 2FA
throw LoginFailedException(loginResult.message) throw LoginFailedException(loginResult.message)
} }

View file

@ -35,7 +35,8 @@ interface LoginInterface {
@Field("password") pass: String?, @Field("password") pass: String?,
@Field("retype") retypedPass: String?, @Field("retype") retypedPass: String?,
@Field("OATHToken") twoFactorCode: String?, @Field("OATHToken") twoFactorCode: String?,
@Field("logintoken") token: String?, @Field("token") emailAuthToken: String?,
@Field("logintoken") loginToken: String?,
@Field("uselang") userLanguage: String?, @Field("uselang") userLanguage: String?,
@Field("logincontinue") loginContinue: Boolean, @Field("logincontinue") loginContinue: Boolean,
): Call<LoginResponse?> ): Call<LoginResponse?>

View file

@ -2,6 +2,7 @@ package fr.free.nrw.commons.auth.login
import com.google.gson.annotations.SerializedName import com.google.gson.annotations.SerializedName
import fr.free.nrw.commons.auth.login.LoginResult.OAuthResult import fr.free.nrw.commons.auth.login.LoginResult.OAuthResult
import fr.free.nrw.commons.auth.login.LoginResult.EmailAuthResult
import fr.free.nrw.commons.auth.login.LoginResult.ResetPasswordResult import fr.free.nrw.commons.auth.login.LoginResult.ResetPasswordResult
import fr.free.nrw.commons.auth.login.LoginResult.Result import fr.free.nrw.commons.auth.login.LoginResult.Result
import fr.free.nrw.commons.wikidata.mwapi.MwServiceError import fr.free.nrw.commons.wikidata.mwapi.MwServiceError
@ -27,11 +28,13 @@ internal class ClientLogin {
fun toLoginResult(password: String): LoginResult { fun toLoginResult(password: String): LoginResult {
var userMessage = message var userMessage = message
if ("UI" == status) { if ("UI" == status) {
if (requests != null) { requests?.forEach { request ->
for (req in requests) { request.id()?.let {
if ("MediaWiki\\Extension\\OATHAuth\\Auth\\TOTPAuthenticationRequest" == req.id()) { if (it.endsWith("TOTPAuthenticationRequest")) {
return OAuthResult(status, userName, password, message) return OAuthResult(status, userName, password, message)
} else if ("MediaWiki\\Auth\\PasswordAuthenticationRequest" == req.id()) { } else if (it.endsWith("EmailAuthAuthenticationRequest")) {
return EmailAuthResult(status, userName, password, message)
} else if (it.endsWith("PasswordAuthenticationRequest")) {
return ResetPasswordResult(status, userName, password, message) return ResetPasswordResult(status, userName, password, message)
} }
} }
@ -49,7 +52,7 @@ internal class Request {
private val required: String? = null private val required: String? = null
private val provider: String? = null private val provider: String? = null
private val account: String? = null private val account: String? = null
private val fields: Map<String, RequestField>? = null internal val fields: Map<String, RequestField>? = null
fun id(): String? = id fun id(): String? = id
} }
@ -57,5 +60,5 @@ internal class Request {
internal class RequestField { internal class RequestField {
private val type: String? = null private val type: String? = null
private val label: String? = null private val label: String? = null
private val help: String? = null internal val help: String? = null
} }

View file

@ -24,6 +24,13 @@ sealed class LoginResult(
message: String?, message: String?,
) : LoginResult(status, userName, password, message) ) : LoginResult(status, userName, password, message)
class EmailAuthResult(
status: String,
userName: String?,
password: String?,
message: String?,
) : LoginResult(status, userName, password, message)
class ResetPasswordResult( class ResetPasswordResult(
status: String, status: String,
userName: String?, userName: String?,

View file

@ -1,7 +1,6 @@
package fr.free.nrw.commons.bookmarks.locations package fr.free.nrw.commons.bookmarks.locations
import android.Manifest.permission import android.Manifest.permission
import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -9,15 +8,12 @@ import android.view.ViewGroup
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions import androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
import fr.free.nrw.commons.R import fr.free.nrw.commons.R
import fr.free.nrw.commons.contributions.ContributionController import fr.free.nrw.commons.contributions.ContributionController
import fr.free.nrw.commons.databinding.FragmentBookmarksLocationsBinding import fr.free.nrw.commons.databinding.FragmentBookmarksLocationsBinding
import fr.free.nrw.commons.filepicker.FilePicker
import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.nearby.Place
import fr.free.nrw.commons.nearby.fragments.CommonPlaceClickActions import fr.free.nrw.commons.nearby.fragments.CommonPlaceClickActions
import fr.free.nrw.commons.nearby.fragments.PlaceAdapter import fr.free.nrw.commons.nearby.fragments.PlaceAdapter
@ -41,33 +37,27 @@ class BookmarkLocationsFragment : DaggerFragment() {
private val cameraPickLauncherForResult = private val cameraPickLauncherForResult =
registerForActivityResult(StartActivityForResult()) { result -> registerForActivityResult(StartActivityForResult()) { result ->
contributionController.handleActivityResultWithCallback( contributionController.handleActivityResultWithCallback(
requireActivity(), requireActivity()
object: FilePicker.HandleActivityResult { ) { callbacks ->
override fun onHandleActivityResult(callbacks: FilePicker.Callbacks) { contributionController.onPictureReturnedFromCamera(
contributionController.onPictureReturnedFromCamera( result,
result, requireActivity(),
requireActivity(), callbacks
callbacks )
) }
}
}
)
} }
private val galleryPickLauncherForResult = private val galleryPickLauncherForResult =
registerForActivityResult(StartActivityForResult()) { result -> registerForActivityResult(StartActivityForResult()) { result ->
contributionController.handleActivityResultWithCallback( contributionController.handleActivityResultWithCallback(
requireActivity(), requireActivity()
object: FilePicker.HandleActivityResult { ) { callbacks ->
override fun onHandleActivityResult(callbacks: FilePicker.Callbacks) { contributionController.onPictureReturnedFromGallery(
contributionController.onPictureReturnedFromGallery( result,
result, requireActivity(),
requireActivity(), callbacks
callbacks )
) }
}
}
)
} }
companion object { companion object {

View file

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

View file

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

View file

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

View file

@ -387,35 +387,40 @@ after opening the app.
} }
override fun onBackPressed() { override fun onBackPressed() {
if (contributionsFragment != null && activeFragment == ActiveFragment.CONTRIBUTIONS) { when (activeFragment) {
ActiveFragment.CONTRIBUTIONS -> {
// Means that contribution fragment is visible // Means that contribution fragment is visible
if (!contributionsFragment!!.backButtonClicked()) { //If this one does not wan't to handle if (contributionsFragment?.backButtonClicked() != true) { //If this one does not want to handle
// the back press, let the activity do so // the back press, let the activity do so
super.onBackPressed() super.onBackPressed()
}
} }
} else if (nearbyParentFragment != null && activeFragment == ActiveFragment.NEARBY) { ActiveFragment.NEARBY -> {
// Means that nearby fragment is visible // Means that nearby fragment is visible
/* If function nearbyParentFragment.backButtonClick() returns false, it means that the bottomsheet is if (nearbyParentFragment?.backButtonClicked() != true) {
not expanded. So if the back button is pressed, then go back to the Contributions tab */ nearbyParentFragment?.let {
if (!nearbyParentFragment!!.backButtonClicked()) { supportFragmentManager.beginTransaction().remove(it).commit()
supportFragmentManager.beginTransaction().remove(nearbyParentFragment!!) }
.commit()
setSelectedItemId(NavTab.CONTRIBUTIONS.code()) setSelectedItemId(NavTab.CONTRIBUTIONS.code())
}
} }
} else if (exploreFragment != null && activeFragment == ActiveFragment.EXPLORE) { ActiveFragment.EXPLORE -> {
// Means that explore fragment is visible // Explore Fragment is visible
if (!exploreFragment!!.onBackPressed()) { if (exploreFragment?.onBackPressed() != true) {
if (applicationKvStore!!.getBoolean("login_skipped")) { if (applicationKvStore?.getBoolean("login_skipped") == true) {
super.onBackPressed() super.onBackPressed()
} else { } else {
setSelectedItemId(NavTab.CONTRIBUTIONS.code()) setSelectedItemId(NavTab.CONTRIBUTIONS.code())
}
} }
} }
} else if (bookmarkFragment != null && activeFragment == ActiveFragment.BOOKMARK) { ActiveFragment.BOOKMARK -> {
// Means that bookmark fragment is visible // Means that bookmark fragment is visible
bookmarkFragment!!.onBackPressed() bookmarkFragment?.onBackPressed()
} else { }
else -> {
super.onBackPressed() super.onBackPressed()
}
} }
} }

View file

@ -26,6 +26,7 @@ import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.util.TreeMap import java.util.TreeMap
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@ -342,45 +343,36 @@ class ImageAdapter(
numberOfSelectedImagesMarkedAsNotForUpload-- numberOfSelectedImagesMarkedAsNotForUpload--
} }
notifyItemChanged(position, ImageUnselected()) notifyItemChanged(position, ImageUnselected())
// Getting index from all images index when switch is on
val indexes =
if (showAlreadyActionedImages) {
ImageHelper.getIndexList(selectedImages, images)
// Getting index from actionable images when switch is off
} else {
ImageHelper.getIndexList(selectedImages, ArrayList(actionableImagesMap.values))
}
for (index in indexes) {
notifyItemChanged(index, ImageSelectedOrUpdated())
}
} else { } else {
if (holder.isItemUploaded()) { val image = images[position]
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show() scope.launch(ioDispatcher) {
} else { val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher)
if (holder.isItemNotForUpload()) { withContext(Dispatchers.Main) {
numberOfSelectedImagesMarkedAsNotForUpload++ if (holder.isItemUploaded()) {
} Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
return@withContext
// Getting index from all images index when switch is on
val indexes: ArrayList<Int> =
if (showAlreadyActionedImages) {
selectedImages.add(images[position])
ImageHelper.getIndexList(selectedImages, images)
// Getting index from actionable images when switch is off
} else {
selectedImages.add(ArrayList(actionableImagesMap.values)[position])
ImageHelper.getIndexList(selectedImages, ArrayList(actionableImagesMap.values))
} }
for (index in indexes) { if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) {
notifyItemChanged(index, ImageSelectedOrUpdated()) holder.itemUploaded()
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
return@withContext
}
if (!holder.isItemUploaded() && imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) {
Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show()
}
if (holder.isItemNotForUpload()) {
numberOfSelectedImagesMarkedAsNotForUpload++
}
selectedImages.add(image)
notifyItemChanged(position, ImageSelectedOrUpdated())
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
} }
} }
} }
imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload)
} }
/** /**

View file

@ -638,17 +638,20 @@ class CustomSelectorActivity :
finishPickImages(arrayListOf()) finishPickImages(arrayListOf())
return return
} }
var i = 0 scope.launch(ioDispatcher) {
while (i < selectedImages.size) { val uniqueImages = selectedImages.distinctBy { image ->
val path = selectedImages[i].path CustomSelectorUtils.getImageSHA1(
val file = File(path) image.uri,
if (!file.exists()) { ioDispatcher,
selectedImages.removeAt(i) fileUtilsWrapper,
i-- contentResolver
)
}
withContext(Dispatchers.Main) {
finishPickImages(ArrayList(uniqueImages))
} }
i++
} }
finishPickImages(selectedImages)
} }
/** /**

View file

@ -12,6 +12,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager.OnPageChangeListener; import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.ViewPagerAdapter; import fr.free.nrw.commons.ViewPagerAdapter;
@ -69,7 +70,9 @@ public class ExploreFragment extends CommonsDaggerSupportFragment {
loadNearbyMapData(); loadNearbyMapData();
binding = FragmentExploreBinding.inflate(inflater, container, false); binding = FragmentExploreBinding.inflate(inflater, container, false);
viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager()); viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager(),
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
binding.viewPager.setAdapter(viewPagerAdapter); binding.viewPager.setAdapter(viewPagerAdapter);
binding.viewPager.setId(R.id.viewPager); binding.viewPager.setId(R.id.viewPager);
binding.tabLayout.setupWithViewPager(binding.viewPager); binding.tabLayout.setupWithViewPager(binding.viewPager);

View file

@ -120,6 +120,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
private double prevZoom; private double prevZoom;
private double prevLatitude; private double prevLatitude;
private double prevLongitude; private double prevLongitude;
private boolean recentlyCameFromNearbyMap;
private ExploreMapPresenter presenter; private ExploreMapPresenter presenter;
@ -221,7 +222,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
binding.mapView.getController().setZoom(ZOOM_LEVEL); binding.mapView.getController().setZoom(ZOOM_LEVEL);
} }
performMapReadyActions();
binding.mapView.getOverlays().add(new MapEventsOverlay(new MapEventsReceiver() { binding.mapView.getOverlays().add(new MapEventsOverlay(new MapEventsReceiver() {
@Override @Override
@ -341,7 +341,12 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
!locationPermissionsHelper.checkLocationPermission(getActivity())) { !locationPermissionsHelper.checkLocationPermission(getActivity())) {
isPermissionDenied = true; isPermissionDenied = true;
} }
lastKnownLocation = MapUtils.getDefaultLatLng();
lastKnownLocation = getLastLocation();
if (lastKnownLocation == null) {
lastKnownLocation = MapUtils.getDefaultLatLng();
}
// if we came from 'Show in Explore' in Nearby, load Nearby map center and zoom // if we came from 'Show in Explore' in Nearby, load Nearby map center and zoom
if (isCameFromNearbyMap()) { if (isCameFromNearbyMap()) {
@ -367,6 +372,16 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
prevLatitude = getArguments().getDouble("prev_latitude"); prevLatitude = getArguments().getDouble("prev_latitude");
prevLongitude = getArguments().getDouble("prev_longitude"); prevLongitude = getArguments().getDouble("prev_longitude");
} }
setRecentlyCameFromNearbyMap(isCameFromNearbyMap());
}
/**
* @return The LatLng from the previous Fragment's map center or (0,0,0) coordinates
* if that information is not available/applicable.
*/
public LatLng getPreviousLatLng() {
return new LatLng(prevLatitude, prevLongitude, (float)prevZoom);
} }
/** /**
@ -379,6 +394,23 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
return prevZoom != 0.0 || prevLatitude != 0.0 || prevLongitude != 0.0; return prevZoom != 0.0 || prevLatitude != 0.0 || prevLongitude != 0.0;
} }
/**
* Gets the value that indicates if the user navigated from "Show in Explore" in Nearby and
* that the LatLng from Nearby has yet to be searched for map markers.
*/
public boolean recentlyCameFromNearbyMap() {
return recentlyCameFromNearbyMap;
}
/**
* Sets the value that indicates if the user navigated from "Show in Explore" in Nearby and
* that the LatLng from Nearby has yet to be searched for map markers.
* @param newValue The value to set.
*/
public void setRecentlyCameFromNearbyMap(boolean newValue) {
recentlyCameFromNearbyMap = newValue;
}
public void loadNearbyMapFromExplore() { public void loadNearbyMapFromExplore() {
((MainActivity) getContext()).loadNearbyMapFromExplore( ((MainActivity) getContext()).loadNearbyMapFromExplore(
binding.mapView.getZoomLevelDouble(), binding.mapView.getZoomLevelDouble(),
@ -708,8 +740,29 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
GeoPoint point = new GeoPoint( GeoPoint point = new GeoPoint(
nearbyBaseMarker.getPlace().location.getLatitude(), nearbyBaseMarker.getPlace().location.getLatitude(),
nearbyBaseMarker.getPlace().location.getLongitude()); nearbyBaseMarker.getPlace().location.getLongitude());
OverlayItem item = new OverlayItem(nearbyBaseMarker.getPlace().name, null,
point); Media markerMedia = this.getMediaFromImageURL(nearbyBaseMarker.getPlace().pic);
String authorUser = null;
if (markerMedia != null) {
authorUser = markerMedia.getAuthorOrUser();
// HTML text is sometimes part of the author string and needs to be removed
authorUser = Html.fromHtml(authorUser, Html.FROM_HTML_MODE_LEGACY).toString();
}
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); item.setMarker(d);
items.add(item); items.add(item);
ItemizedOverlayWithFocus overlay = new ItemizedOverlayWithFocus(items, ItemizedOverlayWithFocus overlay = new ItemizedOverlayWithFocus(items,
@ -740,13 +793,37 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
} }
} }
/**
* Retrieves the specific Media object from the mediaList field.
* @param url The specific Media's image URL.
* @return The Media object that matches the URL or null if it could not be found.
*/
private Media getMediaFromImageURL(String url) {
if (mediaList == null || url == null) {
return null;
}
for (int i = 0; i < mediaList.size(); i++) {
if (mediaList.get(i) != null && mediaList.get(i).getImageUrl() != null
&& mediaList.get(i).getImageUrl().equals(url)) {
return mediaList.get(i);
}
}
return null;
}
/** /**
* Removes a marker from the map based on the specified NearbyBaseMarker. * Removes a marker from the map based on the specified NearbyBaseMarker.
* *
* @param nearbyBaseMarker The NearbyBaseMarker object representing the marker to be removed. * @param nearbyBaseMarker The NearbyBaseMarker object representing the marker to be removed.
*/ */
private void removeMarker(BaseMarker nearbyBaseMarker) { private void removeMarker(BaseMarker nearbyBaseMarker) {
Place place = nearbyBaseMarker.getPlace(); if (nearbyBaseMarker == null || nearbyBaseMarker.getPlace().getName() == null) {
return;
}
String target = nearbyBaseMarker.getPlace().getName();
List<Overlay> overlays = binding.mapView.getOverlays(); List<Overlay> overlays = binding.mapView.getOverlays();
ItemizedOverlayWithFocus item; ItemizedOverlayWithFocus item;
@ -755,8 +832,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
item = (ItemizedOverlayWithFocus) overlays.get(i); item = (ItemizedOverlayWithFocus) overlays.get(i);
OverlayItem overlayItem = item.getItem(0); OverlayItem overlayItem = item.getItem(0);
if (place.location.getLatitude() == overlayItem.getPoint().getLatitude() if (overlayItem.getTitle().equals(target)) {
&& place.location.getLongitude() == overlayItem.getPoint().getLongitude()) {
binding.mapView.getOverlays().remove(i); binding.mapView.getOverlays().remove(i);
binding.mapView.invalidate(); binding.mapView.invalidate();
break; break;
@ -930,9 +1006,6 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
-0.07483536015053005, 1f); -0.07483536015053005, 1f);
} }
} }
if (!isCameFromNearbyMap()) {
moveCameraToPosition(new GeoPoint(latLnge.getLatitude(), latLnge.getLongitude()));
}
return latLnge; return latLnge;
} }

View file

@ -74,9 +74,22 @@ public class ExploreMapPresenter
*/ */
if (locationChangeType.equals(LOCATION_SIGNIFICANTLY_CHANGED)) { if (locationChangeType.equals(LOCATION_SIGNIFICANTLY_CHANGED)) {
Timber.d("LOCATION_SIGNIFICANTLY_CHANGED"); Timber.d("LOCATION_SIGNIFICANTLY_CHANGED");
LatLng populateLatLng = exploreMapFragmentView.getMapCenter();
//If "Show in Explore" was selected in Nearby, use the previous LatLng
if (exploreMapFragmentView instanceof ExploreMapFragment) {
ExploreMapFragment exploreMapFragment = (ExploreMapFragment)exploreMapFragmentView;
if (exploreMapFragment.recentlyCameFromNearbyMap()) {
//Ensure this LatLng will not be used again if user searches their GPS location
exploreMapFragment.setRecentlyCameFromNearbyMap(false);
populateLatLng = exploreMapFragment.getPreviousLatLng();
}
}
lockUnlockNearby(true); lockUnlockNearby(true);
exploreMapFragmentView.setProgressBarVisibility(true); exploreMapFragmentView.setProgressBarVisibility(true);
exploreMapFragmentView.populatePlaces(exploreMapFragmentView.getMapCenter()); exploreMapFragmentView.populatePlaces(populateLatLng);
} else if (locationChangeType.equals(SEARCH_CUSTOM_AREA)) { } else if (locationChangeType.equals(SEARCH_CUSTOM_AREA)) {
Timber.d("SEARCH_CUSTOM_AREA"); Timber.d("SEARCH_CUSTOM_AREA");
lockUnlockNearby(true); lockUnlockNearby(true);

View file

@ -18,6 +18,12 @@ import javax.inject.Inject
class MediaConverter class MediaConverter
@Inject @Inject
constructor() { constructor() {
/**
* Creating Media object from MWQueryPage.
*
* @param page response from the API
* @return Media object
*/
fun convert( fun convert(
page: MwQueryPage, page: MwQueryPage,
entity: Entities.Entity, entity: Entities.Entity,
@ -40,24 +46,17 @@ class MediaConverter
metadata.prefixedLicenseUrl, metadata.prefixedLicenseUrl,
getAuthor(metadata), getAuthor(metadata),
imageInfo.getUser(), imageInfo.getUser(),
null,
MediaDataExtractorUtil.extractCategoriesFromList(metadata.categories()), MediaDataExtractorUtil.extractCategoriesFromList(metadata.categories()),
metadata.latLng, metadata.latLng,
entity.labels().mapValues { it.value.value() }, entity.labels().mapValues { it.value.value() },
entity.descriptions().mapValues { it.value.value() }, entity.descriptions().mapValues { it.value.value() },
entity.depictionIds(), entity.depictionIds(),
entity.creatorIds(),
myMap, 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? = private fun safeParseDate(dateStr: String): Date? =
try { try {
CommonsDateUtil.getMediaSimpleDateFormat().parse(dateStr) 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 * @param metadata
* @return * @return
*/ */
private fun getAuthor(metadata: ExtMetadata): String? { private fun getAuthor(metadata: ExtMetadata): String? {
return try { val authorHtml = metadata.artist()
val authorHtml = metadata.artist() val anchorStartTagTerminalString = "\">"
val anchorStartTagTerminalChars = "\">" val anchorCloseTag = "</a>"
val anchorCloseTag = "</a>"
return authorHtml.substring( return if (!authorHtml.contains("<") && !authorHtml.contains(">") ) {
authorHtml.indexOf(anchorStartTagTerminalChars) + authorHtml.trim()
anchorStartTagTerminalChars } else if (!authorHtml.contains(anchorStartTagTerminalString) || !authorHtml.endsWith(anchorCloseTag)) {
.length, null
} else {
val authorText = authorHtml.substring(
authorHtml.indexOf(anchorStartTagTerminalString) +
anchorStartTagTerminalString.length,
authorHtml.indexOf(anchorCloseTag), 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 } this[WikidataProperties.DEPICTS]?.mapNotNull { (it.mainSnak.dataValue as? DataValue.EntityId)?.value?.id }
?: emptyList() ?: emptyList()
private fun Entities.Entity.creatorIds() =
this[WikidataProperties.CREATOR]?.mapNotNull { (it.mainSnak.dataValue as? DataValue.EntityId)?.value?.id }
?: emptyList()
private val ExtMetadata.prefixedLicenseUrl: String private val ExtMetadata.prefixedLicenseUrl: String
get() = get() =
licenseUrl().let { licenseUrl().let {

View file

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

View file

@ -5,13 +5,22 @@ import android.view.ViewGroup
import androidx.paging.PagedListAdapter import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import fr.free.nrw.commons.Media 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.R
import fr.free.nrw.commons.databinding.LayoutCategoryImagesBinding import fr.free.nrw.commons.databinding.LayoutCategoryImagesBinding
import fr.free.nrw.commons.explore.paging.BaseViewHolder import fr.free.nrw.commons.explore.paging.BaseViewHolder
import fr.free.nrw.commons.explore.paging.inflate 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( class PagedMediaAdapter(
private val onImageClicked: (Int) -> Unit, private val onImageClicked: (Int) -> Unit,
private val mediaDataExtractor: MediaDataExtractor,
private val compositeDisposable: CompositeDisposable = CompositeDisposable()
) : PagedListAdapter<Media, SearchImagesViewHolder>( ) : PagedListAdapter<Media, SearchImagesViewHolder>(
object : DiffUtil.ItemCallback<Media>() { object : DiffUtil.ItemCallback<Media>() {
override fun areItemsTheSame( override fun areItemsTheSame(
@ -25,6 +34,7 @@ class PagedMediaAdapter(
) = oldItem.pageId == newItem.pageId ) = oldItem.pageId == newItem.pageId
}, },
) { ) {
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int, viewType: Int,
@ -37,7 +47,24 @@ class PagedMediaAdapter(
holder: SearchImagesViewHolder, holder: SearchImagesViewHolder,
position: Int, 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.categoryImageView.setOnClickListener { onImageClicked(item.second) }
binding.categoryImageTitle.text = media.mostRelevantCaption binding.categoryImageTitle.text = media.mostRelevantCaption
binding.categoryImageView.setImageURI(media.thumbUrl) binding.categoryImageView.setImageURI(media.thumbUrl)
binding.categoryImageAuthor.text = setAuthorText(media)
containerView.context.getString(R.string.image_uploaded_by, media.getAuthorOrUser()) }
fun setAuthorText(media: Media) {
binding.categoryImageAuthor.text = MediaAttributionUtil.getTagLine(media, containerView.context)
} }
} }

View file

@ -32,7 +32,7 @@ class FooterAdapter(
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int, viewType: Int,
) = when (FooterItem.values()[viewType]) { ) = when (FooterItem.entries[viewType]) {
FooterItem.LoadingItem -> FooterItem.LoadingItem ->
LoadingViewHolder( LoadingViewHolder(
parent.inflate(R.layout.list_item_progress), parent.inflate(R.layout.list_item_progress),

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

View file

@ -186,13 +186,25 @@ interface MediaInterface {
): Single<MwQueryResponse> ): Single<MwQueryResponse>
companion object { companion object {
/**
* Retrieved thumbnail height will be about this tall, but must be at least this height.
* A larger number means higher thumbnail resolution but more network usage.
*/
const val THUMB_HEIGHT_PX = 450
const val MEDIA_PARAMS = const val MEDIA_PARAMS =
"&prop=imageinfo|coordinates&iiprop=url|extmetadata|user&&iiurlwidth=640&iiextmetadatafilter=DateTime|Categories|GPSLatitude|GPSLongitude|ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" "&prop=imageinfo|coordinates&iiprop=url|extmetadata|user&&iiurlheight=" +
THUMB_HEIGHT_PX +
"&iiextmetadatafilter=DateTime|Categories|GPSLatitude|GPSLongitude|" +
"ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl"
/** /**
* fetches category detail(title, hidden) for each category along with File information * fetches category detail(title, hidden) for each category along with File information
*/ */
const val MEDIA_PARAMS_WITH_CATEGORY_DETAILS = const val MEDIA_PARAMS_WITH_CATEGORY_DETAILS =
"&clprop=hidden&prop=categories|imageinfo&iiprop=url|extmetadata|user&&iiurlwidth=640&iiextmetadatafilter=DateTime|GPSLatitude|GPSLongitude|ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl" "&clprop=hidden&prop=categories|imageinfo&iiprop=url|extmetadata|user&&iiurlheight=" +
THUMB_HEIGHT_PX +
"&iiextmetadatafilter=DateTime|GPSLatitude|GPSLongitude|ImageDescription|" +
"DateTimeOriginal|Artist|LicenseShortName|LicenseUrl"
} }
} }

View file

@ -153,7 +153,10 @@ public class Place implements Parcelable {
.build(), .build(),
item.getPic().getValue(), item.getPic().getValue(),
// Checking if the place exists or not // Checking if the place exists or not
(item.getDestroyed().getValue() == "") && (item.getEndTime().getValue() == ""), entityId); (item.getDestroyed().getValue() == "") && (item.getEndTime().getValue() == "")
&& (item.getDateOfOfficialClosure().getValue() == "")
&& (item.getPointInTime().getValue()==""),
entityId);
} }
/** /**

View file

@ -63,7 +63,10 @@ class WikidataFeedback : BaseActivity() {
supportActionBar!!.setDisplayHomeAsUpEnabled(true) supportActionBar!!.setDisplayHomeAsUpEnabled(true)
binding.appCompatButton.setOnClickListener { binding.appCompatButton.setOnClickListener {
var desc = findViewById<RadioButton>(binding.radioGroup.checkedRadioButtonId).text var desc = when (binding.radioGroup.checkedRadioButtonId) {
R.id.radioButton2 -> getString(R.string.is_at_a_different_place_wikidata, place)
else -> findViewById<RadioButton>(binding.radioGroup.checkedRadioButtonId).text
}
var det = binding.detailsEditText.text.toString() var det = binding.detailsEditText.text.toString()
if (binding.radioGroup.checkedRadioButtonId == R.id.radioButton3 && binding.detailsEditText.text.isNullOrEmpty()) { if (binding.radioGroup.checkedRadioButtonId == R.id.radioButton3 && binding.detailsEditText.text.isNullOrEmpty()) {
Toast Toast
@ -103,4 +106,4 @@ class WikidataFeedback : BaseActivity() {
onBackPressed() onBackPressed()
return true return true
} }
} }

View file

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

View file

@ -18,6 +18,8 @@ class NearbyResultItem(
@field:SerializedName("description") private val description: ResultTuple?, @field:SerializedName("description") private val description: ResultTuple?,
@field:SerializedName("endTime") private val endTime: ResultTuple?, @field:SerializedName("endTime") private val endTime: ResultTuple?,
@field:SerializedName("monument") private val monument: ResultTuple?, @field:SerializedName("monument") private val monument: ResultTuple?,
@field:SerializedName("dateOfOfficialClosure") private val dateOfOfficialClosure: ResultTuple?,
@field:SerializedName("pointInTime") private val pointInTime: ResultTuple?,
) { ) {
fun getItem(): ResultTuple = item ?: ResultTuple() fun getItem(): ResultTuple = item ?: ResultTuple()
@ -41,6 +43,8 @@ class NearbyResultItem(
fun getDestroyed(): ResultTuple = destroyed ?: ResultTuple() fun getDestroyed(): ResultTuple = destroyed ?: ResultTuple()
fun getDateOfOfficialClosure(): ResultTuple = dateOfOfficialClosure ?: ResultTuple()
fun getDescription(): ResultTuple = description ?: ResultTuple() fun getDescription(): ResultTuple = description ?: ResultTuple()
fun getEndTime(): ResultTuple = endTime ?: ResultTuple() fun getEndTime(): ResultTuple = endTime ?: ResultTuple()
@ -48,4 +52,7 @@ class NearbyResultItem(
fun getAddress(): String = address?.value ?: "" fun getAddress(): String = address?.value ?: ""
fun getMonument(): ResultTuple? = monument fun getMonument(): ResultTuple? = monument
fun getPointInTime(): ResultTuple = pointInTime ?: ResultTuple()
} }

View file

@ -14,6 +14,7 @@ import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.View import android.view.View
import android.widget.CheckBox import android.widget.CheckBox
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
@ -122,7 +123,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
/** /**
* Set the value of the showPermissionDialog variable. * Set the value of the showPermissionDialog variable.
* *
* @param showPermissionsDialog `true` to indicate to show * @property isShowPermissionsDialog `true` to indicate to show
* Permissions Dialog if permissions are missing, `false` otherwise. * Permissions Dialog if permissions are missing, `false` otherwise.
*/ */
/** /**
@ -166,6 +167,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
private var _binding: ActivityUploadBinding? = null private var _binding: ActivityUploadBinding? = null
private val binding: ActivityUploadBinding get() = _binding!! private val binding: ActivityUploadBinding get() = _binding!!
private lateinit var onBackPressedCallback: OnBackPressedCallback
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -176,6 +179,23 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
_binding = ActivityUploadBinding.inflate(layoutInflater) _binding = ActivityUploadBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
// Overrides the back button to make sure the user is prepared to lose their progress
onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
showAlertDialog(
this@UploadActivity,
getString(R.string.back_button_warning),
getString(R.string.back_button_warning_desc),
getString(R.string.back_button_continue),
getString(R.string.back_button_warning),
null
) {
finish()
}
}
}
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
/* /*
If Configuration of device is changed then get the new fragments If Configuration of device is changed then get the new fragments
created by the system and populate the fragments ArrayList created by the system and populate the fragments ArrayList
@ -190,7 +210,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
init() init()
binding.rlContainerTitle.setOnClickListener { v: View? -> onRlContainerTitleClicked() } binding.rlContainerTitle.setOnClickListener { _: View? -> onRlContainerTitleClicked() }
nearbyPopupAnswers = mutableMapOf() nearbyPopupAnswers = mutableMapOf()
//getting the current dpi of the device and if it is less than 320dp i.e. overlapping //getting the current dpi of the device and if it is less than 320dp i.e. overlapping
//threshold, thumbnails automatically minimizes //threshold, thumbnails automatically minimizes
@ -204,7 +224,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
locationManager!!.requestLocationUpdatesFromProvider(LocationManager.GPS_PROVIDER) locationManager!!.requestLocationUpdatesFromProvider(LocationManager.GPS_PROVIDER)
locationManager!!.requestLocationUpdatesFromProvider(LocationManager.NETWORK_PROVIDER) locationManager!!.requestLocationUpdatesFromProvider(LocationManager.NETWORK_PROVIDER)
store = BasicKvStore(this, storeNameForCurrentUploadImagesSize).apply { store = BasicKvStore(this, STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE).apply {
clearAll() clearAll()
} }
checkStoragePermissions() checkStoragePermissions()
@ -244,7 +264,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
currentSelectedPosition = position currentSelectedPosition = position
if (position >= uploadableFiles!!.size) { if (position >= uploadableFiles.size) {
binding.cvContainerTopCard.visibility = View.GONE binding.cvContainerTopCard.visibility = View.GONE
} else { } else {
thumbnailsAdapter!!.notifyDataSetChanged() thumbnailsAdapter!!.notifyDataSetChanged()
@ -277,7 +297,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.filter { result: Boolean? -> result!! } .filter { result: Boolean? -> result!! }
.subscribe { result: Boolean? -> .subscribe { _: Boolean? ->
showAlertDialog( showAlertDialog(
this, this,
getString(R.string.block_notification_title), getString(R.string.block_notification_title),
@ -287,7 +307,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
}) })
} }
fun checkStoragePermissions() { private fun checkStoragePermissions() {
// Check if all required permissions are granted // Check if all required permissions are granted
val hasAllPermissions = hasPermission(this, PERMISSIONS_STORAGE) val hasAllPermissions = hasPermission(this, PERMISSIONS_STORAGE)
val hasPartialAccess = hasPartialAccess(this) val hasPartialAccess = hasPartialAccess(this)
@ -358,7 +378,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
showLongToast(this, messageResourceId) showLongToast(this, messageResourceId)
} }
override fun getUploadableFiles(): List<UploadableFile>? { override fun getUploadableFiles(): List<UploadableFile> {
return uploadableFiles return uploadableFiles
} }
@ -370,6 +390,14 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onUploadMediaDeleted(index: Int) { override fun onUploadMediaDeleted(index: Int) {
fragments!!.removeAt(index) //Remove the corresponding fragment fragments!!.removeAt(index) //Remove the corresponding fragment
uploadableFiles.removeAt(index) //Remove the files from the list uploadableFiles.removeAt(index) //Remove the files from the list
val isMediaDetailFragment = fragments!!.getOrNull(currentSelectedPosition)?.let {
it is UploadMediaDetailFragment
} ?: false
if(!isMediaDetailFragment) {
// Should hide the top card current fragment is not the media detail fragment
showHideTopCard(false)
}
thumbnailsAdapter!!.notifyItemRemoved(index) //Notify the thumbnails adapter thumbnailsAdapter!!.notifyItemRemoved(index) //Notify the thumbnails adapter
uploadImagesAdapter!!.notifyDataSetChanged() //Notify the ViewPager uploadImagesAdapter!!.notifyDataSetChanged() //Notify the ViewPager
} }
@ -378,8 +406,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
binding.tvTopCardTitle.text = resources binding.tvTopCardTitle.text = resources
.getQuantityString( .getQuantityString(
R.plurals.upload_count_title, R.plurals.upload_count_title,
uploadableFiles!!.size, uploadableFiles.size,
uploadableFiles!!.size uploadableFiles.size
) )
} }
@ -447,15 +475,16 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
receiveInternalSharedItems() receiveInternalSharedItems()
} }
if (uploadableFiles == null || uploadableFiles!!.isEmpty()) { if (uploadableFiles.isEmpty()) {
handleNullMedia() handleNullMedia()
} else { } else {
//Show thumbnails //Show thumbnails
if (uploadableFiles!!.size > 1) { if (uploadableFiles.size > 1) {
if (!defaultKvStore.getBoolean("hasAlreadyLaunchedCategoriesDialog")) { //If there is only file, no need to show the image thumbnails if (!defaultKvStore.getBoolean("hasAlreadyLaunchedCategoriesDialog")) {
// If there is only file, no need to show the image thumbnails
showAlertDialogForCategories() showAlertDialogForCategories()
} }
if (uploadableFiles!!.size > 3 && if (uploadableFiles.size > 3 &&
!defaultKvStore.getBoolean("hasAlreadyLaunchedBigMultiupload") !defaultKvStore.getBoolean("hasAlreadyLaunchedBigMultiupload")
) { ) {
showAlertForBattery() showAlertForBattery()
@ -467,8 +496,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
binding.tvTopCardTitle.text = resources binding.tvTopCardTitle.text = resources
.getQuantityString( .getQuantityString(
R.plurals.upload_count_title, R.plurals.upload_count_title,
uploadableFiles!!.size, uploadableFiles.size,
uploadableFiles!!.size uploadableFiles.size
) )
@ -477,7 +506,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
for (uploadableFile in uploadableFiles!!) { for (uploadableFile in uploadableFiles) {
val uploadMediaDetailFragment = UploadMediaDetailFragment() val uploadMediaDetailFragment = UploadMediaDetailFragment()
if (!uploadIsOfAPlace) { if (!uploadIsOfAPlace) {
@ -500,8 +529,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
object : UploadMediaDetailFragmentCallback { object : UploadMediaDetailFragmentCallback {
override fun deletePictureAtIndex(index: Int) { override fun deletePictureAtIndex(index: Int) {
store!!.putInt( store!!.putInt(
keyForCurrentUploadImagesSize, KEY_FOR_CURRENT_UPLOAD_IMAGE_SIZE,
(store!!.getInt(keyForCurrentUploadImagesSize) - 1) (store!!.getInt(KEY_FOR_CURRENT_UPLOAD_IMAGE_SIZE) - 1)
) )
presenter!!.deletePictureAtIndex(index) presenter!!.deletePictureAtIndex(index)
} }
@ -579,11 +608,11 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
fragments!!.add(mediaLicenseFragment!!) fragments!!.add(mediaLicenseFragment!!)
} else { } else {
for (i in 1 until fragments!!.size) { for (i in 1 until fragments!!.size) {
fragments!![i]!!.callback = object : UploadBaseFragment.Callback { fragments!![i].callback = object : UploadBaseFragment.Callback {
override fun onNextButtonClicked(index: Int) { override fun onNextButtonClicked(index: Int) {
if (index < fragments!!.size - 1) { if (index < fragments!!.size - 1) {
binding.vpUpload.setCurrentItem(index + 1, false) binding.vpUpload.setCurrentItem(index + 1, false)
fragments!![index + 1]!!.onBecameVisible() fragments!![index + 1].onBecameVisible()
(binding.rvThumbnails.layoutManager as LinearLayoutManager) (binding.rvThumbnails.layoutManager as LinearLayoutManager)
.scrollToPositionWithOffset( .scrollToPositionWithOffset(
if ((index > 0)) index - 1 else 0, if ((index > 0)) index - 1 else 0,
@ -597,7 +626,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onPreviousButtonClicked(index: Int) { override fun onPreviousButtonClicked(index: Int) {
if (index != 0) { if (index != 0) {
binding.vpUpload.setCurrentItem(index - 1, true) binding.vpUpload.setCurrentItem(index - 1, true)
fragments!![index - 1]!!.onBecameVisible() fragments!![index - 1].onBecameVisible()
(binding.rvThumbnails.layoutManager as LinearLayoutManager) (binding.rvThumbnails.layoutManager as LinearLayoutManager)
.scrollToPositionWithOffset( .scrollToPositionWithOffset(
if ((index > 3)) index - 2 else 0, if ((index > 3)) index - 2 else 0,
@ -635,11 +664,12 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
binding.vpUpload.offscreenPageLimit = fragments!!.size binding.vpUpload.offscreenPageLimit = fragments!!.size
} }
// Saving size of uploadableFiles // Saving size of uploadableFiles
store!!.putInt(keyForCurrentUploadImagesSize, uploadableFiles!!.size) store!!.putInt(KEY_FOR_CURRENT_UPLOAD_IMAGE_SIZE, uploadableFiles.size)
} }
/** /**
* Changes current image when one image upload is cancelled, to highlight next image in the top thumbnail. * Changes current image when one image upload is cancelled, to highlight next image in the top
* thumbnail.
* Fixes: [Issue](https://github.com/commons-app/apps-android-commons/issues/5511) * Fixes: [Issue](https://github.com/commons-app/apps-android-commons/issues/5511)
* *
* @param index Index of image to be removed * @param index Index of image to be removed
@ -774,7 +804,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onNextButtonClicked(index: Int) { override fun onNextButtonClicked(index: Int) {
if (index < fragments!!.size - 1) { if (index < fragments!!.size - 1) {
binding.vpUpload.setCurrentItem(index + 1, false) binding.vpUpload.setCurrentItem(index + 1, false)
fragments!![index + 1]!!.onBecameVisible() fragments!![index + 1].onBecameVisible()
(binding.rvThumbnails.layoutManager as LinearLayoutManager) (binding.rvThumbnails.layoutManager as LinearLayoutManager)
.scrollToPositionWithOffset(if ((index > 0)) index - 1 else 0, 0) .scrollToPositionWithOffset(if ((index > 0)) index - 1 else 0, 0)
if (index < fragments!!.size - 4) { if (index < fragments!!.size - 4) {
@ -789,10 +819,10 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
override fun onPreviousButtonClicked(index: Int) { override fun onPreviousButtonClicked(index: Int) {
if (index != 0) { if (index != 0) {
binding.vpUpload.setCurrentItem(index - 1, true) binding.vpUpload.setCurrentItem(index - 1, true)
fragments!![index - 1]!!.onBecameVisible() fragments!![index - 1].onBecameVisible()
(binding.rvThumbnails.layoutManager as LinearLayoutManager) (binding.rvThumbnails.layoutManager as LinearLayoutManager)
.scrollToPositionWithOffset(if ((index > 3)) index - 2 else 0, 0) .scrollToPositionWithOffset(if ((index > 3)) index - 2 else 0, 0)
if ((index != 1) && ((index - 1) < uploadableFiles!!.size)) { if ((index != 1) && ((index - 1) < uploadableFiles.size)) {
// Shows the top card if it was hidden because of the last image being deleted and // Shows the top card if it was hidden because of the last image being deleted and
// now the user has hit previous button to go back to the media details // now the user has hit previous button to go back to the media details
showHideTopCard(true) showHideTopCard(true)
@ -800,7 +830,10 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
} }
override fun onThumbnailDeleted(position: Int) = presenter!!.deletePictureAtIndex(position) override fun onThumbnailDeleted(position: Int) {
presenter!!.deletePictureAtIndex(position)
thumbnailsAdapter?.notifyDataSetChanged()
}
/** /**
* The adapter used to show image upload intermediate fragments * The adapter used to show image upload intermediate fragments
@ -827,11 +860,11 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
} }
fun onRlContainerTitleClicked() { private fun onRlContainerTitleClicked() {
binding.rvThumbnails.visibility = binding.rvThumbnails.visibility =
if (isTitleExpanded) View.GONE else View.VISIBLE if (isTitleExpanded) View.GONE else View.VISIBLE
isTitleExpanded = !isTitleExpanded isTitleExpanded = !isTitleExpanded
binding.ibToggleTopCard.rotation = binding.ibToggleTopCard.rotation + 180 binding.ibToggleTopCard.rotation += 180
} }
override fun onDestroy() { override fun onDestroy() {
@ -848,21 +881,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
if (uploadCategoriesFragment != null) { if (uploadCategoriesFragment != null) {
uploadCategoriesFragment!!.callback = null uploadCategoriesFragment!!.callback = null
} }
} onBackPressedCallback.remove()
/**
* Overrides the back button to make sure the user is prepared to lose their progress
*/
@SuppressLint("MissingSuperCall")
override fun onBackPressed() {
showAlertDialog(
this,
getString(R.string.back_button_warning),
getString(R.string.back_button_warning_desc),
getString(R.string.back_button_continue),
getString(R.string.back_button_warning),
null
) { finish() }
} }
/** /**
@ -882,7 +901,7 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
.setView(view) .setView(view)
.setTitle(getString(R.string.multiple_files_depiction_header)) .setTitle(getString(R.string.multiple_files_depiction_header))
.setMessage(getString(R.string.multiple_files_depiction)) .setMessage(getString(R.string.multiple_files_depiction))
.setPositiveButton("OK") { dialog: DialogInterface?, which: Int -> .setPositiveButton("OK") { _: DialogInterface?, _: Int ->
if (checkBox.isChecked) { if (checkBox.isChecked) {
// Save the user's choice to not show the dialog again // Save the user's choice to not show the dialog again
defaultKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", true) defaultKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", true)
@ -915,14 +934,14 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
getString(R.string.cancel), getString(R.string.cancel),
{ {
/* Since opening the right settings page might be device dependent, using /* Since opening the right settings page might be device dependent, using
https://github.com/WaseemSabir/BatteryPermissionHelper https://github.com/WaseemSabir/BatteryPermissionHelper
directly appeared like a promising idea. directly appeared like a promising idea.
However, this simply closed the popup and did not make However, this simply closed the popup and did not make
the settings page appear on a Pixel as well as a Xiaomi device. the settings page appear on a Pixel as well as a Xiaomi device.
Used the standard intent instead of using this library as Used the standard intent instead of using this library as
it shows a list of all the apps on the device and allows users to it shows a list of all the apps on the device and allows users to
turn battery optimisation off. turn battery optimisation off.
*/ */
val batteryOptimisationSettingsIntent = Intent( val batteryOptimisationSettingsIntent = Intent(
Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
) )
@ -960,7 +979,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
Also, location information is discarded if the difference between Also, location information is discarded if the difference between
current location and location recorded just before capturing the image current location and location recorded just before capturing the image
is greater than 100 meters */ is greater than 100 meters */
if (isLocationTagUnchecked || locationDifference > 100 || !defaultKvStore.getBoolean("inAppCameraLocationPref") if (isLocationTagUnchecked || locationDifference > 100
|| !defaultKvStore.getBoolean("inAppCameraLocationPref")
|| !isInAppCameraUpload || !isInAppCameraUpload
) { ) {
currLocation = null currLocation = null
@ -981,8 +1001,8 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
@JvmField @JvmField
var nearbyPopupAnswers: MutableMap<Place, Boolean>? = null var nearbyPopupAnswers: MutableMap<Place, Boolean>? = null
const val keyForCurrentUploadImagesSize: String = "CurrentUploadImagesSize" const val KEY_FOR_CURRENT_UPLOAD_IMAGE_SIZE: String = "CurrentUploadImagesSize"
const val storeNameForCurrentUploadImagesSize: String = "CurrentUploadImageQualities" const val STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE: String = "CurrentUploadImageQualities"
/** /**
* Sets the flag indicating whether the upload is of a specific place. * Sets the flag indicating whether the upload is of a specific place.

View file

@ -159,34 +159,31 @@ class UploadPresenter @Inject internal constructor(
override fun deletePictureAtIndex(index: Int) { override fun deletePictureAtIndex(index: Int) {
val uploadableFiles = view.getUploadableFiles() val uploadableFiles = view.getUploadableFiles()
if (index == uploadableFiles!!.size - 1) { uploadableFiles?.let {
// If the next fragment to be shown is not one of the MediaDetailsFragment view.setImageCancelled(true)
// lets hide the top card so that it doesn't appear on the other fragments repository.deletePicture(uploadableFiles[index].getFilePath())
view.showHideTopCard(false) if (uploadableFiles.size == 1) {
} view.showMessage(R.string.upload_cancelled)
view.setImageCancelled(true) view.finish()
repository.deletePicture(uploadableFiles[index].getFilePath()) return
if (uploadableFiles.size == 1) {
view.showMessage(R.string.upload_cancelled)
view.finish()
return
}
presenter.updateImageQualitiesJSON(uploadableFiles.size, index)
view.onUploadMediaDeleted(index)
if (index != uploadableFiles.size && index != 0) {
// if the deleted image was not the last item to be uploaded, check quality of next
repository.getUploadItem(index)?.let {
presenter.checkImageQuality(it, index)
} }
}
if (uploadableFiles.size < 2) { presenter.updateImageQualitiesJSON(uploadableFiles.size, index)
view.showHideTopCard(false) view.onUploadMediaDeleted(index)
} if (index != uploadableFiles.size && index != 0) {
// if the deleted image was not the last item to be uploaded, check quality of next
repository.getUploadItem(index)?.let {
presenter.checkImageQuality(it, index)
}
}
//In case lets update the number of uploadable media if (uploadableFiles.size < 2) {
view.updateTopCardTitle() view.showHideTopCard(false)
}
//In case lets update the number of uploadable media
view.updateTopCardTitle()
}
} }
override fun onAttachView(view: UploadContract.View) { override fun onAttachView(view: UploadContract.View) {

View file

@ -97,9 +97,9 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
if (media == null) { if (media == null) {
if (callback != null) { if (callback != null) {
binding!!.tvTitle.text = getString(R.string.step_count, binding?.tvTitle?.text = getString(R.string.step_count,
callback!!.getIndexInViewFlipper(this) + 1, callback?.getIndexInViewFlipper(this)?.plus(1) ?: 1,
callback!!.totalNumberOfSteps, callback?.totalNumberOfSteps ?: 1,
getString(R.string.categories_activity_title)) getString(R.string.categories_activity_title))
} }
} else { } else {
@ -110,7 +110,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
setTvSubTitle() setTvSubTitle()
binding!!.tooltip.setOnClickListener { binding?.let { it.tooltip.setOnClickListener {
showAlertDialog( showAlertDialog(
requireActivity(), requireActivity(),
getString(R.string.categories_activity_title), getString(R.string.categories_activity_title),
@ -119,10 +119,11 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
null null
) )
} }
}
if (media == null) { if (media == null) {
presenter!!.onAttachView(this) presenter?.onAttachView(this)
} else { } else {
presenter!!.onAttachViewWithMedia(this, media!!) presenter?.onAttachViewWithMedia(this, media!!)
} }
binding!!.btnNext.setOnClickListener { v: View? -> onNextButtonClicked() } binding!!.btnNext.setOnClickListener { v: View? -> onNextButtonClicked() }
binding!!.btnPrevious.setOnClickListener { v: View? -> onPreviousButtonClicked() } binding!!.btnPrevious.setOnClickListener { v: View? -> onPreviousButtonClicked() }
@ -137,7 +138,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
subscribe = RxTextView.textChanges(binding!!.etSearch) subscribe = RxTextView.textChanges(binding!!.etSearch)
.doOnEach { v: Notification<CharSequence?>? -> .doOnEach { v: Notification<CharSequence?>? ->
binding!!.tilContainerSearch.error = binding?.tilContainerSearch?.error =
null null
} }
.takeUntil(RxView.detaches(binding!!.etSearch)) .takeUntil(RxView.detaches(binding!!.etSearch))
@ -163,25 +164,25 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
private fun searchForCategory(query: String) { private fun searchForCategory(query: String) {
presenter!!.searchForCategories(query) presenter?.searchForCategories(query)
} }
private fun initRecyclerView() { private fun initRecyclerView() {
adapter = UploadCategoryAdapter({ categoryItem: CategoryItem? -> if (adapter == null) { adapter = UploadCategoryAdapter({ categoryItem: CategoryItem? ->
presenter!!.onCategoryItemClicked(categoryItem!!) presenter?.onCategoryItemClicked(categoryItem!!)
Unit Unit
}, nearbyPlaceCategory) }, nearbyPlaceCategory)
}
if (binding != null) { binding?.rvCategories?.apply {
binding!!.rvCategories.layoutManager = LinearLayoutManager(context) layoutManager = LinearLayoutManager(context)
binding!!.rvCategories.adapter = adapter adapter = this@UploadCategoriesFragment.adapter
} }
} }
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
presenter!!.onDetachView() presenter?.onDetachView()
subscribe!!.dispose() subscribe?.dispose()
} }
override fun showProgress(shouldShow: Boolean) { override fun showProgress(shouldShow: Boolean) {
@ -197,6 +198,11 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
override fun setCategories(categories: List<CategoryItem>?) { override fun setCategories(categories: List<CategoryItem>?) {
if (adapter == null) {
Timber.e("Adapter is null in setCategories")
return
}
if (categories == null) { if (categories == null) {
adapter!!.clear() adapter!!.clear()
} else { } else {
@ -204,19 +210,16 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
} }
adapter!!.notifyDataSetChanged() adapter!!.notifyDataSetChanged()
if (binding == null) { binding?.let {
return it.rvCategories.post {
} it.rvCategories.smoothScrollToPosition(0)
// Nested waiting for search result data to load into the category it.rvCategories.post {
// list and smoothly scroll to the top of the search result list. it.rvCategories.smoothScrollToPosition(
binding!!.rvCategories.post {
binding!!.rvCategories.smoothScrollToPosition(0)
binding!!.rvCategories.post {
binding!!.rvCategories.smoothScrollToPosition(
0 0
) )
}
} }
} } ?: Timber.e("Binding is null in setCategories")
} }
override fun goToNextScreen() { override fun goToNextScreen() {
@ -308,7 +311,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
fun onNextButtonClicked() { fun onNextButtonClicked() {
if (media != null) { if (media != null) {
presenter!!.updateCategories(media!!, wikiText!!) presenter?.updateCategories(media!!, wikiText!!)
} else { } else {
presenter!!.verifyCategories() presenter!!.verifyCategories()
} }
@ -318,7 +321,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
if (media != null) { if (media != null) {
presenter!!.clearPreviousSelection() presenter!!.clearPreviousSelection()
adapter!!.items = null adapter!!.items = null
val mediaDetailFragment = checkNotNull(parentFragment as MediaDetailFragment?) val mediaDetailFragment = parentFragment as? MediaDetailFragment?: return
mediaDetailFragment.onResume() mediaDetailFragment.onResume()
goBackToPreviousScreen() goBackToPreviousScreen()
} else { } else {
@ -345,7 +348,7 @@ class UploadCategoriesFragment : UploadBaseFragment(), CategoriesContract.View {
super.onResume() super.onResume()
if (media != null) { if (media != null) {
binding!!.etSearch.setOnKeyListener { v: View?, keyCode: Int, event: KeyEvent? -> binding?.etSearch?.setOnKeyListener { v: View?, keyCode: Int, event: KeyEvent? ->
if (keyCode == KeyEvent.KEYCODE_BACK) { if (keyCode == KeyEvent.KEYCODE_BACK) {
binding!!.etSearch.clearFocus() binding!!.etSearch.clearFocus()
presenter!!.clearPreviousSelection() presenter!!.clearPreviousSelection()

View file

@ -532,7 +532,7 @@ class UploadMediaDetailFragment : UploadBaseFragment(), UploadMediaDetailsContra
basicKvStore!!.putBoolean(keyForShowingAlertDialog, false) basicKvStore!!.putBoolean(keyForShowingAlertDialog, false)
if (isInternetConnectionEstablished(requireActivity())) { if (isInternetConnectionEstablished(requireActivity())) {
val sizeOfUploads = basicKvStore!!.getInt( val sizeOfUploads = basicKvStore!!.getInt(
UploadActivity.keyForCurrentUploadImagesSize UploadActivity.KEY_FOR_CURRENT_UPLOAD_IMAGE_SIZE
) )
for (i in indexOfFragment until sizeOfUploads) { for (i in indexOfFragment until sizeOfUploads) {
presenter.getImageQuality( presenter.getImageQuality(

View file

@ -310,7 +310,7 @@ class UploadMediaPresenter @Inject constructor(
private fun storeImageQuality( private fun storeImageQuality(
imageResult: Int, uploadItemIndex: Int, activity: Activity, uploadItem: UploadItem imageResult: Int, uploadItemIndex: Int, activity: Activity, uploadItem: UploadItem
) { ) {
val store = BasicKvStore(activity, UploadActivity.storeNameForCurrentUploadImagesSize) val store = BasicKvStore(activity, UploadActivity.STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE)
val value = store.getString(UPLOAD_QUALITIES_KEY, null) val value = store.getString(UPLOAD_QUALITIES_KEY, null)
try { try {
val jsonObject = value.asJsonObject().apply { val jsonObject = value.asJsonObject().apply {
@ -339,8 +339,10 @@ class UploadMediaPresenter @Inject constructor(
*/ */
override fun checkImageQuality(uploadItem: UploadItem, index: Int) { override fun checkImageQuality(uploadItem: UploadItem, index: Int) {
if ((uploadItem.imageQuality != IMAGE_OK) && (uploadItem.imageQuality != IMAGE_KEEP)) { if ((uploadItem.imageQuality != IMAGE_OK) && (uploadItem.imageQuality != IMAGE_KEEP)) {
val value = basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) }
val value = basicKvStoreFactory?.let { it(UploadActivity.STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE) }
?.getString(UPLOAD_QUALITIES_KEY, null) ?.getString(UPLOAD_QUALITIES_KEY, null)
try { try {
val imageQuality = value.asJsonObject()["UploadItem$index"] as Int val imageQuality = value.asJsonObject()["UploadItem$index"] as Int
view.showProgress(false) view.showProgress(false)
@ -363,8 +365,9 @@ class UploadMediaPresenter @Inject constructor(
* @param index Index of the UploadItem which was deleted * @param index Index of the UploadItem which was deleted
*/ */
override fun updateImageQualitiesJSON(size: Int, index: Int) { override fun updateImageQualitiesJSON(size: Int, index: Int) {
val value = basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) } val value = basicKvStoreFactory?.let { it(UploadActivity.STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE) }
?.getString(UPLOAD_QUALITIES_KEY, null) ?.getString(UPLOAD_QUALITIES_KEY, null)
try { try {
val jsonObject = value.asJsonObject().apply { val jsonObject = value.asJsonObject().apply {
for (i in index until (size - 1)) { for (i in index until (size - 1)) {
@ -372,7 +375,8 @@ class UploadMediaPresenter @Inject constructor(
} }
remove("UploadItem" + (size - 1)) remove("UploadItem" + (size - 1))
} }
basicKvStoreFactory?.let { it(UploadActivity.storeNameForCurrentUploadImagesSize) }
basicKvStoreFactory?.let { it(UploadActivity.STORE_NAME_FOR_CURRENT_UPLOAD_IMAGE_SIZE) }
?.putString(UPLOAD_QUALITIES_KEY, jsonObject.toString()) ?.putString(UPLOAD_QUALITIES_KEY, jsonObject.toString())
} catch (e: Exception) { } catch (e: Exception) {
Timber.e(e) Timber.e(e)

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

View file

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

View file

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

View file

@ -72,7 +72,6 @@ open class ImageInfo : Serializable {
} }
fun getThumbUrl(): String { fun getThumbUrl(): String {
updateThumbUrl()
return thumbUrl ?: "" return thumbUrl ?: ""
} }

View file

@ -146,6 +146,7 @@
android:layout_marginEnd="@dimen/standard_gap" android:layout_marginEnd="@dimen/standard_gap"
android:layout_marginRight="@dimen/standard_gap" android:layout_marginRight="@dimen/standard_gap"
android:layout_marginBottom="@dimen/standard_gap" android:layout_marginBottom="@dimen/standard_gap"
android:hint="@string/_2fa_code"
android:visibility="gone" android:visibility="gone"
app:passwordToggleEnabled="false" app:passwordToggleEnabled="false"
tools:visibility="visible"> tools:visibility="visible">
@ -154,9 +155,7 @@
android:id="@+id/login_two_factor" android:id="@+id/login_two_factor"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/_2fa_code"
android:imeOptions="flagNoExtractUi" android:imeOptions="flagNoExtractUi"
android:inputType="number"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" /> tools:visibility="visible" />

View file

@ -102,6 +102,7 @@
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:text="SEND" android:text="SEND"
android:visibility="visible" android:visibility="visible"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/textHeader" app:layout_constraintEnd_toEndOf="@+id/textHeader"
app:layout_constraintHorizontal_bias="1.0" app:layout_constraintHorizontal_bias="1.0"

View file

@ -26,10 +26,11 @@
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:visibility="visible" android:visibility="visible"
app:backgroundTint="@color/main_background_light" app:backgroundTint="?attr/colorSurface"
app:elevation="@dimen/dimen_6" app:elevation="@dimen/dimen_6"
app:fabSize="normal" app:fabSize="normal"
app:srcCompat="@drawable/ic_my_location_black_24dp" app:srcCompat="@drawable/ic_my_location_black_24dp"
app:tint="?attr/colorOnSurface"
app:useCompatPadding="true" /> app:useCompatPadding="true" />
<View <View

View file

@ -13,6 +13,7 @@
* Hhaboh162002 * Hhaboh162002
* Kassem7899 * Kassem7899
* LaMagiaaa * LaMagiaaa
* Lolekek
* Meno25 * Meno25
* Mido * Mido
* Monrokhoury * Monrokhoury
@ -168,6 +169,7 @@
<string name="login_failed_throttled">الكثير من المحاولات غير الناجحة. الرجاء المحاولة مرة أخرى في بضع دقائق.</string> <string name="login_failed_throttled">الكثير من المحاولات غير الناجحة. الرجاء المحاولة مرة أخرى في بضع دقائق.</string>
<string name="login_failed_blocked">عذراً، لقد تم منع هذا المستخدم على كومنز</string> <string name="login_failed_blocked">عذراً، لقد تم منع هذا المستخدم على كومنز</string>
<string name="login_failed_2fa_needed">يجب توفير رمز التحقق المزدوج.</string> <string name="login_failed_2fa_needed">يجب توفير رمز التحقق المزدوج.</string>
<string name="login_failed_email_auth_needed">تم إرسال رمز التحقق إلى بريدك الإلكتروني. يُرجى إدخال الرمز لتسجيل الدخول.</string>
<string name="login_failed_generic">فشل تسجيل الدخول</string> <string name="login_failed_generic">فشل تسجيل الدخول</string>
<string name="share_upload_button">ارفع</string> <string name="share_upload_button">ارفع</string>
<string name="multiple_share_base_title">اسم هذه المجموعة</string> <string name="multiple_share_base_title">اسم هذه المجموعة</string>
@ -273,6 +275,7 @@
<string name="become_a_tester_title">انضم لمختبري اصدارات Beta (بيتا)</string> <string name="become_a_tester_title">انضم لمختبري اصدارات Beta (بيتا)</string>
<string name="become_a_tester_description">يمكنك الاشتراك في القناة التجريبية على جوجل بلاي والحصول على إمكانية الوصول المبكر إلى الميزات الجديدة وإصلاحات الأخطاء</string> <string name="become_a_tester_description">يمكنك الاشتراك في القناة التجريبية على جوجل بلاي والحصول على إمكانية الوصول المبكر إلى الميزات الجديدة وإصلاحات الأخطاء</string>
<string name="_2fa_code">رمز التحقق المزدوج 2FA</string> <string name="_2fa_code">رمز التحقق المزدوج 2FA</string>
<string name="email_auth_code">رمز التحقق من البريد الإلكتروني</string>
<string name="logout_verification">أترغب فعلا في الخروج؟</string> <string name="logout_verification">أترغب فعلا في الخروج؟</string>
<string name="mediaimage_failed">صورة الوسائط فشلت</string> <string name="mediaimage_failed">صورة الوسائط فشلت</string>
<string name="no_subcategory_found">لم يتم العثور على تصنيفات فرعية.</string> <string name="no_subcategory_found">لم يتم العثور على تصنيفات فرعية.</string>
@ -851,6 +854,7 @@
<string name="talk">نقاش</string> <string name="talk">نقاش</string>
<string name="write_something_about_the_item">اكتب شيئًا عن العنصر \'%1$s\'. سيكون مرئيًا للعامة.</string> <string name="write_something_about_the_item">اكتب شيئًا عن العنصر \'%1$s\'. سيكون مرئيًا للعامة.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' لم يعد موجودًا، ولا يمكن التقاط صورة له أبدًا.</string> <string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' لم يعد موجودًا، ولا يمكن التقاط صورة له أبدًا.</string>
<string name="is_at_a_different_place_wikidata">\'%1$s\' في مكان آخر.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' موجود في مكان مختلف. يرجى تحديد المكان الصحيح أدناه، وإذا أمكن، اكتب خط العرض وخط الطول الصحيحين.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' موجود في مكان مختلف. يرجى تحديد المكان الصحيح أدناه، وإذا أمكن، اكتب خط العرض وخط الطول الصحيحين.</string>
<string name="other_problem_or_information_please_explain_below">مشكلة أو معلومات أخرى (يرجى التوضيح أدناه).</string> <string name="other_problem_or_information_please_explain_below">مشكلة أو معلومات أخرى (يرجى التوضيح أدناه).</string>
<string name="feedback_destination_note">سيتم نشر تعليقاتك على صفحة الويكي التالية: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string> <string name="feedback_destination_note">سيتم نشر تعليقاتك على صفحة الويكي التالية: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
@ -887,4 +891,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">مبروك، جميع الصور الموجودة في هذا الألبوم تم تحميلها أو تم وضع علامة عليها بأنها غير قابلة للتحميل.</string> <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_explore">عرض في استكشاف</string>
<string name="show_in_nearby">عرض في المناطق القريبة</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> </resources>

View file

@ -2,6 +2,7 @@
<!-- Authors: <!-- Authors:
* Aftabuzzaman * Aftabuzzaman
* Bellayet * Bellayet
* Bodhisattwa
* Borhan * Borhan
* Elias Ahmmad * Elias Ahmmad
* Leemon2010 * Leemon2010
@ -418,7 +419,11 @@
<string name="category_edit_helper_edit_message_else">বিষয়শ্রেণী হালনাগাদ করা সম্ভব হয়নি।</string> <string name="category_edit_helper_edit_message_else">বিষয়শ্রেণী হালনাগাদ করা সম্ভব হয়নি।</string>
<string name="category_edit_button_text">বিষয়শ্রেণীগুলি হালনাগাদ করুন</string> <string name="category_edit_button_text">বিষয়শ্রেণীগুলি হালনাগাদ করুন</string>
<string name="depictions_edit_helper_show_edit_title">চিত্রণ সম্পাদনা</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_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="you_have_no_achievements_yet">আপনি এখনও কোনও অবদান রাখেন নি</string>
<string name="account_created">অ্যাকাউন্ট তৈরি করা হয়েছে!</string> <string name="account_created">অ্যাকাউন্ট তৈরি করা হয়েছে!</string>
<string name="some_error">একটি ত্রুটি হয়েছে!</string> <string name="some_error">একটি ত্রুটি হয়েছে!</string>
@ -470,6 +475,9 @@
<string name="limited_connection_enabled">সীমিত সংযোগ মোড সক্রিয় করা হয়েছে!</string> <string name="limited_connection_enabled">সীমিত সংযোগ মোড সক্রিয় করা হয়েছে!</string>
<string name="limited_connection_mode">সীমিত সংযোগ মোড</string> <string name="limited_connection_mode">সীমিত সংযোগ মোড</string>
<string name="statistics_quality">মানসম্মত ছবি</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="cancel_upload">আপলোড বাতিল করুন</string>
<string name="limited_connection_explanation">আপনি সীমিত সংযোগ মোড সক্রিয় করেছেন। সমস্ত আপলোডকে এখন বিরাম দেওয়া হয়েছে ও আপনি এই মোডটি নিষ্ক্রিয় করলে আপলোড পুনরায় শুরু করা হবে।</string> <string name="limited_connection_explanation">আপনি সীমিত সংযোগ মোড সক্রিয় করেছেন। সমস্ত আপলোডকে এখন বিরাম দেওয়া হয়েছে ও আপনি এই মোডটি নিষ্ক্রিয় করলে আপলোড পুনরায় শুরু করা হবে।</string>
<string name="license_step_title">মিডিয়ার লাইসেন্স</string> <string name="license_step_title">মিডিয়ার লাইসেন্স</string>

View file

@ -20,6 +20,7 @@
* Patrik L. * Patrik L.
* Robins7 * Robins7
* Spotter * Spotter
* The astrea
* Vlad5250 * Vlad5250
* Vojtěch Dostál * Vojtěch Dostál
* Walter Klosse * Walter Klosse
@ -83,8 +84,10 @@
<item quantity="many">%1$d nahrání</item> <item quantity="many">%1$d nahrání</item>
<item quantity="other">%1$d nahrání</item> <item quantity="other">%1$d nahrání</item>
</plurals> </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="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> <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> </plurals>
<string name="navigation_item_explore">Objevit</string> <string name="navigation_item_explore">Objevit</string>
@ -107,10 +110,14 @@
<string name="updating_caption_title">Nahrávání titulků a popisů</string> <string name="updating_caption_title">Nahrávání titulků a popisů</string>
<string name="updating_caption_message">Čekejte prosím…</string> <string name="updating_caption_message">Čekejte prosím…</string>
<string name="login_success">Úspěšně přihlášeni!</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="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_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_title">%1$s nahráno!</string>
<string name="upload_completed_notification_text">Klepnutím zobrazíte upload</string> <string name="upload_completed_notification_text">Klepnutím zobrazíte upload</string>
<string name="upload_progress_notification_title_start">Načítání souboru: %s</string> <string name="upload_progress_notification_title_start">Načítání souboru: %s</string>
@ -129,31 +136,41 @@
<string name="menu_from_camera">Vyfotit</string> <string name="menu_from_camera">Vyfotit</string>
<string name="menu_nearby">Poblíž</string> <string name="menu_nearby">Poblíž</string>
<string name="provider_contributions">Moje obrázky</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_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="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_description_hint">Popis</string>
<string name="share_caption_hint" fuzzy="true">Popisek (max. 255 znaků)</string> <string name="share_caption_hint">Titulek</string>
<string name="login_failed_network" fuzzy="true">Nelze se přihlásit - selhání sítě</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_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_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_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="share_upload_button">Nahrát</string>
<string name="multiple_share_base_title">Pojmenujte tuto sadu</string> <string name="multiple_share_base_title">Pojmenujte tuto sadu</string>
<string name="provider_modifications">Úpravy</string> <string name="provider_modifications">Úpravy</string>
<string name="menu_upload_single">Načíst</string> <string name="menu_upload_single">Načíst</string>
<string name="categories_search_text_hint">Hledání kategorií</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_save_categories">Uložit</string>
<string name="menu_overflow_desc">Rozbalovací nabídka</string>
<string name="refresh_button">Obnovit</string> <string name="refresh_button">Obnovit</string>
<string name="display_list_button">Seznam</string> <string name="display_list_button">Seznam</string>
<string name="contributions_subtitle_zero">(Žádné nahrané soubory)</string> <string name="contributions_subtitle_zero">(Žádné nahrané soubory)</string>
<string name="categories_not_found">Žádné kategorie neodpovídají „%1$s“</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_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="categories_activity_title">Kategorie</string>
<string name="title_activity_settings">Nastavení</string> <string name="title_activity_settings">Nastavení</string>
<string name="title_activity_signup">Zaregistrovat se</string> <string name="title_activity_signup">Zaregistrovat se</string>
<string name="title_activity_featured_images">Nejlepší obrázky</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_category_details">Kategorie</string>
<string name="title_activity_review">Kontrola</string> <string name="title_activity_review">Kontrola</string>
<string name="menu_about">O aplikaci</string> <string name="menu_about">O aplikaci</string>
@ -216,13 +233,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="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="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="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="ok">OK</string>
<string name="warning">Upozornění</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="upload">Nahrát</string>
<string name="yes">Ano</string> <string name="yes">Ano</string>
<string name="no">Ne</string> <string name="no">Ne</string>
<string name="media_detail_caption">Titulek</string> <string name="media_detail_caption">Titulek</string>
<string name="media_detail_title">Název</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_description">Popis</string>
<string name="media_detail_discussion">Diskuse</string> <string name="media_detail_discussion">Diskuse</string>
<string name="media_detail_author">Autor</string> <string name="media_detail_author">Autor</string>
@ -233,6 +254,7 @@
<string name="become_a_tester_title">Staňte se beta testery</string> <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="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="_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="logout_verification">Opravdu se chcete odhlásit?</string>
<string name="mediaimage_failed">Obrázek</string> <string name="mediaimage_failed">Obrázek</string>
<string name="no_subcategory_found">Nebyly nalezeny podkategorie</string> <string name="no_subcategory_found">Nebyly nalezeny podkategorie</string>
@ -253,6 +275,7 @@
<string name="navigation_item_about">O aplikaci</string> <string name="navigation_item_about">O aplikaci</string>
<string name="navigation_item_settings">Nastavení</string> <string name="navigation_item_settings">Nastavení</string>
<string name="navigation_item_feedback">Zpětná vazba</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_logout">Odhlášení</string>
<string name="navigation_item_info">Průvodce</string> <string name="navigation_item_info">Průvodce</string>
<string name="navigation_item_notification">Upozornění</string> <string name="navigation_item_notification">Upozornění</string>
@ -262,6 +285,7 @@
<string name="nearby_info_menu_wikidata_article">Položka Wikidat</string> <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="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="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_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_dark">Obrázek je příliš tmavý.</string>
<string name="upload_problem_image_blurry">Obrázek je rozmazaný.</string> <string name="upload_problem_image_blurry">Obrázek je rozmazaný.</string>
@ -269,9 +293,12 @@
<string name="upload_problem_different_geolocation">Tento obrázek byl pořízen na jiném místě.</string> <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_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_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="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">Uložit snímky z aplikace</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_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="login_to_your_account">Přihlásit se k účtu</string>
<string name="send_log_file">Odeslat log</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> <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 +309,23 @@
<string name="nominated_see_more">Zobrazit webovou stránku pro více informací</string> <string name="nominated_see_more">Zobrazit webovou stránku pro více informací</string>
<string name="skip_login">Přeskočit</string> <string name="skip_login">Přeskočit</string>
<string name="navigation_item_login">Přihlásit se</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_title">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_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="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="copy_wikicode">Zkopírovat wikitext do schránky</string>
<string name="wikicode_copied">Wikitext byl zkopírován 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_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_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_directions">Trasa</string>
<string name="nearby_wikidata">Wikidata</string> <string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Wikipedie</string> <string name="nearby_wikipedia">Wikipedie</string>
<string name="nearby_commons">Commons</string> <string name="nearby_commons">Commons</string>
<string name="about_rate_us">Ohodnoťte nás</string> <string name="about_rate_us">Ohodnoťte nás</string>
<string name="about_faq">Často kladené otázky</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="welcome_skip_button">Přeskočit úvod</string>
<string name="no_internet">Internet je nedostupný</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> <string name="error_notifications">Při načítání upozornění došlo k chybě</string>
@ -321,12 +352,15 @@
<string name="title_activity_search">Hledat</string> <string name="title_activity_search">Hledat</string>
<string name="search_recent_header">Nedávná hledání:</string> <string name="search_recent_header">Nedávná hledání:</string>
<string name="provider_searches">Nedávno hledané dotazy</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_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_media">Mediální soubory</string>
<string name="search_tab_title_categories">Kategorie</string> <string name="search_tab_title_categories">Kategorie</string>
<string name="search_tab_title_depictions">Položky</string> <string name="search_tab_title_depictions">Položky</string>
<string name="explore_tab_title_featured">Nejlepší</string> <string name="explore_tab_title_featured">Nejlepší</string>
<string name="explore_tab_title_mobile">Nahrané z mobilu</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="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="wikidata_edit_failure">Nepodařilo se aktualizovat příslušnou položku na Wikidatech!</string>
<string name="menu_set_wallpaper">Nastavit jako pozadí</string> <string name="menu_set_wallpaper">Nastavit jako pozadí</string>
@ -344,27 +378,34 @@
<string name="construction_event_answer">Obrázky s technickou či kulturní tematikou jsou na Commons vítány.</string> <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="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="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="quiz_result_share_message">Sdílejte váš kvíz s přáteli!</string>
<string name="continue_message">Pokračovat</string> <string name="continue_message">Pokračovat</string>
<string name="correct">Správná odpověď</string> <string name="correct">Správná odpověď</string>
<string name="wrong">Nesprá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="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="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="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="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="delete_search_dialog">Chcete odstranit toto hledání?</string>
<string name="search_history_deleted">Historie hledání byla odstraněna</string> <string name="search_history_deleted">Historie hledání byla odstraněna</string>
<string name="nominate_delete">Navrhnout na smazání</string> <string name="nominate_delete">Navrhnout na smazání</string>
<string name="delete">Smazat</string> <string name="delete">Smazat</string>
<string name="Achievements">Dosažené úspěchy</string> <string name="Achievements">Dosažené úspěchy</string>
<string name="Profile">Profil</string> <string name="Profile">Profil</string>
<string name="badges">Odznaky</string>
<string name="statistics">Statistiky</string> <string name="statistics">Statistiky</string>
<string name="statistics_thanks">Obdržená poděkování</string> <string name="statistics_thanks">Obdržená poděkování</string>
<string name="statistics_featured">Nejlepší obrázky</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="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="images_uploaded">Nahrané obrázky</string>
<string name="image_reverts">Nerevertované obrázky</string> <string name="image_reverts">Nerevertované obrázky</string>
<string name="images_used_by_wiki">Použitých obrázků</string> <string name="images_used_by_wiki">Použitých obrázků</string>
@ -376,15 +417,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="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="error_occurred">Chyba!</string>
<string name="notifications_channel_name_all">Upozornění z Commons</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_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="contributions_fragment">Příspěvky</string>
<string name="nearby_fragment">Poblíž</string> <string name="nearby_fragment">Poblíž</string>
<string name="notifications">Upozornění</string> <string name="notifications">Upozornění</string>
<string name="read_notifications">Upozornění (přečtená)</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">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="list_sheet">Seznam</string>
<string name="storage_permission">Povolení k ukládání</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> <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 +433,11 @@
<string name="step_count">Krok %1$d z %2$d: %3$s</string> <string name="step_count">Krok %1$d z %2$d: %3$s</string>
<string name="next">Další</string> <string name="next">Další</string>
<string name="previous">Předchozí</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="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_pictures">Obrázky</string>
<string name="title_page_bookmarks_locations">Místa</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="menu_bookmark">Přidat/Odstranit ze záložek</string>
<string name="provider_bookmarks">Záložky</string> <string name="provider_bookmarks">Záložky</string>
<string name="bookmark_empty">Nemáte zatím žádné záložky</string> <string name="bookmark_empty">Nemáte zatím žádné záložky</string>
@ -410,20 +452,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_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">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="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="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_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="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="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="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="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">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="ends_on">Končí:</string>
<string name="display_campaigns">Zobrazovat kampaně</string> <string name="display_campaigns">Zobrazovat kampaně</string>
<string name="display_campaigns_explanation">Podívejte se na probíhající 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="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="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="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> <string name="check_category_adding_template">Probíhá přidávání šablony na zkontrolování kategorie</string>
@ -454,13 +512,14 @@
<string name="review_thanks_yes_button_text">Další obrázek</string> <string name="review_thanks_yes_button_text">Další obrázek</string>
<string name="review_thanks_no_button_text">Ano, proč ne</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="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">Nejsou použity žádné obrázky</string>
<string name="no_image_reverted">Žádné revertované 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_image_uploaded">Žádné nahrané obrázky</string>
<string name="no_notification">Nemáte žádná nepřečtená upozornění</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="no_read_notification">Nemáte žádná přečtená upozornění</string>
<string name="share_logs_using">Sdílet logy pomocí</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_read">Zobrazit přečtené</string>
<string name="menu_option_unread">Zobrazit nepř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> <string name="error_occurred_in_picking_images">Nastala chyba při vybírání obrázků</string>
@ -483,10 +542,13 @@
<string name="exif_tag_name_lensModel">Model objektivu</string> <string name="exif_tag_name_lensModel">Model objektivu</string>
<string name="exif_tag_name_serialNumbers">Sériová čísla</string> <string name="exif_tag_name_serialNumbers">Sériová čísla</string>
<string name="exif_tag_name_software">Software</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_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="share_via">Sdílet aplikaci pomocí…</string>
<string name="image_info">Informace o obrázku</string> <string name="image_info">Informace o obrázku</string>
<string name="no_categories_found">Nebyly nalezeny žádné kategorie</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="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="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> <string name="dialog_box_text_nomination">Proč by měl být soubor %1$s smazán?</string>
@ -497,15 +559,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_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_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_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_selfie">selfie, které není použito v žádném článku</string>
<string name="delete_helper_ask_spam_blurry" fuzzy="true">Rozmazané</string> <string name="delete_helper_ask_spam_blurry">úplně rozmazané</string>
<string name="delete_helper_ask_spam_nonsense" fuzzy="true">Nesmysl</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_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_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_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="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> <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="share_image_via">Sdílet obrázek pomocí</string>
<string name="you_have_no_achievements_yet">Zatím nemáte žádné příspěvky</string>
<string name="no_achievements_yet">Zatím nemáte žádné příspěvky</string> <string name="no_achievements_yet">Zatím nemáte žádné příspěvky</string>
<string name="account_created">Účet byl založen!</string> <string name="account_created">Účet byl založen!</string>
<string name="text_copy">Text byl zkopírován do schránky.</string> <string name="text_copy">Text byl zkopírován do schránky.</string>
@ -516,9 +613,13 @@
<string name="place_state_needs_photo">Potřebuje fotku</string> <string name="place_state_needs_photo">Potřebuje fotku</string>
<string name="place_type">Typ místa:</string> <string name="place_type">Typ místa:</string>
<string name="nearby_search_hint">Most, muzeum, hotel atd.</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_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_bookmark">Záložky</string>
<string name="title_app_shortcut_setting">Nastavení</string> <string name="title_app_shortcut_setting">Nastavení</string>
<string name="remove_bookmark">Odebráno ze záložek</string> <string name="remove_bookmark">Odebráno ze záložek</string>
@ -526,15 +627,21 @@
<string name="wallpaper_set_unsuccessfully">Něco se pokazilo. Tapetu se nepodařilo nastavit</string> <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_title">Nastavit jako tapetu</string>
<string name="setting_wallpaper_dialog_message">Nastavování tapety. Prosím, čekejte…</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_dark_name">Tmavý</string>
<string name="theme_light_name">Světlý</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="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">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="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="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="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="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="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="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_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> <string name="add_picture_to_wikipedia_article_desc">Chcete přidat tento obrázek do článku na %1$s Wikipedii?</string>
@ -545,11 +652,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_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_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_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="wikipedia_instructions_step_7">7. Zveřejněte článek</string>
<string name="copy_wikicode_to_clipboard">Zkopírujte wikitext</string> <string name="copy_wikicode_to_clipboard">Zkopírujte wikitext</string>
<string name="pause">pozastavit</string> <string name="pause">pozastavit</string>
<string name="resume">pokračovat</string> <string name="resume">pokračovat</string>
<string name="paused">Pozastaveno</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="achievements_tab_title">Dosažené úspěchy</string>
<string name="leaderboard_tab_title">Žebříček</string> <string name="leaderboard_tab_title">Žebříček</string>
<string name="rank_prefix">Pořadí</string> <string name="rank_prefix">Pořadí</string>
@ -564,6 +674,192 @@
<string name="menu_set_avatar">Nastavit jako avatar</string> <string name="menu_set_avatar">Nastavit jako avatar</string>
<string name="leaderboard_yearly">Ročně</string> <string name="leaderboard_yearly">Ročně</string>
<string name="leaderboard_weekly">Týdně</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_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="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>
<string name="image_tag_line_created_and_uploaded_by">Vytvořil/a a nahrál/a: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Vytvořeno uživatelem %1$s a nahráno uživatelem %2$s</string>
</resources> </resources>

View file

@ -119,6 +119,7 @@
<string name="login_failed_throttled">For mange mislykkede forsøg. Prøv igen om et par minutter.</string> <string name="login_failed_throttled">For mange mislykkede forsøg. Prøv igen om et par minutter.</string>
<string name="login_failed_blocked">Beklager, denne bruger er blevet blokeret på Commons</string> <string name="login_failed_blocked">Beklager, denne bruger er blevet blokeret på Commons</string>
<string name="login_failed_2fa_needed">Du skal angive din tofaktorgodkendelseskode.</string> <string name="login_failed_2fa_needed">Du skal angive din tofaktorgodkendelseskode.</string>
<string name="login_failed_email_auth_needed">En login-bekræftelseskode er blevet sendt til din e-mailadresse. Angiv koden for at logge ind.</string>
<string name="login_failed_generic">Login mislykkedes</string> <string name="login_failed_generic">Login mislykkedes</string>
<string name="share_upload_button">Upload</string> <string name="share_upload_button">Upload</string>
<string name="multiple_share_base_title">Navngiv dette sæt</string> <string name="multiple_share_base_title">Navngiv dette sæt</string>
@ -224,6 +225,7 @@
<string name="become_a_tester_title">Bliv betatester</string> <string name="become_a_tester_title">Bliv betatester</string>
<string name="become_a_tester_description">Registrer dig på vores betakanal på Google Play og få tidlig adgang til nye funktioner og fejlrettelser</string> <string name="become_a_tester_description">Registrer dig på vores betakanal på Google Play og få tidlig adgang til nye funktioner og fejlrettelser</string>
<string name="_2fa_code">2FA-kode</string> <string name="_2fa_code">2FA-kode</string>
<string name="email_auth_code">E-mail-bekræftelseskode</string>
<string name="logout_verification">Ønsker du at logge ud?</string> <string name="logout_verification">Ønsker du at logge ud?</string>
<string name="mediaimage_failed">Mediebillede mislykkedes</string> <string name="mediaimage_failed">Mediebillede mislykkedes</string>
<string name="no_subcategory_found">Ingen underkategorier fundet</string> <string name="no_subcategory_found">Ingen underkategorier fundet</string>
@ -787,6 +789,7 @@
<string name="talk">Tal</string> <string name="talk">Tal</string>
<string name="write_something_about_the_item">Skriv noget om elementet \'%1$s\'. Det vil være offentligt synligt.</string> <string name="write_something_about_the_item">Skriv noget om elementet \'%1$s\'. Det vil være offentligt synligt.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det.</string> <string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det.</string>
<string name="is_at_a_different_place_wikidata">\'%1$s\' ligger et andet sted.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad.</string>
<string name="other_problem_or_information_please_explain_below">Andet problem eller anden information (forklar venligst nedenfor).</string> <string name="other_problem_or_information_please_explain_below">Andet problem eller anden information (forklar venligst nedenfor).</string>
<string name="feedback_destination_note">Din feedback bliver slået op på følgende wiki-side: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string> <string name="feedback_destination_note">Din feedback bliver slået op på følgende wiki-side: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
@ -823,4 +826,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="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_explore">Vis i Udforsk</string>
<string name="show_in_nearby">Vis i I nærheden</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> </resources>

View file

@ -16,6 +16,7 @@
* Justman10000 * Justman10000
* Kghbln * Kghbln
* Killarnee * Killarnee
* Laserlicht
* ManuelFranz * ManuelFranz
* Mcliquid * Mcliquid
* Metalhead64 * Metalhead64
@ -140,6 +141,8 @@
<string name="menu_from_camera">Foto schießen</string> <string name="menu_from_camera">Foto schießen</string>
<string name="menu_nearby">In der Nähe</string> <string name="menu_nearby">In der Nähe</string>
<string name="provider_contributions">Meine hochgeladenen Dateien</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_share">Teilen</string>
<string name="menu_view_file_page">Dateiseite anzeigen</string> <string name="menu_view_file_page">Dateiseite anzeigen</string>
<string name="share_title_hint">Titel (erforderlich)</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_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_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_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="login_failed_generic">Anmeldung fehlgeschlagen</string>
<string name="share_upload_button">Hochladen</string> <string name="share_upload_button">Hochladen</string>
<string name="multiple_share_base_title">Benenne dieses Set</string> <string name="multiple_share_base_title">Benenne dieses Set</string>
@ -158,6 +162,7 @@
<string name="categories_search_text_hint">Kategorien durchsuchen</string> <string name="categories_search_text_hint">Kategorien durchsuchen</string>
<string name="depicts_search_text_hint">Suche nach Objekten, die dein Medium abbildet (Berg, Taj Mahal etc.)</string> <string name="depicts_search_text_hint">Suche nach Objekten, die dein Medium abbildet (Berg, Taj Mahal etc.)</string>
<string name="menu_save_categories">Speichern</string> <string name="menu_save_categories">Speichern</string>
<string name="menu_overflow_desc">Überlaufmenü</string>
<string name="refresh_button">Aktualisieren</string> <string name="refresh_button">Aktualisieren</string>
<string name="display_list_button">Liste</string> <string name="display_list_button">Liste</string>
<string name="contributions_subtitle_zero">(Noch keine hochgeladenen Dateien)</string> <string name="contributions_subtitle_zero">(Noch keine hochgeladenen Dateien)</string>
@ -254,6 +259,7 @@
<string name="become_a_tester_title">Beta-Tester werden</string> <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="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="_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="logout_verification">Möchtest du dich wirklich abmelden?</string>
<string name="mediaimage_failed">Medienbild fehlgeschlagen</string> <string name="mediaimage_failed">Medienbild fehlgeschlagen</string>
<string name="no_subcategory_found">Keine Unterkategorien gefunden</string> <string name="no_subcategory_found">Keine Unterkategorien gefunden</string>
@ -398,11 +404,13 @@
<string name="delete">Löschen</string> <string name="delete">Löschen</string>
<string name="Achievements">Errungenschaften</string> <string name="Achievements">Errungenschaften</string>
<string name="Profile">Profil</string> <string name="Profile">Profil</string>
<string name="badges">Auszeichnungen</string>
<string name="statistics">Statistiken</string> <string name="statistics">Statistiken</string>
<string name="statistics_thanks">Erhaltene Dankeschöns</string> <string name="statistics_thanks">Erhaltene Dankeschöns</string>
<string name="statistics_featured">Vorgestellte Bilder</string> <string name="statistics_featured">Vorgestellte Bilder</string>
<string name="statistics_wikidata_edits">Bilder über „Orte in der Nähe“</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="images_uploaded">Hochgeladene Bilder</string>
<string name="image_reverts">Bilder nicht zurückgesetzt</string> <string name="image_reverts">Bilder nicht zurückgesetzt</string>
<string name="images_used_by_wiki">Verwendete Bilder</string> <string name="images_used_by_wiki">Verwendete Bilder</string>
@ -434,6 +442,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="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_pictures">Bilder</string>
<string name="title_page_bookmarks_locations">Standorte</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="menu_bookmark">Zu den Lesezeichen hinzufügen/entfernen</string>
<string name="provider_bookmarks">Lesezeichen</string> <string name="provider_bookmarks">Lesezeichen</string>
<string name="bookmark_empty">Du hast keine Lesezeichen hinzugefügt</string> <string name="bookmark_empty">Du hast keine Lesezeichen hinzugefügt</string>
@ -696,7 +705,7 @@
<string name="pan_and_zoom_to_adjust">Schwenken und Zoomen zum Anpassen</string> <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="select_location_location_picker">Ort auswählen</string>
<string name="show_in_map_app">In Karten-App anzeigen</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">Die Bildansicht der Standortauswahl</string>
<string name="location_picker_image_view_shadow">Der Schatten der Bildansicht der Ortsauswahl</string> <string name="location_picker_image_view_shadow">Der Schatten der Bildansicht der Ortsauswahl</string>
<string name="image_location">Bildstandort</string> <string name="image_location">Bildstandort</string>
@ -783,7 +792,7 @@
<string name="learn_how_to_write_a_useful_caption">Erfahre, wie man eine nützliche Überschrift schreibt</string> <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="see_your_achievements">Deine Erfolge ansehen</string>
<string name="edit_image">Bild bearbeiten</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="location_updated">Standort aktualisiert!</string>
<string name="remove_location">Standort entfernen</string> <string name="remove_location">Standort entfernen</string>
<string name="remove_location_warning_title">Standortwarnung entfernen</string> <string name="remove_location_warning_title">Standortwarnung entfernen</string>
@ -828,7 +837,23 @@
<string name="custom_selector_folder_deleted_success">Ordner %1$s erfolgreich gelöscht</string> <string name="custom_selector_folder_deleted_success">Ordner %1$s erfolgreich gelöscht</string>
<string name="custom_selector_folder_deleted_failure">Ordner %1$s konnte nicht gelöscht werden</string> <string name="custom_selector_folder_deleted_failure">Ordner %1$s konnte nicht gelöscht werden</string>
<string name="custom_selector_error_trashing_folder_contents">Fehler beim Löschen des Ordnerinhalts: %1$s</string> <string name="custom_selector_error_trashing_folder_contents">Fehler beim Löschen des Ordnerinhalts: %1$s</string>
<string name="custom_selector_folder_not_found_error">Der Ordnerpfad für die Bucket-ID %1$d konnte nicht abgerufen werden</string>
<string name="red_pin">Von diesem Ort gibt es noch kein Bild. Mach eins!</string> <string name="red_pin">Von diesem Ort gibt es noch kein Bild. Mach eins!</string>
<string name="green_pin">Dieser Ort hat bereits ein Bild.</string> <string name="green_pin">Dieser Ort hat bereits ein Bild.</string>
<string name="grey_pin">Jetzt wird geprüft, ob dieser Ort bereits ein Bild hat.</string> <string name="grey_pin">Jetzt wird geprüft, ob dieser Ort bereits ein Bild hat.</string>
<string name="error_while_loading">Fehler beim Laden</string>
<string name="no_usages_found">Keine Verwendungen gefunden</string>
<string name="usages_on_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Andere Wikis</string>
<string name="file_usages_container_heading">Dateiverwendungen</string>
<string name="account">Konto</string>
<string name="vanish_account">Konto auflösen</string>
<string name="account_vanish_request_confirm_title">Kontoauflösungs-Warnung</string>
<string name="caption">Bildunterschrift</string>
<string name="caption_copied_to_clipboard">Bildunterschrift in Zwischenablage kopiert</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Herzlichen Glückwunsch, alle Bilder in diesem Album wurden entweder hochgeladen oder als nicht zum Hochladen markiert.</string>
<string name="show_in_explore">In „Erkunden“ anzeigen</string>
<string name="show_in_nearby">In „In der Nähe“ anzeigen</string>
<string name="image_tag_line_created_and_uploaded_by">Erstellt und hochgeladen von: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Erstellt von %1$s und hochgeladen von %2$s</string>
</resources> </resources>

View file

@ -315,7 +315,7 @@
<string name="share_image_via">Resımi vıla kerê pê</string> <string name="share_image_via">Resımi vıla kerê pê</string>
<string name="no_achievements_yet" fuzzy="true">Hewna to iştirak nêkerdo</string> <string name="no_achievements_yet" fuzzy="true">Hewna to iştirak nêkerdo</string>
<string name="account_created">Hesab vıraziya!</string> <string name="account_created">Hesab vıraziya!</string>
<string name="text_copy">Metın kopyayê panoyi biyo</string> <string name="text_copy">Metın be panoyi ra kopya bi</string>
<string name="notification_mark_read">Pêhesnayışi wanaye nışan bıkerê</string> <string name="notification_mark_read">Pêhesnayışi wanaye nışan bıkerê</string>
<string name="some_error">Yew xeta biye!</string> <string name="some_error">Yew xeta biye!</string>
<string name="place_state">Weziyetê cayi:</string> <string name="place_state">Weziyetê cayi:</string>

View file

@ -123,6 +123,8 @@
<string name="menu_from_camera">Τραβήξτε φωτογραφία</string> <string name="menu_from_camera">Τραβήξτε φωτογραφία</string>
<string name="menu_nearby">Κοντά</string> <string name="menu_nearby">Κοντά</string>
<string name="provider_contributions">Οι μεταφορτώσεις μου</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_share">Κοινοποίηση</string>
<string name="menu_view_file_page">Προβολή σελίδας αρχείου</string> <string name="menu_view_file_page">Προβολή σελίδας αρχείου</string>
<string name="share_title_hint">Λεζάντα (Απαιτείται)</string> <string name="share_title_hint">Λεζάντα (Απαιτείται)</string>
@ -237,6 +239,7 @@
<string name="become_a_tester_title">Γίνετε Δοκιμαστής Beta</string> <string name="become_a_tester_title">Γίνετε Δοκιμαστής Beta</string>
<string name="become_a_tester_description">Συμμετέχετε στο κανάλι beta στο Google Play και αποκτήστε πρώιμη πρόσβαση σε νέες λειτουργίες και διορθώσεις σφαλμάτων</string> <string name="become_a_tester_description">Συμμετέχετε στο κανάλι beta στο Google Play και αποκτήστε πρώιμη πρόσβαση σε νέες λειτουργίες και διορθώσεις σφαλμάτων</string>
<string name="_2fa_code">Κωδικός 2FA</string> <string name="_2fa_code">Κωδικός 2FA</string>
<string name="email_auth_code">Κωδικός επαλήθευσης ηλεκτρονικού ταχυδρομείου</string>
<string name="logout_verification">Θέλετε σίγουρα να αποσυνδεθείτε;</string> <string name="logout_verification">Θέλετε σίγουρα να αποσυνδεθείτε;</string>
<string name="mediaimage_failed">Η εικόνα πολυμέσων απέτυχε</string> <string name="mediaimage_failed">Η εικόνα πολυμέσων απέτυχε</string>
<string name="no_subcategory_found">Δε βρέθηκαν υποκατηγορίες</string> <string name="no_subcategory_found">Δε βρέθηκαν υποκατηγορίες</string>
@ -381,11 +384,13 @@
<string name="delete">Διαγραφή</string> <string name="delete">Διαγραφή</string>
<string name="Achievements">Επιτεύγματα</string> <string name="Achievements">Επιτεύγματα</string>
<string name="Profile">Προφίλ</string> <string name="Profile">Προφίλ</string>
<string name="badges">Σήματα</string>
<string name="statistics">Στατιστικά</string> <string name="statistics">Στατιστικά</string>
<string name="statistics_thanks">Ευχαριστίες που έχετε λάβει</string> <string name="statistics_thanks">Ευχαριστίες που έχετε λάβει</string>
<string name="statistics_featured">Προβεβλημμένες εικόνες</string> <string name="statistics_featured">Προβεβλημμένες εικόνες</string>
<string name="statistics_wikidata_edits">Εικόνες μέσω «Κοντινά μέρη»</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="images_uploaded">Εικόνες που μεταφορτώθηκαν</string>
<string name="image_reverts">Εικόνες που δεν ανεστράφησαν</string> <string name="image_reverts">Εικόνες που δεν ανεστράφησαν</string>
<string name="images_used_by_wiki">Εικόνες που χρησιμοποιήθηκαν</string> <string name="images_used_by_wiki">Εικόνες που χρησιμοποιήθηκαν</string>
@ -417,6 +422,7 @@
<string name="map_application_missing">Δε βρέθηκε καμία συμβατή εφαρμογή χάρτη στη συσκευή σας. Εγκαταστήστε μια εφαρμογή χάρτη για να χρησιμοποιήσετε αυτήν τη δυνατότητα.</string> <string name="map_application_missing">Δε βρέθηκε καμία συμβατή εφαρμογή χάρτη στη συσκευή σας. Εγκαταστήστε μια εφαρμογή χάρτη για να χρησιμοποιήσετε αυτήν τη δυνατότητα.</string>
<string name="title_page_bookmarks_pictures">Φωτογραφίες</string> <string name="title_page_bookmarks_pictures">Φωτογραφίες</string>
<string name="title_page_bookmarks_locations">Τοποθεσίες</string> <string name="title_page_bookmarks_locations">Τοποθεσίες</string>
<string name="title_page_bookmarks_categories">Κατηγορίες</string>
<string name="menu_bookmark">Προσθήκη/Κατάργηση σε σελιδοδείκτες</string> <string name="menu_bookmark">Προσθήκη/Κατάργηση σε σελιδοδείκτες</string>
<string name="provider_bookmarks">Σελιδοδείκτες</string> <string name="provider_bookmarks">Σελιδοδείκτες</string>
<string name="bookmark_empty">Δεν έχετε προσθέσει σελιδοδείκτες</string> <string name="bookmark_empty">Δεν έχετε προσθέσει σελιδοδείκτες</string>
@ -498,6 +504,7 @@
<string name="no_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string> <string name="no_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string>
<string name="no_read_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string> <string name="no_read_notification">Δεν έχετε αδιάβαστες ενημερώσεις</string>
<string name="share_logs_using">Κοινή χρήση αρχείων καταγραφής χρησιμοποιώντας</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_read">Προβολή αναγνωσμένων</string>
<string name="menu_option_unread">Προβολή μη αναγνωσμένων</string> <string name="menu_option_unread">Προβολή μη αναγνωσμένων</string>
<string name="error_occurred_in_picking_images">Παρουσιάστηκε σφάλμα κατά την επιλογή εικόνων</string> <string name="error_occurred_in_picking_images">Παρουσιάστηκε σφάλμα κατά την επιλογή εικόνων</string>
@ -805,4 +812,20 @@
<string name="pending">Σε εκκρεμότητα</string> <string name="pending">Σε εκκρεμότητα</string>
<string name="failed">Απέτυχε</string> <string name="failed">Απέτυχε</string>
<string name="could_not_load_place_data">Δεν ήταν δυνατή η φόρτωση δεδομένων της θέσης</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> </resources>

View file

@ -22,6 +22,7 @@
* Fitoschido * Fitoschido
* Gastonsaenz * Gastonsaenz
* Hasley * Hasley
* HylianAngel
* Ihojose * Ihojose
* JO777 * JO777
* Jack30 * Jack30
@ -150,6 +151,7 @@
<string name="menu_from_camera">Tomar una foto</string> <string name="menu_from_camera">Tomar una foto</string>
<string name="menu_nearby">Cercanos</string> <string name="menu_nearby">Cercanos</string>
<string name="provider_contributions">Mis subidas</string> <string name="provider_contributions">Mis subidas</string>
<string name="menu_copy_link">Copiar enlace</string>
<string name="menu_share">Compartir</string> <string name="menu_share">Compartir</string>
<string name="menu_view_file_page">Ver página del archivo</string> <string name="menu_view_file_page">Ver página del archivo</string>
<string name="share_title_hint">Leyenda (requerido)</string> <string name="share_title_hint">Leyenda (requerido)</string>
@ -413,7 +415,7 @@
<string name="statistics_thanks">Agradecimientos recibidos</string> <string name="statistics_thanks">Agradecimientos recibidos</string>
<string name="statistics_featured">Imágenes destacadas</string> <string name="statistics_featured">Imágenes destacadas</string>
<string name="statistics_wikidata_edits">Imágenes vía \"Sitios Cercanos\"</string> <string name="statistics_wikidata_edits">Imágenes vía \"Sitios Cercanos\"</string>
<string name="level" fuzzy="true">Nivel</string> <string name="level">Nivel %d</string>
<string name="images_uploaded">Imágenes subidas</string> <string name="images_uploaded">Imágenes subidas</string>
<string name="image_reverts">Imágenes no revertidas</string> <string name="image_reverts">Imágenes no revertidas</string>
<string name="images_used_by_wiki">Imágenes utilizadas</string> <string name="images_used_by_wiki">Imágenes utilizadas</string>

View file

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

View file

@ -5,6 +5,7 @@
* Alno * Alno
* Assorted-Interests * Assorted-Interests
* BaRaN6161 TURK * BaRaN6161 TURK
* Bananax47
* BlueCamille * BlueCamille
* Cigaryno * Cigaryno
* Cyclicus * 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_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_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_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="login_failed_generic">Échec de connexion</string>
<string name="share_upload_button">Téléverser</string> <string name="share_upload_button">Téléverser</string>
<string name="multiple_share_base_title">Nommer cet ensemble</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_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="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="_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="logout_verification">Voulez-vous vraiment vous déconnecter?</string>
<string name="mediaimage_failed">Échec sur limage du média</string> <string name="mediaimage_failed">Échec sur limage du média</string>
<string name="no_subcategory_found">Aucune sous-catégorie trouvée</string> <string name="no_subcategory_found">Aucune sous-catégorie trouvée</string>
@ -826,6 +829,7 @@
<string name="talk">Discussion</string> <string name="talk">Discussion</string>
<string name="write_something_about_the_item">Écrivez quelque chose à propos de lélément « %1$s ». Il sera visible publiquement.</string> <string name="write_something_about_the_item">Écrivez quelque chose à propos de lélément « %1$s ». Il sera visible publiquement.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' n\'existe plus, aucune photo ne pourra jamais en être prise.</string> <string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' n\'existe plus, aucune photo ne pourra jamais en être prise.</string>
<string name="is_at_a_different_place_wikidata">\'%1$s\' est à un endroit différent.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' se trouve à un endroit différent. Veuillez indiquer l\'endroit correct ci-dessous et, si possible, indiquez la latitude et la longitude correctes.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' se trouve à un endroit différent. Veuillez indiquer l\'endroit correct ci-dessous et, si possible, indiquez la latitude et la longitude correctes.</string>
<string name="other_problem_or_information_please_explain_below">Autre problème ou information (merci d\'expliquer ci-dessous).</string> <string name="other_problem_or_information_please_explain_below">Autre problème ou information (merci d\'expliquer ci-dessous).</string>
<string name="feedback_destination_note">Vos commentaires sont publiés sur la page wiki suivante : &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string> <string name="feedback_destination_note">Vos commentaires sont publiés sur la page wiki suivante : &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
@ -853,8 +857,16 @@
<string name="usages_on_other_wikis_heading">Autres wikis</string> <string name="usages_on_other_wikis_heading">Autres wikis</string>
<string name="bullet_point"></string> <string name="bullet_point"></string>
<string name="file_usages_container_heading">Utilisations du fichier</string> <string name="file_usages_container_heading">Utilisations du fichier</string>
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
<string name="account">Compte</string>
<string name="vanish_account">Faire disparaître le compte</string>
<string name="account_vanish_request_confirm_title">Avertissement de disparition du compte</string>
<string name="account_vanish_request_confirm">La disparition est un &lt;b&gt;dernier recours&lt;/b&gt; et ne devrait être &lt;b&gt;utilisée que quand vous voulez arrêter déditer pour toujours&lt;/b&gt; et aussi pour cacher autant que possible vos associations passées.&lt;br/&gt;&lt;br/&gt;La suppression de compte sur Wikimedia Commons se fait en changeant le nom de votre compte de sorte que les autres ne peuvent pas identifier vos contributions, lors dun processus appelé disparition du compte. &lt;b&gt;La disparition ne garantit pas lanonymat complet ni ne supprime les contributions de vos projets&lt;/b&gt;.</string>
<string name="caption">Légende</string> <string name="caption">Légende</string>
<string name="caption_copied_to_clipboard">Légende copiée dans le presse-papier</string> <string name="caption_copied_to_clipboard">Légende copiée dans le presse-papier</string>
<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_explore">Afficher dans Explorer</string>
<string name="show_in_nearby">Afficher à proximité</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> </resources>

View file

@ -40,13 +40,13 @@
<item quantity="one">(%1$d)</item> <item quantity="one">(%1$d)</item>
<item quantity="other">(%1$d)</item> <item quantity="other">(%1$d)</item>
</plurals> </plurals>
<plurals name="starting_multiple_uploads" fuzzy="true"> <plurals name="starting_multiple_uploads">
<item quantity="one">Iniciando %1$d carga</item> <item quantity="one">Procesando %d carga</item>
<item quantity="other">Iniciando %1$d cargas</item> <item quantity="other">Procesando %d cargas</item>
</plurals> </plurals>
<plurals name="multiple_uploads_title" fuzzy="true"> <plurals name="multiple_uploads_title">
<item quantity="one">%1$d carga</item> <item quantity="one">%d carga</item>
<item quantity="other">%1$d cargas</item> <item quantity="other">%d cargas</item>
</plurals> </plurals>
<plurals name="share_license_summary"> <plurals name="share_license_summary">
<item quantity="one">Esta imaxe quedará baixo a licenza %1$s</item> <item quantity="one">Esta imaxe quedará baixo a licenza %1$s</item>
@ -80,16 +80,16 @@
<string name="updating_caption_title">A actualizar lendas e descricións</string> <string name="updating_caption_title">A actualizar lendas e descricións</string>
<string name="updating_caption_message">Agarde un chisco…</string> <string name="updating_caption_message">Agarde un chisco…</string>
<string name="login_success">Accedeu correctamente!</string> <string name="login_success">Accedeu correctamente!</string>
<string name="login_failed">Erro durante o inició de sesión!</string> <string name="login_failed">Erro durante o inicio de sesión!</string>
<string name="upload_failed">Ficheiro non atopado. Por favor, probe con outro.</string> <string name="upload_failed">Ficheiro non atopado. Por favor, probe con outro.</string>
<string name="retry_limit_reached">Alcanzouse o límite máximo de reintentos! Cancele o envío e ténteo de novo</string> <string name="retry_limit_reached">Alcanzouse o límite máximo de reintentos! Cancele o envío e ténteo de novo</string>
<string name="unrestricted_battery_mode">Desactivar a optimización da batería?</string> <string name="unrestricted_battery_mode">Desactivar a optimización da batería?</string>
<string name="authentication_failed">Fallou a autenticación. Inicie sesión de novo.</string> <string name="authentication_failed">Fallou a autenticación. Inicie sesión de novo.</string>
<string name="uploading_started">A carga comezou!</string> <string name="uploading_started">A carga comezou!</string>
<string name="uploading_queued">Envío en cola (modo de conexión limitado activado)</string> <string name="uploading_queued">Envío en cola (modo de conexión limitado activado)</string>
<string name="upload_completed_notification_title">Cargouse \"%1$s\"!</string> <string name="upload_completed_notification_title">Subiuse \"%1$s\"!</string>
<string name="upload_completed_notification_text">Prema para ollar a súa carga</string> <string name="upload_completed_notification_text">Prema para ollar a súa carga</string>
<string name="upload_progress_notification_title_start">A enviar ficheiro: %s</string> <string name="upload_progress_notification_title_start">A subir o ficheiro: %s</string>
<string name="upload_progress_notification_title_in_progress">Cargando \"%1$s\"</string> <string name="upload_progress_notification_title_in_progress">Cargando \"%1$s\"</string>
<string name="upload_progress_notification_title_finishing">Rematando a carga de \"%1$s\"</string> <string name="upload_progress_notification_title_finishing">Rematando a carga de \"%1$s\"</string>
<string name="upload_failed_notification_title">Produciuse un erro ao enviar %1$s</string> <string name="upload_failed_notification_title">Produciuse un erro ao enviar %1$s</string>
@ -352,7 +352,7 @@
<string name="statistics_thanks">Agradecementos recibidos</string> <string name="statistics_thanks">Agradecementos recibidos</string>
<string name="statistics_featured">Imaxes destacadas</string> <string name="statistics_featured">Imaxes destacadas</string>
<string name="statistics_wikidata_edits">Imaxes vía \"Lugares próximos\"</string> <string name="statistics_wikidata_edits">Imaxes vía \"Lugares próximos\"</string>
<string name="level" fuzzy="true">Nivel</string> <string name="level">Nivel %d</string>
<string name="images_uploaded">Imaxes cargadas</string> <string name="images_uploaded">Imaxes cargadas</string>
<string name="image_reverts">Imaxes non revertidas</string> <string name="image_reverts">Imaxes non revertidas</string>
<string name="images_used_by_wiki">Imaxes usadas</string> <string name="images_used_by_wiki">Imaxes usadas</string>
@ -408,14 +408,14 @@
<string name="never_ask_again">Non volver a preguntar isto nunca</string> <string name="never_ask_again">Non volver a preguntar isto nunca</string>
<string name="display_location_permission_title">Solicitar permiso de localización</string> <string name="display_location_permission_title">Solicitar permiso de localización</string>
<string name="display_location_permission_explanation">Pedir permisos de localización cando sexa necesario para a funcionalidade de notificación de proximidade.</string> <string name="display_location_permission_explanation">Pedir permisos de localización cando sexa necesario para a funcionalidade de notificación de proximidade.</string>
<string name="achievements_fetch_failed" fuzzy="true">Algo foi mal, non puidemos obter as túas achegas</string> <string name="achievements_fetch_failed">Algo foi mal e non puidemos obter os logros</string>
<string name="ends_on">Finaliza o:</string> <string name="ends_on">Finaliza o:</string>
<string name="display_campaigns">Amosar campañas</string> <string name="display_campaigns">Amosar campañas</string>
<string name="display_campaigns_explanation">Ver as campañas en curso</string> <string name="display_campaigns_explanation">Ver as campañas en curso</string>
<string name="option_allow">Permitir</string> <string name="option_allow">Permitir</string>
<string name="option_dismiss">Descartar</string> <string name="option_dismiss">Descartar</string>
<string name="nearby_campaign_dismiss_message">Xa non verá as campañas. Porén, pode volver habilitar esta notificación na configuración.</string> <string name="nearby_campaign_dismiss_message">Xa non verá as campañas. Porén, pode volver habilitar esta notificación na configuración.</string>
<string name="this_function_needs_network_connection" fuzzy="true">Esta función require conexión de rede, verifique a súa configuración de conexión.</string> <string name="this_function_needs_network_connection">Esta función necesita conexión de rede. Verifique a súa configuración de conexión.</string>
<string name="error_processing_image">Houbo un erro ó procesar a imaxe. Por favor, ténteo de novoǃ</string> <string name="error_processing_image">Houbo un erro ó procesar a imaxe. Por favor, ténteo de novoǃ</string>
<string name="getting_edit_token">Obter un identificador para editar</string> <string name="getting_edit_token">Obter un identificador para editar</string>
<string name="check_category_adding_template">Engadir modelo para o control de categoría</string> <string name="check_category_adding_template">Engadir modelo para o control de categoría</string>
@ -462,8 +462,8 @@
<string name="delete_helper_show_deletion_title_failed">Fallou</string> <string name="delete_helper_show_deletion_title_failed">Fallou</string>
<string name="delete_helper_show_deletion_message_else">Non foi posíbel solicitar a eliminación.</string> <string name="delete_helper_show_deletion_message_else">Non foi posíbel solicitar a eliminación.</string>
<string name="delete_helper_ask_spam_selfie">Un autorretrato que non se emprega en ningún artigo</string> <string name="delete_helper_ask_spam_selfie">Un autorretrato que non se emprega en ningún artigo</string>
<string name="delete_helper_ask_spam_blurry" fuzzy="true">Borrosa</string> <string name="delete_helper_ask_spam_blurry">completamente borrosa</string>
<string name="delete_helper_ask_spam_nonsense" fuzzy="true">Sen sentido</string> <string name="delete_helper_ask_spam_nonsense">sen sentido, totalmente inusable en calquera artigo</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Foto de prensa</string> <string name="delete_helper_ask_reason_copyright_press_photo">Foto de prensa</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Foto aleatoria de internet</string> <string name="delete_helper_ask_reason_copyright_internet_photo">Foto aleatoria de internet</string>
<string name="delete_helper_ask_reason_copyright_logo">Logo</string> <string name="delete_helper_ask_reason_copyright_logo">Logo</string>

View file

@ -65,12 +65,12 @@
<string name="password">Jelszó</string> <string name="password">Jelszó</string>
<string name="login_credential">Jelentkezz be a Commons Béta fiókoddal</string> <string name="login_credential">Jelentkezz be a Commons Béta fiókoddal</string>
<string name="login">Bejelentkezés</string> <string name="login">Bejelentkezés</string>
<string name="forgot_password">Elfelejtett jelszó:</string> <string name="forgot_password">Elfelejtett jelszó</string>
<string name="signup">Regisztráció</string> <string name="signup">Regisztráció</string>
<string name="logging_in_title">Belépés…</string> <string name="logging_in_title">Belépés…</string>
<string name="logging_in_message">Kérlek várj…</string> <string name="logging_in_message">Kérlek várj…</string>
<string name="login_success" fuzzy="true">Sikeres bejelentkezés</string> <string name="login_success">Sikeres bejelentkezés</string>
<string name="login_failed" fuzzy="true">A bejelentkezés nem sikerült.</string> <string name="login_failed">A bejelentkezés nem sikerült.</string>
<string name="upload_failed">A fájl nem található. Próbálkozz másik fájllal.</string> <string name="upload_failed">A fájl nem található. Próbálkozz másik fájllal.</string>
<string name="retry_limit_reached">Elérted az újrapróbálkozások maximális számát. Szakítsd meg a feltöltést, és próbáld újra!</string> <string name="retry_limit_reached">Elérted az újrapróbálkozások maximális számát. Szakítsd meg a feltöltést, és próbáld újra!</string>
<string name="unrestricted_battery_mode">Kikapcsolod az akkumulátoroptimalizálást?</string> <string name="unrestricted_battery_mode">Kikapcsolod az akkumulátoroptimalizálást?</string>
@ -82,7 +82,7 @@
<string name="upload_progress_notification_title_start">Fájl feltöltése: %s</string> <string name="upload_progress_notification_title_start">Fájl feltöltése: %s</string>
<string name="upload_progress_notification_title_in_progress">%1$s feltöltése</string> <string name="upload_progress_notification_title_in_progress">%1$s feltöltése</string>
<string name="upload_progress_notification_title_finishing">%1$s feltöltése befejezve</string> <string name="upload_progress_notification_title_finishing">%1$s feltöltése befejezve</string>
<string name="upload_failed_notification_title" fuzzy="true">%1$s feltöltése sikertelen</string> <string name="upload_failed_notification_title">%1$s feltöltése sikertelen</string>
<string name="upload_paused_notification_title">%1$s feltöltés megállítva</string> <string name="upload_paused_notification_title">%1$s feltöltés megállítva</string>
<string name="upload_failed_notification_subtitle">Érintsd meg a megtekintéshez</string> <string name="upload_failed_notification_subtitle">Érintsd meg a megtekintéshez</string>
<string name="upload_paused_notification_subtitle">Megnézéshez koppints</string> <string name="upload_paused_notification_subtitle">Megnézéshez koppints</string>
@ -98,11 +98,11 @@
<string name="menu_share">Megosztás</string> <string name="menu_share">Megosztás</string>
<string name="share_title_hint">Képaláírás (kötelező)</string> <string name="share_title_hint">Képaláírás (kötelező)</string>
<string name="share_description_hint">Leírás</string> <string name="share_description_hint">Leírás</string>
<string name="login_failed_network" fuzzy="true">Nem lehet bejelentkezni - hálózati hiba</string> <string name="login_failed_network">Nem sikerült bejelentkezni hálózati hiba</string>
<string name="login_failed_throttled">Túl sok sikertelen próbálkozás. Próbálkozz újra pár perc múlva.</string> <string name="login_failed_throttled">Túl sok sikertelen próbálkozás. Próbálkozz újra pár perc múlva.</string>
<string name="login_failed_blocked">Sajnáljuk, ezt a felhasználót blokkolták a Commonson</string> <string name="login_failed_blocked">Sajnáljuk, ezt a felhasználót blokkolták a Commonson</string>
<string name="login_failed_2fa_needed">Meg kell adnod a kétlépcsős hitelesítő kódodat.</string> <string name="login_failed_2fa_needed">Meg kell adnod a kétlépcsős hitelesítő kódodat.</string>
<string name="login_failed_generic" fuzzy="true">Bejelentkezési hiba</string> <string name="login_failed_generic">Bejelentkezési hiba</string>
<string name="share_upload_button">Feltöltés</string> <string name="share_upload_button">Feltöltés</string>
<string name="multiple_share_base_title">Nevezd el a gyűjteményt</string> <string name="multiple_share_base_title">Nevezd el a gyűjteményt</string>
<string name="provider_modifications">Változtatások</string> <string name="provider_modifications">Változtatások</string>
@ -246,7 +246,7 @@
<string name="nominated_see_more">Weboldal megtekintése további részletekért</string> <string name="nominated_see_more">Weboldal megtekintése további részletekért</string>
<string name="skip_login">Kihagyás</string> <string name="skip_login">Kihagyás</string>
<string name="navigation_item_login">Bejelentkezés</string> <string name="navigation_item_login">Bejelentkezés</string>
<string name="skip_login_title" fuzzy="true">Biztos ki akarod hagyni a bejelentkezést?</string> <string name="skip_login_title">Biztos ki akarod hagyni a bejelentkezést?</string>
<string name="skip_login_message" fuzzy="true">Fényképek feltöltéséhez a jövőben be kell jelentkezned.</string> <string name="skip_login_message" fuzzy="true">Fényképek feltöltéséhez a jövőben be kell jelentkezned.</string>
<string name="login_alert_message">A funkció használatához kérlek jelentkezz be.</string> <string name="login_alert_message">A funkció használatához kérlek jelentkezz be.</string>
<string name="copy_wikicode">Wikiszöveg vágólapra másolása</string> <string name="copy_wikicode">Wikiszöveg vágólapra másolása</string>
@ -325,7 +325,7 @@
<string name="statistics_thanks">Kapott köszönetek</string> <string name="statistics_thanks">Kapott köszönetek</string>
<string name="statistics_featured">Kiemelt képek</string> <string name="statistics_featured">Kiemelt képek</string>
<string name="statistics_wikidata_edits">Képek a \"közeli helyek\" segítségével</string> <string name="statistics_wikidata_edits">Képek a \"közeli helyek\" segítségével</string>
<string name="level" fuzzy="true">Szint</string> <string name="level">%d. szint</string>
<string name="images_uploaded">Feltöltött képek</string> <string name="images_uploaded">Feltöltött képek</string>
<string name="images_used_by_wiki">Felhasznált képek</string> <string name="images_used_by_wiki">Felhasznált képek</string>
<string name="achievements_share_message">Oszd meg eredményeidet a barátaiddal!</string> <string name="achievements_share_message">Oszd meg eredményeidet a barátaiddal!</string>

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_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_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_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="login_failed_generic">Eniro faliis</string>
<string name="share_upload_button">Kargar</string> <string name="share_upload_button">Kargar</string>
<string name="multiple_share_base_title">Nomizes ca ajusto</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_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="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="_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="logout_verification">Ka vu deziras ekirar?</string>
<string name="mediaimage_failed">Faliis montrar imajo</string> <string name="mediaimage_failed">Faliis montrar imajo</string>
<string name="no_subcategory_found">Nula subkategorio trovesis</string> <string name="no_subcategory_found">Nula subkategorio trovesis</string>
@ -385,12 +387,16 @@
<string name="notifications">Avizi</string> <string name="notifications">Avizi</string>
<string name="read_notifications">Avizi (lektita)</string> <string name="read_notifications">Avizi (lektita)</string>
<string name="display_nearby_notification">Montrez proxima avizo</string> <string name="display_nearby_notification">Montrez proxima avizo</string>
<string name="display_nearby_notification_summary">Montrar avizo en utensilo \'\'app\'\' pri la maxim proxima loko qua bezonas pikturi</string>
<string name="list_sheet">Listo</string> <string name="list_sheet">Listo</string>
<string name="storage_permission">Permiso pri enmagazinigo</string> <string name="storage_permission">Permiso pri enmagazinigo</string>
<string name="write_storage_permission_rationale_for_image_share">Ni bezonas vua permiso por acesar l\'extera enmagazinigado di vua utensilo, por sendar imaji.</string>
<string name="nearby_notification_dismiss_message">Vu ne pluse vidos la maxim proxima loko qua bezonas fotografuro. Tamen, vu povas kapabligar itere ca avizo en Ajusti (\'\'Settings\'\'), se vu deziros.</string>
<string name="step_count">Etapo %1$d de %2$d: %3$s</string> <string name="step_count">Etapo %1$d de %2$d: %3$s</string>
<string name="next">Sequanta</string> <string name="next">Sequanta</string>
<string name="previous">Antea</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="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_pictures">Imaji</string>
<string name="title_page_bookmarks_locations">Loki</string> <string name="title_page_bookmarks_locations">Loki</string>
<string name="title_page_bookmarks_categories">Kategorii</string> <string name="title_page_bookmarks_categories">Kategorii</string>
@ -409,19 +415,41 @@
<string name="no_categories_selected">Nula kategorio selektita</string> <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_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">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">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="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> <string name="search_this_area">Serchez ca areo</string>
<string name="nearby_card_permission_title">Permiso bezonata</string> <string name="nearby_card_permission_title">Permiso bezonata</string>
<string name="nearby_card_permission_explanation">Ka vu deziras ke ni uzez vua nuna lokizo por montrar vicina loki qui bezonas imaji?</string> <string name="nearby_card_permission_explanation">Ka vu deziras ke ni uzez vua nuna lokizo por montrar vicina loki qui bezonas imaji?</string>
<string name="unable_to_display_nearest_place">Ne esas posibla montrar la maxim proxima loko qua bezonas imajo, se vu ne montros vua lokizo</string>
<string name="never_ask_again">Ne pluse demandez to</string> <string name="never_ask_again">Ne pluse demandez to</string>
<string name="display_location_permission_title">Demandar lokala permiso</string> <string name="display_location_permission_title">Demandar lokala permiso</string>
<string name="display_location_permission_explanation">Demandez lokala permiso, kande bezonata por uzar karto montranta proximeso.</string> <string name="display_location_permission_explanation">Demandez lokala permiso, kande bezonata por uzar karto montranta proximeso.</string>
<string name="achievements_fetch_failed">Ulu faliis, ni ne povis montrar vua sucesi</string>
<string name="achievements_fetch_failed_ultimate_achievement">Vu facis plu multa kontributaji, e nia kalkulo-utensilo ne povis kalkular li. To esis la maxim importanta suceso.</string>
<string name="ends_on">Finas la:</string> <string name="ends_on">Finas la:</string>
<string name="display_campaigns">Montrez kampanii</string> <string name="display_campaigns">Montrez kampanii</string>
<string name="display_campaigns_explanation">Videz la kampanii duranta</string> <string name="display_campaigns_explanation">Videz la kampanii duranta</string>
<string name="in_app_camera_location_access_explanation">Permisez ke l\'utensilo (\'\'app\'\') lokizez, se la kamero ne enrejistros la lokizo. Kelka kameri ne havas utensilo por enrejistrar lokizo. Cakaze, vua kontributado divenos plu utila se vu permisos ke l\'\'\'app\'\' prenez ed enrejistrez lokizi. Vu povos abrogar ca permiso irgatempe en Ajusti (\'\'Settings\'\')</string>
<string name="option_allow">Permisar</string> <string name="option_allow">Permisar</string>
<string name="option_dismiss">Eskartar</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_permission_denied">La programo \'\'app\'\' ne enrejistros informo pri lokizo en la fotografuri pro manko di permisi</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="open_document_photo_picker_explanation">La nova funciono \'\'Android photo picker\'\' povas perdar informo pri lokizo. Kapabligez ol, se vu semblas uzar ol.</string>
<string name="location_loss_warning">Deskapabliganta ol povos deskuplar la nova funciono \'\'Android photo picker\'\'. Posible perdos informo pri lokizo.</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>
<string name="check_category_edit_summary">Demandanta verifiko di kategorio</string>
<string name="check_category_success_title">Verifiko di kategorio demandita</string>
<string name="check_category_failure_title">Demando pri verifiko di kategorio ne funcionis</string>
<string name="check_category_success_message">Dema%1$sndita verifiko di kategorio por %1$s</string>
<string name="check_category_failure_message">Ne povis demandar verifiko di kategorio por %1$s</string>
<string name="check_category_toast">Demandanta verifiko di kategorio por %1$s</string>
<string name="nominate_for_deletion_done">Facita</string> <string name="nominate_for_deletion_done">Facita</string>
<string name="send_thank_success_title">Sendanta danko: Suceso</string> <string name="send_thank_success_title">Sendanta danko: Suceso</string>
<string name="send_thank_success_message">Danko sendita sucese a %1$s</string> <string name="send_thank_success_message">Danko sendita sucese a %1$s</string>
@ -430,8 +458,10 @@
<string name="send_thank_toast">Sendanta danko a %1$s</string> <string name="send_thank_toast">Sendanta danko a %1$s</string>
<string name="review_copyright">Ka to obedias la reguli pri autoroyuro?</string> <string name="review_copyright">Ka to obedias la reguli pri autoroyuro?</string>
<string name="review_category">Ka lua kategorio esas korekta?</string> <string name="review_category">Ka lua kategorio esas korekta?</string>
<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_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_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_no_category">Ho, to ne mem havas kategorio!</string>
<string name="review_category_explanation">Ca imajo havas %1$s kategorii.</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> <string name="review_spam_report_question">Ol esas kontre la skopo, nam ol esas</string>
@ -445,16 +475,23 @@
<string name="no_image_uploaded">Nula imajo sendita</string> <string name="no_image_uploaded">Nula imajo sendita</string>
<string name="no_notification">Vu havas nul avizi sen lektar</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="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="check_your_email_inbox">Verifikez vua e-postal adreso</string>
<string name="menu_option_read">Vidar lektita</string> <string name="menu_option_read">Vidar lektita</string>
<string name="menu_option_unread">Vidar ne-lektata</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="error_occurred_in_picking_images">Eventis eroro dum selekto di imaji</string>
<string name="please_wait">Vartez...</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="copied_successfully">Kopiita</string>
<string name="welcome_do_upload_content_description">Exempli pri bona imaji por sendar a Commons</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>
<string name="skip_image">Saltez ca imajo</string> <string name="skip_image">Saltez ca imajo</string>
<string name="download_failed_we_cannot_download_the_file_without_storage_permission">Descharjo faliis!! Ni ne povis descharjar l\'arkivo sen permiso pri extera konservo.</string> <string name="download_failed_we_cannot_download_the_file_without_storage_permission">Descharjo faliis!! Ni ne povis descharjar l\'arkivo sen permiso pri extera konservo.</string>
<string name="manage_exif_tags">Administrar etiketi EXIF</string> <string name="manage_exif_tags">Administrar etiketi EXIF</string>
<string name="manage_exif_tags_summary">Dum sendo di arkivi, selektez quala etiketi EXIF devas mantenesar</string>
<string name="exif_tag_name_author">Autoro</string> <string name="exif_tag_name_author">Autoro</string>
<string name="exif_tag_name_copyright">Autoroyuro</string> <string name="exif_tag_name_copyright">Autoroyuro</string>
<string name="exif_tag_name_location">Loko</string> <string name="exif_tag_name_location">Loko</string>
@ -462,13 +499,23 @@
<string name="exif_tag_name_lensModel">Modelo di lenso</string> <string name="exif_tag_name_lensModel">Modelo di lenso</string>
<string name="exif_tag_name_serialNumbers">Serio-nombro</string> <string name="exif_tag_name_serialNumbers">Serio-nombro</string>
<string name="exif_tag_name_software">Software</string> <string name="exif_tag_name_software">Software</string>
<string name="media_location_permission_denied">Aceso ad enmagazinigo-moyeno ne permisita</string>
<string name="share_via">Partigar utensilo \'\'app\'\' per...</string>
<string name="image_info">Informo pri imajo</string> <string name="image_info">Informo pri imajo</string>
<string name="no_categories_found">Nula kategorio trovesis</string> <string name="no_categories_found">Nula kategorio trovesis</string>
<string name="no_depiction_found">Nula reprezenturi trovita</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="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> <string name="delete_helper_show_deletion_title_success">Suceso</string>
<string name="delete_helper_show_deletion_message_if">Indikita %1$s por efaco.</string>
<string name="delete_helper_show_deletion_title_failed">Faliis</string> <string name="delete_helper_show_deletion_title_failed">Faliis</string>
<string name="delete_helper_show_deletion_message_else">Ne povis demandar efaco.</string> <string name="delete_helper_show_deletion_message_else">Ne povis demandar efaco.</string>
<string name="delete_helper_ask_spam_selfie">\'\'selfie\'\'-imajo qua ne uzesas en irga artiklo</string>
<string name="delete_helper_ask_spam_blurry">komplete neklara</string> <string name="delete_helper_ask_spam_blurry">komplete neklara</string>
<string name="delete_helper_ask_spam_nonsense">sensencajo, qua ne povas uzesar en irga artiklo</string>
<string name="delete_helper_ask_reason_copyright_press_photo">Fotografuro de komunikilaro</string> <string name="delete_helper_ask_reason_copyright_press_photo">Fotografuro de komunikilaro</string>
<string name="delete_helper_ask_reason_copyright_internet_photo">Hazarda imajo de Interreto</string> <string name="delete_helper_ask_reason_copyright_internet_photo">Hazarda imajo de Interreto</string>
<string name="delete_helper_ask_reason_copyright_logo">Emblemo</string> <string name="delete_helper_ask_reason_copyright_logo">Emblemo</string>
@ -533,10 +580,21 @@
<string name="theme_default_name">Sequar sistemo</string> <string name="theme_default_name">Sequar sistemo</string>
<string name="theme_dark_name">Koloro obskura</string> <string name="theme_dark_name">Koloro obskura</string>
<string name="theme_light_name">Koloro klara</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="load_more">Charjez pluse</string>
<string name="todo_improve">Plubonigi propozata:</string>
<string name="missing_category">- Adjuntez kategorii a ca imajo, por faciligar lua uzado.</string>
<string name="missing_article">- Adjuntez ca imajo ad artiklo asociita de Wikipedio, qua havas nula imajo.</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>
<string name="confirm">Konfirmez</string> <string name="confirm">Konfirmez</string>
<string name="instructions_title">Instrucioni</string> <string name="instructions_title">Instrucioni</string>
<string name="wikipedia_instructions_step_1">1. Uzez la sequanta wikitexto:</string> <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="pause">pauzar</string>
<string name="resume">durigar</string> <string name="resume">durigar</string>
<string name="paused">Pauzita</string> <string name="paused">Pauzita</string>
@ -550,6 +608,7 @@
<string name="leaderboard_column_user">Uzero</string> <string name="leaderboard_column_user">Uzero</string>
<string name="leaderboard_column_count">Quanteso</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_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_successfully">Ajusto di avataro</string>
<string name="avatar_set_unsuccessfully">Eroro dum ajusto di nov avataro, voluntez probar itere</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> <string name="menu_set_avatar">Uzar kom avataro</string>
@ -560,7 +619,11 @@
<string name="leaderboard_nearby">Vicina</string> <string name="leaderboard_nearby">Vicina</string>
<string name="leaderboard_used">Uzita</string> <string name="leaderboard_used">Uzita</string>
<string name="leaderboard_my_rank_button_text">Mea rango</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="limited_connection_mode">Modo por limitizita retoligilo</string>
<string name="statistics_quality">Imaji di qualeso</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="cancelling_upload">Nuliganta sendajo...</string>
<string name="cancel_upload">Cesar kargajo</string> <string name="cancel_upload">Cesar kargajo</string>
<string name="depicts_step_title">Montras</string> <string name="depicts_step_title">Montras</string>
@ -590,8 +653,11 @@
<string name="custom_selector_limit_error_desc">Eroro: Limito pri sendajo transpasita</string> <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="wlm_upload_info">Ca imajo partoprenos en konkurso \'\'Wiki Loves Monuments\'\'</string>
<string name="display_monuments">Montrez monumenti</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="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="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="contributions_of_user">Kontributadi dil uzero: %s</string>
<string name="achievements_of_user">Sucesi 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> <string name="menu_view_user_page">Vidar profilo dil uzero</string>
@ -617,6 +683,7 @@
<string name="mark_as_not_for_upload">Indikez por ne sendar ol</string> <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="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="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="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="can_not_select_this_image_for_upload">Ne povis selektar ca imajo por sendar (\'\'upload\'\')</string>
<string name="image_selected">Imajo selektita</string> <string name="image_selected">Imajo selektita</string>
@ -628,13 +695,19 @@
<string name="report_user">Avizar ca uzero</string> <string name="report_user">Avizar ca uzero</string>
<string name="report_content">Informar ca kontenajo</string> <string name="report_content">Informar ca kontenajo</string>
<string name="request_user_block">Demandar blokuso di ca uzero</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="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="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_image">Modifikar imajo</string>
<string name="edit_location">Aktualigar lokizo</string> <string name="edit_location">Aktualigar lokizo</string>
<string name="location_updated">Lokizo aktualigita!</string> <string name="location_updated">Lokizo aktualigita!</string>
<string name="remove_location">Removar lokizo</string> <string name="remove_location">Removar lokizo</string>
<string name="remove_location_warning_title">Removar avizo pri 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="location_removed">Lokizo efacita!</string>
<string name="send_thanks_to_author">Dankar l\'autoro</string> <string name="send_thanks_to_author">Dankar l\'autoro</string>
<string name="error_sending_thanks">Eroro sendanta danki al autoro.</string> <string name="error_sending_thanks">Eroro sendanta danki al autoro.</string>
@ -652,6 +725,7 @@
</plurals> </plurals>
<string name="talk">Diskuto</string> <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="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="uploads">Arkivi sendita</string>
<string name="pending">Vartanta</string> <string name="pending">Vartanta</string>
<string name="failed">Faliis</string> <string name="failed">Faliis</string>
@ -663,6 +737,12 @@
<string name="custom_selector_cancel">Nuligez</string> <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_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_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_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Altra wiki</string> <string name="usages_on_other_wikis_heading">Altra wiki</string>
<string name="file_usages_container_heading">Uzi dil arkivo</string> <string name="file_usages_container_heading">Uzi dil arkivo</string>
@ -670,7 +750,10 @@
<string name="account">Konto</string> <string name="account">Konto</string>
<string name="vanish_account">Efacar 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_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">Deskripto-texto</string>
<string name="caption_copied_to_clipboard">Deskripto-texto kopiita a \'\'clipboard\'\'</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="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> </resources>

View file

@ -9,6 +9,7 @@
* Champ0999 * Champ0999
* Davio * Davio
* Dream Indigo * Dream Indigo
* Emabarto01
* Gianfranco * Gianfranco
* Lorelai87 * Lorelai87
* Lorem Ipsum * Lorem Ipsum
@ -119,6 +120,8 @@
<string name="menu_from_camera">Scatta foto</string> <string name="menu_from_camera">Scatta foto</string>
<string name="menu_nearby">Nelle vicinanze</string> <string name="menu_nearby">Nelle vicinanze</string>
<string name="provider_contributions">I miei caricamenti</string> <string name="provider_contributions">I miei caricamenti</string>
<string name="menu_copy_link">Copia collegamento</string>
<string name="menu_link_copied">Il collegamento è stato copiato negli appunti</string>
<string name="menu_share">Condividi</string> <string name="menu_share">Condividi</string>
<string name="menu_view_file_page">Vedi la pagina del file</string> <string name="menu_view_file_page">Vedi la pagina del file</string>
<string name="share_title_hint">Didascalia (obbligatoria)</string> <string name="share_title_hint">Didascalia (obbligatoria)</string>
@ -129,6 +132,7 @@
<string name="login_failed_throttled">Troppi tentativi falliti. Riprova tra alcuni minuti.</string> <string name="login_failed_throttled">Troppi tentativi falliti. Riprova tra alcuni minuti.</string>
<string name="login_failed_blocked">Spiacente, quest\'utente è stato/a bloccato/a su Commons</string> <string name="login_failed_blocked">Spiacente, quest\'utente è stato/a bloccato/a su Commons</string>
<string name="login_failed_2fa_needed">Devi fornire il tuo codice di autenticazione a due fattori.</string> <string name="login_failed_2fa_needed">Devi fornire il tuo codice di autenticazione a due fattori.</string>
<string name="login_failed_email_auth_needed">Un codice di verifica per l\'accesso è stato inviato al tuo indirizzo email. Inserisci il codice per accedere.</string>
<string name="login_failed_generic">Accesso non riuscito</string> <string name="login_failed_generic">Accesso non riuscito</string>
<string name="share_upload_button">Carica</string> <string name="share_upload_button">Carica</string>
<string name="multiple_share_base_title">Nome di questo set</string> <string name="multiple_share_base_title">Nome di questo set</string>
@ -233,6 +237,7 @@
<string name="become_a_tester_title">Diventa un Beta Tester</string> <string name="become_a_tester_title">Diventa un Beta Tester</string>
<string name="become_a_tester_description">Accedi al nostro canale beta su Google Play per ottenere subito le nuove funzionalità e gli errori corretti</string> <string name="become_a_tester_description">Accedi al nostro canale beta su Google Play per ottenere subito le nuove funzionalità e gli errori corretti</string>
<string name="_2fa_code">Codice 2FA</string> <string name="_2fa_code">Codice 2FA</string>
<string name="email_auth_code">Codice di verifica indirizzo email</string>
<string name="logout_verification">Vuoi veramente uscire?</string> <string name="logout_verification">Vuoi veramente uscire?</string>
<string name="mediaimage_failed">Immagine multimediale non riuscita</string> <string name="mediaimage_failed">Immagine multimediale non riuscita</string>
<string name="no_subcategory_found">Nessuna sottocategoria trovata</string> <string name="no_subcategory_found">Nessuna sottocategoria trovata</string>
@ -293,6 +298,7 @@
<string name="copy_wikicode">Copia il wikitesto negli appunti</string> <string name="copy_wikicode">Copia il wikitesto negli appunti</string>
<string name="wikicode_copied">Il wikitesto è stato copiato negli appunti</string> <string name="wikicode_copied">Il wikitesto è stato copiato negli appunti</string>
<string name="nearby_location_not_available">Nelle vicinanze potrebbe non funzionare bene, posizione non disponibile.</string> <string name="nearby_location_not_available">Nelle vicinanze potrebbe non funzionare bene, posizione non disponibile.</string>
<string name="nearby_showing_pins_offline">Internet non disponibile. Vengono mostrati solo i luoghi memorizzati nella cache.</string>
<string name="upload_location_access_denied">Accesso alla posizione negato. Impostala manualmente per utilizzare questa funzione.</string> <string name="upload_location_access_denied">Accesso alla posizione negato. Impostala manualmente per utilizzare questa funzione.</string>
<string name="location_permission_rationale_nearby">È richiesta l\'autorizzazione per visualizzare un elenco di luoghi nelle vicinanze</string> <string name="location_permission_rationale_nearby">È richiesta l\'autorizzazione per visualizzare un elenco di luoghi nelle vicinanze</string>
<string name="nearby_directions">Indicazioni</string> <string name="nearby_directions">Indicazioni</string>
@ -413,6 +419,7 @@
<string name="map_application_missing">Nessuna applicazione di mappe compatibile è stata trovata sul tuo dispositivo. Installa un\'applicazione per le mappe per poter utilizzare questa funzionalità.</string> <string name="map_application_missing">Nessuna applicazione di mappe compatibile è stata trovata sul tuo dispositivo. Installa un\'applicazione per le mappe per poter utilizzare questa funzionalità.</string>
<string name="title_page_bookmarks_pictures">Immagini</string> <string name="title_page_bookmarks_pictures">Immagini</string>
<string name="title_page_bookmarks_locations">Località</string> <string name="title_page_bookmarks_locations">Località</string>
<string name="title_page_bookmarks_categories">Categorie</string>
<string name="menu_bookmark">Aggiungi/Rimuovi ai segnalibri</string> <string name="menu_bookmark">Aggiungi/Rimuovi ai segnalibri</string>
<string name="provider_bookmarks">Segnalibri</string> <string name="provider_bookmarks">Segnalibri</string>
<string name="bookmark_empty">Non hai aggiunto alcun segnalibro</string> <string name="bookmark_empty">Non hai aggiunto alcun segnalibro</string>
@ -493,6 +500,7 @@
<string name="no_notification">Non hai alcuna notifica non letta</string> <string name="no_notification">Non hai alcuna notifica non letta</string>
<string name="no_read_notification">Non hai alcuna notifica letta</string> <string name="no_read_notification">Non hai alcuna notifica letta</string>
<string name="share_logs_using">Condividi i registri usando</string> <string name="share_logs_using">Condividi i registri usando</string>
<string name="check_your_email_inbox">Controlla la tua casella di posta elettronica</string>
<string name="menu_option_read">Vedi lette</string> <string name="menu_option_read">Vedi lette</string>
<string name="menu_option_unread">Vedi non lette</string> <string name="menu_option_unread">Vedi non lette</string>
<string name="error_occurred_in_picking_images">Si è verificato un errore durante la selezione delle immagini</string> <string name="error_occurred_in_picking_images">Si è verificato un errore durante la selezione delle immagini</string>
@ -583,6 +591,7 @@
<string name="title_for_child_classes">CLASSI FIGLIE</string> <string name="title_for_child_classes">CLASSI FIGLIE</string>
<string name="title_for_parent_classes">CLASSI SUPERIORI</string> <string name="title_for_parent_classes">CLASSI SUPERIORI</string>
<string name="upload_nearby_place_found_title">Rinvenuto luogo nei pressi</string> <string name="upload_nearby_place_found_title">Rinvenuto luogo nei pressi</string>
<string name="upload_nearby_place_found_description_plural">Queste sono immagini di %1$s?</string>
<string name="upload_nearby_place_found_description_singular">Questa è un\'immagine di %1$s?</string> <string name="upload_nearby_place_found_description_singular">Questa è un\'immagine di %1$s?</string>
<string name="title_app_shortcut_bookmark">Segnalibri</string> <string name="title_app_shortcut_bookmark">Segnalibri</string>
<string name="title_app_shortcut_setting">Impostazioni</string> <string name="title_app_shortcut_setting">Impostazioni</string>
@ -597,6 +606,7 @@
<string name="cannot_open_location_settings">Errore nell\'apertura delle impostazioni di localizzazione. Gentilmente, avvia la localizzazione manualmente.</string> <string name="cannot_open_location_settings">Errore nell\'apertura delle impostazioni di localizzazione. Gentilmente, avvia la localizzazione manualmente.</string>
<string name="recommend_high_accuracy_mode">Per migliori risultati, seleziona il modo Alta Precisione</string> <string name="recommend_high_accuracy_mode">Per migliori risultati, seleziona il modo Alta Precisione</string>
<string name="ask_to_turn_location_on">Accendere la localizzazione?</string> <string name="ask_to_turn_location_on">Accendere la localizzazione?</string>
<string name="ask_to_turn_location_on_text">Si prega di attivare i servizi di localizzazione dellapp per mostrare la tua posizione attuale</string>
<string name="nearby_needs_location">La funzione \'nelle vicinanze\' richiede l\'abilitazione della localizzazione per operare correttamente</string> <string name="nearby_needs_location">La funzione \'nelle vicinanze\' richiede l\'abilitazione della localizzazione per operare correttamente</string>
<string name="upload_map_location_access">È necessario fornire l\'autorizzazione alla posizione per impostare automaticamente la posizione.</string> <string name="upload_map_location_access">È necessario fornire l\'autorizzazione alla posizione per impostare automaticamente la posizione.</string>
<string name="use_location_from_similar_image">Hai scattato queste immagini nello stesso posto? Vuoi usare la latitudine e la longitudine dell\'immagine indicate a destra?</string> <string name="use_location_from_similar_image">Hai scattato queste immagini nello stesso posto? Vuoi usare la latitudine e la longitudine dell\'immagine indicate a destra?</string>
@ -758,12 +768,25 @@
<string name="send_thanks_to_author">Ringrazia l\'autore</string> <string name="send_thanks_to_author">Ringrazia l\'autore</string>
<string name="error_sending_thanks">Errore nell\'invio di ringraziamenti all\'autore.</string> <string name="error_sending_thanks">Errore nell\'invio di ringraziamenti all\'autore.</string>
<string name="invalid_login_message">Sessione scaduta. Accedi nuovamente.</string> <string name="invalid_login_message">Sessione scaduta. Accedi nuovamente.</string>
<string name="file_saved_successfully">File salvato con successo</string>
<string name="do_you_want_to_open_gpx_file">Vuoi aprire il file GPX?</string>
<string name="do_you_want_to_open_kml_file">Vuoi aprire il file KML?</string>
<string name="failed_to_save_kml_file">Errore durante il salvataggio del file KML.</string>
<string name="failed_to_save_gpx_file">Errore durante il salvataggio del file GPX.</string>
<string name="saving_kml_file">Salvataggio del file KML</string>
<string name="saving_gpx_file">Salvataggio del file GPX</string>
<plurals name="custom_picker_images_selected_title_appendix"> <plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%d immagine selezionata</item> <item quantity="one">%d immagine selezionata</item>
<item quantity="other">%d immagini selezionate</item> <item quantity="other">%d immagini selezionate</item>
</plurals> </plurals>
<string name="multiple_files_depiction">Ricorda che tutte le immagini in un caricamento multiplo hanno le stesse categorie e descrizioni. Se le immagini non condividono descrizioni e categorie, esegui caricamenti separati.</string>
<string name="multiple_files_depiction_header">Osservazione sui caricamenti multipli</string>
<string name="uploads">Caricamenti</string>
<string name="pending">In attesa</string>
<string name="failed">Non riuscito</string>
<string name="custom_selector_delete_folder">Cancella cartella</string> <string name="custom_selector_delete_folder">Cancella cartella</string>
<string name="custom_selector_confirm_deletion_title">Conferma cancellazione</string> <string name="custom_selector_confirm_deletion_title">Conferma cancellazione</string>
<string name="custom_selector_confirm_deletion_message">Sei sicuro di voler eliminare la cartella %1$s contenente elementi %2$d?</string>
<string name="custom_selector_delete">Cancella</string> <string name="custom_selector_delete">Cancella</string>
<string name="custom_selector_cancel">Annulla</string> <string name="custom_selector_cancel">Annulla</string>
<string name="custom_selector_folder_deleted_success">Cartella %1$s cancellata correttamente</string> <string name="custom_selector_folder_deleted_success">Cartella %1$s cancellata correttamente</string>
@ -775,4 +798,6 @@
<string name="file_usages_container_heading">Utilizzi del file</string> <string name="file_usages_container_heading">Utilizzi del file</string>
<string name="caption">Didascalia</string> <string name="caption">Didascalia</string>
<string name="caption_copied_to_clipboard">Didascalia copiata negli appunti</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> </resources>

View file

@ -144,6 +144,7 @@
<string name="login_failed_throttled">יותר מדי ניסיונות כניסה כושלים. נא לנסות שוב בעוד כמה דקות.</string> <string name="login_failed_throttled">יותר מדי ניסיונות כניסה כושלים. נא לנסות שוב בעוד כמה דקות.</string>
<string name="login_failed_blocked">סליחה, החשבון הזה חסום בוויקישיתוף</string> <string name="login_failed_blocked">סליחה, החשבון הזה חסום בוויקישיתוף</string>
<string name="login_failed_2fa_needed">יש לספק את קוד האימות הדו־שלבי שלך.</string> <string name="login_failed_2fa_needed">יש לספק את קוד האימות הדו־שלבי שלך.</string>
<string name="login_failed_email_auth_needed">נשלח קוד אימות כניסה לכתובת הדוא״ל שלך. נא לספק את הקוד כדי להיכנס.</string>
<string name="login_failed_generic">הכניסה נכשלה</string> <string name="login_failed_generic">הכניסה נכשלה</string>
<string name="share_upload_button">העלאה</string> <string name="share_upload_button">העלאה</string>
<string name="multiple_share_base_title">שם האוסף</string> <string name="multiple_share_base_title">שם האוסף</string>
@ -249,6 +250,7 @@
<string name="become_a_tester_title">להפוך לבודק בטא</string> <string name="become_a_tester_title">להפוך לבודק בטא</string>
<string name="become_a_tester_description">להירשם לערוץ הבטא שלנו בחנות גוגל Play ולקבל גישה מוקדמת לאפשרויות חדשות ותיקוני באגים</string> <string name="become_a_tester_description">להירשם לערוץ הבטא שלנו בחנות גוגל Play ולקבל גישה מוקדמת לאפשרויות חדשות ותיקוני באגים</string>
<string name="_2fa_code">קוד אימות דו־שלבי</string> <string name="_2fa_code">קוד אימות דו־שלבי</string>
<string name="email_auth_code">קוד אימות בדוא״ל</string>
<string name="logout_verification">האם באמת לצאת מהחשבון?</string> <string name="logout_verification">האם באמת לצאת מהחשבון?</string>
<string name="mediaimage_failed">תמונת המדיה נכשלה</string> <string name="mediaimage_failed">תמונת המדיה נכשלה</string>
<string name="no_subcategory_found">לא נמצאו תת־קטגוריות</string> <string name="no_subcategory_found">לא נמצאו תת־קטגוריות</string>
@ -331,7 +333,7 @@
<string name="about_translate_proceed">המשך</string> <string name="about_translate_proceed">המשך</string>
<string name="about_translate_cancel">ביטול</string> <string name="about_translate_cancel">ביטול</string>
<string name="retry">לנסות שוב</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_needs_photo">המקום הזה צריך תמונה.</string>
<string name="showcase_view_has_photo">למקום הזה יש כבר תמונה.</string> <string name="showcase_view_has_photo">למקום הזה יש כבר תמונה.</string>
<string name="showcase_view_no_longer_exists">המקום הזה כבר לא קיים.</string> <string name="showcase_view_no_longer_exists">המקום הזה כבר לא קיים.</string>
@ -857,4 +859,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">ברכותינו, כל התמונות באלבום הזה הועלו או שסומנו לא להעלאה.</string> <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_explore">בתצוגת סיור</string>
<string name="show_in_nearby">בתצוגת בסביבה</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> </resources>

View file

@ -119,7 +119,7 @@
<string name="login_failed_network">ログインできません - ネットワークのエラーです</string> <string name="login_failed_network">ログインできません - ネットワークのエラーです</string>
<string name="login_failed_throttled">失敗した回数が多すぎます。数分後にもう一度お試しください。</string> <string name="login_failed_throttled">失敗した回数が多すぎます。数分後にもう一度お試しください。</string>
<string name="login_failed_blocked">申し訳ありませんが、この利用者はコモンズでブロックされています。</string> <string name="login_failed_blocked">申し訳ありませんが、この利用者はコモンズでブロックされています。</string>
<string name="login_failed_2fa_needed">2段階認証コードを入力してください。</string> <string name="login_failed_2fa_needed">二要素認証コードを入力してください。</string>
<string name="login_failed_generic">ログイン失敗</string> <string name="login_failed_generic">ログイン失敗</string>
<string name="share_upload_button">アップロード</string> <string name="share_upload_button">アップロード</string>
<string name="multiple_share_base_title">このセットに名前をつけてください</string> <string name="multiple_share_base_title">このセットに名前をつけてください</string>
@ -221,7 +221,7 @@
<string name="media_detail_coordinates_empty">情報なし</string> <string name="media_detail_coordinates_empty">情報なし</string>
<string name="become_a_tester_title">ベータ版テスターになる</string> <string name="become_a_tester_title">ベータ版テスターになる</string>
<string name="become_a_tester_description">Google Playのベータ版チャンネルにオプトインして、新機能やバグ修正プログラムに早期にアクセス</string> <string name="become_a_tester_description">Google Playのベータ版チャンネルにオプトインして、新機能やバグ修正プログラムに早期にアクセス</string>
<string name="_2fa_code">2段階認証コード</string> <string name="_2fa_code">2FAコード</string>
<string name="logout_verification">ログアウトしてもよろしいですか?</string> <string name="logout_verification">ログアウトしてもよろしいですか?</string>
<string name="mediaimage_failed">メディアイメージが失敗しました</string> <string name="mediaimage_failed">メディアイメージが失敗しました</string>
<string name="no_subcategory_found">下位カテゴリは見つかりませんでした</string> <string name="no_subcategory_found">下位カテゴリは見つかりませんでした</string>
@ -256,7 +256,7 @@
<string name="upload_problem_exist">この画像には問題があるかもしれません。</string> <string name="upload_problem_exist">この画像には問題があるかもしれません。</string>
<string name="upload_problem_image_dark">画像が暗すぎます。</string> <string name="upload_problem_image_dark">画像が暗すぎます。</string>
<string name="upload_problem_image_blurry">画像のピントが合っていません。</string> <string name="upload_problem_image_blurry">画像のピントが合っていません。</string>
<string name="upload_problem_image_duplicate">コモンズにすでに登録されている画像です。</string> <string name="upload_problem_image_duplicate">コモンズにに登録されている画像です。</string>
<string name="upload_problem_different_geolocation">この画像の撮影地点は別の場所です。</string> <string name="upload_problem_different_geolocation">この画像の撮影地点は別の場所です。</string>
<string name="upload_problem_fbmd">あなた自身の撮影したがぞうに限定してアップロードしてください。他人のFacebookアカウントの画像をアップロードすることはやめてください。</string> <string name="upload_problem_fbmd">あなた自身の撮影したがぞうに限定してアップロードしてください。他人のFacebookアカウントの画像をアップロードすることはやめてください。</string>
<string name="upload_problem_do_you_continue">それでもこの画像をアップロードしますか?</string> <string name="upload_problem_do_you_continue">それでもこの画像をアップロードしますか?</string>
@ -303,7 +303,7 @@
<string name="retry">やり直す</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_needs_photo">この場所の写真を募集中です。</string>
<string name="showcase_view_has_photo">この場所の写真はすでにあります。</string> <string name="showcase_view_has_photo">この場所の写真はにあります。</string>
<string name="showcase_view_no_longer_exists">この場所はもうありません</string> <string name="showcase_view_no_longer_exists">この場所はもうありません</string>
<string name="no_images_found">画像がありません</string> <string name="no_images_found">画像がありません</string>
<string name="error_loading_images">画像の読み込み中にエラーが発生しました</string> <string name="error_loading_images">画像の読み込み中にエラーが発生しました</string>
@ -393,7 +393,7 @@
<string name="step_count">全部で%2$d件のうち%1$d件目の手順%3$s</string> <string name="step_count">全部で%2$d件のうち%1$d件目の手順%3$s</string>
<string name="next">次へ</string> <string name="next">次へ</string>
<string name="previous">前へ</string> <string name="previous">前へ</string>
<string name="upload_title_duplicate">%1$s という題名のファイルはすでに保存されています。処理をほんとうに続けますか?\n\n注記ファイル名には適切な接頭辞が自動的に付与されます。</string> <string name="upload_title_duplicate">%1$s という名前のファイルは既に存在します。本当に処理を続行してよろしいですか?\n\n注: ファイル名には適切な接尾辞が自動的に付加されます。</string>
<string name="map_application_missing">お使いの機器に適したアプリが見つかりませんでした。この機能を使用できる地図アプリをインストールしてください。</string> <string name="map_application_missing">お使いの機器に適したアプリが見つかりませんでした。この機能を使用できる地図アプリをインストールしてください。</string>
<string name="title_page_bookmarks_pictures">画像</string> <string name="title_page_bookmarks_pictures">画像</string>
<string name="title_page_bookmarks_locations">位置</string> <string name="title_page_bookmarks_locations">位置</string>
@ -668,7 +668,7 @@
<string name="your_feedback">あなたのフィードバック</string> <string name="your_feedback">あなたのフィードバック</string>
<string name="mark_as_not_for_upload">アップロード不可としてマーク</string> <string name="mark_as_not_for_upload">アップロード不可としてマーク</string>
<string name="no_more_images_found">これ以上画像が見つかりません</string> <string name="no_more_images_found">これ以上画像が見つかりません</string>
<string name="this_image_is_already_uploaded">この画像はすでにアップロードされています</string> <string name="this_image_is_already_uploaded">この画像はにアップロードされています</string>
<string name="can_not_select_this_image_for_upload">この画像をアップロード用に選択できません</string> <string name="can_not_select_this_image_for_upload">この画像をアップロード用に選択できません</string>
<string name="image_selected">画像が選択されました</string> <string name="image_selected">画像が選択されました</string>
<string name="menu_view_report">報告</string> <string name="menu_view_report">報告</string>

View file

@ -23,7 +23,9 @@
<string name="show_captions_description">აღწერა</string> <string name="show_captions_description">აღწერა</string>
<string name="nearby_row_image">სურათი</string> <string name="nearby_row_image">სურათი</string>
<string name="nearby_all">ყველა</string> <string name="nearby_all">ყველა</string>
<string name="nearby_filter_toggle">გადართვა</string>
<string name="nearby_filter_search">ძებნა</string> <string name="nearby_filter_search">ძებნა</string>
<string name="nearby_filter_state">ადგილის მდგომარეობა</string>
<string name="appwidget_img">დღის სურათი</string> <string name="appwidget_img">დღის სურათი</string>
<plurals name="uploads_pending_notification_indicator"> <plurals name="uploads_pending_notification_indicator">
<item quantity="one">%1$d ფაილი იტვირთება</item> <item quantity="one">%1$d ფაილი იტვირთება</item>
@ -93,6 +95,7 @@
<string name="menu_from_camera">ფოტოს გადაღება</string> <string name="menu_from_camera">ფოტოს გადაღება</string>
<string name="menu_nearby">ახლოს</string> <string name="menu_nearby">ახლოს</string>
<string name="provider_contributions">ჩემი ატვირთვები</string> <string name="provider_contributions">ჩემი ატვირთვები</string>
<string name="menu_copy_link">ბმულის კოპირება</string>
<string name="menu_share">გაზიარება</string> <string name="menu_share">გაზიარება</string>
<string name="menu_view_file_page">ფაილის გვერდის ნახვა</string> <string name="menu_view_file_page">ფაილის გვერდის ნახვა</string>
<string name="share_title_hint">წარწერა (სავალდებულო)</string> <string name="share_title_hint">წარწერა (სავალდებულო)</string>
@ -292,6 +295,7 @@
<string name="showcase_view_no_longer_exists">ეს ადგილი აღარ არსებობს.</string> <string name="showcase_view_no_longer_exists">ეს ადგილი აღარ არსებობს.</string>
<string name="no_images_found">სურათები ვერ მოიძებნა!</string> <string name="no_images_found">სურათები ვერ მოიძებნა!</string>
<string name="error_loading_images">სურათის ჩატვირთვისას მოხდა შეცდომა.</string> <string name="error_loading_images">სურათის ჩატვირთვისას მოხდა შეცდომა.</string>
<string name="image_uploaded_by">ატვირთა მომხმარებელმა: %1$s</string>
<string name="block_notification_title">დაბლოკილია</string> <string name="block_notification_title">დაბლოკილია</string>
<string name="block_notification">თქვენ დაბლოკილი გაქვთ Commons-ის რედაქტირების ფუნქცია</string> <string name="block_notification">თქვენ დაბლოკილი გაქვთ Commons-ის რედაქტირების ფუნქცია</string>
<string name="app_widget_heading">დღის სურათი</string> <string name="app_widget_heading">დღის სურათი</string>
@ -336,10 +340,13 @@
<string name="nominate_delete">წაშლაზე ნომინირება</string> <string name="nominate_delete">წაშლაზე ნომინირება</string>
<string name="delete">წაშლა</string> <string name="delete">წაშლა</string>
<string name="Achievements">მიღწევები</string> <string name="Achievements">მიღწევები</string>
<string name="Profile">პროფილი</string>
<string name="badges">ნიშნები</string>
<string name="statistics">სტატისტიკა</string> <string name="statistics">სტატისტიკა</string>
<string name="statistics_thanks">მადლობა მიღებულია</string> <string name="statistics_thanks">მადლობა მიღებულია</string>
<string name="statistics_featured">რჩეული სურათები</string> <string name="statistics_featured">რჩეული სურათები</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="images_uploaded">სურათები ატვირთულია</string>
<string name="image_reverts">სურათები არ დაბრუნებულა</string> <string name="image_reverts">სურათები არ დაბრუნებულა</string>
<string name="images_used_by_wiki">სურათები გამოიყენება</string> <string name="images_used_by_wiki">სურათები გამოიყენება</string>
@ -359,10 +366,17 @@
<string name="previous">წინა</string> <string name="previous">წინა</string>
<string name="title_page_bookmarks_pictures">სურათები</string> <string name="title_page_bookmarks_pictures">სურათები</string>
<string name="title_page_bookmarks_locations">მდებარეობები</string> <string name="title_page_bookmarks_locations">მდებარეობები</string>
<string name="title_page_bookmarks_categories">კატეგორია</string>
<string name="menu_bookmark">სანიშნებში დამატება/წაშლა</string> <string name="menu_bookmark">სანიშნებში დამატება/წაშლა</string>
<string name="provider_bookmarks">სანიშნები</string> <string name="provider_bookmarks">სანიშნები</string>
<string name="no_categories_selected">კატეგორია არ არის არჩეული</string> <string name="no_categories_selected">კატეგორია არ არის არჩეული</string>
<string name="back_button_warning">ატვირთვის გაუქმება</string>
<string name="back_button_continue">ატვირთვის გაგრძელება</string>
<string name="upload_flow_all_images_in_set">(ნაკრების ყველა სურათისთვის)</string>
<string name="search_this_area">ამ ტერიტორიაზე ძიება</string>
<string name="nearby_card_permission_title">ნებართვის თხოვნა</string> <string name="nearby_card_permission_title">ნებართვის თხოვნა</string>
<string name="never_ask_again">აღარ მკითხო</string>
<string name="display_location_permission_title">მდებარეობის ნებართვის მოთხოვნა</string>
<string name="nominate_for_deletion_done">შესრულდა</string> <string name="nominate_for_deletion_done">შესრულდა</string>
<string name="please_wait">გთხოვთ, მოიცადოთ…</string> <string name="please_wait">გთხოვთ, მოიცადოთ…</string>
<string name="exif_tag_name_author">ავტორი</string> <string name="exif_tag_name_author">ავტორი</string>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Belkacem77 * Belkacem77
* ButterflyOfFire
* Hociben * Hociben
--> -->
<resources> <resources>
@ -8,6 +9,8 @@
<string name="commons_github">Tangalt aɣbalu Github n Commons</string> <string name="commons_github">Tangalt aɣbalu Github n Commons</string>
<string name="commons_logo">Alugu Commons</string> <string name="commons_logo">Alugu Commons</string>
<string name="commons_website">Asmel wen n Commons</string> <string name="commons_website">Asmel wen n Commons</string>
<string name="show_captions_description">Aglam</string>
<string name="nearby_all">Akk</string>
<plurals name="uploads_pending_notification_indicator"> <plurals name="uploads_pending_notification_indicator">
<item quantity="one">%1$d n ufaylu yezga yettali</item> <item quantity="one">%1$d n ufaylu yezga yettali</item>
<item quantity="other">%1$d n ifuyla zgan ttalin</item> <item quantity="other">%1$d n ifuyla zgan ttalin</item>
@ -49,6 +52,7 @@
<string name="signup">Jerred</string> <string name="signup">Jerred</string>
<string name="logging_in_title">Tuqqna...</string> <string name="logging_in_title">Tuqqna...</string>
<string name="logging_in_message">Rǧu...</string> <string name="logging_in_message">Rǧu...</string>
<string name="updating_caption_message">Txil, rǧu…</string>
<string name="login_success" fuzzy="true">Tuqqna tedda!</string> <string name="login_success" fuzzy="true">Tuqqna tedda!</string>
<string name="login_failed" fuzzy="true">Tqqna ur teddi ara!</string> <string name="login_failed" fuzzy="true">Tqqna ur teddi ara!</string>
<string name="upload_failed">Ulac afaylu. Ɛreḍ wayeḍ ma ulac aɣilif.</string> <string name="upload_failed">Ulac afaylu. Ɛreḍ wayeḍ ma ulac aɣilif.</string>
@ -85,12 +89,14 @@
<string name="categories_search_text_hint">Nadi taggayin</string> <string name="categories_search_text_hint">Nadi taggayin</string>
<string name="menu_save_categories">Sekles</string> <string name="menu_save_categories">Sekles</string>
<string name="refresh_button">Smiren</string> <string name="refresh_button">Smiren</string>
<string name="display_list_button">Tabdart</string>
<string name="contributions_subtitle_zero" fuzzy="true">Usla ayen yulin</string> <string name="contributions_subtitle_zero" fuzzy="true">Usla ayen yulin</string>
<string name="categories_not_found">Ulac taggayin imenṭaḍen akked %1$s i yettwafen</string> <string name="categories_not_found">Ulac taggayin imenṭaḍen akked %1$s i yettwafen</string>
<string name="categories_skip_explanation">Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin.</string> <string name="categories_skip_explanation">Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin.</string>
<string name="categories_activity_title">Taggayin</string> <string name="categories_activity_title">Taggayin</string>
<string name="title_activity_settings">Iɣewwaṛen</string> <string name="title_activity_settings">Iɣewwaṛen</string>
<string name="title_activity_signup">Jerred</string> <string name="title_activity_signup">Jerred</string>
<string name="title_activity_category_details">Taggayt</string>
<string name="menu_about">Ɣef</string> <string name="menu_about">Ɣef</string>
<string name="about_license">Asnas Wikipedia Commons d asnas n uɣbalu yeldin i d-yennulfan udiɣ yettwarfed sɣur iwiziwen d wid i t-iḍemnen n tmezdagnut Wikimedia. Tasbeddit Wikimedia ur tetteka ara deg usnulfu-is, tanfelit-is, neɣ aseggem n usnas.</string> <string name="about_license">Asnas Wikipedia Commons d asnas n uɣbalu yeldin i d-yennulfan udiɣ yettwarfed sɣur iwiziwen d wid i t-iḍemnen n tmezdagnut Wikimedia. Tasbeddit Wikimedia ur tetteka ara deg usnulfu-is, tanfelit-is, neɣ aseggem n usnas.</string>
<string name="about_improve">Rnu &lt;a href=\"%1$s\"&gt;tummla tamaynut GitHub&lt;/a&gt; akken ad temmleḍ ibugen neɣ ad d-mudded isumar.</string> <string name="about_improve">Rnu &lt;a href=\"%1$s\"&gt;tummla tamaynut GitHub&lt;/a&gt; akken ad temmleḍ ibugen neɣ ad d-mudded isumar.</string>
@ -129,6 +135,7 @@
<string name="welcome_copyright_subtext">Zgel axedddim yettwaḥerzen ara tafeḍ di Internet akked tugniwin n inazalen, tiduliwin n yidlisen, atg.</string> <string name="welcome_copyright_subtext">Zgel axedddim yettwaḥerzen ara tafeḍ di Internet akked tugniwin n inazalen, tiduliwin n yidlisen, atg.</string>
<string name="welcome_final_text">Tɣileḍ igarrez?</string> <string name="welcome_final_text">Tɣileḍ igarrez?</string>
<string name="welcome_final_button_text">Ih!</string> <string name="welcome_final_button_text">Ih!</string>
<string name="welcome_help_button_text">Ugar n telɣut</string>
<string name="detail_panel_cats_label">Taggayin</string> <string name="detail_panel_cats_label">Taggayin</string>
<string name="detail_panel_cats_loading">Asali...</string> <string name="detail_panel_cats_loading">Asali...</string>
<string name="detail_panel_cats_none">Ula d yiwet ur tettwafren</string> <string name="detail_panel_cats_none">Ula d yiwet ur tettwafren</string>
@ -139,10 +146,12 @@
<string name="write_storage_permission_rationale" fuzzy="true">Ysera tasiregt: Aru deg usekles azɣaray. Asnas ur yezmir ara ad yeddu s war aya.</string> <string name="write_storage_permission_rationale" fuzzy="true">Ysera tasiregt: Aru deg usekles azɣaray. Asnas ur yezmir ara ad yeddu s war aya.</string>
<string name="ok">IH</string> <string name="ok">IH</string>
<string name="warning">Ɣur-k</string> <string name="warning">Ɣur-k</string>
<string name="upload">Sali</string>
<string name="yes">Ih</string> <string name="yes">Ih</string>
<string name="no">Uhu</string> <string name="no">Uhu</string>
<string name="media_detail_title">Azwel</string> <string name="media_detail_title">Azwel</string>
<string name="media_detail_description">Aglam</string> <string name="media_detail_description">Aglam</string>
<string name="media_detail_author">Ameskar</string>
<string name="media_detail_uploaded_date">Azemz n usali</string> <string name="media_detail_uploaded_date">Azemz n usali</string>
<string name="media_detail_license">Turagt</string> <string name="media_detail_license">Turagt</string>
<string name="media_detail_coordinates">imsidag</string> <string name="media_detail_coordinates">imsidag</string>
@ -180,6 +189,16 @@
<string name="login_to_your_account">Qqen ar umiḍan-ik</string> <string name="login_to_your_account">Qqen ar umiḍan-ik</string>
<string name="send_log_file">Azen afaylu n uɣmis</string> <string name="send_log_file">Azen afaylu n uɣmis</string>
<string name="send_log_file_description" fuzzy="true">Azen afaylu n uɣmis i yinermisen s yimayl</string> <string name="send_log_file_description" fuzzy="true">Azen afaylu n uɣmis i yinermisen s yimayl</string>
<string name="navigation_item_login">Qqen</string>
<string name="nearby_location_not_available" fuzzy="true">Ulac adeg</string> <string name="nearby_location_not_available" fuzzy="true">Ulac adeg</string>
<string name="location_permission_rationale_nearby">Ilaq usireg i uskan tabdart n wadigen iqerben</string> <string name="location_permission_rationale_nearby">Ilaq usireg i uskan tabdart n wadigen iqerben</string>
<string name="nearby_wikidata">Wikidata</string>
<string name="nearby_wikipedia">Wikipedia</string>
<string name="about_faq">Isteqsiyen FAQ</string>
<string name="about_translate">Suqel</string>
<string name="about_translate_title">Tutlayin</string>
<string name="about_translate_cancel">Semmet</string>
<string name="menu_search_button">Nadi</string>
<string name="title_activity_search">Nadi</string>
<string name="search_tab_title_categories">Taggayin</string>
</resources> </resources>

View file

@ -16,6 +16,7 @@
* Revi * Revi
* Suleiman the Magnificent Television * Suleiman the Magnificent Television
* Theshinster123 * Theshinster123
* YeBoy371
* Ykhwong * Ykhwong
* YuzaTea * YuzaTea
* 그냥기여자 * 그냥기여자
@ -226,10 +227,11 @@
<string name="become_a_tester_title">베타 테스터가 되세요</string> <string name="become_a_tester_title">베타 테스터가 되세요</string>
<string name="become_a_tester_description">구글 플레이 베타 채널에서 메일 발송을 허가해서 새로운 기능이나 버그 수정에 대한 정보를 빨리 얻어보세요</string> <string name="become_a_tester_description">구글 플레이 베타 채널에서 메일 발송을 허가해서 새로운 기능이나 버그 수정에 대한 정보를 빨리 얻어보세요</string>
<string name="_2fa_code">2FA 코드</string> <string name="_2fa_code">2FA 코드</string>
<string name="email_auth_code">이메일 인증 코드</string>
<string name="logout_verification">정말 로그아웃하시겠습니까?</string> <string name="logout_verification">정말 로그아웃하시겠습니까?</string>
<string name="mediaimage_failed">미디어 그림 실패</string> <string name="mediaimage_failed">미디어 그림 실패</string>
<string name="no_subcategory_found">하위 분류가 없습니다</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_mount_zao">자오 연봉</string>
<string name="welcome_image_llamas">라마</string> <string name="welcome_image_llamas">라마</string>
<string name="welcome_image_rainbow_bridge">레인보우 브리지</string> <string name="welcome_image_rainbow_bridge">레인보우 브리지</string>
@ -428,7 +430,7 @@
<string name="unable_to_display_nearest_place">위치 권한 없이 사진이 필요한 주변 장소를 표시할 수 없습니다</string> <string name="unable_to_display_nearest_place">위치 권한 없이 사진이 필요한 주변 장소를 표시할 수 없습니다</string>
<string name="never_ask_again">다시는 묻지 않음</string> <string name="never_ask_again">다시는 묻지 않음</string>
<string name="display_location_permission_title">위치 권한 요청</string> <string name="display_location_permission_title">위치 권한 요청</string>
<string name="achievements_fetch_failed" fuzzy="true">무언가가 잘못되어, 저희는 당신의 업적을 가져올 수 없었습니다</string> <string name="achievements_fetch_failed">오류가 발생하여, 업적을 가져올 수 없습니다.</string>
<string name="display_campaigns">캠페인 표시</string> <string name="display_campaigns">캠페인 표시</string>
<string name="display_campaigns_explanation">진행되고 있는 캠페인 보기</string> <string name="display_campaigns_explanation">진행되고 있는 캠페인 보기</string>
<string name="option_allow">허용</string> <string name="option_allow">허용</string>
@ -449,6 +451,7 @@
<string name="send_thank_failure_title">감사 표현 보내기: 실패</string> <string name="send_thank_failure_title">감사 표현 보내기: 실패</string>
<string name="review_copyright">이것이 저작권 규정을 준수하고 있습니까?</string> <string name="review_copyright">이것이 저작권 규정을 준수하고 있습니까?</string>
<string name="review_category">알맞게 분류됐습니까?</string> <string name="review_category">알맞게 분류됐습니까?</string>
<string name="review_spam">이것이 범위에 포함되나요?</string>
<string name="review_thanks">기여자에게 감사를 표하시겠습니까?</string> <string name="review_thanks">기여자에게 감사를 표하시겠습니까?</string>
<string name="review_no_category">앗, 분류가 달리지 않은 것 같습니다!</string> <string name="review_no_category">앗, 분류가 달리지 않은 것 같습니다!</string>
<string name="review_category_explanation">이 이미지는 %1$s 분류에 속해 있습니다.</string> <string name="review_category_explanation">이 이미지는 %1$s 분류에 속해 있습니다.</string>
@ -486,6 +489,7 @@
<string name="no_categories_found">분류가 없습니다</string> <string name="no_categories_found">분류가 없습니다</string>
<string name="no_depiction_found">서술이 발견되지 않았습니다</string> <string name="no_depiction_found">서술이 발견되지 않았습니다</string>
<string name="upload_cancelled">업로드 취소됨</string> <string name="upload_cancelled">업로드 취소됨</string>
<string name="dialog_box_text_nomination">%1$s을(를) 삭제해야 하는 이유는 무엇인가요?</string>
<string name="default_description_language">기본 설명 언어</string> <string name="default_description_language">기본 설명 언어</string>
<string name="delete_helper_show_deletion_title">삭제 신청</string> <string name="delete_helper_show_deletion_title">삭제 신청</string>
<string name="delete_helper_show_deletion_title_success">성공</string> <string name="delete_helper_show_deletion_title_success">성공</string>
@ -530,7 +534,7 @@
<string name="you_must_reset_your_passsword">로그인에 문제가 생겼습니다, 비밀번호를 재설정해야 합니다!</string> <string name="you_must_reset_your_passsword">로그인에 문제가 생겼습니다, 비밀번호를 재설정해야 합니다!</string>
<string name="title_for_media">미디어</string> <string name="title_for_media">미디어</string>
<string name="title_for_child_classes">자식 클래스</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_title">주변 장소 발견</string>
<string name="upload_nearby_place_found_description_plural">%1$s의 사진이 맞습니까?</string> <string name="upload_nearby_place_found_description_plural">%1$s의 사진이 맞습니까?</string>
<string name="upload_nearby_place_found_description_singular">%1$s의 사진이 맞습니까?</string> <string name="upload_nearby_place_found_description_singular">%1$s의 사진이 맞습니까?</string>
@ -688,6 +692,7 @@
<string name="please_enter_some_comments">의견을 입력해 주십시오</string> <string name="please_enter_some_comments">의견을 입력해 주십시오</string>
<string name="talk">토론</string> <string name="talk">토론</string>
<string name="other_problem_or_information_please_explain_below">기타 문제 또는 정보 (아래에 설명해 주십시오)</string> <string name="other_problem_or_information_please_explain_below">기타 문제 또는 정보 (아래에 설명해 주십시오)</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">모든 업로드를 취소하시겠습니까?</string>
<string name="cancelling_all_the_uploads">모든 업로드를 취소하는 중...</string> <string name="cancelling_all_the_uploads">모든 업로드를 취소하는 중...</string>
<string name="uploads">업로드</string> <string name="uploads">업로드</string>
<string name="pending">보류 중</string> <string name="pending">보류 중</string>

View file

@ -101,6 +101,8 @@
<string name="menu_from_camera">Суратха ал</string> <string name="menu_from_camera">Суратха ал</string>
<string name="menu_nearby">Джуўукъда</string> <string name="menu_nearby">Джуўукъда</string>
<string name="provider_contributions">Джюклегенлерим</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_share">Юлюшле</string>
<string name="menu_view_file_page">Файлны бетине къара</string> <string name="menu_view_file_page">Файлны бетине къара</string>
<string name="share_title_hint">Тюб джазыу (Амалсыз)</string> <string name="share_title_hint">Тюб джазыу (Амалсыз)</string>
@ -274,6 +276,7 @@
<string name="copy_wikicode">Викитекстни алмашдырыу буферге копия эт</string> <string name="copy_wikicode">Викитекстни алмашдырыу буферге копия эт</string>
<string name="wikicode_copied">Викитекст алмашдырыу буферге копия этилди</string> <string name="wikicode_copied">Викитекст алмашдырыу буферге копия этилди</string>
<string name="nearby_location_not_available">Джууукъдагыла тюз ишлеялмайды, Локация хайырландырылалмайды.</string> <string name="nearby_location_not_available">Джууукъдагыла тюз ишлеялмайды, Локация хайырландырылалмайды.</string>
<string name="nearby_showing_pins_offline">Интернет джетишмейди. Къуру кэш этилген джерле кёргюзюледиле.</string>
<string name="upload_location_access_denied">Локациягъа джетишиу уналмады. Бу функцияны хайырланыр ючюн, тилейбиз, локациягъызны къолугъуз бла белгилегиз.</string> <string name="upload_location_access_denied">Локациягъа джетишиу уналмады. Бу функцияны хайырланыр ючюн, тилейбиз, локациягъызны къолугъуз бла белгилегиз.</string>
<string name="location_permission_rationale_nearby">Джууукъдагъы джерле тизмени кёргюзюр ючююн, эркинлик берирге керекди</string> <string name="location_permission_rationale_nearby">Джууукъдагъы джерле тизмени кёргюзюр ючююн, эркинлик берирге керекди</string>
<string name="location_permission_rationale_explore">Джууукъдагъы суратла тизмени кёргюзюр ючююн, эркинлик берирге керекди</string> <string name="location_permission_rationale_explore">Джууукъдагъы суратла тизмени кёргюзюр ючююн, эркинлик берирге керекди</string>
@ -357,11 +360,13 @@
<string name="delete">Кетер</string> <string name="delete">Кетер</string>
<string name="Achievements">Джетишимле</string> <string name="Achievements">Джетишимле</string>
<string name="Profile">Профиль</string> <string name="Profile">Профиль</string>
<string name="badges">Белгичикле</string>
<string name="statistics">Статистика</string> <string name="statistics">Статистика</string>
<string name="statistics_thanks">Бюсюреуле Алындыла</string> <string name="statistics_thanks">Бюсюреуле Алындыла</string>
<string name="statistics_featured">Сайланнган Суратла</string> <string name="statistics_featured">Сайланнган Суратла</string>
<string name="statistics_wikidata_edits">\"Джууукъдагъы Джерле\" юсю бла суратла</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="images_uploaded">Суратла Джюклендиле</string>
<string name="image_reverts">Суратла Кери Алынмадыла</string> <string name="image_reverts">Суратла Кери Алынмадыла</string>
<string name="images_used_by_wiki">Суратла Хайырландыла</string> <string name="images_used_by_wiki">Суратла Хайырландыла</string>
@ -393,6 +398,7 @@
<string name="map_application_missing">Девайсыгъызда келишген картография къошакъ табылмады. Тилейбиз, бу энчиликни хайырландырыр ючюн картография къошакъ джюклегиз.</string> <string name="map_application_missing">Девайсыгъызда келишген картография къошакъ табылмады. Тилейбиз, бу энчиликни хайырландырыр ючюн картография къошакъ джюклегиз.</string>
<string name="title_page_bookmarks_pictures">Суратла</string> <string name="title_page_bookmarks_pictures">Суратла</string>
<string name="title_page_bookmarks_locations">Локацияла</string> <string name="title_page_bookmarks_locations">Локацияла</string>
<string name="title_page_bookmarks_categories">Категорияла</string>
<string name="menu_bookmark">Китаб белгилени къош/къорат</string> <string name="menu_bookmark">Китаб белгилени къош/къорат</string>
<string name="provider_bookmarks">Китаб белгиле</string> <string name="provider_bookmarks">Китаб белгиле</string>
<string name="bookmark_empty">Алкъын чырт китаб белги къошмадыгъыз</string> <string name="bookmark_empty">Алкъын чырт китаб белги къошмадыгъыз</string>
@ -794,4 +800,19 @@
<string name="red_pin">Бу джерни сураты джокъду, хайда бирин эт!</string> <string name="red_pin">Бу джерни сураты джокъду, хайда бирин эт!</string>
<string name="green_pin">Бу джерни алайсыз да сураты барды.</string> <string name="green_pin">Бу джерни алайсыз да сураты барды.</string>
<string name="grey_pin">Бу джерни сураты болуб-болмагъанын тинте турама.</string> <string name="grey_pin">Бу джерни сураты болуб-болмагъанын тинте турама.</string>
<string name="error_while_loading">Джюкленнген заманда халат</string>
<string name="no_usages_found">Бир хайырланыучу да табылмады</string>
<string name="usages_on_commons_heading">Гёзен</string>
<string name="usages_on_other_wikis_heading">Башха викиле</string>
<string name="file_usages_container_heading">Файлны хайырланыулары</string>
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
<string name="account">Хыйсаб</string>
<string name="vanish_account">Хыйсабны сюрт</string>
<string name="account_vanish_request_confirm_title">Хыйсаб сюртюуню эсгертиую</string>
<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="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>
</resources> </resources>

View file

@ -179,7 +179,7 @@
<string name="statistics_thanks">Spasî Hate Wergirtin</string> <string name="statistics_thanks">Spasî Hate Wergirtin</string>
<string name="statistics_featured">Wêneyên Bijartî</string> <string name="statistics_featured">Wêneyên Bijartî</string>
<string name="statistics_wikidata_edits">Wêneyên bi riya \"Cihên Nêz\"</string> <string name="statistics_wikidata_edits">Wêneyên bi riya \"Cihên Nêz\"</string>
<string name="level" fuzzy="true">Derece</string> <string name="level">Derece %d</string>
<string name="images_uploaded">Wêneyên Barkirî</string> <string name="images_uploaded">Wêneyên Barkirî</string>
<string name="review_thanks_yes_button_text">Wêneyê din</string> <string name="review_thanks_yes_button_text">Wêneyê din</string>
<string name="review_thanks_no_button_text">Belê, çima na</string> <string name="review_thanks_no_button_text">Belê, çima na</string>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Askar Nazyrov * Askar Nazyrov
* Baydastann
* Bosogo * Bosogo
* Kotormochu * Kotormochu
* Maksat * Maksat
@ -10,12 +11,21 @@
<string name="commons_facebook">Викиказынанын Facebook баракчасы</string> <string name="commons_facebook">Викиказынанын Facebook баракчасы</string>
<string name="commons_logo">Викиказынанын логотиби</string> <string name="commons_logo">Викиказынанын логотиби</string>
<string name="commons_website">Викиказынанын сайты</string> <string name="commons_website">Викиказынанын сайты</string>
<string name="submit">Жөнөтүү</string>
<string name="add_another_description">Башка сүрөттөмө кошуу</string> <string name="add_another_description">Башка сүрөттөмө кошуу</string>
<string name="add_new_contribution">Жаңы салым кошуу</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_language_description">Тилдин мүнөздөмөлөрү</string>
<string name="row_item_caption">Коштомо жазуу</string>
<string name="show_captions_description">Сыпаттама</string> <string name="show_captions_description">Сыпаттама</string>
<string name="nearby_row_image">Сүрөт</string> <string name="nearby_row_image">Сүрөт</string>
<string name="nearby_all">Баары</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"> <plurals name="uploads_pending_notification_indicator" fuzzy="true">
<item quantity="one">1 файл жүктөлүүдө</item> <item quantity="one">1 файл жүктөлүүдө</item>
<item quantity="other">%1$d файл жүктөлүүдө</item> <item quantity="other">%1$d файл жүктөлүүдө</item>
@ -25,6 +35,7 @@
<item quantity="one">1 жүктөө</item> <item quantity="one">1 жүктөө</item>
<item quantity="other">%1$d жүктөө</item> <item quantity="other">%1$d жүктөө</item>
</plurals> </plurals>
<string name="starting_uploads">Жүктөө башталууда</string>
<plurals name="starting_multiple_uploads" fuzzy="true"> <plurals name="starting_multiple_uploads" fuzzy="true">
<item quantity="one">1 жүктөө башталды</item> <item quantity="one">1 жүктөө башталды</item>
<item quantity="other">%1$d жүктөө башталды</item> <item quantity="other">%1$d жүктөө башталды</item>
@ -34,29 +45,40 @@
<item quantity="other">%d жүктөө</item> <item quantity="other">%d жүктөө</item>
</plurals> </plurals>
<string name="share_license_summary" fuzzy="true">Бул сүрөт %1$s лицензияланат</string> <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="preference_category_privacy">Купуялык</string>
<string name="app_name">Викиказына</string> <string name="app_name">Викиказына</string>
<string name="menu_settings">Параметрлер</string> <string name="menu_settings">Параметрлер</string>
<string name="intent_share_upload_label">Викиказынага жүктөө</string> <string name="intent_share_upload_label">Викиказынага жүктөө</string>
<string name="upload_in_progress">Жүктөлүүдө</string>
<string name="username">Колдонуучунун аты</string> <string name="username">Колдонуучунун аты</string>
<string name="password">Сырсөз</string> <string name="password">Сырсөз</string>
<string name="login_credential">Commons Beta аккаунтуңузга кириңиз</string>
<string name="login">Кирүү</string> <string name="login">Кирүү</string>
<string name="forgot_password">Сырсөздү унуттуңузбу?</string>
<string name="signup">Катталуу</string> <string name="signup">Катталуу</string>
<string name="logging_in_title">Кирүү</string> <string name="logging_in_title">Кирүү</string>
<string name="logging_in_message">Сураныч, күтө туруңуз…</string> <string name="logging_in_message">Сураныч, күтө туруңуз…</string>
<string name="updating_caption_title">Коштомо жазуулар жана сыпаттамалар жаңыртылууда</string>
<string name="updating_caption_message">Күтө туруңуз…</string> <string name="updating_caption_message">Күтө туруңуз…</string>
<string name="login_success" fuzzy="true">Сиз ийгиликтүү кирдиңиз</string> <string name="login_success">Ийгиликтүү кирдиңиз!</string>
<string name="login_failed" fuzzy="true">Системага кирүүдө катачылык бар!</string> <string name="login_failed">Системага кирүүдө катачылык бар!</string>
<string name="authentication_failed" fuzzy="true">Таану катачылыгы!</string> <string name="upload_failed">Файл табылган жок. Башка файлды издеп көрүңүз.</string>
<string name="authentication_failed">Аутентификация ишке ашкан жок. Кайра кириңиз.</string>
<string name="uploading_started">Жүктөө башталды!</string> <string name="uploading_started">Жүктөө башталды!</string>
<string name="upload_completed_notification_title">%1$s жүктөлдү !</string> <string name="upload_completed_notification_title">%1$s жүктөлдү !</string>
<string name="upload_completed_notification_text">Жүктөлгөн файлды көрүү үчүн басыңыз</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_in_progress">%1$s жүктөлүүдө</string>
<string name="upload_progress_notification_title_finishing">Жүктөө соңуна жетти %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="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_queued">Кезек</string>
<string name="contribution_state_failed">Жүктөө каталары</string> <string name="contribution_state_failed">Жүктөө каталары</string>
<string name="contribution_state_in_progress">%1$d%% соңуна чыкты</string> <string name="contribution_state_in_progress">%1$d%% соңуна чыкты</string>
@ -65,18 +87,24 @@
<string name="menu_from_camera">Сүрөткө тартуу</string> <string name="menu_from_camera">Сүрөткө тартуу</string>
<string name="menu_nearby">Жакынкы</string> <string name="menu_nearby">Жакынкы</string>
<string name="provider_contributions">Жүктөөлөрүм</string> <string name="provider_contributions">Жүктөөлөрүм</string>
<string name="menu_copy_link">Шилтемени көчүрүү</string>
<string name="menu_share">Бөлүшүү</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="share_description_hint">Сыпаттама</string>
<string name="login_failed_network" fuzzy="true">Кирүүгө болбой жатат - тармакта үзгүлтүк бар</string> <string name="share_caption_hint">Коштомо жазуу</string>
<string name="login_failed_throttled" fuzzy="true">Өтө көп натыйжасыз иш аракет. Суранабыз, бир нече мүнөттөн кийин кайталаңыз</string> <string name="login_failed_network">Кирүүгө болбой жатат - тармакта үзгүлтүк бар</string>
<string name="login_failed_throttled">Өтө көп натыйжасыз аракет. Бир нече мүнөттөн кийин кайта кирип көрүңүз.</string>
<string name="login_failed_blocked">Кечириңиз, бул кодонуучу Уикиказынада блокко алынган.</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="share_upload_button">Жүктөө</string>
<string name="multiple_share_base_title">Файлардын бул тайпасынын аталышын жазыңыз</string> <string name="multiple_share_base_title">Файлардын бул тайпасынын аталышын жазыңыз</string>
<string name="provider_modifications">Өзгөрүүлөр</string> <string name="provider_modifications">Өзгөрүүлөр</string>
<string name="menu_upload_single">Жүктөө</string> <string name="menu_upload_single">Жүктөө</string>
<string name="categories_search_text_hint">Түрмөктөрдү издөө</string> <string name="categories_search_text_hint">Түрмөктөрдү издөө</string>
<string name="depicts_search_text_hint">Файлдагы элементтерди издөө (тоо, Таж-Махал ж.б.)</string>
<string name="menu_save_categories">Сактоо</string> <string name="menu_save_categories">Сактоо</string>
<string name="refresh_button">Жаңылоо</string> <string name="refresh_button">Жаңылоо</string>
<string name="display_list_button">Тизме</string> <string name="display_list_button">Тизме</string>
@ -86,11 +114,12 @@
<string name="categories_activity_title">Категориялар</string> <string name="categories_activity_title">Категориялар</string>
<string name="title_activity_settings">Параметрлер</string> <string name="title_activity_settings">Параметрлер</string>
<string name="title_activity_signup">Катталуу</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_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_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="about_privacy_policy">Купуялык саясаты</string>
<string name="title_activity_about">Тиркеме жөнүндө</string> <string name="title_activity_about">Колдонмо тууралуу</string>
<string name="menu_feedback">Шарттуу жооп жөнөтүү (Email)</string> <string name="menu_feedback">Шарттуу жооп жөнөтүү (Email)</string>
<string name="provider_categories">Жакында колдонулган түрмөктөр</string> <string name="provider_categories">Жакында колдонулган түрмөктөр</string>
<string name="waiting_first_sync">Алгачкы мезгилдештирүүнү күтүү…</string> <string name="waiting_first_sync">Алгачкы мезгилдештирүүнү күтүү…</string>
@ -99,6 +128,7 @@
<string name="menu_cancel_upload">Жокко чыгаруу</string> <string name="menu_cancel_upload">Жокко чыгаруу</string>
<string name="menu_download">Жүктөп алуу</string> <string name="menu_download">Жүктөп алуу</string>
<string name="preference_license" fuzzy="true">Лицензия</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_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_cc_by" fuzzy="true">CC Attribution 3.0</string>
<string name="license_name_cc0">CC0</string> <string name="license_name_cc0">CC0</string>
@ -116,23 +146,54 @@
<string name="detail_description_empty">Сыпаттама жок</string> <string name="detail_description_empty">Сыпаттама жок</string>
<string name="menu_refresh">Жаңылоо</string> <string name="menu_refresh">Жаңылоо</string>
<string name="ok">Макул</string> <string name="ok">Макул</string>
<string name="upload">Жүктөө</string>
<string name="yes">Ооба</string> <string name="yes">Ооба</string>
<string name="no">Жок</string> <string name="no">Жок</string>
<string name="media_detail_caption">Коштомо жазуу</string>
<string name="media_detail_title">Аталыш</string> <string name="media_detail_title">Аталыш</string>
<string name="media_detail_description">Сыпаттама</string> <string name="media_detail_description">Сыпаттама</string>
<string name="media_detail_discussion">Талкуу</string>
<string name="media_detail_author">Автор</string> <string name="media_detail_author">Автор</string>
<string name="media_detail_uploaded_date">Жүктөлгөн датасы</string>
<string name="media_detail_license">Лицензия</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="cancel">Жокко чыгаруу</string>
<string name="navigation_drawer_open">Ачуу</string>
<string name="navigation_drawer_close">Жабуу</string> <string name="navigation_drawer_close">Жабуу</string>
<string name="navigation_item_home">Башкы бет</string>
<string name="navigation_item_upload">Жүктөө</string> <string name="navigation_item_upload">Жүктөө</string>
<string name="navigation_item_nearby">Жакынкы</string>
<string name="navigation_item_about">Тууралуу</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_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_wikidata">Викимаалымат</string>
<string name="nearby_wikipedia">Википедия</string> <string name="nearby_wikipedia">Википедия</string>
<string name="about_faq">КБС</string> <string name="about_faq">КБС</string>
<string name="about_translate">Которуу</string> <string name="about_translate">Которуу</string>
<string name="about_translate_title">Тилдер</string> <string name="about_translate_title">Тилдер</string>
<string name="about_translate_cancel">Жокко чыгаруу</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="explore_tab_title_map">Карта</string>
<string name="back_button_warning">Жүктөөнү жокко чыгаруу</string> <string name="back_button_warning">Жүктөөнү жокко чыгаруу</string>
<string name="back_button_warning_desc">Артка баскычын колдонуу менен бул жүктөө жокко чыгарылат жана сиз ийгиликти жоготосуз</string> <string name="back_button_warning_desc">Артка баскычын колдонуу менен бул жүктөө жокко чыгарылат жана сиз ийгиликти жоготосуз</string>

View file

@ -70,7 +70,7 @@
<string name="authentication_failed">D\'Authentifizéierung huet net funktionéiert. Loggt Iech wgl. nach eng Kéier an.</string> <string name="authentication_failed">D\'Authentifizéierung huet net funktionéiert. Loggt Iech wgl. nach eng Kéier an.</string>
<string name="uploading_started">D\'Eroplueden huet ugefaang!</string> <string name="uploading_started">D\'Eroplueden huet ugefaang!</string>
<string name="upload_completed_notification_title">%1$s eropgelueden!</string> <string name="upload_completed_notification_title">%1$s eropgelueden!</string>
<string name="upload_completed_notification_text">Dréckt fir de Fichier ze gesinn deen Dir eropgelueden hutt</string> <string name="upload_completed_notification_text">Tippt fir de Fichier ze gesinn, deen Dir eropgelueden hutt</string>
<string name="upload_progress_notification_title_start">Fichier eroplueden: %s</string> <string name="upload_progress_notification_title_start">Fichier eroplueden: %s</string>
<string name="upload_progress_notification_title_in_progress">%1$s gëtt eropgelueden</string> <string name="upload_progress_notification_title_in_progress">%1$s gëtt eropgelueden</string>
<string name="upload_progress_notification_title_finishing">Eropluede vu(n) %1$s ofschléissen</string> <string name="upload_progress_notification_title_finishing">Eropluede vu(n) %1$s ofschléissen</string>
@ -99,6 +99,7 @@
<string name="login_failed_throttled">Ze dacks ouni Succès probéiert. Probéiert wgl. an e puer Minutten nach eng Kéier.</string> <string name="login_failed_throttled">Ze dacks ouni Succès probéiert. Probéiert wgl. an e puer Minutten nach eng Kéier.</string>
<string name="login_failed_blocked">Pardon, dëse Benotzer ass op Commons gespaart</string> <string name="login_failed_blocked">Pardon, dëse Benotzer ass op Commons gespaart</string>
<string name="login_failed_2fa_needed">Dir musst de Code vun Ärer Zwee-Facteur-Authentifizéierung uginn.</string> <string name="login_failed_2fa_needed">Dir musst de Code vun Ärer Zwee-Facteur-Authentifizéierung uginn.</string>
<string name="login_failed_email_auth_needed">Dir hutt ee Login-Verifikatiounscode per E-Mail geschéckt kritt. Gitt wgl. de Code an, fir Iech anzeloggen.</string>
<string name="login_failed_generic">Aloggen huet net funktionéiert</string> <string name="login_failed_generic">Aloggen huet net funktionéiert</string>
<string name="share_upload_button">Eroplueden</string> <string name="share_upload_button">Eroplueden</string>
<string name="multiple_share_base_title">Gitt dëser Biller een Numm</string> <string name="multiple_share_base_title">Gitt dëser Biller een Numm</string>
@ -192,6 +193,7 @@
<string name="become_a_tester_title">Beta-Tester ginn</string> <string name="become_a_tester_title">Beta-Tester ginn</string>
<string name="become_a_tester_description">Schreift Iech op GooglePlay a fir eise Beta-Kanal a kritt fréi Zougang zu neie Funktiounen a Verbesserunge vu Feeler</string> <string name="become_a_tester_description">Schreift Iech op GooglePlay a fir eise Beta-Kanal a kritt fréi Zougang zu neie Funktiounen a Verbesserunge vu Feeler</string>
<string name="_2fa_code">2FA-Code</string> <string name="_2fa_code">2FA-Code</string>
<string name="email_auth_code">E-Mail-Verifikatiounscode</string>
<string name="logout_verification">Wëllt dir Iech wierklech ausloggen?</string> <string name="logout_verification">Wëllt dir Iech wierklech ausloggen?</string>
<string name="no_subcategory_found">Keng Ënnerkategorie fonnt</string> <string name="no_subcategory_found">Keng Ënnerkategorie fonnt</string>
<string name="welcome_image_mount_zao">Bierg Zao</string> <string name="welcome_image_mount_zao">Bierg Zao</string>
@ -274,6 +276,7 @@
<string name="menu_search_button">Sichen</string> <string name="menu_search_button">Sichen</string>
<string name="search_commons">Op Commons sichen</string> <string name="search_commons">Op Commons sichen</string>
<string name="title_activity_search">Sichen</string> <string name="title_activity_search">Sichen</string>
<string name="search_recent_header">Rezent gesicht:</string>
<string name="search_tab_title_media">Medien</string> <string name="search_tab_title_media">Medien</string>
<string name="search_tab_title_categories">Kategorien</string> <string name="search_tab_title_categories">Kategorien</string>
<string name="search_tab_title_depictions">Elementer</string> <string name="search_tab_title_depictions">Elementer</string>

View file

@ -113,6 +113,7 @@
<string name="login_failed_throttled">Направени се премногу неуспешни обиди. Обидете се пак за некоја минута.</string> <string name="login_failed_throttled">Направени се премногу неуспешни обиди. Обидете се пак за некоја минута.</string>
<string name="login_failed_blocked">За жал, корисникот е блокиран на Ризницата</string> <string name="login_failed_blocked">За жал, корисникот е блокиран на Ризницата</string>
<string name="login_failed_2fa_needed">Мора да го укажете вашиот код за двочинителска заверка.</string> <string name="login_failed_2fa_needed">Мора да го укажете вашиот код за двочинителска заверка.</string>
<string name="login_failed_email_auth_needed">На вашата е-поштенска адреса ви испративме потврден код за најава. Внесете го кодот за да се најавите.</string>
<string name="login_failed_generic">Најавата не успеа</string> <string name="login_failed_generic">Најавата не успеа</string>
<string name="share_upload_button">Подигни</string> <string name="share_upload_button">Подигни</string>
<string name="multiple_share_base_title">Дајте му име на овој комплет</string> <string name="multiple_share_base_title">Дајте му име на овој комплет</string>
@ -218,6 +219,7 @@
<string name="become_a_tester_title">Станете бета-испробувач</string> <string name="become_a_tester_title">Станете бета-испробувач</string>
<string name="become_a_tester_description">Пријавете се на нашиот бета-канал на Google Play и добивајте ран пристап до нови можности и исправки на грешки</string> <string name="become_a_tester_description">Пријавете се на нашиот бета-канал на Google Play и добивајте ран пристап до нови можности и исправки на грешки</string>
<string name="_2fa_code">З-код</string> <string name="_2fa_code">З-код</string>
<string name="email_auth_code">Испрати го потврдниот код на е-пошта</string>
<string name="logout_verification">Дали навистина сакате да се одјавите?</string> <string name="logout_verification">Дали навистина сакате да се одјавите?</string>
<string name="mediaimage_failed">Сликата не успеа</string> <string name="mediaimage_failed">Сликата не успеа</string>
<string name="no_subcategory_found">Не пронајдов поткатегории</string> <string name="no_subcategory_found">Не пронајдов поткатегории</string>
@ -820,4 +822,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Честитаме. Сите слики од овој албум се подигнати или обележани за неподигање.</string> <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_explore">Прикажи во „Истражи“</string>
<string name="show_in_nearby">Прикажи во „Во близина“</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> </resources>

View file

@ -135,6 +135,7 @@
<string name="login_failed_throttled">Te veel mislukte pogingen. Probeer het over een paar minuten opnieuw.</string> <string name="login_failed_throttled">Te veel mislukte pogingen. Probeer het over een paar minuten opnieuw.</string>
<string name="login_failed_blocked">Deze gebruiker is helaas geblokkeerd op Wikimedia Commons</string> <string name="login_failed_blocked">Deze gebruiker is helaas geblokkeerd op Wikimedia Commons</string>
<string name="login_failed_2fa_needed">U moet uw code voor tweetrapsauthenticatie opgeven.</string> <string name="login_failed_2fa_needed">U moet uw code voor tweetrapsauthenticatie opgeven.</string>
<string name="login_failed_email_auth_needed">Er is een verificatiecode naar uw e-mailadres verzonden. Voer de code in om aan te melden.</string>
<string name="login_failed_generic">Aanmelden mislukt</string> <string name="login_failed_generic">Aanmelden mislukt</string>
<string name="share_upload_button">Uploaden</string> <string name="share_upload_button">Uploaden</string>
<string name="multiple_share_base_title">Geef deze verzameling een naam</string> <string name="multiple_share_base_title">Geef deze verzameling een naam</string>
@ -240,6 +241,7 @@
<string name="become_a_tester_title">Word bètatester</string> <string name="become_a_tester_title">Word bètatester</string>
<string name="become_a_tester_description">Meld u aan voor ons bètakanaal op Google Play en krijg vroegtijdig toegang tot nieuwe functies en bugfixes</string> <string name="become_a_tester_description">Meld u aan voor ons bètakanaal op Google Play en krijg vroegtijdig toegang tot nieuwe functies en bugfixes</string>
<string name="_2fa_code">2FA-code</string> <string name="_2fa_code">2FA-code</string>
<string name="email_auth_code">E-mailverificatiecode</string>
<string name="logout_verification">Wilt u zich echt afmelden?</string> <string name="logout_verification">Wilt u zich echt afmelden?</string>
<string name="mediaimage_failed">Media-afbeelding is mislukt</string> <string name="mediaimage_failed">Media-afbeelding is mislukt</string>
<string name="no_subcategory_found">Geen subcategorieën gevonden</string> <string name="no_subcategory_found">Geen subcategorieën gevonden</string>
@ -841,4 +843,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gefeliciteerd, alle fotos in dit album zijn ofwel geüpload ofwel gemarkeerd als niet om te uploaden.</string> <string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gefeliciteerd, alle fotos in dit album zijn ofwel geüpload ofwel gemarkeerd als niet om te uploaden.</string>
<string name="show_in_explore">Weergeven in Verkennen</string> <string name="show_in_explore">Weergeven in Verkennen</string>
<string name="show_in_nearby">Weergeven in In de buurt</string> <string name="show_in_nearby">Weergeven in In de buurt</string>
<string name="image_tag_line_created_and_uploaded_by">Gemaakt en geüpload door: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Gemaakt door %1$s en geüpload %2$s</string>
</resources> </resources>

View file

@ -138,7 +138,7 @@
<string name="statistics_thanks">Mercejaments recebuts</string> <string name="statistics_thanks">Mercejaments recebuts</string>
<string name="title_app_shortcut_setting">Paramètres</string> <string name="title_app_shortcut_setting">Paramètres</string>
<string name="theme_default_name" fuzzy="true">Per defaut</string> <string name="theme_default_name" fuzzy="true">Per defaut</string>
<string name="theme_dark_name">Fosc</string> <string name="theme_dark_name">Escur</string>
<string name="theme_light_name">Clar</string> <string name="theme_light_name">Clar</string>
<string name="send_thanks_to_author">Mercejar l\'utilizator</string> <string name="send_thanks_to_author">Mercejar l\'utilizator</string>
</resources> </resources>

View file

@ -22,7 +22,7 @@
<string name="nearby_row_image">ਤਸਵੀਰ</string> <string name="nearby_row_image">ਤਸਵੀਰ</string>
<string name="nearby_all">ਸਾਰੇ</string> <string name="nearby_all">ਸਾਰੇ</string>
<string name="appwidget_img">ਦਿਨ ਦੀ ਤਸਵੀਰ</string> <string name="appwidget_img">ਦਿਨ ਦੀ ਤਸਵੀਰ</string>
<plurals name="uploads_pending_notification_indicator" fuzzy="true"> <plurals name="uploads_pending_notification_indicator">
<item quantity="one"> ਫ਼ਾਈਲ ਚੜ੍ਹਾਈ ਜਾ ਰਹੀ ਹੈ</item> <item quantity="one"> ਫ਼ਾਈਲ ਚੜ੍ਹਾਈ ਜਾ ਰਹੀ ਹੈ</item>
<item quantity="other">%1$d ਫ਼ਾਈਲਾਂ ਚੜ੍ਹਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ</item> <item quantity="other">%1$d ਫ਼ਾਈਲਾਂ ਚੜ੍ਹਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ</item>
</plurals> </plurals>
@ -45,7 +45,7 @@
<string name="preference_category_general">ਆਮ</string> <string name="preference_category_general">ਆਮ</string>
<string name="preference_category_feedback">ਸੁਝਾਅ</string> <string name="preference_category_feedback">ਸੁਝਾਅ</string>
<string name="preference_category_privacy">ਪਰਦੇਦਾਰੀ</string> <string name="preference_category_privacy">ਪਰਦੇਦਾਰੀ</string>
<string name="app_name" fuzzy="true">ਵਿਕੀਮੀਡੀਆ ਕਾਮਨਜ਼</string> <string name="app_name">ਵਿਕੀਮੀਡੀਆ ਸ਼ਾਮਲਾਟ</string>
<string name="menu_settings">ਪਸੰਦਾਂ</string> <string name="menu_settings">ਪਸੰਦਾਂ</string>
<string name="upload_in_progress">ਚੜ੍ਹਾਉਣਾ ਜਾਰੀ ਐ</string> <string name="upload_in_progress">ਚੜ੍ਹਾਉਣਾ ਜਾਰੀ ਐ</string>
<string name="username">ਵਰਤੋਂਕਾਰ ਨਾਂ</string> <string name="username">ਵਰਤੋਂਕਾਰ ਨਾਂ</string>
@ -180,8 +180,11 @@
<string name="media_detail_coordinates_empty">ਕੋਈ ਉਪਲਬਧ ਨਹੀਂ</string> <string name="media_detail_coordinates_empty">ਕੋਈ ਉਪਲਬਧ ਨਹੀਂ</string>
<string name="_2fa_code">2FA ਕੋਡ</string> <string name="_2fa_code">2FA ਕੋਡ</string>
<string name="logout_verification">ਕੀ ਤੁਸੀਂ ਸੱਚੀਂ ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</string> <string name="logout_verification">ਕੀ ਤੁਸੀਂ ਸੱਚੀਂ ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</string>
<string name="welcome_image_llamas">ਲਾਮਾ</string>
<string name="welcome_image_rainbow_bridge">ਸਤਰੰਗੀ ਪੁਲ</string>
<string name="welcome_image_welcome_wikipedia">ਵਿਕੀਪੀਡੀਆ \'ਤੇ ਜੀ ਆਇਆਂ ਨੂੰ</string> <string name="welcome_image_welcome_wikipedia">ਵਿਕੀਪੀਡੀਆ \'ਤੇ ਜੀ ਆਇਆਂ ਨੂੰ</string>
<string name="welcome_image_welcome_copyright">ਜੀ ਆਇਆਂ ਨੂੰ ਕਾਪੀਰਾਈਟ</string> <string name="welcome_image_welcome_copyright">ਜੀ ਆਇਆਂ ਨੂੰ ਕਾਪੀਰਾਈਟ</string>
<string name="welcome_image_sydney_opera_house">ਸਿਡਨੀ ਓਪੇਰਾ ਹਾਊਸ</string>
<string name="cancel">ਰੱਦ ਕਰੋ</string> <string name="cancel">ਰੱਦ ਕਰੋ</string>
<string name="navigation_drawer_open">ਖੋਲ੍ਹੋ</string> <string name="navigation_drawer_open">ਖੋਲ੍ਹੋ</string>
<string name="navigation_drawer_close">ਬੰਦ ਕਰੋ</string> <string name="navigation_drawer_close">ਬੰਦ ਕਰੋ</string>
@ -191,10 +194,13 @@
<string name="navigation_item_about">ਬਾਰੇ</string> <string name="navigation_item_about">ਬਾਰੇ</string>
<string name="navigation_item_settings">ਤਰਜੀਹਾਂ</string> <string name="navigation_item_settings">ਤਰਜੀਹਾਂ</string>
<string name="navigation_item_feedback">ਸੁਝਾਅ</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_logout">ਬਾਹਰ ਆਉ</string>
<string name="navigation_item_info">ਸਿਖਲਾਈ</string> <string name="navigation_item_info">ਸਿਖਲਾਈ</string>
<string name="navigation_item_notification">ਸੂਚਨਾਵਾਂ</string> <string name="navigation_item_notification">ਸੂਚਨਾਵਾਂ</string>
<string name="navigation_item_review">ਪਰਖੋ</string> <string name="navigation_item_review">ਪਰਖੋ</string>
<string name="no_description_found">ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ ਮਿਲਿਆ</string>
<string name="nearby_info_menu_wikidata_article">ਵਿਕੀਡਾਟਾ ਵਸਤਾਂ</string>
<string name="nearby_info_menu_wikipedia_article">ਵਿਕੀਪੀਡੀਆ ਲੇਖ</string> <string name="nearby_info_menu_wikipedia_article">ਵਿਕੀਪੀਡੀਆ ਲੇਖ</string>
<string name="upload_problem_image_dark">ਤਸਵੀਰ ਬਹੁਤ ਗੂੜ੍ਹੀ ਹੈ।</string> <string name="upload_problem_image_dark">ਤਸਵੀਰ ਬਹੁਤ ਗੂੜ੍ਹੀ ਹੈ।</string>
<string name="upload_problem_image_blurry">ਤਸਵੀਰ ਧੁੰਦਲੀ ਹੈ।</string> <string name="upload_problem_image_blurry">ਤਸਵੀਰ ਧੁੰਦਲੀ ਹੈ।</string>
@ -203,35 +209,76 @@
<string name="navigation_item_login">ਦਾਖ਼ਲ ਹੋਵੋ</string> <string name="navigation_item_login">ਦਾਖ਼ਲ ਹੋਵੋ</string>
<string name="nearby_wikidata">ਵਿਕੀਡੇਟਾ</string> <string name="nearby_wikidata">ਵਿਕੀਡੇਟਾ</string>
<string name="nearby_wikipedia">ਵਿਕੀਪੀਡੀਆ</string> <string name="nearby_wikipedia">ਵਿਕੀਪੀਡੀਆ</string>
<string name="about_rate_us">ਸਾਨੂੰ ਦਰਜਾ ਦਿਓ</string>
<string name="about_faq">ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸੁਆਲ</string> <string name="about_faq">ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸੁਆਲ</string>
<string name="user_guide">ਵਰਤੋਂਕਾਰ ਦਸਤਿਆਂ</string>
<string name="welcome_skip_button">ਸਿਖਲਾਈ ਛੱਡੋ</string> <string name="welcome_skip_button">ਸਿਖਲਾਈ ਛੱਡੋ</string>
<string name="about_translate">ਤਰਜਮਾ ਕਰੋ</string> <string name="about_translate">ਤਰਜਮਾ ਕਰੋ</string>
<string name="about_translate_title">ਬੋਲੀਆਂ</string> <string name="about_translate_title">ਬੋਲੀਆਂ</string>
<string name="about_translate_proceed">ਅੱਗੇ ਵਧੋ</string> <string name="about_translate_proceed">ਅੱਗੇ ਵਧੋ</string>
<string name="about_translate_cancel">ਰੱਦ ਕਰੋ</string> <string name="about_translate_cancel">ਰੱਦ ਕਰੋ</string>
<string name="retry">ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ</string>
<string name="showcase_view_needs_photo">ਇਸ ਜਗ੍ਹਾ ਨੂੰ ਇੱਕ ਤਸਵੀਰ ਦੀ ਲੋੜ ਏ।</string>
<string name="showcase_view_has_photo">ਇਸ ਜਗ੍ਹਾ \'ਤੇ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਤਸਵੀਰ ਏ।</string>
<string name="showcase_view_no_longer_exists">ਇਹ ਜਗ੍ਹਾ ਹੁਣ ਮੌਜੂਦ ਨਹੀਂ ਏ।</string>
<string name="no_images_found">ਕੋਈ ਤਸਵੀਰ ਨਹੀਂ ਲੱਭੀ!</string>
<string name="error_loading_images">ਤਸਵੀਰ ਚੜਾਉਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਏ।</string>
<string name="image_uploaded_by">%1$s: ਵੱਲੋਂ ਚੜ੍ਹਾਈ ਗਈ</string>
<string name="block_notification_title">ਰੋਕ ਲਾਈ ਗਈ</string>
<string name="app_widget_heading">ਦਿਨ ਦੀ ਤਸਵੀਰ</string>
<string name="menu_search_button">ਲੱਭੋ</string> <string name="menu_search_button">ਲੱਭੋ</string>
<string name="title_activity_search">ਲੱਭੋ</string> <string name="title_activity_search">ਲੱਭੋ</string>
<string name="search_recent_header">ਹਾਲੀਆ ਖੋਜਾਂ:</string> <string name="search_recent_header">ਹਾਲੀਆ ਖੋਜਾਂ:</string>
<string name="provider_searches">ਹਾਲ ਦੀਆਂ ਪੁੱਛਗਿੱਛ ਖੋਜਾਂ</string> <string name="provider_searches">ਹਾਲ ਦੀਆਂ ਪੁੱਛਗਿੱਛ ਖੋਜਾਂ</string>
<string name="provider_recent_languages">ਹਾਲ ਹੀ ਵਿੱਚ ਬੋਲੀਆਂ ਬਾਰੇ ਪੁੱਛਗਿੱਛ</string> <string name="provider_recent_languages">ਹਾਲ ਹੀ ਵਿੱਚ ਬੋਲੀਆਂ ਬਾਰੇ ਪੁੱਛਗਿੱਛ</string>
<string name="search_tab_title_categories">ਸ਼੍ਰੇਣੀਆਂ</string> <string name="search_tab_title_categories">ਸ਼੍ਰੇਣੀਆਂ</string>
<string name="search_tab_title_depictions">ਵਸਤਾਂ</string>
<string name="explore_tab_title_map">ਨਕਸ਼ਾ</string> <string name="explore_tab_title_map">ਨਕਸ਼ਾ</string>
<string name="question">ਸਵਾਲ</string> <string name="question">ਸਵਾਲ</string>
<string name="result">ਨਤੀਜਾ</string>
<string name="user_not_logged_in">ਤੁਹਾਡੇ ਦਾਖਲੇ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ ਦਾਖਲ ਹੋਵੋ।</string> <string name="user_not_logged_in">ਤੁਹਾਡੇ ਦਾਖਲੇ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ ਦਾਖਲ ਹੋਵੋ।</string>
<string name="continue_message">ਜਾਰੀ ਰੱਖੋ</string> <string name="continue_message">ਜਾਰੀ ਰੱਖੋ</string>
<string name="correct">ਸਹੀ ਜਵਾਬ</string>
<string name="wrong">ਗਲਤ ਜਵਾਬ</string>
<string name="share_app_title">ਐਪ ਸਾਂਝਾ ਕਰੋ</string>
<string name="rotate">ਘੁੰਮਾਓ</string>
<string name="error_fetching_nearby_places">ਨੇੜਲੀਆਂ ਥਾਵਾਂ ਲੋਡ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ</string>
<string name="no_pictures_in_this_area">ਇਸ ਖੇਤਰ ਵਿੱਚ ਕੋਈ ਤਸਵੀਰਾਂ ਨਹੀਂ ਹਨ।</string>
<string name="no_nearby_places_around">ਆਲੇ-ਦੁਆਲੇ ਕੋਈ ਨੇੜਲੀ ਥਾਂ ਨਹੀਂ ਏ।</string>
<string name="error_fetching_nearby_monuments">ਨੇਡ਼ਲੇ ਸਮਾਰਕਾਂ ਨੂੰ ਲਿਆਉਣ ਵਿੱਚ ਗਲਤੀ।</string>
<string name="no_recent_searches">ਕੋਈ ਤਾਜ਼ਾ ਖੋਜ ਨਹੀਂ</string> <string name="no_recent_searches">ਕੋਈ ਤਾਜ਼ਾ ਖੋਜ ਨਹੀਂ</string>
<string name="delete_recent_searches_dialog">ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ ਉੱਤੇ ਆਪਣੇ ਖੋਜ ਇਤਿਹਾਸ ਨੂੰ ਸਾਫ਼ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</string>
<string name="delete_search_dialog">ਕੀ ਤੁਸੀਂ ਇਸ ਖੋਜ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?</string>
<string name="search_history_deleted">ਖੋਜ ਇਤਿਹਾਸ ਮਿਟਾਇਆ ਗਿਆ</string>
<string name="nominate_delete">ਮਿਟਾਉਣ ਲਈ ਨਾਮਜ਼ਦ ਕਰੋ</string>
<string name="delete">ਮਿਟਾਓ</string> <string name="delete">ਮਿਟਾਓ</string>
<string name="Achievements">ਪ੍ਰਾਪਤੀਆਂ</string> <string name="Achievements">ਪ੍ਰਾਪਤੀਆਂ</string>
<string name="Profile">ਪ੍ਰੋਫਾਈਲ</string>
<string name="statistics">ਅੰਕੜੇ</string> <string name="statistics">ਅੰਕੜੇ</string>
<string name="statistics_thanks">ਧੰਨਵਾਦ ਪ੍ਰਾਪਤ ਹੋਏ</string> <string name="statistics_thanks">ਧੰਨਵਾਦ ਪ੍ਰਾਪਤ ਹੋਏ</string>
<string name="statistics_featured">ਵਿਸ਼ੇਸ਼ ਤਸਵੀਰ</string>
<string name="statistics_wikidata_edits">\"ਨੇੜਲੀਆਂ ਥਾਵਾਂ\" ਰਾਹੀਂ ਤਸਵੀਰਾਂ</string>
<string name="level">ਪੱਧਰ %d</string> <string name="level">ਪੱਧਰ %d</string>
<string name="images_uploaded">ਤਸਵੀਰਾਂ ਚੜ੍ਹਾਇਆਂ ਗਈਆਂ</string>
<string name="image_reverts">ਤਸਵੀਰਾਂ ਵਾਪਸ ਨਹੀਂ ਕੀਤੀ ਗਈਆਂ</string>
<string name="images_used_by_wiki">ਵਰਤੀ ਗਈਆਂ ਤਸਵੀਰਾਂ</string>
<string name="achievements_share_message">ਆਪਣੀਆਂ ਪ੍ਰਾਪਤੀਆਂ ਨੂੰ ਆਪਣੇ ਦੋਸਤਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ!</string> <string name="achievements_share_message">ਆਪਣੀਆਂ ਪ੍ਰਾਪਤੀਆਂ ਨੂੰ ਆਪਣੇ ਦੋਸਤਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ!</string>
<string name="achievements_revert_limit_message">ਘੱਟੋ-ਘੱਟ ਲੋੜੀਂਦਾ:</string>
<string name="error_occurred">ਗਲਤੀ ਆਈ!</string>
<string name="contributions_fragment">ਯੋਗਦਾਨ</string>
<string name="nearby_fragment">ਨੇੜੇ-ਤੇੜੇ</string>
<string name="notifications">ਸੂਚਨਾਵਾਂ</string>
<string name="read_notifications">ਸੂਚਨਾਵਾਂ (ਪੜ੍ਹਿਆਂ)</string> <string name="read_notifications">ਸੂਚਨਾਵਾਂ (ਪੜ੍ਹਿਆਂ)</string>
<string name="list_sheet">ਸੂਚੀ</string> <string name="list_sheet">ਸੂਚੀ</string>
<string name="next">ਅੱਗੇ</string> <string name="next">ਅੱਗੇ</string>
<string name="previous">ਪਿਛਲਾ</string> <string name="previous">ਪਿਛਲਾ</string>
<string name="title_page_bookmarks_pictures">ਤਸਵੀਰਾਂ</string>
<string name="title_page_bookmarks_locations">ਟਿਕਾਣਾ</string> <string name="title_page_bookmarks_locations">ਟਿਕਾਣਾ</string>
<string name="title_page_bookmarks_categories">ਸ਼੍ਰੇਣੀਆਂ</string> <string name="title_page_bookmarks_categories">ਸ਼੍ਰੇਣੀਆਂ</string>
<string name="search_this_area">ਇਸ ਖੇਤਰ ਵਿੱਚ ਖੋਜ ਕਰੋ</string>
<string name="nearby_card_permission_title">ਇਜਾਜ਼ਤ ਦੀ ਬੇਨਤੀ</string>
<string name="never_ask_again">ਇਹ ਮੁੜ ਕਦੇ ਨਾ ਪੁੱਛੋ</string>
<string name="display_location_permission_title">ਟਿਕਾਣੇਂ ਦੀ ਆਗਿਆ ਮੰਗੋ</string>
<string name="ends_on">ਨੂੰ ਮਿਆਦ ਪੁਗਦੀ</string> <string name="ends_on">ਨੂੰ ਮਿਆਦ ਪੁਗਦੀ</string>
<string name="display_campaigns">ਮੁਹਿੰਮਾਂ ਵੇਖਾਓ</string> <string name="display_campaigns">ਮੁਹਿੰਮਾਂ ਵੇਖਾਓ</string>
<string name="option_allow">ਇਜਾਜ਼ਤ ਦਿਓ</string> <string name="option_allow">ਇਜਾਜ਼ਤ ਦਿਓ</string>

View file

@ -150,6 +150,7 @@
<string name="login_failed_throttled">Zbyt wiele nieudanych prób zalogowania. Spróbuj ponownie za kilka minut.</string> <string name="login_failed_throttled">Zbyt wiele nieudanych prób zalogowania. Spróbuj ponownie za kilka minut.</string>
<string name="login_failed_blocked">Przepraszamy, ten użytkownik został zablokowany na Commons</string> <string name="login_failed_blocked">Przepraszamy, ten użytkownik został zablokowany na Commons</string>
<string name="login_failed_2fa_needed">Wprowadź swój kod dla dwuetapowej autoryzacji.</string> <string name="login_failed_2fa_needed">Wprowadź swój kod dla dwuetapowej autoryzacji.</string>
<string name="login_failed_email_auth_needed">Kod weryfikacyjny logowania został wysłany na Twój adres e-mail. Podaj kod, aby się zalogować.</string>
<string name="login_failed_generic">Logowanie nie powiodło się</string> <string name="login_failed_generic">Logowanie nie powiodło się</string>
<string name="share_upload_button">Prześlij</string> <string name="share_upload_button">Prześlij</string>
<string name="multiple_share_base_title">Nazwij ten zestaw</string> <string name="multiple_share_base_title">Nazwij ten zestaw</string>
@ -255,6 +256,7 @@
<string name="become_a_tester_title">Zostań beta-testerem</string> <string name="become_a_tester_title">Zostań beta-testerem</string>
<string name="become_a_tester_description">Dołącz do kanału bety w Google Play i dostań wczesny dostęp do nowych funkcji i łatek</string> <string name="become_a_tester_description">Dołącz do kanału bety w Google Play i dostań wczesny dostęp do nowych funkcji i łatek</string>
<string name="_2fa_code">Kod 2FA</string> <string name="_2fa_code">Kod 2FA</string>
<string name="email_auth_code">Kod weryfikacyjny z e-mail</string>
<string name="logout_verification">Czy na pewno wylogować?</string> <string name="logout_verification">Czy na pewno wylogować?</string>
<string name="mediaimage_failed">Błąd obrazu multimedialnego</string> <string name="mediaimage_failed">Błąd obrazu multimedialnego</string>
<string name="no_subcategory_found">Nie znaleziono podkategorii</string> <string name="no_subcategory_found">Nie znaleziono podkategorii</string>
@ -437,6 +439,7 @@
<string name="map_application_missing">W twoim urządzeniu nie znaleziono kompatybilnej aplikacji mapowej. Zainstaluj aplikację mapową, aby korzystać z tej funkcji.</string> <string name="map_application_missing">W twoim urządzeniu nie znaleziono kompatybilnej aplikacji mapowej. Zainstaluj aplikację mapową, aby korzystać z tej funkcji.</string>
<string name="title_page_bookmarks_pictures">Zdjęcia</string> <string name="title_page_bookmarks_pictures">Zdjęcia</string>
<string name="title_page_bookmarks_locations">Lokalizacja</string> <string name="title_page_bookmarks_locations">Lokalizacja</string>
<string name="title_page_bookmarks_categories">Kategorie</string>
<string name="menu_bookmark">Dodaj/Usuń do zakładek</string> <string name="menu_bookmark">Dodaj/Usuń do zakładek</string>
<string name="provider_bookmarks">Zakładki</string> <string name="provider_bookmarks">Zakładki</string>
<string name="bookmark_empty">Nie dodałeś żadnych zakładek</string> <string name="bookmark_empty">Nie dodałeś żadnych zakładek</string>
@ -474,9 +477,13 @@
<string name="option_dismiss">Odrzuć</string> <string name="option_dismiss">Odrzuć</string>
<string name="in_app_camera_needs_location">Zezwól na dostęp do lokalizacji w Ustawieniach, a następnie spróbuj ponownie.\n\nUwaga: Jeśli aplikacja nie będzie w stanie uzyskać danych o lokalizacji z urządzenia w krótkim czasie, przesłany plik może nie zawierać tych informacji.</string> <string name="in_app_camera_needs_location">Zezwól na dostęp do lokalizacji w Ustawieniach, a następnie spróbuj ponownie.\n\nUwaga: Jeśli aplikacja nie będzie w stanie uzyskać danych o lokalizacji z urządzenia w krótkim czasie, przesłany plik może nie zawierać tych informacji.</string>
<string name="in_app_camera_location_permission_rationale">Aparat w aplikacji potrzebuje uprawnień na dostęp do lokalizacji, aby dołączyć ją do zdjęć, jeśli nie jest dostępna w danych EXIF. Zezwól aplikacji na dostęp do lokalizacji, a następnie spróbuj ponownie.\n\nUwaga: Jeśli aplikacja nie będzie w stanie uzyskać danych o lokalizacji z urządzenia w krótkim czasie, przesłany plik może nie zawierać tych informacji.</string> <string name="in_app_camera_location_permission_rationale">Aparat w aplikacji potrzebuje uprawnień na dostęp do lokalizacji, aby dołączyć ją do zdjęć, jeśli nie jest dostępna w danych EXIF. Zezwól aplikacji na dostęp do lokalizacji, a następnie spróbuj ponownie.\n\nUwaga: Jeśli aplikacja nie będzie w stanie uzyskać danych o lokalizacji z urządzenia w krótkim czasie, przesłany plik może nie zawierać tych informacji.</string>
<string name="location_loss_warning" fuzzy="true">Upewnij się, że ten nowy selektor Androida nie usuwa lokalizacji ze zdjęć.</string> <string name="in_app_camera_location_permission_denied">Aplikacja nie rejestrowała lokalizacji i ujęć z powodu braku uprawnień do korzystania z lokalizacji</string>
<string name="in_app_camera_location_unavailable">Aplikacja nie rejestruje lokalizacji i ujęć, ponieważ GPS jest wyłączony</string>
<string name="open_document_photo_picker_title">Użyj selektora zdjęć na podstawie dokumentu</string>
<string name="open_document_photo_picker_explanation">Nowy selektor zdjęć Androida ryzykuje utratą informacji o lokalizacji. Włącz, jeśli wydaje się, że go używasz.</string>
<string name="location_loss_warning">Wyłączenie tego może spowodować uruchomienie nowego selektora zdjęć Androida. Grozi utratą informacji o lokalizacji.\n\nAby uzyskać więcej informacji, kliknij „Czytaj więcej”.</string>
<string name="nearby_campaign_dismiss_message">Kampanie już nie będą widoczne. Jednak w razie potrzeby możesz ponownie włączyć to powiadomienie w ustawieniach.</string> <string name="nearby_campaign_dismiss_message">Kampanie już nie będą widoczne. Jednak w razie potrzeby możesz ponownie włączyć to powiadomienie w ustawieniach.</string>
<string name="this_function_needs_network_connection" fuzzy="true">Ta funkcja wymaga połączenia sieciowego, sprawdź ustawienia połączenia.</string> <string name="this_function_needs_network_connection">Ta funkcja wymaga połączenia sieciowego. Sprawdź swoje ustawienia połączenia.</string>
<string name="error_processing_image">Wystąpił błąd podczas przetwarzania obrazu. Spróbuj ponownie!</string> <string name="error_processing_image">Wystąpił błąd podczas przetwarzania obrazu. Spróbuj ponownie!</string>
<string name="getting_edit_token">Pobieranie tokenu do edycji</string> <string name="getting_edit_token">Pobieranie tokenu do edycji</string>
<string name="check_category_adding_template">Dodawanie szablonu do sprawdzania kategorii</string> <string name="check_category_adding_template">Dodawanie szablonu do sprawdzania kategorii</string>
@ -514,6 +521,7 @@
<string name="no_notification">Nie masz nieprzeczytanych powiadomień</string> <string name="no_notification">Nie masz nieprzeczytanych powiadomień</string>
<string name="no_read_notification">Nie masz powiadomień o przeczytaniu</string> <string name="no_read_notification">Nie masz powiadomień o przeczytaniu</string>
<string name="share_logs_using">Udostępniaj dzienniki za pomocą</string> <string name="share_logs_using">Udostępniaj dzienniki za pomocą</string>
<string name="check_your_email_inbox">Sprawdź skrzynkę odbiorczą e-mail</string>
<string name="menu_option_read">Zobacz przeczytane</string> <string name="menu_option_read">Zobacz przeczytane</string>
<string name="menu_option_unread">Wyświetl nieprzeczytane</string> <string name="menu_option_unread">Wyświetl nieprzeczytane</string>
<string name="error_occurred_in_picking_images">Wystąpił błąd podczas pobierania zdjęć</string> <string name="error_occurred_in_picking_images">Wystąpił błąd podczas pobierania zdjęć</string>
@ -592,7 +600,7 @@
<string name="coordinates_edit_helper_edit_message_else">Nie można dodać koordynatów.</string> <string name="coordinates_edit_helper_edit_message_else">Nie można dodać koordynatów.</string>
<string name="description_edit_helper_edit_message_else">Nie można dodać opisów.</string> <string name="description_edit_helper_edit_message_else">Nie można dodać opisów.</string>
<string name="caption_edit_helper_edit_message_else">Nie można dodać przypisu.</string> <string name="caption_edit_helper_edit_message_else">Nie można dodać przypisu.</string>
<string name="coordinates_picking_unsuccessful" fuzzy="true">Nie można uzyskać koordynatów.</string> <string name="coordinates_picking_unsuccessful">Współrzędne obrazu nie zostały zaktualizowane</string>
<string name="descriptions_picking_unsuccessful">Nie można uzyskać opisów.</string> <string name="descriptions_picking_unsuccessful">Nie można uzyskać opisów.</string>
<string name="description_activity_title">Edycja opisów i przypisów</string> <string name="description_activity_title">Edycja opisów i przypisów</string>
<string name="share_image_via">Udostępnij obraz przez</string> <string name="share_image_via">Udostępnij obraz przez</string>
@ -607,12 +615,13 @@
<string name="place_state_needs_photo">Potrzebne Zdjęcia</string> <string name="place_state_needs_photo">Potrzebne Zdjęcia</string>
<string name="place_type">Typ miejsca:</string> <string name="place_type">Typ miejsca:</string>
<string name="nearby_search_hint">Most, muzeum, hotel itp.</string> <string name="nearby_search_hint">Most, muzeum, hotel itp.</string>
<string name="you_must_reset_your_passsword" fuzzy="true">Coś poszło nie tak podczas logowania, musisz zresetować hasło!</string> <string name="you_must_reset_your_passsword">Coś poszło nie tak z logowaniem. Musisz zresetować hasło!</string>
<string name="title_for_media">MEDIA</string> <string name="title_for_media">MEDIA</string>
<string name="title_for_child_classes">KLASY POTOMNE</string> <string name="title_for_child_classes">KLASY POTOMNE</string>
<string name="title_for_parent_classes">KLASY NADRZĘDNE</string> <string name="title_for_parent_classes">KLASY NADRZĘDNE</string>
<string name="upload_nearby_place_found_title">Znaleziono miejsce w pobliżu</string> <string name="upload_nearby_place_found_title">Znaleziono miejsce w pobliżu</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Czy to zdjęcie %1$s?</string> <string name="upload_nearby_place_found_description_plural">Czy to są zdjęcia %1$s?</string>
<string name="upload_nearby_place_found_description_singular">Czy to jest zdjęcie %1$s?</string>
<string name="title_app_shortcut_bookmark">Zakładki</string> <string name="title_app_shortcut_bookmark">Zakładki</string>
<string name="title_app_shortcut_setting">Ustawienia</string> <string name="title_app_shortcut_setting">Ustawienia</string>
<string name="remove_bookmark">Usunięto z zakładek</string> <string name="remove_bookmark">Usunięto z zakładek</string>
@ -626,8 +635,10 @@
<string name="cannot_open_location_settings">Nie można otworzyć ustawień lokalizacji. Włącz lokalizację ręcznie</string> <string name="cannot_open_location_settings">Nie można otworzyć ustawień lokalizacji. Włącz lokalizację ręcznie</string>
<string name="recommend_high_accuracy_mode">Aby uzyskać najlepsze wyniki, wybierz tryb wysokiej dokładności.</string> <string name="recommend_high_accuracy_mode">Aby uzyskać najlepsze wyniki, wybierz tryb wysokiej dokładności.</string>
<string name="ask_to_turn_location_on">Włączyć lokalizację?</string> <string name="ask_to_turn_location_on">Włączyć lokalizację?</string>
<string name="ask_to_turn_location_on_text">Włącz usługi lokalizacyjne, aby aplikacja pokazywała Twoją bieżącą lokalizację</string>
<string name="nearby_needs_location">Lokalizacja W pobliżu wymaga włączonej lokalizacji, aby działać poprawnie</string> <string name="nearby_needs_location">Lokalizacja W pobliżu wymaga włączonej lokalizacji, aby działać poprawnie</string>
<string name="upload_map_location_access" fuzzy="true">Aby ustawić lokalizację automatycznie, musisz przyznać dostęp do swojej bieżącej lokalizacji.</string> <string name="explore_map_needs_location">Aby wyświetlić pobliskie obrazy, mapa Eksploruj wymaga zezwolenia na ustalanie lokalizacji</string>
<string name="upload_map_location_access">Aby automatycznie ustawić lokalizację, musisz udzielić uprawnień do jej określania.</string>
<string name="use_location_from_similar_image">Czy zrobiłeś te dwa zdjęcia w tym samym miejscu? Czy chcesz użyć szerokości/długości geograficznej obrazu po prawej stronie?</string> <string name="use_location_from_similar_image">Czy zrobiłeś te dwa zdjęcia w tym samym miejscu? Czy chcesz użyć szerokości/długości geograficznej obrazu po prawej stronie?</string>
<string name="load_more">Wczytaj więcej</string> <string name="load_more">Wczytaj więcej</string>
<string name="nearby_no_results">Nie znaleziono miejsc, spróbuj zmienić kryteria wyszukiwania.</string> <string name="nearby_no_results">Nie znaleziono miejsc, spróbuj zmienić kryteria wyszukiwania.</string>
@ -715,6 +726,7 @@
<string name="custom_selector_info_text2">W przeciwieństwie do zdjęcia po lewej, zdjęcie po prawej ma logo Commons wskazujące, że zostało już przesłane.\n Dotknij i przytrzymaj, aby wyświetlić podgląd obrazu.</string> <string name="custom_selector_info_text2">W przeciwieństwie do zdjęcia po lewej, zdjęcie po prawej ma logo Commons wskazujące, że zostało już przesłane.\n Dotknij i przytrzymaj, aby wyświetlić podgląd obrazu.</string>
<string name="welcome_custom_selector_ok">Niesamowite</string> <string name="welcome_custom_selector_ok">Niesamowite</string>
<string name="custom_selector_already_uploaded_image_text">Tez plik został już przesłany do Commons.</string> <string name="custom_selector_already_uploaded_image_text">Tez plik został już przesłany do Commons.</string>
<string name="custom_selector_over_limit_warning">Ze względów technicznych aplikacja nie może niezawodnie przesyłać więcej niż %1$d zdjęć na raz. Limit przesyłania %1$d został przekroczony przez %2$d.</string>
<string name="custom_selector_dismiss_limit_warning_button_text">Odrzuć</string> <string name="custom_selector_dismiss_limit_warning_button_text">Odrzuć</string>
<string name="custom_selector_button_limit_text">Maks.: %1$d</string> <string name="custom_selector_button_limit_text">Maks.: %1$d</string>
<string name="custom_selector_limit_error_desc">Błąd: przekroczono limit przesyłania</string> <string name="custom_selector_limit_error_desc">Błąd: przekroczono limit przesyłania</string>
@ -727,7 +739,7 @@
<string name="read_phone_state_permission_message">Mapy znajdujące się w pobliżu muszą odczytywać STAN TELEFONU, aby działały poprawnie</string> <string name="read_phone_state_permission_message">Mapy znajdujące się w pobliżu muszą odczytywać STAN TELEFONU, aby działały poprawnie</string>
<string name="contributions_of_user">Wkład użytkownika: %s</string> <string name="contributions_of_user">Wkład użytkownika: %s</string>
<string name="achievements_of_user">Osiągnięcia użytkownika: %s</string> <string name="achievements_of_user">Osiągnięcia użytkownika: %s</string>
<string name="menu_view_user_page" fuzzy="true">Wyświetl stronę użytkownika</string> <string name="menu_view_user_page">Wyświetl profil użytkownika</string>
<string name="edit_depictions">Edycja przedstawień</string> <string name="edit_depictions">Edycja przedstawień</string>
<string name="edit_categories">Edycja kategorii</string> <string name="edit_categories">Edycja kategorii</string>
<string name="advanced_options">Opcje zaawansowane</string> <string name="advanced_options">Opcje zaawansowane</string>
@ -740,8 +752,8 @@
<string name="add_location">Dodaj położenie</string> <string name="add_location">Dodaj położenie</string>
<string name="feedback_sharing_data_alert">Usuń z tego e-maila wszelkie informacje, których nie chcesz udostępniać publicznie. Pamiętaj również, że Twój adres e-mail, z którego publikujesz, oraz powiązane imię i nazwisko i zdjęcie profilowe będą widoczne publicznie.</string> <string name="feedback_sharing_data_alert">Usuń z tego e-maila wszelkie informacje, których nie chcesz udostępniać publicznie. Pamiętaj również, że Twój adres e-mail, z którego publikujesz, oraz powiązane imię i nazwisko i zdjęcie profilowe będą widoczne publicznie.</string>
<string name="explore_map_details">Szczegóły</string> <string name="explore_map_details">Szczegóły</string>
<string name="achievements_unavailable_beta" fuzzy="true">Osiągnięcia są dostępne tylko w wersji prod, sprawdź dokumentację dla programistów.</string> <string name="achievements_unavailable_beta">Osiągnięcia są dostępne tylko w wersji prod. Sprawdź dokumentację programistyczną.</string>
<string name="leaderboard_unavailable_beta" fuzzy="true">Tablica wyników jest dostępna tylko w wersji prod. Zapoznaj się z dokumentacją dla programistów.</string> <string name="leaderboard_unavailable_beta">Tabela liderów jest dostępna tylko w wersji prod. Sprawdź dokumentację dla programistów.</string>
<string name="copyright_popup">Przesyłaj tylko zdjęcia zrobione przez siebie. Przesyłający obrazy chronione prawami autorskimi zostaną zablokowani. Dotyczy to również wersji beta. Dziękujemy za przetestowanie aplikacji!</string> <string name="copyright_popup">Przesyłaj tylko zdjęcia zrobione przez siebie. Przesyłający obrazy chronione prawami autorskimi zostaną zablokowani. Dotyczy to również wersji beta. Dziękujemy za przetestowanie aplikacji!</string>
<string name="select_feedback_data_choice">Usuń zaznaczenie wszelkich informacji, których nie chcesz udostępniać publicznie.</string> <string name="select_feedback_data_choice">Usuń zaznaczenie wszelkich informacji, których nie chcesz udostępniać publicznie.</string>
<string name="api_level">Poziom API</string> <string name="api_level">Poziom API</string>
@ -777,19 +789,77 @@
<string name="full_screen_mode_features_info">Przesuń szybko i długo, aby wykonać następujące czynności: \n- Lewo/Prawo: Przejdź do poprzedniego/następnego \n- Góra: Wybierz\n- Dół: Oznacz jako nieprzeznaczone do przesłania.</string> <string name="full_screen_mode_features_info">Przesuń szybko i długo, aby wykonać następujące czynności: \n- Lewo/Prawo: Przejdź do poprzedniego/następnego \n- Góra: Wybierz\n- Dół: Oznacz jako nieprzeznaczone do przesłania.</string>
<string name="set_up_avatar_toast_string">Aby skonfigurować swojego awatara rankingu, dotknij \'Ustaw jako awatar\' w menu z trzema kropkami dowolnego obrazu.</string> <string name="set_up_avatar_toast_string">Aby skonfigurować swojego awatara rankingu, dotknij \'Ustaw jako awatar\' w menu z trzema kropkami dowolnego obrazu.</string>
<string name="similar_coordinate_description_auto_set">Współrzędne nie są dokładnymi współrzędnymi, ale osoba, która przesłała to zdjęcie, uważa, że są wystarczająco blisko.</string> <string name="similar_coordinate_description_auto_set">Współrzędne nie są dokładnymi współrzędnymi, ale osoba, która przesłała to zdjęcie, uważa, że są wystarczająco blisko.</string>
<string name="storage_permissions_denied">Odmowa dostępu do pamięci masowej</string>
<string name="unable_to_share_upload_item">Nie można udostępnić tego elementu</string> <string name="unable_to_share_upload_item">Nie można udostępnić tego elementu</string>
<string name="permissions_are_required_for_functionality">Do działania tej funkcji wymagane są uprawnienia</string>
<string name="learn_how_to_write_a_useful_description">Przeczytaj jak napisać użyteczny opis</string> <string name="learn_how_to_write_a_useful_description">Przeczytaj jak napisać użyteczny opis</string>
<string name="learn_how_to_write_a_useful_caption">Przeczytaj jak napisać użyteczny podpis</string> <string name="learn_how_to_write_a_useful_caption">Przeczytaj jak napisać użyteczny podpis</string>
<string name="see_your_achievements">Zobacz swoje osiągnięcia</string>
<string name="edit_image">Edytuj obraz</string> <string name="edit_image">Edytuj obraz</string>
<string name="edit_location">Edytuj lokalizację</string> <string name="edit_location">Edytuj lokalizację</string>
<string name="location_updated">Lokalizacja zaktualizowana!</string> <string name="location_updated">Lokalizacja zaktualizowana!</string>
<string name="remove_location">Usuń lokalizację</string>
<string name="remove_location_warning_title">Ostrzeżenie o usuwaniu lokalizacji</string>
<string name="remove_location_warning_desc">Lokalizacja sprawia, że zdjęcia są bardziej przydatne i łatwiejsze do znalezienia. Czy naprawdę chcesz usunąć lokalizację z tego zdjęcia?</string>
<string name="location_removed">Lokalizacja usunięta!</string>
<string name="send_thanks_to_author">Dziękuję autorowi</string> <string name="send_thanks_to_author">Dziękuję autorowi</string>
<string name="error_sending_thanks">Błąd wysyłania podziękowań do autora.</string> <string name="error_sending_thanks">Błąd wysyłania podziękowań do autora.</string>
<string name="invalid_login_message">Twoje logowanie wygasło. Zaloguj się ponownie.</string>
<string name="no_application_available_to_open_gpx_files">Brak dostępnej aplikacji do otwierania plików GPX</string>
<string name="file_saved_successfully">Pomyślnie zapisano</string> <string name="file_saved_successfully">Pomyślnie zapisano</string>
<string name="do_you_want_to_open_gpx_file">Chcesz otworzyć plik GPX?</string> <string name="do_you_want_to_open_gpx_file">Chcesz otworzyć plik GPX?</string>
<string name="do_you_want_to_open_kml_file">Chcesz otworzyć plik KML?</string> <string name="do_you_want_to_open_kml_file">Chcesz otworzyć plik KML?</string>
<string name="failed_to_save_kml_file">Nie udało się zapisać pliku KML.</string> <string name="failed_to_save_kml_file">Nie udało się zapisać pliku KML.</string>
<string name="failed_to_save_gpx_file">Nie udało się zapisać pliku GPX.</string> <string name="failed_to_save_gpx_file">Nie udało się zapisać pliku GPX.</string>
<string name="saving_kml_file">Zapisywanie pliku KML</string>
<string name="saving_gpx_file">Zapisywanie pliku GPX</string>
<plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%d wybrany obraz</item>
<item quantity="few">%d wybrane obrazy</item>
<item quantity="many">%d wybranych obrazów</item>
<item quantity="other"/>
</plurals>
<string name="multiple_files_depiction">Pamiętaj, że wszystkie obrazy w wielokrotnym przesłaniu mają te same kategorie i przedstawienia. Jeśli obrazy nie mają wspólnych przedstawień i kategorii, wykonaj kilka oddzielnych przesłań.</string>
<string name="multiple_files_depiction_header">Uwaga dotycząca przesyłania wielu obrazów na raz</string>
<string name="nearby_wikitalk">Zgłoś problem dotyczący tego elementu do Wikidata</string>
<string name="please_enter_some_comments">Wprowadź komentarz poniżej</string>
<string name="talk">Dyskusja</string> <string name="talk">Dyskusja</string>
<string name="write_something_about_the_item">Napisz coś o elemencie \' %1$s\'. Będzie to publicznie widoczne.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' już nie istnieje, nie da się zrobić dla niego zdjęcia.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' jest w innym miejscu. Proszę podać poniżej prawidłowe miejsce i jeśli to możliwe, wpisać jego prawidłową szerokość i długość geograficzną.</string>
<string name="other_problem_or_information_please_explain_below">Inny problem lub informacja (proszę wyjaśnić poniżej).</string>
<string name="feedback_destination_note">Twoja opinia zostanie opublikowana na następującej stronie wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Aplikacja mobilna/Opinie&lt;/a&gt;</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Czy na pewno chcesz anulować wszystkie przesyłania?</string>
<string name="cancelling_all_the_uploads">Anulowanie wszystkich operacji przesyłania...</string>
<string name="uploads">Przesłania</string>
<string name="pending">Oczekujące</string>
<string name="failed">Nieudane</string>
<string name="could_not_load_place_data">Nie można wczytać danych o miejscu</string>
<string name="custom_selector_delete_folder">Usuń folder</string>
<string name="custom_selector_confirm_deletion_title">Potwierdź usunięcie</string>
<string name="custom_selector_confirm_deletion_message">Czy na pewno chcesz usunąć folder %1$s zawierający %2$d elementów?</string>
<string name="custom_selector_delete">Usuń</string> <string name="custom_selector_delete">Usuń</string>
<string name="custom_selector_cancel">Anuluj</string>
<string name="custom_selector_folder_deleted_success">Folder %1$s został pomyślnie usunięty</string>
<string name="custom_selector_folder_deleted_failure">Nie udało się usunąć folderu %1$s</string>
<string name="custom_selector_error_trashing_folder_contents">Błąd podczas usuwania zawartości folderu: %1$s</string>
<string name="custom_selector_folder_not_found_error">Nie udało się pobrać ścieżki folderu dla identyfikatora kontenera: %1$d</string>
<string name="red_pin">To miejsce nie ma jeszcze zdjęcia. Zrób je!</string>
<string name="green_pin">To miejsce już ma zdjęcie.</string>
<string name="grey_pin">Sprawdzam teraz, czy to miejsce ma zdjęcie.</string>
<string name="error_while_loading">Błąd podczas wczytywania</string>
<string name="no_usages_found">Nie odnaleziono zastosowań</string>
<string name="usages_on_commons_heading">Commons</string>
<string name="usages_on_other_wikis_heading">Inne wiki</string>
<string name="file_usages_container_heading">Wykorzystanie pliku</string>
<string name="account">Konto</string>
<string name="vanish_account">Wymaż konto</string>
<string name="account_vanish_request_confirm_title">Ostrzeżenie o wymazaniu konta</string>
<string name="caption">Podpis</string>
<string name="caption_copied_to_clipboard">Podpis skopiowano do schowka</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gratulacje, wszystkie zdjęcia w tym albumie zostały przesłane lub zostały oznaczone jako nie do przesłania.</string>
<string name="show_in_explore">Pokaż w Eksploruj</string>
<string name="show_in_nearby">Pokaż w Pobliżu</string>
<string name="image_tag_line_created_and_uploaded_by">Utworzone i przesłane przez: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Utworzone przez %1$s i przesłane przez %2$s</string>
</resources> </resources>

View file

@ -111,6 +111,7 @@
<string name="login_failed_throttled">Tròpi tentativ falì. Për piasì, ch\'a preuva torna da-sì chèiche minute.</string> <string name="login_failed_throttled">Tròpi tentativ falì. Për piasì, ch\'a preuva torna da-sì chèiche minute.</string>
<string name="login_failed_blocked">An dëspias, s\'utent-sì a l\'é stàit blocà ansima a Commons</string> <string name="login_failed_blocked">An dëspias, s\'utent-sì a l\'é stàit blocà ansima a Commons</string>
<string name="login_failed_2fa_needed">A dev fornì sò còdes d\'autentificassion a doi fator.</string> <string name="login_failed_2fa_needed">A dev fornì sò còdes d\'autentificassion a doi fator.</string>
<string name="login_failed_email_auth_needed">Un còdes ëd verìfica ëd conession a l\'é stàit mandà a soa adrëssa ëd pòsta eletrònica. Për piasì, ch\'a anserissa col còdes për intré ant ël sistema.</string>
<string name="login_failed_generic">Falì a rintré ant ël sistema</string> <string name="login_failed_generic">Falì a rintré ant ël sistema</string>
<string name="share_upload_button">Carié</string> <string name="share_upload_button">Carié</string>
<string name="multiple_share_base_title">Deje un nòm a s\'ansem</string> <string name="multiple_share_base_title">Deje un nòm a s\'ansem</string>
@ -216,6 +217,7 @@
<string name="become_a_tester_title">Dventé në sperimentador Beta</string> <string name="become_a_tester_title">Dventé në sperimentador Beta</string>
<string name="become_a_tester_description">Anscriv-se a nòstr canal beta su Google Play a oten-e n\'acess antissipà a le neuve fonsionalità e coression ëd givo</string> <string name="become_a_tester_description">Anscriv-se a nòstr canal beta su Google Play a oten-e n\'acess antissipà a le neuve fonsionalità e coression ëd givo</string>
<string name="_2fa_code">Còdes 2FA</string> <string name="_2fa_code">Còdes 2FA</string>
<string name="email_auth_code">Mandé un còdes ëd verifica</string>
<string name="logout_verification">Veul-lo për da bon seurte dal sistema?</string> <string name="logout_verification">Veul-lo për da bon seurte dal sistema?</string>
<string name="mediaimage_failed">Faliment ëd la plancia dël mojen</string> <string name="mediaimage_failed">Faliment ëd la plancia dël mojen</string>
<string name="no_subcategory_found">Gnun-e sot-categorìe trovà</string> <string name="no_subcategory_found">Gnun-e sot-categorìe trovà</string>
@ -816,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="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_explore">Smon-e andrinta a Explore</string>
<string name="show_in_nearby">Smon-e andrinta a Nearby</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> </resources>

View file

@ -9,6 +9,7 @@
* شاه زمان پټان * شاه زمان پټان
--> -->
<resources> <resources>
<string name="commons_facebook">د خونديځ فيسبوک پاڼه</string>
<string name="commons_github">خونديځ ګيټهوب سرچينه کوډ</string> <string name="commons_github">خونديځ ګيټهوب سرچينه کوډ</string>
<string name="commons_logo">خونديځ نښان</string> <string name="commons_logo">خونديځ نښان</string>
<string name="commons_website">خونديځ وېبپاڼه</string> <string name="commons_website">خونديځ وېبپاڼه</string>
@ -19,9 +20,9 @@
<string name="add_contribution_from_camera">د کامرې له لارې ونډه ورزياتول</string> <string name="add_contribution_from_camera">د کامرې له لارې ونډه ورزياتول</string>
<string name="add_contribution_from_photos">انځورونو له لارې ونډه ورزياتول</string> <string name="add_contribution_from_photos">انځورونو له لارې ونډه ورزياتول</string>
<string name="add_contribution_from_contributions_gallery">د پخوانيو ونډو له انځورتونه د ونډې ورزياتول</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_language_description">ژبې سپيناوی</string>
<string name="row_item_caption">نيونګ</string> <string name="row_item_caption">نيونگ</string>
<string name="show_captions_description">سپيناوی</string> <string name="show_captions_description">سپيناوی</string>
<string name="nearby_row_image">انځور</string> <string name="nearby_row_image">انځور</string>
<string name="nearby_all">ټول</string> <string name="nearby_all">ټول</string>
@ -46,35 +47,55 @@
<item quantity="one">%d upload</item> <item quantity="one">%d upload</item>
<item quantity="other">%d پورته کول</item> <item quantity="other">%d پورته کول</item>
</plurals> </plurals>
<string name="share_license_summary" fuzzy="true">دا انځور به د %1$s په منښتليک سمبال وي.</string> <plurals name="share_license_summary">
<item quantity="one">دا انځور به د منښتليک %1$s لاندې وي</item>
<item quantity="other">دا انځورونه به د %1$s منښتليک لاندې وي</item>
</plurals>
<plurals name="upload_count_title">
<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="navigation_item_explore">سپړنه</string>
<string name="preference_category_appearance">ښکارېدنه</string> <string name="preference_category_appearance">ښکارېدنه</string>
<string name="preference_category_general">ټولګړی</string> <string name="preference_category_general">ټولگړی</string>
<string name="preference_category_feedback">غبرګون</string> <string name="preference_category_feedback">غبرگون</string>
<string name="preference_category_privacy">پټنتيا</string> <string name="preference_category_privacy">پټنتيا</string>
<string name="app_name">ويکي خونديځ</string> <string name="app_name">ويکيخونديځ</string>
<string name="menu_settings">امستنې</string> <string name="menu_settings">اوڼنې</string>
<string name="intent_share_upload_label">خونديځ ته راپورته کول</string> <string name="intent_share_upload_label">خونديځ ته راپورته کول</string>
<string name="upload_in_progress">راپورته کول جريان لري</string> <string name="upload_in_progress">راپورته کول جريان لري</string>
<string name="username">کارن‌نوم</string> <string name="username">کارن‌نوم</string>
<string name="password">پټنوم</string> <string name="password">پټنوم</string>
<string name="login_credential">خپل خونديځ بېټا ګڼون ته ورننوځئ</string> <string name="login_credential">خپل خونديځ بېټا گڼون ته ورننوځئ</string>
<string name="login">ننوتل</string> <string name="login">ننوتل</string>
<string name="forgot_password">پټنوم مو هېر شوی؟</string> <string name="forgot_password">پټنوم مو هېر شوی؟</string>
<string name="signup">نومليکنه</string> <string name="signup">نومليکنه</string>
<string name="logging_in_title">په ننوتلو کې دی</string> <string name="logging_in_title">په ننوتلو کې دی</string>
<string name="logging_in_message">لطفاً تم شۍ …</string> <string name="logging_in_message">په تمه اوسئ...</string>
<string name="updating_caption_title">نيونګې او سپيناوي تازه کول</string> <string name="updating_caption_title">نيونگې او سپيناوي تازه کول</string>
<string name="updating_caption_message">په تمه اوسئ</string> <string name="updating_caption_message">په تمه اوسئ...</string>
<string name="login_success">بريالی ننوتون</string> <string name="login_success">بريالی ننوتون!</string>
<string name="login_failed">ناسم ننوتون</string> <string name="login_failed">ناسم ننوتون!</string>
<string name="upload_failed">دوتنه و نه موندل شوه. لطفاً د يوې بلې دوتنې د موندلو هڅه وکړئ.</string> <string name="upload_failed">دوتنه و نه موندل شوه. مهرباني وکړئ د يوې بلې دوتنې د موندلو هڅه وکړئ.</string>
<string name="retry_limit_reached">د بياځلي هڅې وروستۍ اندازه پوره شوه! مهرباني وکړئ، لغوه يې کړئ او بيا د راپورته کولو هڅه وکړئ</string> <string name="retry_limit_reached">د بياځلي هڅې وروستۍ اندازه پوره شوه! مهرباني وکړئ، ناگاره يې کړئ او بيا د راپورته کولو هڅه وکړئ</string>
<string name="unrestricted_battery_mode">بيټري سمون بندول؟</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_started">پورته کېدنه پيل شوه!</string>
<string name="uploading_queued">راپورته کول په کتار کې دي(د ټاکلي اړيکې ونگه چارن شوې)</string>
<string name="upload_completed_notification_title">%1$s پورته شوی!</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_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="title_activity_contributions">زما تازه پورته کېدنې</string>
<string name="contribution_state_queued">لږ</string> <string name="contribution_state_queued">لږ</string>
<string name="contribution_state_failed">نابريال شو</string> <string name="contribution_state_failed">نابريال شو</string>
@ -84,40 +105,94 @@
<string name="menu_from_camera">انځور اخيستل</string> <string name="menu_from_camera">انځور اخيستل</string>
<string name="menu_nearby">نژدې</string> <string name="menu_nearby">نژدې</string>
<string name="provider_contributions">زما پورته کېدنې</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_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="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_throttled">ډیری ناکامه هڅې. لطفا څو دقیقې وروسته بیا هڅه وکړئ.</string>
<string name="login_failed_blocked">بخښنه غواړو، په دي کارن د کامنز لخوا بنديز ولګول شو</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="share_upload_button">پورته کول</string>
<string name="multiple_share_base_title">د دې ټولگې نوم</string>
<string name="provider_modifications">بدلونونه</string> <string name="provider_modifications">بدلونونه</string>
<string name="menu_upload_single">پورته کول</string> <string name="menu_upload_single">پورته کول</string>
<string name="categories_search_text_hint">وېشنيزې پلټل</string> <string name="categories_search_text_hint">وېشنيزې پلټل</string>
<string name="depicts_search_text_hint">هغه توکي وپلټئ چې ستاسو رسنۍ يې انځوروي (غر، تاج مح، او نور.)</string>
<string name="menu_save_categories">خوندي کول</string> <string name="menu_save_categories">خوندي کول</string>
<string name="menu_overflow_desc">څنگزنه خوښنۍ</string>
<string name="refresh_button">بياتازه کول</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="categories_activity_title">وېشنيزې</string>
<string name="title_activity_settings">امستنې</string> <string name="title_activity_settings">امستنې</string>
<string name="title_activity_signup">نومليکنه</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="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="about_license">د ويکي‌رسنۍ خونديځ کاريال يو پرانيستې سرچينې کاريال دی چې د ويکي‌رسنۍ ټولنې د بسپنه ورکوونکو او خپل‌خوښو کارنانو له خوا جوړ شوی او ساتل کېږي. د ويکي‌رسنۍ بنسټ د دې کاريال په جوړولو، پراختيا او ساتنه کې ښکېل نه دی.</string>
<string name="about_improve">د بگ راپور او وړانديزونو لپاره يوه &lt;a href=\"%1$s\"&gt;گيټ هاب ستونزه&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">غبرگون لېږنه (برېښليک له لارې)</string>
<string name="no_email_client">هيڅ برېښليک سرچينه نه ده ځای پرځای شوې</string>
<string name="provider_categories">وروستۍ کارېدلې وېشنيزې</string> <string name="provider_categories">وروستۍ کارېدلې وېشنيزې</string>
<string name="waiting_first_sync">د لومړۍ همغږۍ په تمه...</string>
<string name="no_uploads_yet">تاسې تر اوسه کوم انځور نه دی پورته کړی.</string> <string name="no_uploads_yet">تاسې تر اوسه کوم انځور نه دی پورته کړی.</string>
<string name="menu_retry_upload">بياآزمويل</string> <string name="menu_retry_upload">بياآزمويل</string>
<string name="menu_cancel_upload">ناگارل</string> <string name="menu_cancel_upload">ناگارل</string>
<string name="menu_download">ښکته کول</string> <string name="menu_download">ښکته کول</string>
<string name="preference_license">تلواليز منښتليک</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="license_name_cc_by_3_0">CC BY 3.0</string>
<string name="tutorial_1_subtext">ستاسو انځورونه د نړۍ په گوټ گوټ کې خلکو ته زده کړه ورکوي!</string>
<string name="tutorial_2_text">مهرباني وکړئ هغه انځورونه راپورته کړئ چې په بشپړ ډول تاسو اخيستي يا جوړ کړې وي:</string>
<string name="tutorial_2_subtext_1">طبيعي څيزونه (گلان، څاروي، غرونه)</string>
<string name="tutorial_2_subtext_2">گټور څيزونه (بايسيکلونه، اورگډو تمځايونه)</string>
<string name="tutorial_2_subtext_3">نوميالي وگړي (ستاسو ښاروال، اولمپيک لوبغاړی چې تاسو ورسره وليدل)</string>
<string name="tutorial_3_text">مهرباني وکړئ مه يې راپورته کوئ:</string>
<string name="tutorial_3_subtext_1">د خپلو ملگرو ځان‌انځورنه او انځورونه</string>
<string name="tutorial_3_subtext_2">هغه انځورنه چې تاسو له اينټرنېټ څخه راکښته کړې وي</string>
<string name="tutorial_3_subtext_3">د ملکيتي کاريالونو سکرين‌شاټونه</string>
<string name="tutorial_4_text">د پورته کولو بېلگه:</string>
<string name="tutorial_4_subtext_1">سرليک: سيډني اوپېرا هاوس</string>
<string name="tutorial_4_subtext_2">څرگنداوی: د خليج له خوا د سيډني اوپېرا هاوس ليدنه</string>
<string name="tutorial_4_subtext_3">وېشنيزې: له لوېديځ څخه د سېډني اوپېرا هاوس ، د سېډني اوپېرا هاوس لرليد</string>
<string name="welcome_wikipedia_text">خپل انځورونه شريک کړئ. د ويکيپېډيا ليکنو ته ژوند ورکولو کې مرسته وکړئ!</string>
<string name="welcome_wikipedia_subtext">په ويکيپېډيا کې دا انځورونه له ويکيمېډيا خونديځ نه اخيستل شوي دي.</string>
<string name="welcome_copyright_text">ستاسو انځورونه د نړۍ په گوټ گوټ کې خلکو ته زده کړه ورکوي!</string>
<string name="welcome_copyright_subtext">له اينټرنېته د لمېس رېښتو لرونکو موادو او د پوسټرونو، کتاب پوښونو او نورو انځورنو د خپرلو څخه ډډه وکړئ.</string>
<string name="welcome_final_text">ستا په اند ته پوه شوې؟</string>
<string name="welcome_final_button_text">هو</string> <string name="welcome_final_button_text">هو</string>
<string name="welcome_help_button_text">نور مالومات</string>
<string name="detail_panel_cats_label">وېشنيزې</string> <string name="detail_panel_cats_label">وېشنيزې</string>
<string name="detail_panel_cats_loading">رابرسېرېږي...</string> <string name="detail_panel_cats_loading">رابرسېرېږي...</string>
<string name="detail_panel_cats_none">هېڅ هم نه دی ټاکل شوی</string> <string name="detail_panel_cats_none">هېڅ هم نه دی ټاکل شوی</string>
<string name="detail_caption_empty">هيڅ نيونگ نشته</string>
<string name="detail_description_empty">څرگندونه نشته</string> <string name="detail_description_empty">څرگندونه نشته</string>
<string name="detail_discussion_empty">هيڅ شننه نشته</string>
<string name="detail_license_empty">نامعلوم جواز</string> <string name="detail_license_empty">نامعلوم جواز</string>
<string name="menu_refresh">تازه کول</string> <string name="menu_refresh">تازه کول</string>
<string name="storage_permission_title">د زېرمه کولو د پرېښولي غوښتنه کول</string>
<string name="read_storage_permission_rationale">اړينه پرېښولی: بهرنۍ زېرمه ولولئ. کاريال ستاسو انځورتونه ته پرته له دې لاسرسی نشي موندلی.</string>
<string name="ok">ښه</string> <string name="ok">ښه</string>
<string name="warning">گواښنه</string> <string name="warning">گواښنه</string>
<string name="yes">هو</string> <string name="yes">هو</string>
@ -136,5 +211,37 @@
<string name="navigation_item_settings">امستنې</string> <string name="navigation_item_settings">امستنې</string>
<string name="navigation_item_feedback">غبرگون</string> <string name="navigation_item_feedback">غبرگون</string>
<string name="navigation_item_logout">وتل</string> <string name="navigation_item_logout">وتل</string>
<string name="nearby_directions">تگلوري</string>
<string name="nearby_wikidata">ويکي‌اومتوک</string>
<string name="nearby_wikipedia">ويکيپېډيا</string>
<string name="nearby_commons">خونديځ</string>
<string name="about_faq">ډ‌ځ‌پ</string>
<string name="user_guide">کارن لارښود</string>
<string name="welcome_skip_button">ښوونې پرېښودل</string>
<string name="no_internet">اينټرنېټ د لاسرسی وړ نه دی</string>
<string name="error_notifications">خبرتياوو ترلاسه کولو کې تېروتنه</string>
<string name="error_review">د بياکتنې لپاره د انځور راوړول کې تېروتنه. د بياهڅې کولو لپاره تازه کولو تڼۍ کېکاږئ.</string>
<string name="no_notifications">هیڅ خبرتیاوې ونه موندل شوې</string>
<string name="about_translate">ژباړل</string>
<string name="about_translate_title">ژبې</string>
<string name="about_translate_message">هغه ژبه غوره کړئ چې تاسو یې ژباړې سپارل غواړئ</string>
<string name="about_translate_proceed">پرمخ‌ځه</string>
<string name="about_translate_cancel">ناگارل</string>
<string name="retry">بيا هڅه‌کول</string>
<string name="showcase_view_needs_photo">داځای انځور ته اړتيا لري.</string>
<string name="showcase_view_has_photo">دا ځای لادمخه انځور لري.</string>
<string name="showcase_view_no_longer_exists">دا ځای نور شتون نه لري.</string>
<string name="no_images_found">هيڅ انځور و‌نه موندل شو!</string>
<string name="error_loading_images">د انځورونو د راپورته کولو پرمهال يوه تېروتنه رامنځته شوه.</string>
<string name="image_uploaded_by">راپورته کوونکی: %1$s</string>
<string name="block_notification_title">بنديز لگېدلی</string>
<string name="block_notification"> په خونديځ کې له سمون کولو څخه پر تاسو بنديز لگېدلی دی</string>
<string name="app_widget_heading">د ورځې انځور</string>
<string name="menu_search_button">پلټل</string>
<string name="search_commons">خونديځ پلټل</string>
<string name="title_activity_search">پلټل</string>
<string name="search_recent_header">وروستۍ پلټنې:</string>
<string name="provider_searches">وروستۍ پلټل شوې پوښتنې</string>
<string name="provider_recent_languages">وروستۍ ژبې پوښتنې</string>
<string name="account">گڼون</string> <string name="account">گڼون</string>
</resources> </resources>

View file

@ -3,6 +3,7 @@
* Anaclaudiaml * Anaclaudiaml
* Caio1478 * Caio1478
* Duke of Wikipädia * Duke of Wikipädia
* EGobi
* Eduardo Addad de Oliveira * Eduardo Addad de Oliveira
* Eduardoaddad * Eduardoaddad
* Felipe L. Ewald * Felipe L. Ewald
@ -419,7 +420,7 @@
<string name="provider_bookmarks">Favoritos</string> <string name="provider_bookmarks">Favoritos</string>
<string name="bookmark_empty">Não adicionou nenhum favorito</string> <string name="bookmark_empty">Não adicionou nenhum favorito</string>
<string name="provider_bookmarks_location">Favoritos</string> <string name="provider_bookmarks_location">Favoritos</string>
<string name="log_collection_started">A recolha de registos foi iniciada. REINICIE a aplicação, execute a operação que pretende registar e prima outra vez \"Enviar ficheiro de registos\"</string> <string name="log_collection_started">A coleta de registros foi iniciada. REINICIE o aplicativo, execute a operação que pretende registrar e toque em Enviar arquivo de registros novamente</string>
<string name="deletion_reason_uploaded_by_mistake">Eu fiz o carregamento por engano</string> <string name="deletion_reason_uploaded_by_mistake">Eu fiz o carregamento por engano</string>
<string name="deletion_reason_publicly_visible">Eu não sabia que seria publicamente visível</string> <string name="deletion_reason_publicly_visible">Eu não sabia que seria publicamente visível</string>
<string name="deletion_reason_bad_for_my_privacy">Eu percebi que é ruim para minha privacidade</string> <string name="deletion_reason_bad_for_my_privacy">Eu percebi que é ruim para minha privacidade</string>
@ -696,7 +697,7 @@
<string name="place_state_wlm">WLM</string> <string name="place_state_wlm">WLM</string>
<string name="wlm_upload_info">Essa imagem será enviada ao concurso Wiki Loves Monuments</string> <string name="wlm_upload_info">Essa imagem será enviada ao concurso Wiki Loves Monuments</string>
<string name="display_monuments">Monumentos de exibição</string> <string name="display_monuments">Monumentos de exibição</string>
<string name="wlm_month_message">Estamos no mês no Wiki Loves Monuments!</string> <string name="wlm_month_message">Chegou o mês do Wiki Loves Monuments!</string>
<string name="learn_more">SABER MAIS</string> <string name="learn_more">SABER MAIS</string>
<string name="wlm_campaign_title">Wiki Loves Monuments</string> <string name="wlm_campaign_title">Wiki Loves Monuments</string>
<string name="wlm_campaign_description">O Wiki Loves Monuments é um concurso internacional organizado pela Wikimedia sobre fotografias de monumentos</string> <string name="wlm_campaign_description">O Wiki Loves Monuments é um concurso internacional organizado pela Wikimedia sobre fotografias de monumentos</string>

View file

@ -170,6 +170,7 @@
<string name="login_failed_throttled">Слишком много неудачных попыток. Пожалуйста, попробуйте ещё раз через несколько минут.</string> <string name="login_failed_throttled">Слишком много неудачных попыток. Пожалуйста, попробуйте ещё раз через несколько минут.</string>
<string name="login_failed_blocked">Извините, но участник с таким именем был заблокирован на Викискладе</string> <string name="login_failed_blocked">Извините, но участник с таким именем был заблокирован на Викискладе</string>
<string name="login_failed_2fa_needed">Вы должны ввести код двухфакторной аутентификации.</string> <string name="login_failed_2fa_needed">Вы должны ввести код двухфакторной аутентификации.</string>
<string name="login_failed_email_auth_needed">Код подтверждения был отправлен на адрес вашей электронной почты. Пожалуйста, введите его для входа.</string>
<string name="login_failed_generic">Ошибка входа в систему</string> <string name="login_failed_generic">Ошибка входа в систему</string>
<string name="share_upload_button">Загрузка</string> <string name="share_upload_button">Загрузка</string>
<string name="multiple_share_base_title">Введите название для этой группы файлов</string> <string name="multiple_share_base_title">Введите название для этой группы файлов</string>
@ -275,6 +276,7 @@
<string name="become_a_tester_title">Стать бета-тестером</string> <string name="become_a_tester_title">Стать бета-тестером</string>
<string name="become_a_tester_description">Подпишитесь на наш канал бета-версии на Google Play и получите ранний доступ к новым функциям и исправлениям ошибок</string> <string name="become_a_tester_description">Подпишитесь на наш канал бета-версии на Google Play и получите ранний доступ к новым функциям и исправлениям ошибок</string>
<string name="_2fa_code">Код 2ФА</string> <string name="_2fa_code">Код 2ФА</string>
<string name="email_auth_code">Код подтверждения электронной почты</string>
<string name="logout_verification">Вы действительно хотите выйти?</string> <string name="logout_verification">Вы действительно хотите выйти?</string>
<string name="mediaimage_failed">Ошибка медиафайла</string> <string name="mediaimage_failed">Ошибка медиафайла</string>
<string name="no_subcategory_found">Подкатегории не найдены.</string> <string name="no_subcategory_found">Подкатегории не найдены.</string>
@ -882,4 +884,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Поздравляем, все фотографии в этом альбоме либо загружены, либо помечены как не предназначенные для загрузки.</string> <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_explore">Показать в Explore</string>
<string name="show_in_nearby">Показать в Nearby</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> </resources>

View file

@ -90,13 +90,13 @@
<string name="logging_in_message">Prosimo, počakajte ...</string> <string name="logging_in_message">Prosimo, počakajte ...</string>
<string name="updating_caption_title">Posodabljam napise in opise</string> <string name="updating_caption_title">Posodabljam napise in opise</string>
<string name="updating_caption_message">Prosimo, počakajte ...</string> <string name="updating_caption_message">Prosimo, počakajte ...</string>
<string name="login_success" fuzzy="true">Uspešno ste se prijavili!</string> <string name="login_success">Uspešna prijava!</string>
<string name="login_failed" fuzzy="true">Prijava ni uspela!</string> <string name="login_failed">Prijava ni uspela!</string>
<string name="upload_failed">Datoteka ni bila najdena. Prosimo, poskusite z drugo datoteko.</string> <string name="upload_failed">Datoteka ni bila najdena. Prosimo, poskusite z drugo datoteko.</string>
<string name="retry_limit_reached">Dosežena je največja omejitev ponovnih poskusov! Prekličite nalaganje in poskusite znova.</string> <string name="retry_limit_reached">Dosežena je največja omejitev ponovnih poskusov! Prekličite nalaganje in poskusite znova.</string>
<string name="unrestricted_battery_mode">Ali želite izklopiti optimizacijo baterije?</string> <string name="unrestricted_battery_mode">Ali želite izklopiti optimizacijo baterije?</string>
<string name="suggest_unrestricted_mode">Nalaganje več kot 3 slik deluje bolj zanesljivo, ko je optimizacija baterije izklopljena. Za nemoteno nalaganje v nastavitvah izklopite optimizacijo baterije za aplikacijo Commons. \n\nMožni koraki za izklop optimizacije baterije:\n\n1. korak: Dotaknite se spodnjega gumba »Nastavitve«.\n\n 2. korak: Preklopite z »Ni optimizirano« na »Vse aplikacije«.\n\n3. korak: Poiščite »Commons« ali »fr.free.nrw.commons«.\n\n 4. korak: tapnite ga in izberite »Ne optimiziraj«.\n\n\n5. korak: Pritisnite »Končano«.</string> <string name="suggest_unrestricted_mode">Nalaganje več kot 3 slik deluje bolj zanesljivo, ko je optimizacija baterije izklopljena. Za nemoteno nalaganje v nastavitvah izklopite optimizacijo baterije za aplikacijo Commons. \n\nMožni koraki za izklop optimizacije baterije:\n\n1. korak: Dotaknite se spodnjega gumba »Nastavitve«.\n\n 2. korak: Preklopite z »Ni optimizirano« na »Vse aplikacije«.\n\n3. korak: Poiščite »Commons« ali »fr.free.nrw.commons«.\n\n 4. korak: tapnite ga in izberite »Ne optimiziraj«.\n\n\n5. korak: Pritisnite »Končano«.</string>
<string name="authentication_failed" fuzzy="true">Avtentikacija ni uspela; prosimo, prijavite se znova</string> <string name="authentication_failed">Avtentikacija ni uspela. Prosimo, prijavite se znova.</string>
<string name="uploading_started">Nalaganje se je začelo!</string> <string name="uploading_started">Nalaganje se je začelo!</string>
<string name="uploading_queued">Nalaganje na čakanju (vklopljen je način omejene povezanosti)</string> <string name="uploading_queued">Nalaganje na čakanju (vklopljen je način omejene povezanosti)</string>
<string name="upload_completed_notification_title">Datoteka »%1$s« je naložena!</string> <string name="upload_completed_notification_title">Datoteka »%1$s« je naložena!</string>
@ -117,17 +117,20 @@
<string name="menu_from_camera">Posnemi fotografijo</string> <string name="menu_from_camera">Posnemi fotografijo</string>
<string name="menu_nearby">Bližnje</string> <string name="menu_nearby">Bližnje</string>
<string name="provider_contributions">Moje naložitve</string> <string name="provider_contributions">Moje naložitve</string>
<string name="menu_copy_link">Kopiraj povezavo</string>
<string name="menu_link_copied">Povezava je kopirana v odložišče</string>
<string name="menu_share">Deli</string> <string name="menu_share">Deli</string>
<string name="menu_view_file_page">Ogled opisne strani</string> <string name="menu_view_file_page">Ogled opisne strani</string>
<string name="share_title_hint">Napis (obvezen)</string> <string name="share_title_hint">Napis (obvezen)</string>
<string name="add_caption_toast">Prosimo, dodajte sliki napis</string> <string name="add_caption_toast">Prosimo, dodajte sliki napis</string>
<string name="share_description_hint">Opis</string> <string name="share_description_hint">Opis</string>
<string name="share_caption_hint">Napis</string> <string name="share_caption_hint">Napis</string>
<string name="login_failed_network" fuzzy="true">Prijava ni uspela omrežna napaka</string> <string name="login_failed_network">Prijava ni mogoča omrežna napaka</string>
<string name="login_failed_throttled">Preveč neuspešnih nalaganj. Prosimo, poskusite znova čez nekaj minut.</string> <string name="login_failed_throttled">Preveč neuspešnih nalaganj. Prosimo, poskusite znova čez nekaj minut.</string>
<string name="login_failed_blocked">Ta uporabnik je v Zbirki žal blokiran</string> <string name="login_failed_blocked">Ta uporabnik je v Zbirki žal blokiran</string>
<string name="login_failed_2fa_needed">Navesti morate svojo dvofaktorsko avtentikacijsko kodo.</string> <string name="login_failed_2fa_needed">Navesti morate svojo dvofaktorsko avtentikacijsko kodo.</string>
<string name="login_failed_generic" fuzzy="true">Prijava ni uspela</string> <string name="login_failed_email_auth_needed">Na vaš e-poštni naslov je bila poslana potrditvena koda za prijavo. Prosimo, vnesite kodo za prijavo.</string>
<string name="login_failed_generic">Prijava ni uspela</string>
<string name="share_upload_button">Naloži</string> <string name="share_upload_button">Naloži</string>
<string name="multiple_share_base_title">Poimenuj skupino</string> <string name="multiple_share_base_title">Poimenuj skupino</string>
<string name="provider_modifications">Spremembe</string> <string name="provider_modifications">Spremembe</string>
@ -135,6 +138,7 @@
<string name="categories_search_text_hint">Poišči kategorije</string> <string name="categories_search_text_hint">Poišči kategorije</string>
<string name="depicts_search_text_hint">Poiščite predmete, ki jih vaša predstavnostna datoteka prikazuje (gora, Tadž Mahal, ...)</string> <string name="depicts_search_text_hint">Poiščite predmete, ki jih vaša predstavnostna datoteka prikazuje (gora, Tadž Mahal, ...)</string>
<string name="menu_save_categories">Shrani</string> <string name="menu_save_categories">Shrani</string>
<string name="menu_overflow_desc">Prelivni meni</string>
<string name="refresh_button">Osveži</string> <string name="refresh_button">Osveži</string>
<string name="display_list_button">Seznam</string> <string name="display_list_button">Seznam</string>
<string name="contributions_subtitle_zero">(Ni še naložitev)</string> <string name="contributions_subtitle_zero">(Ni še naložitev)</string>
@ -231,6 +235,7 @@
<string name="become_a_tester_title">Postanite beta preizkuševalec</string> <string name="become_a_tester_title">Postanite beta preizkuševalec</string>
<string name="become_a_tester_description">Prijavite se na naš beta kanal v trgovini Google Play in pridobite zgodnji dostop do novih možnosti in popravkov hroščev</string> <string name="become_a_tester_description">Prijavite se na naš beta kanal v trgovini Google Play in pridobite zgodnji dostop do novih možnosti in popravkov hroščev</string>
<string name="_2fa_code">Koda 2FA</string> <string name="_2fa_code">Koda 2FA</string>
<string name="email_auth_code">Koda za preverjanje e-pošte</string>
<string name="logout_verification">Ali se res želite odjaviti?</string> <string name="logout_verification">Ali se res želite odjaviti?</string>
<string name="mediaimage_failed">Nalaganje datoteke ni uspelo</string> <string name="mediaimage_failed">Nalaganje datoteke ni uspelo</string>
<string name="no_subcategory_found">Najdena ni bila nobena podkategorija</string> <string name="no_subcategory_found">Najdena ni bila nobena podkategorija</string>
@ -251,6 +256,7 @@
<string name="navigation_item_about">O orodju</string> <string name="navigation_item_about">O orodju</string>
<string name="navigation_item_settings">Nastavitve</string> <string name="navigation_item_settings">Nastavitve</string>
<string name="navigation_item_feedback">Odziv</string> <string name="navigation_item_feedback">Odziv</string>
<string name="navigation_item_feedback_github">Povratne informacije prek GitHuba</string>
<string name="navigation_item_logout">Odjava</string> <string name="navigation_item_logout">Odjava</string>
<string name="navigation_item_info">Vadnica</string> <string name="navigation_item_info">Vadnica</string>
<string name="navigation_item_notification">Obvestila</string> <string name="navigation_item_notification">Obvestila</string>
@ -284,14 +290,16 @@
<string name="nominated_see_more">Za podrobnosti glejte spletno stran</string> <string name="nominated_see_more">Za podrobnosti glejte spletno stran</string>
<string name="skip_login">Preskoči</string> <string name="skip_login">Preskoči</string>
<string name="navigation_item_login">Prijava</string> <string name="navigation_item_login">Prijava</string>
<string name="skip_login_title" fuzzy="true">Ali res želite preskočiti prijavo?</string> <string name="skip_login_title">Ali res želite preskočiti prijavo?</string>
<string name="skip_login_message" fuzzy="true">V prihodnosti se boste morali za nalaganje slik prijaviti.</string> <string name="skip_login_message">V prihodnosti se boste morali za nalaganje slik prijaviti.</string>
<string name="login_alert_message">Za uporabo te možnosti se prijavite</string> <string name="login_alert_message">Za uporabo te možnosti se prijavite</string>
<string name="copy_wikicode">Kopiraj vikibesedilo v odložišče</string> <string name="copy_wikicode">Kopiraj vikibesedilo v odložišče</string>
<string name="wikicode_copied">Vikibesedilo je skopirano v odložišče</string> <string name="wikicode_copied">Vikibesedilo je skopirano v odložišče</string>
<string name="nearby_location_not_available">Bližnje mogoče ne bo pravilno delovalo. Kraj ni na voljo.</string> <string name="nearby_location_not_available">Bližnje mogoče ne bo pravilno delovalo. Kraj ni na voljo.</string>
<string name="nearby_showing_pins_offline">Internet ni na voljo. Prikazani so samo predpomnjeni kraji.</string>
<string name="upload_location_access_denied">Dostop do lokacije je bil zavrnjen. Za uporabo te možnosti ročno nastavite svojo lokacijo.</string> <string name="upload_location_access_denied">Dostop do lokacije je bil zavrnjen. Za uporabo te možnosti ročno nastavite svojo lokacijo.</string>
<string name="location_permission_rationale_nearby">Za prikaz seznama bložnjih krajev je potrebno dovoljenje</string> <string name="location_permission_rationale_nearby">Za prikaz seznama bložnjih krajev je potrebno dovoljenje</string>
<string name="location_permission_rationale_explore">Za prikaz seznama bložnjih slik je potrebno dovoljenje</string>
<string name="nearby_directions">Smeri</string> <string name="nearby_directions">Smeri</string>
<string name="nearby_wikidata">Wikipodatki</string> <string name="nearby_wikidata">Wikipodatki</string>
<string name="nearby_wikipedia">Wikipedija</string> <string name="nearby_wikipedia">Wikipedija</string>
@ -351,7 +359,7 @@
<string name="construction_event_answer">V Wikimedijini zbirki so zelo dobrodošle slike, ki prikazujejo tehniko ali kulturo.</string> <string name="construction_event_answer">V Wikimedijini zbirki so zelo dobrodošle slike, ki prikazujejo tehniko ali kulturo.</string>
<string name="congratulatory_message_quiz">Pravilno ste odgovorili na %1$s vprašanj. Čestitamo!</string> <string name="congratulatory_message_quiz">Pravilno ste odgovorili na %1$s vprašanj. Čestitamo!</string>
<string name="warning_for_no_answer">Za odgovor na vprašanje izberite eno od dveh možnosti.</string> <string name="warning_for_no_answer">Za odgovor na vprašanje izberite eno od dveh možnosti.</string>
<string name="user_not_logged_in" fuzzy="true">Seja prijave je potekla. Poskusite se prijaviti znova.</string> <string name="user_not_logged_in">Prijava je potekla. Prijavite se znova.</string>
<string name="quiz_result_share_message">Delite kviz s prijatelji!</string> <string name="quiz_result_share_message">Delite kviz s prijatelji!</string>
<string name="continue_message">Nadaljuj</string> <string name="continue_message">Nadaljuj</string>
<string name="correct">Pravilen odgovor</string> <string name="correct">Pravilen odgovor</string>
@ -359,7 +367,8 @@
<string name="quiz_screenshot_question">Ali je ta zaslonski posnetek primeren za naložitev?</string> <string name="quiz_screenshot_question">Ali je ta zaslonski posnetek primeren za naložitev?</string>
<string name="share_app_title">Delite aplikacijo</string> <string name="share_app_title">Delite aplikacijo</string>
<string name="rotate">Zasukaj</string> <string name="rotate">Zasukaj</string>
<string name="error_fetching_nearby_places" fuzzy="true">Napaka pri pridobivanju bližnjih krajev.</string> <string name="error_fetching_nearby_places">Ni bilo mogoče naložiti bližnjih krajev.</string>
<string name="no_pictures_in_this_area">Na tem območju ni slik</string>
<string name="no_nearby_places_around">Tu okoli ni bližnjih krajev</string> <string name="no_nearby_places_around">Tu okoli ni bližnjih krajev</string>
<string name="error_fetching_nearby_monuments">Napaka pri pridobivanju bližnjih spomenikov.</string> <string name="error_fetching_nearby_monuments">Napaka pri pridobivanju bližnjih spomenikov.</string>
<string name="no_recent_searches">Ni nedavnih iskanj</string> <string name="no_recent_searches">Ni nedavnih iskanj</string>
@ -371,11 +380,13 @@
<string name="delete">Izbriši</string> <string name="delete">Izbriši</string>
<string name="Achievements">Dosežki</string> <string name="Achievements">Dosežki</string>
<string name="Profile">Profil</string> <string name="Profile">Profil</string>
<string name="badges">Značke</string>
<string name="statistics">Statistika</string> <string name="statistics">Statistika</string>
<string name="statistics_thanks">Prejete zahvale</string> <string name="statistics_thanks">Prejete zahvale</string>
<string name="statistics_featured">Izbrane slike</string> <string name="statistics_featured">Izbrane slike</string>
<string name="statistics_wikidata_edits">Slike iz »Bližnji kraji«</string> <string name="statistics_wikidata_edits">Slike iz »Bližnji kraji«</string>
<string name="level" fuzzy="true">Raven</string> <string name="level">Raven %d</string>
<string name="profileLevel">%s (raven %s)</string>
<string name="images_uploaded">Naložene slike</string> <string name="images_uploaded">Naložene slike</string>
<string name="image_reverts">Nevrnjene slike</string> <string name="image_reverts">Nevrnjene slike</string>
<string name="images_used_by_wiki">Uporabljene slike</string> <string name="images_used_by_wiki">Uporabljene slike</string>
@ -407,6 +418,7 @@
<string name="map_application_missing">V vaši napravi ni mogoče najti nobene združljive aplikacije z zemljevidom. Za uporabo te možnosti namestite ustrezno aplikacijo z zemljevidom.</string> <string name="map_application_missing">V vaši napravi ni mogoče najti nobene združljive aplikacije z zemljevidom. Za uporabo te možnosti namestite ustrezno aplikacijo z zemljevidom.</string>
<string name="title_page_bookmarks_pictures">Slike</string> <string name="title_page_bookmarks_pictures">Slike</string>
<string name="title_page_bookmarks_locations">Kraji</string> <string name="title_page_bookmarks_locations">Kraji</string>
<string name="title_page_bookmarks_categories">Kategorije</string>
<string name="menu_bookmark">Dodaj/odstrani zaznamek</string> <string name="menu_bookmark">Dodaj/odstrani zaznamek</string>
<string name="provider_bookmarks">Zaznamki</string> <string name="provider_bookmarks">Zaznamki</string>
<string name="bookmark_empty">Dodali niste nobenega zaznamka</string> <string name="bookmark_empty">Dodali niste nobenega zaznamka</string>
@ -434,7 +446,7 @@
<string name="never_ask_again">Nikoli več ne vprašaj</string> <string name="never_ask_again">Nikoli več ne vprašaj</string>
<string name="display_location_permission_title">Vprašaj za dovoljenje za lokacijo</string> <string name="display_location_permission_title">Vprašaj za dovoljenje za lokacijo</string>
<string name="display_location_permission_explanation">Vprašaj za dovoljenje za uporabo lokacije, ko je to potrebno za ogled obvestila o bližnjih krajih.</string> <string name="display_location_permission_explanation">Vprašaj za dovoljenje za uporabo lokacije, ko je to potrebno za ogled obvestila o bližnjih krajih.</string>
<string name="achievements_fetch_failed" fuzzy="true">Nekaj je šlo narobe. Vaših dosežkov nismo mogli pridobiti.</string> <string name="achievements_fetch_failed">Nekaj je šlo narobe. Dosežkov ni bilo mogoče pridobiti.</string>
<string name="achievements_fetch_failed_ultimate_achievement">Opravili ste toliko prispevkov, da jih naš sistem izračunavanja ne more razčleniti. To je vrhunski dosežek.</string> <string name="achievements_fetch_failed_ultimate_achievement">Opravili ste toliko prispevkov, da jih naš sistem izračunavanja ne more razčleniti. To je vrhunski dosežek.</string>
<string name="ends_on">Konec:</string> <string name="ends_on">Konec:</string>
<string name="display_campaigns">Prikaži akcije</string> <string name="display_campaigns">Prikaži akcije</string>
@ -450,7 +462,7 @@
<string name="open_document_photo_picker_explanation">Novi izbirnik fotografij Android lahko izgubi podatke o lokaciji. Omogočite ga, če ga želite uporabljati.</string> <string name="open_document_photo_picker_explanation">Novi izbirnik fotografij Android lahko izgubi podatke o lokaciji. Omogočite ga, če ga želite uporabljati.</string>
<string name="location_loss_warning">Izklop te možnosti lahko aktivira novi izbirnik fotografij za Android. S tem tvegate izgubo podatkov o informacijah.\n\nZa več informacij kliknite »Preberi več«.</string> <string name="location_loss_warning">Izklop te možnosti lahko aktivira novi izbirnik fotografij za Android. S tem tvegate izgubo podatkov o informacijah.\n\nZa več informacij kliknite »Preberi več«.</string>
<string name="nearby_campaign_dismiss_message">Kampanj ne boste več videli. Če želite, lahko tovrstno obveščanje znova vklopite v nastavitvah.</string> <string name="nearby_campaign_dismiss_message">Kampanj ne boste več videli. Če želite, lahko tovrstno obveščanje znova vklopite v nastavitvah.</string>
<string name="this_function_needs_network_connection" fuzzy="true">Ta možnost zahteva omrežno povezavo. Prosimo, preverite vaše nastavitve povezave.</string> <string name="this_function_needs_network_connection">Ta funkcija zahteva omrežno povezavo. Prosimo, preverite vaše povezavne nastavitve.</string>
<string name="error_processing_image">Pri obdelavi slike je prišlo do napake. Prosimo, poskusite znova!</string> <string name="error_processing_image">Pri obdelavi slike je prišlo do napake. Prosimo, poskusite znova!</string>
<string name="getting_edit_token">Pridobivam žeton za urejanje</string> <string name="getting_edit_token">Pridobivam žeton za urejanje</string>
<string name="check_category_adding_template">Dodajam predlogo za preverjanje kategorije</string> <string name="check_category_adding_template">Dodajam predlogo za preverjanje kategorije</string>
@ -488,6 +500,7 @@
<string name="no_notification">Nimate neprebranih obvestil</string> <string name="no_notification">Nimate neprebranih obvestil</string>
<string name="no_read_notification">Ninate prebranih obvestil</string> <string name="no_read_notification">Ninate prebranih obvestil</string>
<string name="share_logs_using">Delite dnevniške zapise z</string> <string name="share_logs_using">Delite dnevniške zapise z</string>
<string name="check_your_email_inbox">Preverite svoj e-poštni nabiralnik</string>
<string name="menu_option_read">Ogled prebranih</string> <string name="menu_option_read">Ogled prebranih</string>
<string name="menu_option_unread">Ogled neprebranih</string> <string name="menu_option_unread">Ogled neprebranih</string>
<string name="error_occurred_in_picking_images">Pri izbiri slik je prišlo do napake</string> <string name="error_occurred_in_picking_images">Pri izbiri slik je prišlo do napake</string>
@ -566,7 +579,7 @@
<string name="coordinates_edit_helper_edit_message_else">Ni bilo mogoče dodati koordinat.</string> <string name="coordinates_edit_helper_edit_message_else">Ni bilo mogoče dodati koordinat.</string>
<string name="description_edit_helper_edit_message_else">Ni bilo mogoče dodati opisov.</string> <string name="description_edit_helper_edit_message_else">Ni bilo mogoče dodati opisov.</string>
<string name="caption_edit_helper_edit_message_else">Napisa ni bilo mogoče dodati.</string> <string name="caption_edit_helper_edit_message_else">Napisa ni bilo mogoče dodati.</string>
<string name="coordinates_picking_unsuccessful" fuzzy="true">Koordinat ni bilo mogoče pridobiti.</string> <string name="coordinates_picking_unsuccessful">Koordinat slike ni bilo mogoče posodobiti.</string>
<string name="descriptions_picking_unsuccessful">Ni bilo mogoče pridobiti opisov.</string> <string name="descriptions_picking_unsuccessful">Ni bilo mogoče pridobiti opisov.</string>
<string name="description_activity_title">Uredi opise in napise</string> <string name="description_activity_title">Uredi opise in napise</string>
<string name="share_image_via">Deli slike prek ...</string> <string name="share_image_via">Deli slike prek ...</string>
@ -581,12 +594,13 @@
<string name="place_state_needs_photo">Potrebuje fotografijo</string> <string name="place_state_needs_photo">Potrebuje fotografijo</string>
<string name="place_type">Vrsta kraja:</string> <string name="place_type">Vrsta kraja:</string>
<string name="nearby_search_hint">Most, muzej, hotel idr.</string> <string name="nearby_search_hint">Most, muzej, hotel idr.</string>
<string name="you_must_reset_your_passsword" fuzzy="true">Pri prijavi je šlo nekaj narobe; ponastaviti morate geslo!!</string> <string name="you_must_reset_your_passsword">Pri prijavi je šlo nekaj narobe. Ponastaviti morate geslo!!</string>
<string name="title_for_media">MEDIJ</string> <string name="title_for_media">MEDIJ</string>
<string name="title_for_child_classes">PODREJENI RAZREDI</string> <string name="title_for_child_classes">PODREJENI RAZREDI</string>
<string name="title_for_parent_classes">NADREJENI RAZREDI</string> <string name="title_for_parent_classes">NADREJENI RAZREDI</string>
<string name="upload_nearby_place_found_title">Najden bližnji kraj</string> <string name="upload_nearby_place_found_title">Najden bližnji kraj</string>
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Ali je to fotografija kraja %1$s?</string> <string name="upload_nearby_place_found_description_plural">So to slike %1$s?</string>
<string name="upload_nearby_place_found_description_singular">Ali je to slika %1$s?</string>
<string name="title_app_shortcut_bookmark">Zaznamki</string> <string name="title_app_shortcut_bookmark">Zaznamki</string>
<string name="title_app_shortcut_setting">Nastavitve</string> <string name="title_app_shortcut_setting">Nastavitve</string>
<string name="remove_bookmark">Odstranjeno iz zaznamkov</string> <string name="remove_bookmark">Odstranjeno iz zaznamkov</string>
@ -600,8 +614,10 @@
<string name="cannot_open_location_settings">Nastavitev kraja ni bilo mogoče odpreti. Kraj vklopite ročno.</string> <string name="cannot_open_location_settings">Nastavitev kraja ni bilo mogoče odpreti. Kraj vklopite ročno.</string>
<string name="recommend_high_accuracy_mode">Za najboljše zadetke izberite način Visoka natančnost.</string> <string name="recommend_high_accuracy_mode">Za najboljše zadetke izberite način Visoka natančnost.</string>
<string name="ask_to_turn_location_on">Vklopim kraj?</string> <string name="ask_to_turn_location_on">Vklopim kraj?</string>
<string name="ask_to_turn_location_on_text">Vljudno vklopite lokacijske storitve, da bo aplikacija prikazovala vašo trenutno lokacijo.</string>
<string name="nearby_needs_location">Za Bližnje je trebs vklopiti kraj</string> <string name="nearby_needs_location">Za Bližnje je trebs vklopiti kraj</string>
<string name="upload_map_location_access" fuzzy="true">Za samodejno nastavitev lokacije morate omogočiti dostop do vaše trenutne lokacije.</string> <string name="explore_map_needs_location">Raziskovanje zemljevida potrebuje dovoljenje za lokacijo za prikaz bližnjih slik</string>
<string name="upload_map_location_access">Za samodejno nastavitev lokacije morate dodeliti dovoljenje za lokacijo.</string>
<string name="use_location_from_similar_image">Ali ste sliki posneli na istem kraju? Ali želite uporabiti geografsko širino/dolžino desne slike?</string> <string name="use_location_from_similar_image">Ali ste sliki posneli na istem kraju? Ali želite uporabiti geografsko širino/dolžino desne slike?</string>
<string name="load_more">Naloži več</string> <string name="load_more">Naloži več</string>
<string name="nearby_no_results">Najden ni noben kraj. Poskusite spremeniti iskalne parametre.</string> <string name="nearby_no_results">Najden ni noben kraj. Poskusite spremeniti iskalne parametre.</string>
@ -704,7 +720,7 @@
<string name="read_phone_state_permission_message">Bližnji zemljevidi morajo za pravilno delovanje prebrati STANJE TELEFONA</string> <string name="read_phone_state_permission_message">Bližnji zemljevidi morajo za pravilno delovanje prebrati STANJE TELEFONA</string>
<string name="contributions_of_user">Prispevki uporabnika: %s</string> <string name="contributions_of_user">Prispevki uporabnika: %s</string>
<string name="achievements_of_user">Dosežki uporabnika: %s</string> <string name="achievements_of_user">Dosežki uporabnika: %s</string>
<string name="menu_view_user_page" fuzzy="true">Ogled uporabniške strani</string> <string name="menu_view_user_page">Ogled uporabniškega profila</string>
<string name="edit_depictions">Uredi slike</string> <string name="edit_depictions">Uredi slike</string>
<string name="edit_categories">Uredi kategorije</string> <string name="edit_categories">Uredi kategorije</string>
<string name="advanced_options">Napredne možnosti</string> <string name="advanced_options">Napredne možnosti</string>
@ -717,8 +733,8 @@
<string name="add_location">Dodaj lokacijo</string> <string name="add_location">Dodaj lokacijo</string>
<string name="feedback_sharing_data_alert">Iz te e-pošte odstranite vse podatke, ki jih ne želite javno deliti. Upoštevajte, da bodo vaš e-poštni naslov ter povezano ime in profilna slika javno vidni.</string> <string name="feedback_sharing_data_alert">Iz te e-pošte odstranite vse podatke, ki jih ne želite javno deliti. Upoštevajte, da bodo vaš e-poštni naslov ter povezano ime in profilna slika javno vidni.</string>
<string name="explore_map_details">Podrobnosti</string> <string name="explore_map_details">Podrobnosti</string>
<string name="achievements_unavailable_beta" fuzzy="true">Dosežki so na voljo samo v stabilni različici (preverite dokumentacijo razvijalcev).</string> <string name="achievements_unavailable_beta">Dosežki so na voljo samo v produkcijski različici. Preverite dokumentacijo razvijalcev.</string>
<string name="leaderboard_unavailable_beta" fuzzy="true">Lestvica uvrstitev je na voljo samo v stabilni različici (glejte dokumentacijo razvijalcev).</string> <string name="leaderboard_unavailable_beta">Lestvica uvrstitev je na voljo samo v produkcijski različici. Glejte dokumentacijo razvijalcev.</string>
<string name="copyright_popup">Prosimo, nalagajte samo slike, ki ste jih ustvarili sami. Naložnike avtorsko varovanega gradiva bomo blokirali. To velja tudi za betarazličico. Hvala za preizkušanje aplikacije!</string> <string name="copyright_popup">Prosimo, nalagajte samo slike, ki ste jih ustvarili sami. Naložnike avtorsko varovanega gradiva bomo blokirali. To velja tudi za betarazličico. Hvala za preizkušanje aplikacije!</string>
<string name="select_feedback_data_choice">Prosimo, odizberite vse podatke, ki jih ne želite deliti javno.</string> <string name="select_feedback_data_choice">Prosimo, odizberite vse podatke, ki jih ne želite deliti javno.</string>
<string name="api_level">Raven API</string> <string name="api_level">Raven API</string>
@ -762,13 +778,72 @@
<string name="see_your_achievements">Oglejte si svoje dosežke</string> <string name="see_your_achievements">Oglejte si svoje dosežke</string>
<string name="edit_image">Uredi sliko</string> <string name="edit_image">Uredi sliko</string>
<string name="edit_location">Uredi lokacijo</string> <string name="edit_location">Uredi lokacijo</string>
<string name="location_updated">Lokacija posodobljena!</string>
<string name="remove_location">Odstrani lokacijo</string>
<string name="remove_location_warning_title">Opozorilo o odstranitvi lokacije</string>
<string name="remove_location_warning_desc">Lokacija naredi slike bolj uporabne in jih je lažje najti. Ali res želite odstraniti lokacijo te slike?</string>
<string name="location_removed">Lokacija odstranjena!</string>
<string name="send_thanks_to_author">Zahvala avtorju</string> <string name="send_thanks_to_author">Zahvala avtorju</string>
<string name="error_sending_thanks">Napaka pri pošiljanju zahvale avtorju.</string> <string name="error_sending_thanks">Napaka pri pošiljanju zahvale avtorju.</string>
<string name="invalid_login_message">Vaša prijava je potekla. Prosimo, prijavite se znova.</string>
<string name="no_application_available_to_open_gpx_files">Na voljo ni nobena aplikacija za odpiranje datotek GPX</string>
<string name="file_saved_successfully">Datoteka je uspešno shranjena</string>
<string name="do_you_want_to_open_gpx_file">Ali želite odpreti datoteko GPX?</string>
<string name="do_you_want_to_open_kml_file">Ali želite odpreti datoteko KML?</string>
<string name="failed_to_save_kml_file">Shranjevanje datoteke KML ni uspelo.</string>
<string name="failed_to_save_gpx_file">Shranjevanje datoteke GPX ni uspelo.</string>
<string name="saving_kml_file">Shranjevanje datoteke KML</string>
<string name="saving_gpx_file">Shranjevanje datoteke GPX</string>
<plurals name="custom_picker_images_selected_title_appendix"> <plurals name="custom_picker_images_selected_title_appendix">
<item quantity="one">%d izbrana slika</item> <item quantity="one">%d izbrana slika</item>
<item quantity="two">%d izbrani sliki</item> <item quantity="two">%d izbrani sliki</item>
<item quantity="few">%d izbranih slik</item> <item quantity="few">%d izbranih slik</item>
<item quantity="other">%d izbranih slik</item> <item quantity="other">%d izbranih slik</item>
</plurals> </plurals>
<string name="multiple_files_depiction">Upoštevajte, da imajo vse slike v večkratnem nalaganju enake kategorije in upodobitve. Če slike nimajo skupnih upodobitev in kategorij, izvedite več ločenih nalaganj.</string>
<string name="multiple_files_depiction_header">Opomba o večkratnih nalaganjih</string>
<string name="nearby_wikitalk">Sporočite problem s tem predmetom v Wikipodatke</string>
<string name="please_enter_some_comments">Prosimo, vnesite nekaj komentarjev</string>
<string name="talk">Pogovor</string>
<string name="write_something_about_the_item">Napišite nekaj o predmetu »%1$s«. To bo javno vidno.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">»%1$s« ne obstaja več. Slike tega ni več mogoče posneti.</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 drugem kraju. Spodaj navedite pravi kraj in, če je mogoče, napišite pravilno zemljepisno širino in dolžino.</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 drugem kraju. Spodaj navedite pravi kraj in, če je mogoče, napišite pravilno zemljepisno širino in dolžino.</string>
<string name="other_problem_or_information_please_explain_below">Drug problem ali informacija (razložite spodaj).</string>
<string name="feedback_destination_note">Vaše povratne informacije bodo objavljene na naslednji strani vikija: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobilna aplikacija/Povratne informacije&lt;/a&gt;</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Ste prepričani, da želite preklicati vse nalaganja?</string>
<string name="cancelling_all_the_uploads">Preklic vseh nalaganj ...</string>
<string name="uploads">Naložitve</string>
<string name="pending">Čakajoče</string>
<string name="failed">Neuspešno</string>
<string name="could_not_load_place_data">Podatkov o kraju ni bilo mogoče naložiti</string>
<string name="custom_selector_delete_folder">Izbriši mapo</string>
<string name="custom_selector_confirm_deletion_title">Potrdi izbris</string>
<string name="custom_selector_confirm_deletion_message">Ali ste prepričani, da želite izbrisati mapo %1$s, ki vsebuje %2$d predmetov?</string>
<string name="custom_selector_delete">Izbriši</string>
<string name="custom_selector_cancel">Prekliči</string>
<string name="custom_selector_folder_deleted_success">Mapa %1$s je uspešno izbrisana</string>
<string name="custom_selector_folder_deleted_failure">Izbris mape %1$s ni uspel</string>
<string name="custom_selector_error_trashing_folder_contents">Napaka pri brisanju vsebine mape: %1$s</string>
<string name="custom_selector_folder_not_found_error">Pridobitev poti mape za bucket ID ni uspela: %1$d</string>
<string name="red_pin">Ta kraj še nima slike; posnamite jo!</string>
<string name="green_pin">Ta kraj že ima sliko.</string>
<string name="grey_pin">Preverjam, ali ta kraj že ima sliko.</string>
<string name="error_while_loading">Napaka pri nalaganju</string>
<string name="no_usages_found">Ni najdenih uporab</string>
<string name="usages_on_commons_heading">Zbirka</string>
<string name="usages_on_other_wikis_heading">Drugi vikiji</string>
<string name="bullet_point"></string>
<string name="file_usages_container_heading">Uporabe datotek</string>
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
<string name="account">Račun</string>
<string name="vanish_account">Izgini račun</string>
<string name="account_vanish_request_confirm_title">Opozorilo o izginjenju računa</string>
<string name="account_vanish_request_confirm">Izginotje je &lt;b&gt;skrajni ukrep&lt;/b&gt; in ga &lt;b&gt;uporabite samo, če želite za vedno prenehati z urejanjem&lt;/b&gt;, in tudi, da skrijete čim več svojih preteklih povezav.\n\nIzbris računa v Wikimedijini zbirki se opravi tako, da spremenite ime svojega računa, da drugi ne morejo prepoznati vaših prispevkov. &lt;b&gt;Izbris ne zagotavlja popolne anonimnosti ali odstranitve prispevkov k projektom&lt;/b&gt;.</string>
<string name="caption">Napis</string>
<string name="caption_copied_to_clipboard">Napis je kopiran v odložišče</string>
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Čestitamo, vse slike v tem albumu so naložene ali označene kot neprimerne za nalaganje.</string>
<string name="show_in_explore">Prikaži v Raziskuj</string>
<string name="show_in_nearby">Prikaži v Bližnje</string>
<string name="image_tag_line_created_and_uploaded_by">Ustvaril_a in naložil_a: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Ustvaril_a %1$s in naložil_a %2$s</string>
</resources> </resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Aca
* Acamicamacaraca * Acamicamacaraca
* BadDog * BadDog
* Rancher * Rancher

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Aca
* Acamicamacaraca * Acamicamacaraca
* BadDog * BadDog
* Kizule * Kizule
@ -748,4 +749,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="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">Поднапис</string>
<string name="caption_copied_to_clipboard">Поднапис копиран</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> </resources>

View file

@ -119,6 +119,7 @@
<string name="login_failed_throttled">För många misslyckade försök. Var god försök igen om några minuter.</string> <string name="login_failed_throttled">För många misslyckade försök. Var god försök igen om några minuter.</string>
<string name="login_failed_blocked">Tyvärr, denna användare har blockerats på Commons</string> <string name="login_failed_blocked">Tyvärr, denna användare har blockerats på Commons</string>
<string name="login_failed_2fa_needed">Du måste ange din tvåstegsverifieringskod.</string> <string name="login_failed_2fa_needed">Du måste ange din tvåstegsverifieringskod.</string>
<string name="login_failed_email_auth_needed">En verifieringskod för att logga in har skickats till din e-postadress. Ange koden för att logga in.</string>
<string name="login_failed_generic">Inloggningen misslyckades</string> <string name="login_failed_generic">Inloggningen misslyckades</string>
<string name="share_upload_button">Ladda upp</string> <string name="share_upload_button">Ladda upp</string>
<string name="multiple_share_base_title">Namnge denna uppsättning</string> <string name="multiple_share_base_title">Namnge denna uppsättning</string>
@ -224,6 +225,7 @@
<string name="become_a_tester_title">Bli en betatestare</string> <string name="become_a_tester_title">Bli en betatestare</string>
<string name="become_a_tester_description">Registrera dig på våra betakanal på Google Play och få tidig åtkomst till nya funktioner och buggfixar</string> <string name="become_a_tester_description">Registrera dig på våra betakanal på Google Play och få tidig åtkomst till nya funktioner och buggfixar</string>
<string name="_2fa_code">2-stegsverif.kod</string> <string name="_2fa_code">2-stegsverif.kod</string>
<string name="email_auth_code">E-postverifieringskod</string>
<string name="logout_verification">Vill du verkligen logga ut?</string> <string name="logout_verification">Vill du verkligen logga ut?</string>
<string name="mediaimage_failed">Mediabild misslyckades</string> <string name="mediaimage_failed">Mediabild misslyckades</string>
<string name="no_subcategory_found">Inga underkategorier hittades</string> <string name="no_subcategory_found">Inga underkategorier hittades</string>
@ -823,4 +825,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Grattis! Alla bilder i detta album har antingen laddats upp eller markerats för att inte laddas upp.</string> <string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Grattis! Alla bilder i detta album har antingen laddats upp eller markerats för att inte laddas upp.</string>
<string name="show_in_explore">Visa i \"Utforska\"</string> <string name="show_in_explore">Visa i \"Utforska\"</string>
<string name="show_in_nearby">Visa i \"I närheten\"</string> <string name="show_in_nearby">Visa i \"I närheten\"</string>
<string name="image_tag_line_created_and_uploaded_by">Skapades och laddades upp av: %1$s</string>
<string name="image_tag_line_created_by_and_uploaded_by">Skapad av %1$s och laddades upp av %2$s</string>
</resources> </resources>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Jamshid Nurkulov * Jamshid Nurkulov
* Mainculprit
* Malikxan * Malikxan
* Mirishkorlik * Mirishkorlik
* Zafar Shamsiddinov * Zafar Shamsiddinov
@ -212,6 +213,7 @@
<string name="become_a_tester_title">Beta versiya sinovchisi boʻling</string> <string name="become_a_tester_title">Beta versiya sinovchisi boʻling</string>
<string name="become_a_tester_description">Google Playʼdagi beta-kanalimizga obuna boʻling hamda yangi funksiyalar va xatolarni tuzatishga koʻpchilikdan oldinroq xabardor boʻlib boring</string> <string name="become_a_tester_description">Google Playʼdagi beta-kanalimizga obuna boʻling hamda yangi funksiyalar va xatolarni tuzatishga koʻpchilikdan oldinroq xabardor boʻlib boring</string>
<string name="_2fa_code">2FA kod</string> <string name="_2fa_code">2FA kod</string>
<string name="email_auth_code">Elektron pochta tasdiqlash kodi</string>
<string name="logout_verification">Haqiqatan ham tizimdan chiqmoqchimisiz?</string> <string name="logout_verification">Haqiqatan ham tizimdan chiqmoqchimisiz?</string>
<string name="mediaimage_failed">Media tasviri bajarilmadi</string> <string name="mediaimage_failed">Media tasviri bajarilmadi</string>
<string name="no_subcategory_found">Hech qanday ost toifa topilmadi</string> <string name="no_subcategory_found">Hech qanday ost toifa topilmadi</string>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* AguzulH
* Brahim-essaidi * Brahim-essaidi
* Hakim1bal * Hakim1bal
--> -->
@ -79,7 +80,7 @@
<string name="Profile">ⵉⴼⵔⵙ</string> <string name="Profile">ⵉⴼⵔⵙ</string>
<string name="statistics">ⵉⵙⵉⴹⵏⵏ</string> <string name="statistics">ⵉⵙⵉⴹⵏⵏ</string>
<string name="title_app_shortcut_setting">ⵜⵉⵙⵖⴰⵍ</string> <string name="title_app_shortcut_setting">ⵜⵉⵙⵖⴰⵍ</string>
<string name="leaderboard_column_user">ⴰⵏⵙⵎⵔⵙ</string> <string name="leaderboard_column_user">ⴰⵏⵙⵎⵔ</string>
<string name="leaderboard_column_count">ⵙⵙⵉⴹⵏ</string> <string name="leaderboard_column_count">ⵙⵙⵉⴹⵏ</string>
<string name="leaderboard_yearly">ⴰⵙⴳⵯⵙⴰⵏ</string> <string name="leaderboard_yearly">ⴰⵙⴳⵯⵙⴰⵏ</string>
<string name="leaderboard_weekly">ⴰⵏⵎⵍⴰⵙⵙ</string> <string name="leaderboard_weekly">ⴰⵏⵎⵍⴰⵙⵙ</string>

View file

@ -136,6 +136,7 @@
<string name="login_failed_throttled">失敗次數過多。請於幾分鐘後重試。</string> <string name="login_failed_throttled">失敗次數過多。請於幾分鐘後重試。</string>
<string name="login_failed_blocked">很抱歉,該使用者已被維基共享資源封禁</string> <string name="login_failed_blocked">很抱歉,該使用者已被維基共享資源封禁</string>
<string name="login_failed_2fa_needed">必須提供您的雙重驗證代碼。</string> <string name="login_failed_2fa_needed">必須提供您的雙重驗證代碼。</string>
<string name="login_failed_email_auth_needed">登入驗證碼已發送到您的電子郵件地址。請提供驗證碼以登入。</string>
<string name="login_failed_generic">登入失敗</string> <string name="login_failed_generic">登入失敗</string>
<string name="share_upload_button">上傳</string> <string name="share_upload_button">上傳</string>
<string name="multiple_share_base_title">給這個集合命名</string> <string name="multiple_share_base_title">給這個集合命名</string>
@ -241,6 +242,7 @@
<string name="become_a_tester_title">成為 Beta 測試員</string> <string name="become_a_tester_title">成為 Beta 測試員</string>
<string name="become_a_tester_description">選擇加入我們在 Google Play 上的測試版頻道並儘早訪問新功能和錯誤修復</string> <string name="become_a_tester_description">選擇加入我們在 Google Play 上的測試版頻道並儘早訪問新功能和錯誤修復</string>
<string name="_2fa_code">2FA 代碼</string> <string name="_2fa_code">2FA 代碼</string>
<string name="email_auth_code">電子郵件驗證碼</string>
<string name="logout_verification">您確定要登出嗎?</string> <string name="logout_verification">您確定要登出嗎?</string>
<string name="mediaimage_failed">媒體圖片失敗</string> <string name="mediaimage_failed">媒體圖片失敗</string>
<string name="no_subcategory_found">找不到子分類</string> <string name="no_subcategory_found">找不到子分類</string>
@ -842,4 +844,6 @@
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">恭喜,該相簿中的所有圖片已上傳或標記為不可上傳。</string> <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_explore">在探索中顯示</string>
<string name="show_in_nearby">顯示在附近</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> </resources>

View file

@ -25,6 +25,7 @@
* Liuxinyu970226 * Liuxinyu970226
* Looong * Looong
* McDutchie * McDutchie
* Mishidexfc
* NACHOgao3 * NACHOgao3
* Qiyue2001 * Qiyue2001
* Shizhao * Shizhao
@ -168,6 +169,7 @@
<string name="login_failed_throttled">失败次数过多。请在几分钟后重试。</string> <string name="login_failed_throttled">失败次数过多。请在几分钟后重试。</string>
<string name="login_failed_blocked">对不起,该用户已经被共享资源封禁</string> <string name="login_failed_blocked">对不起,该用户已经被共享资源封禁</string>
<string name="login_failed_2fa_needed">您必须提供您的双因素验证代码。</string> <string name="login_failed_2fa_needed">您必须提供您的双因素验证代码。</string>
<string name="login_failed_email_auth_needed">登录验证码已发送至您的邮箱,请提供该验证码进行登录。</string>
<string name="login_failed_generic">登录失败</string> <string name="login_failed_generic">登录失败</string>
<string name="share_upload_button">上传</string> <string name="share_upload_button">上传</string>
<string name="multiple_share_base_title">命名这组图像</string> <string name="multiple_share_base_title">命名这组图像</string>
@ -273,6 +275,7 @@
<string name="become_a_tester_title">成为测试版的测试者</string> <string name="become_a_tester_title">成为测试版的测试者</string>
<string name="become_a_tester_description">加入我们在Google Play上的测试计划更早获取新功能以及错误修复</string> <string name="become_a_tester_description">加入我们在Google Play上的测试计划更早获取新功能以及错误修复</string>
<string name="_2fa_code">2FA代码</string> <string name="_2fa_code">2FA代码</string>
<string name="email_auth_code">电子邮件验证码</string>
<string name="logout_verification">您真的想要退出么?</string> <string name="logout_verification">您真的想要退出么?</string>
<string name="mediaimage_failed">媒体图片失败</string> <string name="mediaimage_failed">媒体图片失败</string>
<string name="no_subcategory_found">找不到子分类</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="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_explore">在探索中显示</string>
<string name="show_in_nearby">显示在附近</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> </resources>

View file

@ -111,6 +111,7 @@
<string name="login_failed_throttled">Too many unsuccessful attempts. Please try again in a few minutes.</string> <string name="login_failed_throttled">Too many unsuccessful attempts. Please try again in a few minutes.</string>
<string name="login_failed_blocked">Sorry, this user has been blocked on Commons</string> <string name="login_failed_blocked">Sorry, this user has been blocked on Commons</string>
<string name="login_failed_2fa_needed">You must provide your two factor authentication code.</string> <string name="login_failed_2fa_needed">You must provide your two factor authentication code.</string>
<string name="login_failed_email_auth_needed">A login verification code has been sent to your email address. Please provide the code to log in.</string>
<string name="login_failed_generic">Log-in failed</string> <string name="login_failed_generic">Log-in failed</string>
<string name="share_upload_button">Upload</string> <string name="share_upload_button">Upload</string>
<string name="multiple_share_base_title">Name this set</string> <string name="multiple_share_base_title">Name this set</string>
@ -218,6 +219,7 @@
<string name="become_a_tester_description">Opt-in to our beta channel on Google Play and get early access to new features and bug fixes</string> <string name="become_a_tester_description">Opt-in to our beta channel on Google Play and get early access to new features and bug fixes</string>
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string> <string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
<string name="_2fa_code">2FA Code</string> <string name="_2fa_code">2FA Code</string>
<string name="email_auth_code">Email verification code</string>
<string name="logout_verification">Do you really want to logout?</string> <string name="logout_verification">Do you really want to logout?</string>
<string name="mediaimage_failed">Media Image Failed</string> <string name="mediaimage_failed">Media Image Failed</string>
<string name="no_subcategory_found">No subcategories found</string> <string name="no_subcategory_found">No subcategories found</string>
@ -830,6 +832,7 @@ Upload your first media by tapping on the add button.</string>
<string name="talk">Talk</string> <string name="talk">Talk</string>
<string name="write_something_about_the_item">Write something about the \'%1$s\' item. It will be publicly visible.</string> <string name="write_something_about_the_item">Write something about the \'%1$s\' item. It will be publicly visible.</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' does not exist anymore, no picture can ever be taken of it.</string> <string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' does not exist anymore, no picture can ever be taken of it.</string>
<string name="is_at_a_different_place_wikidata">\'%1$s\' is at a different place.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude.</string>
<string name="other_problem_or_information_please_explain_below">Other problem or information (please explain below).</string> <string name="other_problem_or_information_please_explain_below">Other problem or information (please explain below).</string>
<string name="feedback_destination_note">Your feedback gets posted to the following wiki page: <![CDATA[ <a href="https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback">Commons:Mobile app/Feedback</a> ]]></string> <string name="feedback_destination_note">Your feedback gets posted to the following wiki page: <![CDATA[ <a href="https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback">Commons:Mobile app/Feedback</a> ]]></string>
@ -871,4 +874,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_explore">Show in Explore</string>
<string name="show_in_nearby">Show in Nearby</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> </resources>

View file

@ -10,6 +10,8 @@ SELECT
(SAMPLE(?wikipediaArticle) AS ?wikipediaArticle) (SAMPLE(?wikipediaArticle) AS ?wikipediaArticle)
(SAMPLE(?commonsArticle) AS ?commonsArticle) (SAMPLE(?commonsArticle) AS ?commonsArticle)
(SAMPLE(?commonsCategory) AS ?commonsCategory) (SAMPLE(?commonsCategory) AS ?commonsCategory)
(SAMPLE(?dateOfOfficialClosure) AS ?dateOfOfficialClosure)
(SAMPLE(?pointInTime) AS ?pointInTime)
WHERE { WHERE {
SERVICE <https://query.wikidata.org/sparql> { SERVICE <https://query.wikidata.org/sparql> {
values ?item { values ?item {
@ -45,6 +47,8 @@ WHERE {
# Get existence # Get existence
OPTIONAL {?item wdt:P576 ?destroyed} OPTIONAL {?item wdt:P576 ?destroyed}
OPTIONAL {?item wdt:P582 ?endTime} OPTIONAL {?item wdt:P582 ?endTime}
OPTIONAL {?item wdt:P3999 ?dateOfOfficialClosure}
OPTIONAL {?item wdt:P585 ?pointInTime}
# Get Commons category # Get Commons category
OPTIONAL {?item wdt:P373 ?commonsCategory} OPTIONAL {?item wdt:P373 ?commonsCategory}

View file

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

View file

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

View file

@ -10,6 +10,7 @@ import org.junit.Before
import org.junit.Test import org.junit.Test
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import java.lang.IllegalArgumentException import java.lang.IllegalArgumentException
@ -42,23 +43,61 @@ class MediaConverterTest {
@Test @Test
fun testConvertIfThumbUrlBlank() { fun testConvertIfThumbUrlBlank() {
Mockito.`when`(imageInfo.getMetadata()).thenReturn(metadata) `when`(imageInfo.getMetadata()).thenReturn(metadata)
Mockito.`when`(imageInfo.getThumbUrl()).thenReturn("") `when`(imageInfo.getThumbUrl()).thenReturn("")
Mockito.`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl") `when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
Mockito.`when`(imageInfo.getMetadata()?.licenseUrl()).thenReturn("licenseUrl") `when`(metadata.licenseUrl()).thenReturn("licenseUrl")
Mockito.`when`(imageInfo.getMetadata()?.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss") `when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("Foo Bar")
media = mediaConverter.convert(page, entity, imageInfo) media = mediaConverter.convert(page, entity, imageInfo)
assertEquals(media.thumbUrl, media.imageUrl, "originalUrl") assertEquals(media.thumbUrl, media.imageUrl, "originalUrl")
} }
@Test @Test
fun testConvertIfThumbUrlNotBlank() { fun testConvertIfThumbUrlNotBlank() {
Mockito.`when`(imageInfo.getMetadata()).thenReturn(metadata) `when`(imageInfo.getMetadata()).thenReturn(metadata)
Mockito.`when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl") `when`(imageInfo.getThumbUrl()).thenReturn("thumbUrl")
Mockito.`when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl") `when`(imageInfo.getOriginalUrl()).thenReturn("originalUrl")
Mockito.`when`(imageInfo.getMetadata()?.licenseUrl()).thenReturn("licenseUrl") `when`(metadata.licenseUrl()).thenReturn("licenseUrl")
Mockito.`when`(imageInfo.getMetadata()?.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss") `when`(metadata.dateTime()).thenReturn("yyyy-MM-dd HH:mm:ss")
`when`(metadata.artist()).thenReturn("Foo Bar")
media = mediaConverter.convert(page, entity, imageInfo) media = mediaConverter.convert(page, entity, imageInfo)
assertEquals(media.thumbUrl, "thumbUrl") 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

@ -262,15 +262,4 @@ class UploadActivityUnitTests {
method.isAccessible = true method.isAccessible = true
method.invoke(activity) method.invoke(activity)
} }
@Test
@Throws(Exception::class)
fun testOnBackPressed() {
val method: Method =
UploadActivity::class.java.getDeclaredMethod(
"onBackPressed",
)
method.isAccessible = true
method.invoke(activity)
}
} }

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"))
}
}