Merge branch 'main' into location_edit_fix

This commit is contained in:
Nicolas Raoul 2024-09-18 16:32:16 +09:00 committed by GitHub
commit 1eb766210b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
101 changed files with 779 additions and 366 deletions

View file

@ -51,6 +51,21 @@ dependencies {
implementation 'com.karumi:dexter:5.0.0' implementation 'com.karumi:dexter:5.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
// Jetpack Compose
def composeBom = platform('androidx.compose:compose-bom:2024.08.00')
implementation "androidx.activity:activity-compose:1.9.1"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.8.4"
implementation (composeBom)
implementation "androidx.compose.runtime:runtime"
implementation "androidx.compose.ui:ui"
implementation "androidx.compose.ui:ui-graphics"
implementation "androidx.compose.ui:ui-tooling"
implementation "androidx.compose.foundation:foundation"
implementation "androidx.compose.foundation:foundation-layout"
implementation "androidx.compose.material3:material3"
androidTestImplementation(composeBom)
implementation "com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:$ADAPTER_DELEGATES_VERSION" implementation "com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:$ADAPTER_DELEGATES_VERSION"
implementation "com.hannesdorfmann:adapterdelegates4-pagination:$ADAPTER_DELEGATES_VERSION" implementation "com.hannesdorfmann:adapterdelegates4-pagination:$ADAPTER_DELEGATES_VERSION"
implementation "androidx.paging:paging-runtime-ktx:$PAGING_VERSION" implementation "androidx.paging:paging-runtime-ktx:$PAGING_VERSION"
@ -186,7 +201,7 @@ project.gradle.taskGraph.whenReady {
} }
android { android {
compileSdkVersion 33 compileSdkVersion 34
defaultConfig { defaultConfig {
//applicationId 'fr.free.nrw.commons' //applicationId 'fr.free.nrw.commons'
@ -196,7 +211,7 @@ android {
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 33 targetSdkVersion 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true' testInstrumentationRunnerArguments clearPackageData: 'true'
@ -253,11 +268,12 @@ android {
} }
} }
debug { debug {
testCoverageEnabled true
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
testProguardFile 'test-proguard-rules.txt' testProguardFile 'test-proguard-rules.txt'
versionNameSuffix "-debug-" + getBranchName() versionNameSuffix "-debug-" + getBranchName()
enableUnitTestCoverage true
enableAndroidTestCoverage true
} }
} }
@ -354,13 +370,17 @@ android {
targetCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11
} }
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "11"
} }
buildToolsVersion buildToolsVersion buildToolsVersion buildToolsVersion
buildFeatures { buildFeatures {
viewBinding true viewBinding true
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.3.2'
} }
namespace 'fr.free.nrw.commons' namespace 'fr.free.nrw.commons'
lint { lint {

View file

@ -3,23 +3,29 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" /> <uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.REORDER_TASKS" /> <uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"
android:minSdkVersion="33"/>
<uses-permission android:name="com.google.android.apps.photos.permission.GOOGLE_PHOTOS" /> <uses-permission android:name="com.google.android.apps.photos.permission.GOOGLE_PHOTOS" />
<uses-permission android:name="android.permission.SET_WALLPAPER" /> <uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"
android:minSdkVersion="34"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<queries> <queries>
@ -183,6 +189,10 @@
android:name="org.acra.sender.SenderService" android:name="org.acra.sender.SenderService"
android:exported="false" android:exported="false"
android:process=":acra" /> android:process=":acra" />
<service
android:name="androidx.work.impl.foreground.SystemForegroundService"
android:foregroundServiceType="dataSync" />
<provider <provider
android:name=".filepicker.ExtendedFileProvider" android:name=".filepicker.ExtendedFileProvider"

View file

@ -165,15 +165,16 @@ public class MainActivity extends BaseActivity
* so that location in the EXIF metadata of the images shared by the user * so that location in the EXIF metadata of the images shared by the user
* is retained on devices running Android 10 or above * is retained on devices running Android 10 or above
*/ */
if (VERSION.SDK_INT >= VERSION_CODES.Q) { // if (VERSION.SDK_INT >= VERSION_CODES.Q) {
PermissionUtils.checkPermissionsAndPerformAction( // ActivityCompat.requestPermissions(this,
this, // new String[]{Manifest.permission.ACCESS_MEDIA_LOCATION}, 0);
() -> { // PermissionUtils.checkPermissionsAndPerformAction(
}, // this,
R.string.media_location_permission_denied, // () -> {},
R.string.add_location_manually, // R.string.media_location_permission_denied,
permission.ACCESS_MEDIA_LOCATION); // R.string.add_location_manually,
} // permission.ACCESS_MEDIA_LOCATION);
// }
checkAndResumeStuckUploads(); checkAndResumeStuckUploads();
} }
} }

View file

@ -40,14 +40,14 @@ open class OnSwipeTouchListener(context: Context?) : View.OnTouchListener {
* Detects the gestures * Detects the gestures
*/ */
override fun onFling( override fun onFling(
event1: MotionEvent, event1: MotionEvent?,
event2: MotionEvent, event2: MotionEvent,
velocityX: Float, velocityX: Float,
velocityY: Float velocityY: Float
): Boolean { ): Boolean {
try { try {
val diffY: Float = event2.y - event1.y val diffY: Float = event2.y - (event1?.y ?: event2.y)
val diffX: Float = event2.x - event1.x val diffX: Float = event2.x - (event1?.x ?: event2.x)
if (abs(diffX) > abs(diffY)) { if (abs(diffX) > abs(diffY)) {
if (abs(diffX) > SWIPE_THRESHOLD_WIDTH && abs(velocityX) > if (abs(diffX) > SWIPE_THRESHOLD_WIDTH && abs(velocityX) >
SWIPE_VELOCITY_THRESHOLD) { SWIPE_VELOCITY_THRESHOLD) {

View file

@ -62,13 +62,15 @@ class FolderAdapter(
folder.images.removeAll(toBeRemoved) folder.images.removeAll(toBeRemoved)
val count = folder.images.size val count = folder.images.size
if(count == 0) { if(count == 0 && folders.size > 0) {
// Folder is empty, remove folder from the adapter. // Folder is empty, remove folder from the adapter.
holder.itemView.post{ holder.itemView.post{
val updatePosition = folders.indexOf(folder) val updatePosition = folders.indexOf(folder)
folders.removeAt(updatePosition) if(updatePosition != -1) {
notifyItemRemoved(updatePosition) folders.removeAt(updatePosition)
notifyItemRangeChanged(updatePosition, folders.size) notifyItemRemoved(updatePosition)
notifyItemRangeChanged(updatePosition, folders.size)
}
} }
} else { } else {
val previewImage = folder.images[0] val previewImage = folder.images[0]

View file

@ -122,7 +122,7 @@ class ImageAdapter(
* Bind View holder, load image, selected view, click listeners. * Bind View holder, load image, selected view, click listeners.
*/ */
override fun onBindViewHolder(holder: ImageViewHolder, position: Int) { override fun onBindViewHolder(holder: ImageViewHolder, position: Int) {
if(images.size == 0) { return }
var image=images[position] var image=images[position]
holder.image.setImageDrawable (null) holder.image.setImageDrawable (null)
if (context.contentResolver.getType(image.uri) == null) { if (context.contentResolver.getType(image.uri) == null) {

View file

@ -1,16 +1,49 @@
package fr.free.nrw.commons.customselector.ui.selector package fr.free.nrw.commons.customselector.ui.selector
import android.Manifest
import android.app.Activity import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.view.Window import android.view.Window
import android.widget.Button import android.widget.Button
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import fr.free.nrw.commons.R import fr.free.nrw.commons.R
import fr.free.nrw.commons.customselector.database.NotForUploadStatus import fr.free.nrw.commons.customselector.database.NotForUploadStatus
@ -24,10 +57,12 @@ import fr.free.nrw.commons.databinding.ActivityCustomSelectorBinding
import fr.free.nrw.commons.databinding.CustomSelectorBottomLayoutBinding import fr.free.nrw.commons.databinding.CustomSelectorBottomLayoutBinding
import fr.free.nrw.commons.databinding.CustomSelectorToolbarBinding import fr.free.nrw.commons.databinding.CustomSelectorToolbarBinding
import fr.free.nrw.commons.filepicker.Constants import fr.free.nrw.commons.filepicker.Constants
import fr.free.nrw.commons.filepicker.FilePicker
import fr.free.nrw.commons.media.ZoomableActivity import fr.free.nrw.commons.media.ZoomableActivity
import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.theme.BaseActivity
import fr.free.nrw.commons.upload.FileUtilsWrapper import fr.free.nrw.commons.upload.FileUtilsWrapper
import fr.free.nrw.commons.utils.CustomSelectorUtils import fr.free.nrw.commons.utils.CustomSelectorUtils
import fr.free.nrw.commons.utils.PermissionUtils
import kotlinx.coroutines.* import kotlinx.coroutines.*
import java.io.File import java.io.File
import java.lang.Integer.max import java.lang.Integer.max
@ -114,14 +149,37 @@ class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectL
private var progressDialogText:String="" private var progressDialogText:String=""
private var showPartialAccessIndicator by mutableStateOf(false)
/** /**
* onCreate Activity, sets theme, initialises the view model, setup view. * onCreate Activity, sets theme, initialises the view model, setup view.
*/ */
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE &&
ContextCompat.checkSelfPermission(
this, Manifest.permission.READ_MEDIA_IMAGES
) == PackageManager.PERMISSION_DENIED
) {
showPartialAccessIndicator = true
}
binding = ActivityCustomSelectorBinding.inflate(layoutInflater) binding = ActivityCustomSelectorBinding.inflate(layoutInflater)
toolbarBinding = CustomSelectorToolbarBinding.bind(binding.root) toolbarBinding = CustomSelectorToolbarBinding.bind(binding.root)
bottomSheetBinding = CustomSelectorBottomLayoutBinding.bind(binding.root) bottomSheetBinding = CustomSelectorBottomLayoutBinding.bind(binding.root)
binding.partialAccessIndicator.setContent {
PartialStorageAccessIndicator(
isVisible = showPartialAccessIndicator,
onManage = {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
requestPermissions(arrayOf(Manifest.permission.READ_MEDIA_IMAGES), 1)
}
},
modifier = Modifier
.padding(vertical = 8.dp, horizontal = 4.dp)
.fillMaxWidth()
)
}
val view = binding.root val view = binding.root
setContentView(view) setContentView(view)
@ -147,6 +205,24 @@ class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectL
} }
} }
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if(requestCode == 1 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
if(grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
showPartialAccessIndicator = false
}
}
}
override fun onResume() {
super.onResume()
fetchData()
}
/** /**
* When data will be send from full screen mode, it will be passed to fragment * When data will be send from full screen mode, it will be passed to fragment
*/ */
@ -181,7 +257,6 @@ class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectL
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, FolderFragment.newInstance()) .replace(R.id.fragment_container, FolderFragment.newInstance())
.commit() .commit()
fetchData()
setUpToolbar() setUpToolbar()
setUpBottomLayout() setUpBottomLayout()
} }
@ -498,3 +573,52 @@ class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectL
const val ITEM_ID: String = "ItemId" const val ITEM_ID: String = "ItemId"
} }
} }
@Composable
fun PartialStorageAccessIndicator(
isVisible: Boolean,
onManage: ()-> Unit,
modifier: Modifier = Modifier
) {
if(isVisible) {
OutlinedCard(
modifier = modifier,
colors = CardDefaults.cardColors(
containerColor = colorResource(R.color.primarySuperLightColor)
),
border = BorderStroke(0.5.dp, color = colorResource(R.color.primaryColor)),
shape = RoundedCornerShape(8.dp)
) {
Row(modifier = Modifier.padding(16.dp).fillMaxWidth()) {
Text(
text = "You've given access to a select number of photos",
modifier = Modifier.weight(1f)
)
TextButton(
onClick = onManage,
modifier = Modifier.align(Alignment.Bottom),
colors = ButtonDefaults.buttonColors(
containerColor = colorResource(R.color.primaryColor)
),
shape = RoundedCornerShape(8.dp)
) {
Text(
text = "Manage",
style = MaterialTheme.typography.labelMedium,
color = colorResource(R.color.primaryTextColor)
)
}
}
}
}
}
@Preview
@Composable
fun PartialStorageAccessIndicatorPreview() {
Surface {
PartialStorageAccessIndicator(isVisible = true, onManage = {}, modifier = Modifier
.padding(vertical = 8.dp, horizontal = 4.dp)
.fillMaxWidth()
)
}
}

View file

@ -116,11 +116,14 @@ class FolderFragment : CommonsDaggerSupportFragment() {
private fun handleResult(result: Result) { private fun handleResult(result: Result) {
if(result.status is CallbackStatus.SUCCESS){ if(result.status is CallbackStatus.SUCCESS){
val images = result.images val images = result.images
if(images.isNullOrEmpty()) if(images.isEmpty()){
{
binding?.emptyText?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
} else {
binding?.emptyText?.let {
it.visibility = View.GONE
}
} }
folders = ImageHelper.folderListFromImages(result.images) folders = ImageHelper.folderListFromImages(result.images)
folderAdapter.init(folders) folderAdapter.init(folders)

View file

@ -39,6 +39,7 @@ import fr.free.nrw.commons.upload.FileUtilsWrapper
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
import kotlin.collections.ArrayList
/** /**
* Custom Selector Image Fragment. * Custom Selector Image Fragment.
@ -279,6 +280,8 @@ class ImageFragment : CommonsDaggerSupportFragment(), RefreshUIListener, PassDat
} }
} }
} else { } else {
filteredImages = ArrayList()
allImages = filteredImages
binding?.emptyText?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
@ -324,7 +327,7 @@ class ImageFragment : CommonsDaggerSupportFragment(), RefreshUIListener, PassDat
.findFirstVisibleItemPosition() .findFirstVisibleItemPosition()
// Check for empty RecyclerView. // Check for empty RecyclerView.
if (position != -1) { if (position != -1 && filteredImages.size > 0) {
context?.let { context -> context?.let { context ->
context.getSharedPreferences( context.getSharedPreferences(
"CustomSelector", "CustomSelector",

View file

@ -2,24 +2,15 @@ package fr.free.nrw.commons.explore.media
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import fr.free.nrw.commons.Media import fr.free.nrw.commons.Media
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.databinding.FragmentSearchPaginatedBinding
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
abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailProvider { abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailProvider {
/**
* ViewBinding
*/
private var _binding: FragmentSearchPaginatedBinding? = null
private val binding get() = _binding!!
override val pagedListAdapter by lazy { override val pagedListAdapter by lazy {
PagedMediaAdapter(categoryImagesCallback::onMediaClicked) PagedMediaAdapter(categoryImagesCallback::onMediaClicked)
} }
@ -39,15 +30,6 @@ abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailP
} }
} }
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false)
return binding.root
}
private val simpleDataObserver = private val simpleDataObserver =
SimpleDataObserver { categoryImagesCallback.viewPagerNotifyDataSetChanged() } SimpleDataObserver { categoryImagesCallback.viewPagerNotifyDataSetChanged() }
@ -57,7 +39,6 @@ abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailP
} }
override fun onDestroyView() { override fun onDestroyView() {
_binding = null
super.onDestroyView() super.onDestroyView()
pagedListAdapter.unregisterAdapterDataObserver(simpleDataObserver) pagedListAdapter.unregisterAdapterDataObserver(simpleDataObserver)
} }

View file

@ -29,12 +29,19 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
private val mergeAdapter by lazy { MergeAdapter(pagedListAdapter, loadingAdapter) } private val mergeAdapter by lazy { MergeAdapter(pagedListAdapter, loadingAdapter) }
private var searchResults: LiveData<PagedList<T>>? = null private var searchResults: LiveData<PagedList<T>>? = null
private var binding : FragmentSearchPaginatedBinding? = null protected lateinit var binding : FragmentSearchPaginatedBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val binding = FragmentSearchPaginatedBinding.bind(view)
this.binding = binding
binding.paginatedSearchResultsList.apply { binding.paginatedSearchResultsList.apply {
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2) layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
@ -51,7 +58,7 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
*/ */
override fun onConfigurationChanged(newConfig: Configuration) { override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
binding!!.paginatedSearchResultsList.apply { binding.paginatedSearchResultsList.apply {
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2) layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
} }
} }
@ -75,15 +82,15 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
} }
override fun hideInitialLoadProgress() { override fun hideInitialLoadProgress() {
binding!!.paginatedSearchInitialLoadProgress.visibility = GONE binding.paginatedSearchInitialLoadProgress.visibility = GONE
} }
override fun showInitialLoadInProgress() { override fun showInitialLoadInProgress() {
binding!!.paginatedSearchInitialLoadProgress.visibility = VISIBLE binding.paginatedSearchInitialLoadProgress.visibility = VISIBLE
} }
override fun showSnackbar() { override fun showSnackbar() {
ViewUtil.showShortSnackbar(binding!!.paginatedSearchResultsList, errorTextId) ViewUtil.showShortSnackbar(binding.paginatedSearchResultsList, errorTextId)
} }
fun onQueryUpdated(query: String) { fun onQueryUpdated(query: String) {
@ -91,14 +98,14 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
} }
override fun showEmptyText(query: String) { override fun showEmptyText(query: String) {
binding!!.contentNotFound.text = getEmptyText(query) binding.contentNotFound.text = getEmptyText(query)
binding!!.contentNotFound.visibility = VISIBLE binding.contentNotFound.visibility = VISIBLE
} }
abstract fun getEmptyText(query: String): String abstract fun getEmptyText(query: String): String
override fun hideEmptyText() { override fun hideEmptyText() {
binding!!.contentNotFound.visibility = GONE binding.contentNotFound.visibility = GONE
} }
} }

View file

@ -6,6 +6,9 @@ import fr.free.nrw.commons.auth.AccountUtil;
import fr.free.nrw.commons.feedback.model.Feedback; import fr.free.nrw.commons.feedback.model.Feedback;
import fr.free.nrw.commons.utils.LangCodeUtils; import fr.free.nrw.commons.utils.LangCodeUtils;
import java.util.Locale; import java.util.Locale;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/** /**
* Creates a wikimedia recognizable format * Creates a wikimedia recognizable format
@ -32,11 +35,19 @@ public class FeedbackContentCreator {
/* /*
* Construct the feedback section title * Construct the feedback section title
*/ */
//Get the UTC Date and Time and add it to the Title
final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
final String UTC_FormattedDate = dateFormat.format(new Date());
sectionTitleBuilder = new StringBuilder(); sectionTitleBuilder = new StringBuilder();
sectionTitleBuilder.append("Feedback from "); sectionTitleBuilder.append("Feedback from ");
sectionTitleBuilder.append(AccountUtil.getUserName(context)); sectionTitleBuilder.append(AccountUtil.getUserName(context));
sectionTitleBuilder.append(" for version "); sectionTitleBuilder.append(" for version ");
sectionTitleBuilder.append(feedback.getVersion()); sectionTitleBuilder.append(feedback.getVersion());
sectionTitleBuilder.append(" on ");
sectionTitleBuilder.append(UTC_FormattedDate);
/* /*
* Construct the feedback section text * Construct the feedback section text
@ -96,6 +107,7 @@ public class FeedbackContentCreator {
} }
sectionTextBuilder.append("~~~~"); sectionTextBuilder.append("~~~~");
sectionTextBuilder.append("\n"); sectionTextBuilder.append("\n");
} }
public String getSectionText() { public String getSectionText() {

View file

@ -4,16 +4,12 @@ import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.CommonsApplication;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import static androidx.core.app.NotificationCompat.DEFAULT_ALL; import static androidx.core.app.NotificationCompat.DEFAULT_ALL;
import static androidx.core.app.NotificationCompat.PRIORITY_HIGH; import static androidx.core.app.NotificationCompat.PRIORITY_HIGH;
@ -30,11 +26,11 @@ public class NotificationHelper {
public static final int NOTIFICATION_EDIT_DESCRIPTION = 4; public static final int NOTIFICATION_EDIT_DESCRIPTION = 4;
public static final int NOTIFICATION_EDIT_DEPICTIONS = 5; public static final int NOTIFICATION_EDIT_DEPICTIONS = 5;
private NotificationManager notificationManager; private final NotificationManager notificationManager;
private NotificationCompat.Builder notificationBuilder; private final NotificationCompat.Builder notificationBuilder;
@Inject @Inject
public NotificationHelper(Context context) { public NotificationHelper(final Context context) {
notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationBuilder = new NotificationCompat notificationBuilder = new NotificationCompat
.Builder(context, CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL) .Builder(context, CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL)
@ -49,12 +45,13 @@ public class NotificationHelper {
* @param notificationId the notificationID * @param notificationId the notificationID
* @param intent the intent to be fired when the notification is clicked * @param intent the intent to be fired when the notification is clicked
*/ */
public void showNotification(Context context, public void showNotification(
String notificationTitle, final Context context,
String notificationMessage, final String notificationTitle,
int notificationId, final String notificationMessage,
Intent intent) { final int notificationId,
final Intent intent
) {
notificationBuilder.setDefaults(DEFAULT_ALL) notificationBuilder.setDefaults(DEFAULT_ALL)
.setContentTitle(notificationTitle) .setContentTitle(notificationTitle)
.setStyle(new NotificationCompat.BigTextStyle() .setStyle(new NotificationCompat.BigTextStyle()
@ -65,14 +62,11 @@ public class NotificationHelper {
.setPriority(PRIORITY_HIGH); .setPriority(PRIORITY_HIGH);
int flags = PendingIntent.FLAG_UPDATE_CURRENT; int flags = PendingIntent.FLAG_UPDATE_CURRENT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Check if the API level is 31 or higher to modify the flag flags |= PendingIntent.FLAG_IMMUTABLE; // This flag was introduced in API 23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// For API level 31 or above, PendingIntent requires either FLAG_IMMUTABLE or FLAG_MUTABLE to be set
flags |= PendingIntent.FLAG_IMMUTABLE;
} }
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, flags); final PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, flags);
notificationBuilder.setContentIntent(pendingIntent); notificationBuilder.setContentIntent(pendingIntent);
notificationManager.notify(notificationId, notificationBuilder.build()); notificationManager.notify(notificationId, notificationBuilder.build());
} }

View file

@ -278,7 +278,8 @@ public class UploadActivity extends BaseActivity implements UploadContract.View,
public void checkStoragePermissions() { public void checkStoragePermissions() {
// Check if all required permissions are granted // Check if all required permissions are granted
final boolean hasAllPermissions = PermissionUtils.hasPermission(this, PERMISSIONS_STORAGE); final boolean hasAllPermissions = PermissionUtils.hasPermission(this, PERMISSIONS_STORAGE);
if (hasAllPermissions) { final boolean hasPartialAccess = PermissionUtils.hasPartialAccess(this);
if (hasAllPermissions || hasPartialAccess) {
// All required permissions are granted, so enable UI elements and perform actions // All required permissions are granted, so enable UI elements and perform actions
receiveSharedItems(); receiveSharedItems();
binding.cvContainerTopCard.setVisibility(View.VISIBLE); binding.cvContainerTopCard.setVisibility(View.VISIBLE);

View file

@ -6,6 +6,7 @@ import android.app.PendingIntent
import android.app.TaskStackBuilder import android.app.TaskStackBuilder
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ServiceInfo
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.os.Build import android.os.Build
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
@ -46,13 +47,12 @@ import java.util.*
import java.util.regex.Pattern import java.util.regex.Pattern
import javax.inject.Inject import javax.inject.Inject
class UploadWorker(
class UploadWorker(var appContext: Context, workerParams: WorkerParameters) : private var appContext: Context, workerParams: WorkerParameters
CoroutineWorker(appContext, workerParams) { ): CoroutineWorker(appContext, workerParams) {
private var notificationManager: NotificationManagerCompat? = null private var notificationManager: NotificationManagerCompat? = null
@Inject @Inject
lateinit var wikidataEditService: WikidataEditService lateinit var wikidataEditService: WikidataEditService
@ -83,12 +83,11 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
//Attributes of the current-upload notification //Attributes of the current-upload notification
private var currentNotificationID: Int = -1// lateinit is not allowed with primitives private var currentNotificationID: Int = -1// lateinit is not allowed with primitives
private lateinit var currentNotificationTag: String private lateinit var currentNotificationTag: String
private var curentNotification: NotificationCompat.Builder private var currentNotification: NotificationCompat.Builder
private val statesToProcess= ArrayList<Int>() private val statesToProcess= ArrayList<Int>()
private val STASH_ERROR_CODES = Arrays private val STASH_ERROR_CODES = listOf(
.asList(
"uploadstash-file-not-found", "uploadstash-file-not-found",
"stashfailed", "stashfailed",
"verification-error", "verification-error",
@ -100,7 +99,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.getInstance(appContext) .getInstance(appContext)
.commonsApplicationComponent .commonsApplicationComponent
.inject(this) .inject(this)
curentNotification = currentNotification =
getNotificationBuilder(CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL)!! getNotificationBuilder(CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL)!!
statesToProcess.add(Contribution.STATE_QUEUED) statesToProcess.add(Contribution.STATE_QUEUED)
@ -120,21 +119,23 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
fun onProgress(transferred: Long, total: Long) { fun onProgress(transferred: Long, total: Long) {
if (transferred == total) { if (transferred == total) {
// Completed! // Completed!
curentNotification.setContentTitle(notificationFinishingTitle) currentNotification.setContentTitle(notificationFinishingTitle)
.setProgress(0, 100, true) .setProgress(0, 100, true)
} else { } else {
curentNotification currentNotification
.setProgress( .setProgress(
100, 100,
(transferred.toDouble() / total.toDouble() * 100).toInt(), (transferred.toDouble() / total.toDouble() * 100).toInt(),
false false
) )
} }
notificationManager?.cancel(PROCESSING_UPLOADS_NOTIFICATION_TAG, PROCESSING_UPLOADS_NOTIFICATION_ID) notificationManager?.cancel(
PROCESSING_UPLOADS_NOTIFICATION_TAG, PROCESSING_UPLOADS_NOTIFICATION_ID
)
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationTag,
currentNotificationID, currentNotificationID,
curentNotification.build()!! currentNotification.build()
) )
contribution!!.transferred = transferred contribution!!.transferred = transferred
contributionDao.update(contribution).blockingAwait() contributionDao.update(contribution).blockingAwait()
@ -248,10 +249,18 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
* Create new notification for foreground service * Create new notification for foreground service
*/ */
private fun createForegroundInfo(): ForegroundInfo { private fun createForegroundInfo(): ForegroundInfo {
return ForegroundInfo( return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
1, ForegroundInfo(
createNotificationForForegroundService() 1,
) createNotificationForForegroundService(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
)
} else {
ForegroundInfo(
1,
createNotificationForForegroundService()
)
}
} }
override suspend fun getForegroundInfo(): ForegroundInfo { override suspend fun getForegroundInfo(): ForegroundInfo {
@ -282,9 +291,9 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
currentNotificationID = currentNotificationID =
(contribution.localUri.toString() + contribution.media.filename).hashCode() (contribution.localUri.toString() + contribution.media.filename).hashCode()
curentNotification currentNotification
getNotificationBuilder(CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL)!! getNotificationBuilder(CommonsApplication.NOTIFICATION_CHANNEL_ID_ALL)!!
curentNotification.setContentTitle( currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_progress_notification_title_start, R.string.upload_progress_notification_title_start,
displayTitle displayTitle
@ -294,7 +303,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationTag,
currentNotificationID, currentNotificationID,
curentNotification.build()!! currentNotification.build()
) )
val filename = media.filename val filename = media.filename
@ -312,14 +321,16 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
val stashUploadResult = uploadClient.uploadFileToStash( val stashUploadResult = uploadClient.uploadFileToStash(
filename!!, contribution, notificationProgressUpdater filename!!, contribution, notificationProgressUpdater
).onErrorReturn{ ).onErrorReturn{
return@onErrorReturn StashUploadResult(StashUploadState.FAILED,fileKey = null,errorMessage = it.message) return@onErrorReturn StashUploadResult(
StashUploadState.FAILED,fileKey = null,errorMessage = it.message
)
}.blockingSingle() }.blockingSingle()
when (stashUploadResult.state) { when (stashUploadResult.state) {
StashUploadState.SUCCESS -> { StashUploadState.SUCCESS -> {
//If the stash upload succeeds //If the stash upload succeeds
Timber.d("Upload to stash success for fileName: $filename") Timber.d("Upload to stash success for fileName: $filename")
Timber.d("Ensure uniqueness of filename"); Timber.d("Ensure uniqueness of filename")
val uniqueFileName = findUniqueFileName(filename!!) val uniqueFileName = findUniqueFileName(filename)
try { try {
//Upload the file from stash //Upload the file from stash
@ -335,7 +346,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
) )
wikidataEditService.addDepictionsAndCaptions(uploadResult, contribution) wikidataEditService.addDepictionsAndCaptions(uploadResult, contribution)
.blockingSubscribe(); .blockingSubscribe()
if(contribution.wikidataPlace==null){ if(contribution.wikidataPlace==null){
Timber.d( Timber.d(
"WikiDataEdit not required, upload success" "WikiDataEdit not required, upload success"
@ -378,12 +389,15 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
} }
else -> { else -> {
Timber.e("""upload file to stash failed with status: ${stashUploadResult.state}""") Timber.e("""upload file to stash failed with status: ${stashUploadResult.state}""")
contribution.state = Contribution.STATE_FAILED contribution.state = Contribution.STATE_FAILED
contribution.chunkInfo = null contribution.chunkInfo = null
contribution.errorInfo = stashUploadResult.errorMessage contribution.errorInfo = stashUploadResult.errorMessage
showErrorNotification(contribution) showErrorNotification(contribution)
contributionDao.saveSynchronous(contribution) contributionDao.saveSynchronous(contribution)
if (stashUploadResult.errorMessage.equals(CsrfTokenClient.INVALID_TOKEN_ERROR_MESSAGE)) { if (stashUploadResult.errorMessage.equals(
CsrfTokenClient.INVALID_TOKEN_ERROR_MESSAGE)
) {
Timber.e("Invalid Login, logging out") Timber.e("Invalid Login, logging out")
showInvalidLoginNotification(contribution) showInvalidLoginNotification(contribution)
val username = sessionManager.userName val username = sessionManager.userName
@ -475,7 +489,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
imageSha1 == modifiedSha1, imageSha1 == modifiedSha1,
true true
) )
); )
} }
} }
} }
@ -519,8 +533,8 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
private fun showSuccessNotification(contribution: Contribution) { private fun showSuccessNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
contribution.state=Contribution.STATE_COMPLETED contribution.state=Contribution.STATE_COMPLETED
curentNotification.setContentIntent(getPendingIntent(MainActivity::class.java)) currentNotification.setContentIntent(getPendingIntent(MainActivity::class.java))
curentNotification.setContentTitle( currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_completed_notification_title, R.string.upload_completed_notification_title,
displayTitle displayTitle
@ -531,7 +545,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@ -542,8 +556,8 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
@SuppressLint("StringFormatInvalid") @SuppressLint("StringFormatInvalid")
private fun showFailedNotification(contribution: Contribution) { private fun showFailedNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
curentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java)) currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java))
curentNotification.setContentTitle( currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_failed_notification_title, R.string.upload_failed_notification_title,
displayTitle displayTitle
@ -554,13 +568,13 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@SuppressLint("StringFormatInvalid") @SuppressLint("StringFormatInvalid")
private fun showInvalidLoginNotification(contribution: Contribution) { private fun showInvalidLoginNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
curentNotification.setContentTitle( currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_failed_notification_title, R.string.upload_failed_notification_title,
displayTitle displayTitle
@ -571,7 +585,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@ -581,7 +595,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
@SuppressLint("StringFormatInvalid") @SuppressLint("StringFormatInvalid")
private fun showErrorNotification(contribution: Contribution) { private fun showErrorNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
curentNotification.setContentTitle( currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_failed_notification_title, R.string.upload_failed_notification_title,
displayTitle displayTitle
@ -592,7 +606,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager?.notify( notificationManager?.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@ -602,8 +616,9 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
*/ */
private fun showPausedNotification(contribution: Contribution) { private fun showPausedNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
curentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java))
curentNotification.setContentTitle( currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java))
currentNotification.setContentTitle(
appContext.getString( appContext.getString(
R.string.upload_paused_notification_title, R.string.upload_paused_notification_title,
displayTitle displayTitle
@ -614,7 +629,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager!!.notify( notificationManager!!.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@ -624,8 +639,8 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
*/ */
private fun showCancelledNotification(contribution: Contribution) { private fun showCancelledNotification(contribution: Contribution) {
val displayTitle = contribution.media.displayTitle val displayTitle = contribution.media.displayTitle
curentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java)) currentNotification.setContentIntent(getPendingIntent(UploadProgressActivity::class.java))
curentNotification.setContentTitle( currentNotification.setContentTitle(
displayTitle displayTitle
) )
.setContentText("Upload has been cancelled!") .setContentText("Upload has been cancelled!")
@ -633,7 +648,7 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
.setOngoing(false) .setOngoing(false)
notificationManager!!.notify( notificationManager!!.notify(
currentNotificationTag, currentNotificationID, currentNotificationTag, currentNotificationID,
curentNotification.build() currentNotification.build()
) )
} }
@ -652,6 +667,6 @@ class UploadWorker(var appContext: Context, workerParams: WorkerParameters) :
} else { } else {
getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT) getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
} }
}; }
} }
} }

View file

@ -1,6 +1,7 @@
package fr.free.nrw.commons.utils; package fr.free.nrw.commons.utils;
import android.Manifest; import android.Manifest;
import android.Manifest.permission;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@ -20,24 +21,26 @@ import fr.free.nrw.commons.R;
import fr.free.nrw.commons.upload.UploadActivity; import fr.free.nrw.commons.upload.UploadActivity;
import java.util.List; import java.util.List;
public class PermissionUtils { public class PermissionUtils {
public static String[] PERMISSIONS_STORAGE = getPermissionsStorage();
public static String[] PERMISSIONS_STORAGE = isSDKVersionScopedStorageCompatible() ? static String[] getPermissionsStorage() {
isSDKVersionTiramisu() ? new String[]{ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
Manifest.permission.READ_MEDIA_IMAGES} : return new String[]{ Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE} Manifest.permission.READ_MEDIA_IMAGES,
: isSDKVersionTiramisu() ? new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_MEDIA_LOCATION };
Manifest.permission.READ_MEDIA_IMAGES} }
: new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, if(Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) {
Manifest.permission.READ_EXTERNAL_STORAGE}; return new String[]{ Manifest.permission.READ_MEDIA_IMAGES,
Manifest. permission.ACCESS_MEDIA_LOCATION };
private static boolean isSDKVersionScopedStorageCompatible() { }
return Build.VERSION.SDK_INT > Build.VERSION_CODES.P; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
} return new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_MEDIA_LOCATION };
public static boolean isSDKVersionTiramisu() { }
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU; return new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE };
} }
/** /**
@ -45,11 +48,11 @@ public class PermissionUtils {
* blocked(marked never ask again by the user) It open the app settings from where the user can * blocked(marked never ask again by the user) It open the app settings from where the user can
* manually give us the required permission. * manually give us the required permission.
* *
* @param activity * @param activity The Activity which requires a permission which has been blocked
*/ */
private static void askUserToManuallyEnablePermissionFromSettings(Activity activity) { private static void askUserToManuallyEnablePermissionFromSettings(final Activity activity) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", activity.getPackageName(), null); final Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri); intent.setData(uri);
activity.startActivityForResult(intent, activity.startActivityForResult(intent,
CommonsApplication.OPEN_APPLICATION_DETAIL_SETTINGS); CommonsApplication.OPEN_APPLICATION_DETAIL_SETTINGS);
@ -58,14 +61,13 @@ public class PermissionUtils {
/** /**
* Checks whether the app already has a particular permission * Checks whether the app already has a particular permission
* *
* @param activity * @param activity The Activity context to check permissions against
* @param permissions permissions to be checked * @param permissions An array of permission strings to check
* @return * @return `true if the app has all the specified permissions, `false` otherwise
*/ */
public static boolean hasPermission(Activity activity, String permissions[]) { public static boolean hasPermission(final Activity activity, final String[] permissions) {
boolean hasPermission = true; boolean hasPermission = true;
for (String permission : permissions for(final String permission : permissions) {
) {
hasPermission = hasPermission && hasPermission = hasPermission &&
ContextCompat.checkSelfPermission(activity, permission) ContextCompat.checkSelfPermission(activity, permission)
== PackageManager.PERMISSION_GRANTED; == PackageManager.PERMISSION_GRANTED;
@ -73,6 +75,17 @@ public class PermissionUtils {
return hasPermission; return hasPermission;
} }
public static boolean hasPartialAccess(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
return ContextCompat.checkSelfPermission(activity,
permission.READ_MEDIA_VISUAL_USER_SELECTED
) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(
activity, permission.READ_MEDIA_IMAGES
) == PackageManager.PERMISSION_DENIED;
}
return false;
}
/** /**
* Checks for a particular permission and runs the runnable to perform an action when the * Checks for a particular permission and runs the runnable to perform an action when the
* permission is granted Also, it shows a rationale if needed * permission is granted Also, it shows a rationale if needed
@ -99,9 +112,17 @@ public class PermissionUtils {
* @param rationaleMessage rationale message to be displayed when permission was denied. It * @param rationaleMessage rationale message to be displayed when permission was denied. It
* can be an invalid @StringRes * can be an invalid @StringRes
*/ */
public static void checkPermissionsAndPerformAction(Activity activity, public static void checkPermissionsAndPerformAction(
Runnable onPermissionGranted, @StringRes int rationaleTitle, final Activity activity,
@StringRes int rationaleMessage, String... permissions) { final Runnable onPermissionGranted,
final @StringRes int rationaleTitle,
final @StringRes int rationaleMessage,
final String... permissions
) {
if (hasPartialAccess(activity)) {
onPermissionGranted.run();
return;
}
checkPermissionsAndPerformAction(activity, onPermissionGranted, null, checkPermissionsAndPerformAction(activity, onPermissionGranted, null,
rationaleTitle, rationaleMessage, permissions); rationaleTitle, rationaleMessage, permissions);
} }
@ -125,25 +146,30 @@ public class PermissionUtils {
* @param rationaleTitle rationale title to be displayed when permission was denied * @param rationaleTitle rationale title to be displayed when permission was denied
* @param rationaleMessage rationale message to be displayed when permission was denied * @param rationaleMessage rationale message to be displayed when permission was denied
*/ */
public static void checkPermissionsAndPerformAction(Activity activity, public static void checkPermissionsAndPerformAction(
Runnable onPermissionGranted, Runnable onPermissionDenied, @StringRes int rationaleTitle, final Activity activity,
@StringRes int rationaleMessage, String... permissions) { final Runnable onPermissionGranted,
final Runnable onPermissionDenied,
final @StringRes int rationaleTitle,
final @StringRes int rationaleMessage,
final String... permissions
) {
Dexter.withActivity(activity) Dexter.withActivity(activity)
.withPermissions(permissions) .withPermissions(permissions)
.withListener(new MultiplePermissionsListener() { .withListener(new MultiplePermissionsListener() {
@Override @Override
public void onPermissionsChecked(MultiplePermissionsReport report) { public void onPermissionsChecked(final MultiplePermissionsReport report) {
if (report.areAllPermissionsGranted()) { if (report.areAllPermissionsGranted() || hasPartialAccess(activity)) {
onPermissionGranted.run(); onPermissionGranted.run();
return; return;
} }
if (report.isAnyPermissionPermanentlyDenied()) { if (report.isAnyPermissionPermanentlyDenied()) {
// permission is denied permanently, we will show user a dialog message. // permission is denied permanently, we will show user a dialog message.
DialogUtil.showAlertDialog(activity, activity.getString(rationaleTitle), DialogUtil.showAlertDialog(
activity, activity.getString(rationaleTitle),
activity.getString(rationaleMessage), activity.getString(rationaleMessage),
activity.getString(R.string.navigation_item_settings), activity.getString(R.string.navigation_item_settings),
null, null, () -> {
() -> {
askUserToManuallyEnablePermissionFromSettings(activity); askUserToManuallyEnablePermissionFromSettings(activity);
if (activity instanceof UploadActivity) { if (activity instanceof UploadActivity) {
((UploadActivity) activity).setShowPermissionsDialog(true); ((UploadActivity) activity).setShowPermissionsDialog(true);
@ -158,13 +184,16 @@ public class PermissionUtils {
} }
@Override @Override
public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, public void onPermissionRationaleShouldBeShown(
PermissionToken token) { final List<PermissionRequest> permissions,
final PermissionToken token
) {
if (rationaleTitle == -1 && rationaleMessage == -1) { if (rationaleTitle == -1 && rationaleMessage == -1) {
token.continuePermissionRequest(); token.continuePermissionRequest();
return; return;
} }
DialogUtil.showAlertDialog(activity, activity.getString(rationaleTitle), DialogUtil.showAlertDialog(
activity, activity.getString(rationaleTitle),
activity.getString(rationaleMessage), activity.getString(rationaleMessage),
activity.getString(android.R.string.ok), activity.getString(android.R.string.ok),
activity.getString(android.R.string.cancel), activity.getString(android.R.string.cancel),
@ -173,24 +202,19 @@ public class PermissionUtils {
((UploadActivity) activity).setShowPermissionsDialog(true); ((UploadActivity) activity).setShowPermissionsDialog(true);
} }
token.continuePermissionRequest(); token.continuePermissionRequest();
} },
,
() -> { () -> {
Toast.makeText(activity.getApplicationContext(), Toast.makeText(activity.getApplicationContext(),
R.string.permissions_are_required_for_functionality, R.string.permissions_are_required_for_functionality,
Toast.LENGTH_LONG) Toast.LENGTH_LONG
.show(); ).show();
token.cancelPermissionRequest(); token.cancelPermissionRequest();
if (activity instanceof UploadActivity) { if (activity instanceof UploadActivity) {
activity.finish(); activity.finish();
} }
} }, null, false
, );
null,
false);
} }
}) }).onSameThread().check();
.onSameThread()
.check();
} }
} }

View file

@ -9,10 +9,9 @@ import android.graphics.Bitmap;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Paint; import android.graphics.Paint;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.facebook.common.executors.CallerThreadExecutor; import com.facebook.common.executors.CallerThreadExecutor;
import com.facebook.common.references.CloseableReference; import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource; import com.facebook.datasource.DataSource;
@ -22,10 +21,8 @@ import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
import com.facebook.imagepipeline.image.CloseableImage; import com.facebook.imagepipeline.image.CloseableImage;
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.MediaClient; import fr.free.nrw.commons.media.MediaClient;
import javax.inject.Inject; import javax.inject.Inject;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.contributions.MainActivity;
import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.di.ApplicationlessInjection;
@ -41,17 +38,28 @@ import static android.content.Intent.ACTION_VIEW;
*/ */
public class PicOfDayAppWidget extends AppWidgetProvider { public class PicOfDayAppWidget extends AppWidgetProvider {
private CompositeDisposable compositeDisposable = new CompositeDisposable(); private final CompositeDisposable compositeDisposable = new CompositeDisposable();
@Inject @Inject
MediaClient mediaClient; MediaClient mediaClient;
void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { void updateAppWidget(
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.pic_of_day_app_widget); final Context context,
final AppWidgetManager appWidgetManager,
final int appWidgetId
) {
final RemoteViews views = new RemoteViews(
context.getPackageName(), R.layout.pic_of_day_app_widget);
// Launch App on Button Click // Launch App on Button Click
Intent viewIntent = new Intent(context, MainActivity.class); final Intent viewIntent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, viewIntent, PendingIntent.FLAG_IMMUTABLE); int flags = PendingIntent.FLAG_UPDATE_CURRENT;
if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {
flags |= PendingIntent.FLAG_IMMUTABLE;
}
final PendingIntent pendingIntent = PendingIntent.getActivity(
context, 0, viewIntent, flags);
views.setOnClickPendingIntent(R.id.camera_button, pendingIntent); views.setOnClickPendingIntent(R.id.camera_button, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views); appWidgetManager.updateAppWidget(appWidgetId, views);
@ -60,61 +68,76 @@ public class PicOfDayAppWidget extends AppWidgetProvider {
/** /**
* Loads the picture of the day using media wiki API * Loads the picture of the day using media wiki API
* @param context * @param context The application context.
* @param views * @param views The RemoteViews object used to update the App Widget UI.
* @param appWidgetManager * @param appWidgetManager The AppWidgetManager instance for managing the widget.
* @param appWidgetId * @param appWidgetId he ID of the App Widget to update.
*/ */
private void loadPictureOfTheDay(Context context, private void loadPictureOfTheDay(
RemoteViews views, final Context context,
AppWidgetManager appWidgetManager, final RemoteViews views,
int appWidgetId) { final AppWidgetManager appWidgetManager,
final int appWidgetId
) {
compositeDisposable.add(mediaClient.getPictureOfTheDay() compositeDisposable.add(mediaClient.getPictureOfTheDay()
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
response -> { response -> {
if (response != null) { if (response != null) {
views.setTextViewText(R.id.appwidget_title, response.getDisplayTitle()); views.setTextViewText(R.id.appwidget_title, response.getDisplayTitle());
// View in browser // View in browser
Intent viewIntent = new Intent(); final Intent viewIntent = new Intent();
viewIntent.setAction(ACTION_VIEW); viewIntent.setAction(ACTION_VIEW);
viewIntent.setData(Uri.parse(response.getPageTitle().getMobileUri())); viewIntent.setData(Uri.parse(response.getPageTitle().getMobileUri()));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, viewIntent, PendingIntent.FLAG_IMMUTABLE);
views.setOnClickPendingIntent(R.id.appwidget_image, pendingIntent);
loadImageFromUrl(response.getThumbUrl(), context, views, appWidgetManager, appWidgetId); int flags = PendingIntent.FLAG_UPDATE_CURRENT;
if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {
flags |= PendingIntent.FLAG_IMMUTABLE;
} }
}, final PendingIntent pendingIntent = PendingIntent.getActivity(
t -> Timber.e(t, "Fetching picture of the day failed") context, 0, viewIntent, flags);
views.setOnClickPendingIntent(R.id.appwidget_image, pendingIntent);
loadImageFromUrl(response.getThumbUrl(),
context, views, appWidgetManager, appWidgetId);
}
},
t -> Timber.e(t, "Fetching picture of the day failed")
)); ));
} }
/** /**
* Uses Fresco to load an image from Url * Uses Fresco to load an image from Url
* @param imageUrl * @param imageUrl The URL of the image to load.
* @param context * @param context The application context.
* @param views * @param views The RemoteViews object used to update the App Widget UI.
* @param appWidgetManager * @param appWidgetManager The AppWidgetManager instance for managing the widget.
* @param appWidgetId * @param appWidgetId he ID of the App Widget to update.
*/ */
private void loadImageFromUrl(String imageUrl, private void loadImageFromUrl(
Context context, final String imageUrl,
RemoteViews views, final Context context,
AppWidgetManager appWidgetManager, final RemoteViews views,
int appWidgetId) { final AppWidgetManager appWidgetManager,
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(imageUrl)).build(); final int appWidgetId
ImagePipeline imagePipeline = Fresco.getImagePipeline(); ) {
DataSource<CloseableReference<CloseableImage>> dataSource final ImageRequest request = ImageRequestBuilder
= imagePipeline.fetchDecodedImage(request, context); .newBuilderWithSource(Uri.parse(imageUrl)).build();
final ImagePipeline imagePipeline = Fresco.getImagePipeline();
final DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline
.fetchDecodedImage(request, context);
dataSource.subscribe(new BaseBitmapDataSubscriber() { dataSource.subscribe(new BaseBitmapDataSubscriber() {
@Override @Override
protected void onNewResultImpl(@Nullable Bitmap tempBitmap) { protected void onNewResultImpl(@Nullable final Bitmap tempBitmap) {
Bitmap bitmap = null; Bitmap bitmap = null;
if (tempBitmap != null) { if (tempBitmap != null) {
bitmap = Bitmap.createBitmap(tempBitmap.getWidth(), tempBitmap.getHeight(), Bitmap.Config.ARGB_8888); bitmap = Bitmap.createBitmap(
Canvas canvas = new Canvas(bitmap); tempBitmap.getWidth(), tempBitmap.getHeight(), Bitmap.Config.ARGB_8888
);
final Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(tempBitmap, 0f, 0f, new Paint()); canvas.drawBitmap(tempBitmap, 0f, 0f, new Paint());
} }
views.setImageViewBitmap(R.id.appwidget_image, bitmap); views.setImageViewBitmap(R.id.appwidget_image, bitmap);
@ -122,32 +145,37 @@ public class PicOfDayAppWidget extends AppWidgetProvider {
} }
@Override @Override
protected void onFailureImpl(DataSource<CloseableReference<CloseableImage>> dataSource) { protected void onFailureImpl(
final DataSource<CloseableReference<CloseableImage>> dataSource
) {
// Ignore failure for now. // Ignore failure for now.
} }
}, CallerThreadExecutor.getInstance()); }, CallerThreadExecutor.getInstance());
} }
@Override @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { public void onUpdate(
final Context context,
final AppWidgetManager appWidgetManager,
final int[] appWidgetIds
) {
ApplicationlessInjection ApplicationlessInjection
.getInstance(context .getInstance(context.getApplicationContext())
.getApplicationContext())
.getCommonsApplicationComponent() .getCommonsApplicationComponent()
.inject(this); .inject(this);
// There may be multiple widgets active, so update all of them // There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) { for (final int appWidgetId : appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId); updateAppWidget(context, appWidgetManager, appWidgetId);
} }
} }
@Override @Override
public void onEnabled(Context context) { public void onEnabled(final Context context) {
// Enter relevant functionality for when the first widget is created // Enter relevant functionality for when the first widget is created
} }
@Override @Override
public void onDisabled(Context context) { public void onDisabled(final Context context) {
// Enter relevant functionality for when the last widget is disabled // Enter relevant functionality for when the last widget is disabled
} }
} }

View file

@ -1,17 +1,25 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<include layout="@layout/custom_selector_toolbar" /> <include layout="@layout/custom_selector_toolbar" />
<androidx.compose.ui.platform.ComposeView
android:id="@+id/partial_access_indicator"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/toolbar_layout"/>
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment_container" android:id="@+id/fragment_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/bottom_layout" app:layout_constraintBottom_toTopOf="@id/bottom_layout"
app:layout_constraintTop_toBottomOf="@+id/toolbar_layout" /> app:layout_constraintTop_toBottomOf="@+id/partial_access_indicator"
tools:layout_editor_absoluteX="-16dp" />
<include layout="@layout/custom_selector_bottom_layout" /> <include layout="@layout/custom_selector_bottom_layout" />

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="top"> android:layout_gravity="top">
@ -8,7 +9,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingRight="@dimen/tiny_margin" android:paddingRight="@dimen/tiny_margin"
android:text="@string/bullet" android:text="&#8226;"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/normal_text" /> android:textSize="@dimen/normal_text"
tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>

View file

@ -113,7 +113,6 @@
<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="bullet"></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>

View file

@ -18,7 +18,6 @@
<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="bullet"></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="username">ব্যৱহাৰকাৰীনাম</string> <string name="username">ব্যৱহাৰকাৰীনাম</string>

View file

@ -63,7 +63,6 @@
<string name="preference_category_feedback">La to opinión</string> <string name="preference_category_feedback">La to opinión</string>
<string name="preference_category_privacy">Intimidá</string> <string name="preference_category_privacy">Intimidá</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Configuración</string> <string name="menu_settings">Configuración</string>
<string name="intent_share_upload_label">Xubir a Commons</string> <string name="intent_share_upload_label">Xubir a Commons</string>
<string name="username">Nome d\'usuariu</string> <string name="username">Nome d\'usuariu</string>

View file

@ -32,7 +32,6 @@
<string name="preference_category_feedback">Segnalazione</string> <string name="preference_category_feedback">Segnalazione</string>
<string name="preference_category_privacy">Privacy</string> <string name="preference_category_privacy">Privacy</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">\'Mbostaziune</string> <string name="menu_settings">\'Mbostaziune</string>
<string name="intent_share_upload_label">Careche sus a Commons</string> <string name="intent_share_upload_label">Careche sus a Commons</string>
<string name="username">Nome de l\'utende</string> <string name="username">Nome de l\'utende</string>

View file

@ -59,7 +59,6 @@
<string name="preference_category_feedback">Povratne informacije</string> <string name="preference_category_feedback">Povratne informacije</string>
<string name="preference_category_privacy">Privatnost</string> <string name="preference_category_privacy">Privatnost</string>
<string name="app_name">Ostava</string> <string name="app_name">Ostava</string>
<string name="bullet"></string>
<string name="menu_settings">Podešavanja</string> <string name="menu_settings">Podešavanja</string>
<string name="intent_share_upload_label">Otpremi na Ostavu</string> <string name="intent_share_upload_label">Otpremi na Ostavu</string>
<string name="upload_in_progress">Otpremanje u toku</string> <string name="upload_in_progress">Otpremanje u toku</string>

View file

@ -52,7 +52,6 @@
<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="bullet"></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="username">Ҡатнашыусы исеме</string> <string name="username">Ҡатнашыусы исеме</string>

View file

@ -51,7 +51,6 @@
<string name="preference_category_feedback">Umpan walik</string> <string name="preference_category_feedback">Umpan walik</string>
<string name="preference_category_privacy">Paragaan</string> <string name="preference_category_privacy">Paragaan</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Setélan</string> <string name="menu_settings">Setélan</string>
<string name="intent_share_upload_label">Unggah nuju Commons</string> <string name="intent_share_upload_label">Unggah nuju Commons</string>
<string name="upload_in_progress">Pangunggahan kantun mamargi</string> <string name="upload_in_progress">Pangunggahan kantun mamargi</string>

View file

@ -42,7 +42,6 @@
<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="bullet"></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="username">Потребителско име</string> <string name="username">Потребителско име</string>

View file

@ -75,7 +75,6 @@
<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="bullet"></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>
@ -527,4 +526,7 @@
<string name="report_content">এই বিষয়বস্তু সম্পর্কে অভিযোগ জানান</string> <string name="report_content">এই বিষয়বস্তু সম্পর্কে অভিযোগ জানান</string>
<string name="request_user_block">এই ব্যবহারকারীকে বাধাদনের অনুরোধ করুন</string> <string name="request_user_block">এই ব্যবহারকারীকে বাধাদনের অনুরোধ করুন</string>
<string name="permissions_are_required_for_functionality">কার্যকারিতার জন্য অনুমতি প্রয়োজন</string> <string name="permissions_are_required_for_functionality">কার্যকারিতার জন্য অনুমতি প্রয়োজন</string>
<string name="uploads">আপলোড</string>
<string name="pending">অমীমাংসিত</string>
<string name="failed">ব্যর্থ হয়েছে</string>
</resources> </resources>

View file

@ -59,7 +59,6 @@
<string name="preference_category_feedback">Sonjoù</string> <string name="preference_category_feedback">Sonjoù</string>
<string name="preference_category_privacy">Prevezded</string> <string name="preference_category_privacy">Prevezded</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Arventennoù</string> <string name="menu_settings">Arventennoù</string>
<string name="intent_share_upload_label">Enporzhiañ e Commons</string> <string name="intent_share_upload_label">Enporzhiañ e Commons</string>
<string name="username">Anv implijer</string> <string name="username">Anv implijer</string>

View file

@ -65,7 +65,6 @@
<string name="preference_category_feedback">Zpětná vazba</string> <string name="preference_category_feedback">Zpětná vazba</string>
<string name="preference_category_privacy">Soukromí</string> <string name="preference_category_privacy">Soukromí</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Nastavení</string> <string name="menu_settings">Nastavení</string>
<string name="intent_share_upload_label">Nahrát na Commons</string> <string name="intent_share_upload_label">Nahrát na Commons</string>
<string name="username">Uživatelské jméno</string> <string name="username">Uživatelské jméno</string>

View file

@ -48,7 +48,6 @@
<string name="preference_category_feedback">Adborth</string> <string name="preference_category_feedback">Adborth</string>
<string name="preference_category_privacy">Preifatrwydd</string> <string name="preference_category_privacy">Preifatrwydd</string>
<string name="app_name">Comin Wicimedia</string> <string name="app_name">Comin Wicimedia</string>
<string name="bullet"></string>
<string name="menu_settings">Gosodiadau</string> <string name="menu_settings">Gosodiadau</string>
<string name="intent_share_upload_label">Uwchlwytho i Comin</string> <string name="intent_share_upload_label">Uwchlwytho i Comin</string>
<string name="username">Enw defnyddiwr</string> <string name="username">Enw defnyddiwr</string>

View file

@ -67,7 +67,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Privatliv</string> <string name="preference_category_privacy">Privatliv</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Indstillinger</string> <string name="menu_settings">Indstillinger</string>
<string name="intent_share_upload_label">Upload til Commons</string> <string name="intent_share_upload_label">Upload til Commons</string>
<string name="upload_in_progress">Upload i gang</string> <string name="upload_in_progress">Upload i gang</string>
@ -182,7 +181,7 @@
<string name="tutorial_4_subtext_1">Titel: Sydneys operahus</string> <string name="tutorial_4_subtext_1">Titel: Sydneys operahus</string>
<string name="tutorial_4_subtext_2">Beskrivelse: Sydneys operahus set fra den anden side af bugten</string> <string name="tutorial_4_subtext_2">Beskrivelse: Sydneys operahus set fra den anden side af bugten</string>
<string name="tutorial_4_subtext_3">Kategorier: Sydneys operahus fra vest, Sydneys operahus eksterne visninger</string> <string name="tutorial_4_subtext_3">Kategorier: Sydneys operahus fra vest, Sydneys operahus eksterne visninger</string>
<string name="welcome_wikipedia_text">Bidrag med dine billeder. Hjælp Wikipedias artikler med at komme til live!</string> <string name="welcome_wikipedia_text">Bidrag med dine billeder og giv Wikipedia-artiklerne mere liv!</string>
<string name="welcome_wikipedia_subtext">Billeder på Wikipedia kommer fra Wikimedia Commons.</string> <string name="welcome_wikipedia_subtext">Billeder på Wikipedia kommer fra Wikimedia Commons.</string>
<string name="welcome_copyright_text">Dine billeder hjælper med til at uddanne folk rundt om i verden.</string> <string name="welcome_copyright_text">Dine billeder hjælper med til at uddanne folk rundt om i verden.</string>
<string name="welcome_copyright_subtext">Undgå ophavsretligt beskyttede materialer du har fundet på internettet samt billeder af plakater, bogomslag osv.</string> <string name="welcome_copyright_subtext">Undgå ophavsretligt beskyttede materialer du har fundet på internettet samt billeder af plakater, bogomslag osv.</string>
@ -783,5 +782,10 @@
<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>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Er du sikker på, at du vil annullere alle uploads?</string>
<string name="cancelling_all_the_uploads">Annullerer alle uploads...</string>
<string name="uploads">Uploads</string>
<string name="pending">Afventer</string>
<string name="failed">Mislykkedes</string>
<string name="could_not_load_place_data">Kunne ikke indlæse steddata</string> <string name="could_not_load_place_data">Kunne ikke indlæse steddata</string>
</resources> </resources>

View file

@ -97,7 +97,6 @@
<string name="preference_category_feedback">Rückmeldung</string> <string name="preference_category_feedback">Rückmeldung</string>
<string name="preference_category_privacy">Datenschutz</string> <string name="preference_category_privacy">Datenschutz</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Einstellungen</string> <string name="menu_settings">Einstellungen</string>
<string name="intent_share_upload_label">Zu Commons hochladen</string> <string name="intent_share_upload_label">Zu Commons hochladen</string>
<string name="upload_in_progress">Hochladen läuft</string> <string name="upload_in_progress">Hochladen läuft</string>

View file

@ -53,7 +53,6 @@
<string name="preference_category_feedback">Peyderıştış</string> <string name="preference_category_feedback">Peyderıştış</string>
<string name="preference_category_privacy">Dızdêniye</string> <string name="preference_category_privacy">Dızdêniye</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Eyari</string> <string name="menu_settings">Eyari</string>
<string name="intent_share_upload_label">Barê Embari ke</string> <string name="intent_share_upload_label">Barê Embari ke</string>
<string name="username">Namey karberi</string> <string name="username">Namey karberi</string>

View file

@ -20,6 +20,7 @@
* Nikosguard * Nikosguard
* Norhorn * Norhorn
* Panos78 * Panos78
* PeachyOne
* Protnet * Protnet
* Tgkarounos * Tgkarounos
* Vtalos * Vtalos
@ -81,7 +82,6 @@
<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">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Ρυθμίσεις</string> <string name="menu_settings">Ρυθμίσεις</string>
<string name="intent_share_upload_label">Μεταφόρτωση στα Commons</string> <string name="intent_share_upload_label">Μεταφόρτωση στα Commons</string>
<string name="upload_in_progress">Μεταφόρτωση σε εξέλιξη</string> <string name="upload_in_progress">Μεταφόρτωση σε εξέλιξη</string>
@ -403,57 +403,57 @@
<string name="notifications">Ενημερώσεις</string> <string name="notifications">Ενημερώσεις</string>
<string name="read_notifications">Ειδοποιήσεις (ανάγνωση)</string> <string name="read_notifications">Ειδοποιήσεις (ανάγνωση)</string>
<string name="display_nearby_notification">Εμφάνιση ειδοποίησης σε κοντινή απόσταση</string> <string name="display_nearby_notification">Εμφάνιση ειδοποίησης σε κοντινή απόσταση</string>
<string name="display_nearby_notification_summary">Πατήστε εδώ για να δείτε την πιο κοντινή θέση που χρειάζεται εικόνες</string> <string name="display_nearby_notification_summary">Εμφάνιση ειδοποίησης εντός της εφαρμογής για το πλησιέστερο μέρος που χρειάζεται φωτογραφίες</string>
<string name="list_sheet">Λίστα</string> <string name="list_sheet">Κατάλογος</string>
<string name="storage_permission">Άδεια Αποθήκευσης</string> <string name="storage_permission">Άδεια αποθήκευσης</string>
<string name="write_storage_permission_rationale_for_image_share">Χρειαζόμαστε την άδειά σας για πρόσβαση στον εξωτερικό χώρο αποθήκευσης της συσκευής σας προκειμένου να ανεβάσουμε εικόνες.</string> <string name="write_storage_permission_rationale_for_image_share">Χρειαζόμαστε την άδειά σας για πρόσβαση στον εξωτερικό χώρο αποθήκευσης της συσκευής σας προκειμένου να ανεβάσουμε εικόνες.</string>
<string name="nearby_notification_dismiss_message">Δεν θα δείτε την πιο κοντινή τοποθεσία που χρειάζεται επιπλέον εικόνες. Ωστόσο, μπορείτε να ενεργοποιήσετε ξανά αυτή την ειδοποίηση στις Ρυθμίσεις αν θέλετε.</string> <string name="nearby_notification_dismiss_message">Δε θα βλέπετε πλέον το πλησιέστερο μέρος που χρειάζεται φωτογραφίες. Ωστόσο, μπορείτε να ενεργοποιήσετε ξανά αυτή την ειδοποίηση στις Ρυθμίσεις, αν το επιθυμείτε.</string>
<string name="step_count">Βήμα %1$d από %2$d: %3$s</string> <string name="step_count">Βήμα %1$d από %2$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>
<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>
<string name="provider_bookmarks_location">Σελιδοδείκτες</string> <string name="provider_bookmarks_location">Σελιδοδείκτες</string>
<string name="log_collection_started">Η συλλογή αρχείων καταγραφής ξεκίνησε. ΕΠΑΝΑΚΙΝΗΣΤΕ την εφαρμογή, εκτελέστε την ενέργεια που θέλετε να καταγράψετε και, στη συνέχεια, πατήστε ξανά \"Αποστολή αρχείου καταγραφής\"</string> <string name="log_collection_started">Η συλλογή αρχείων καταγραφής ξεκίνησε. Παρακαλώ ΕΠΑΝΕΚΚΙΝΗΣΤΕ την εφαρμογή, εκτελέστε την ενέργεια που επιθυμείτε να καταγράψετε και, στη συνέχεια, πατήστε ξανά «Αποστολή αρχείου καταγραφής»</string>
<string name="deletion_reason_uploaded_by_mistake">Το ανέβασα κατά λάθος</string> <string name="deletion_reason_uploaded_by_mistake">Το μεταφόρτωσα κατά λάθος</string>
<string name="deletion_reason_publicly_visible">Δεν ήξερα ότι θα δημοσιευόταν</string> <string name="deletion_reason_publicly_visible">Δεν ήξερα ότι θα ήταν δημόσια ορατό</string>
<string name="deletion_reason_bad_for_my_privacy">Κατάλαβα πως δεν προστατεύονται τα ατομικά μου στοιχεία</string> <string name="deletion_reason_bad_for_my_privacy">Συνειδητοποίησα ότι είναι κακό για την ιδιωτικότητά μου</string>
<string name="deletion_reason_no_longer_want_public">Άλλαξα γνώμη, δεν θέλω να προβάλλεται πλέον δημόσια</string> <string name="deletion_reason_no_longer_want_public">Άλλαξα γνώμη, δε θέλω να προβάλλεται πλέον δημόσια</string>
<string name="deletion_reason_not_interesting">Λυπάμαι αυτή η εικόνα δεν έχει ενδιαφέρον για εγκυκλοπαίδεια</string> <string name="deletion_reason_not_interesting">Συγγνώμη, αυτή η φωτογραφία δεν είναι ενδιαφέρουσα για μια εγκυκλοπαίδεια</string>
<string name="uploaded_by_myself">Ανέβηκε από εμένα στο %1$s, χρησιμοποιήθηκε σε %2$d άρθρο(α)</string> <string name="uploaded_by_myself">Ανέβηκε από εμένα στο %1$s, χρησιμοποιήθηκε σε %2$d άρθρο/α</string>
<string name="no_uploads">Καλώς ήρθατε στα Commons!\n\nΑνεβάστε τα πρώτα σας πολυμέσα πατώντας το κουμπί προσθήκης.</string> <string name="no_uploads">Καλώς ήρθατε στα Commons!\n\nΑνεβάστε τα πρώτα σας πολυμέσα πατώντας το κουμπί της προσθήκης.</string>
<string name="no_categories_selected">Δεν επιλέχθηκαν κατηγορίες</string> <string name="no_categories_selected">Δεν επιλέχθηκαν κατηγορίες</string>
<string name="no_categories_selected_warning_desc">Εικόνες χωρίς κατηγορίες χρησιμοποιούνται σπάνια. Θέλετε πράγματι να συνεχίσετε δίχως να επιλέξετε κατηγορίες?</string> <string name="no_categories_selected_warning_desc">Οι εικόνες χωρίς κατηγορίες χρησιμοποιούνται σπάνια. Θέλετε πράγματι να συνεχίσετε δίχως να επιλέξετε κατηγορίες;</string>
<string name="no_depictions_selected">Δεν έχουν επιλεγεί αποτυπώσεις</string> <string name="no_depictions_selected">Δεν έχουν επιλεγεί απεικονίσεις</string>
<string name="no_depictions_selected_warning_desc">Οι εικόνες με απεικονίσεις βρίσκονται πιο εύκολα και πιο πιθανό να χρησιμοποιηθούν. Είστε βέβαιοι ότι θέλετε να συνεχίσετε χωρίς να επιλέξετε απεικονίσεις;</string> <string name="no_depictions_selected_warning_desc">Οι εικόνες με απεικονίσεις είναι πιο εύκολα ανιχνεύσιμες και πιο πιθανό να χρησιμοποιηθούν. Θέλετε σίγουρα να συνεχίσετε χωρίς να επιλέξετε απεικονίσεις;</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>
<string name="back_button_continue">Συνέχιση Μεταφόρτωσης</string> <string name="back_button_continue">Συνέχιση Μεταφόρτωσης</string>
<string name="upload_flow_all_images_in_set">(Για όλες τις εικόνες στο σετ)</string> <string name="upload_flow_all_images_in_set">(Για όλες τις εικόνες στο σύνολο)</string>
<string name="search_this_area">Αναζήτηση στην περιοχή</string> <string name="search_this_area">Αναζήτηση στην περιοχή</string>
<string name="nearby_card_permission_title">Αίτημα Άδειας</string> <string name="nearby_card_permission_title">Αίτημα Άδειας</string>
<string name="nearby_card_permission_explanation">Θα θέλατε να χρησιμοποιήσουμε την τρέχουσα τοποθεσία σας για να εμφανίσουμε το πλησιέστερο μέρος που χρειάζεται φωτογραφίες;</string> <string name="nearby_card_permission_explanation">Θα θέλατε να χρησιμοποιήσουμε την τρέχουσα τοποθεσία σας για να εμφανίσουμε το πλησιέστερο μέρος που χρειάζεται φωτογραφίες;</string>
<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="display_location_permission_explanation">Ζητήστε άδεια τοποθεσίας όταν χρειάζεται για τη λειτουργία προβολής κοντινής κάρτας ειδοποιήσεων.</string> <string name="display_location_permission_explanation">Ζητήστε άδεια τοποθεσίας όταν χρειάζεται για τη λειτουργία προβολής κοντινής κάρτας ειδοποιήσεων.</string>
<string name="achievements_fetch_failed">Κάτι πήγε στραβά. Δεν μπορέσαμε να ανακτήσουμε επιτεύγματα</string> <string name="achievements_fetch_failed">Κάτι πήγε στραβά. Δεν μπορέσαμε να ανακτήσουμε επιτεύγματα</string>
<string name="achievements_fetch_failed_ultimate_achievement">Έχετε κάνει τόσες πολλές συνεισφορές που δεν μπορεί να αντεπεξέλθει το σύστημα υπολογισμού των επιτευγμάτων μας. Αυτό είναι το απόλυτο επίτευγμα.</string> <string name="achievements_fetch_failed_ultimate_achievement">Έχετε κάνει τόσες πολλές συνεισφορές που δεν μπορεί να αντεπεξέλθει το σύστημα υπολογισμού επιτευγμάτων μας. Αυτό είναι το απόλυτο επίτευγμα.</string>
<string name="ends_on">Τελειώνει σε:</string> <string name="ends_on">Λήγει στις:</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="in_app_camera_location_access_explanation">Επιτρέψτε στην εφαρμογή να ανακτήσει τοποθεσία σε περίπτωση που η κάμερα δεν την καταγράψει. Ορισμένες κάμερες συσκευών δεν καταγράφουν τοποθεσία. Σε τέτοιες περιπτώσεις, το να αφήσετε την εφαρμογή να ανακτήσει και να επισυνάψει τοποθεσία καθιστά τη συνεισφορά σας πιο χρήσιμη. Μπορείτε να το αλλάξετε ανά πάσα στιγμή από τις Ρυθμίσεις</string> <string name="in_app_camera_location_access_explanation">Επιτρέψτε στην εφαρμογή να ανακτήσει τοποθεσία σε περίπτωση που η κάμερα δεν την καταγράψει. Ορισμένες κάμερες συσκευών δεν καταγράφουν τοποθεσία. Σε τέτοιες περιπτώσεις, το να αφήσετε την εφαρμογή να ανακτήσει και να επισυνάψει τοποθεσία καθιστά τη συνεισφορά σας πιο χρήσιμη. Μπορείτε να το αλλάξετε ανά πάσα στιγμή από τις Ρυθμίσεις</string>
<string name="option_allow">Επιτρέψτε</string> <string name="option_allow">Αποδοχή</string>
<string name="option_dismiss">Απόρριψη</string> <string name="option_dismiss">Απόρριψη</string>
<string name="in_app_camera_needs_location">Ενεργοποιήστε την πρόσβαση τοποθεσίας από τις Ρυθμίσεις και δοκιμάστε ξανά. \n\nΣημείωση: Η μεταφόρτωση ενδέχεται να μην έχει τοποθεσία, εάν η εφαρμογή δεν μπορεί να ανακτήσει την τοποθεσία από τη συσκευή σε σύντομο χρονικό διάστημα.</string> <string name="in_app_camera_needs_location">Ενεργοποιήστε την πρόσβαση τοποθεσίας από τις Ρυθμίσεις και δοκιμάστε ξανά.\n\nΣημείωση: Η μεταφόρτωση ενδέχεται να μην έχει τοποθεσία, εάν η εφαρμογή δεν μπορεί να ανακτήσει την τοποθεσία από τη συσκευή σε σύντομο χρονικό διάστημα.</string>
<string name="in_app_camera_location_permission_rationale">Η κάμερα εντός εφαρμογής χρειάζεται άδεια τοποθεσίας για να την επισυνάψει στις εικόνες σας σε περίπτωση που η τοποθεσία δεν είναι διαθέσιμη στο EXIF. Επιτρέψτε στην εφαρμογή να αποκτήσει πρόσβαση στην τοποθεσία σας και δοκιμάστε ξανά.\n\nΣημείωση: Η μεταφόρτωση ενδέχεται να μην έχει τοποθεσία εάν η εφαρμογή δεν μπορεί να ανακτήσει την τοποθεσία από τη συσκευή σε σύντομο χρονικό διάστημα.</string> <string name="in_app_camera_location_permission_rationale">Η κάμερα εντός εφαρμογής χρειάζεται άδεια τοποθεσίας για να την επισυνάψει στις εικόνες σας σε περίπτωση που η τοποθεσία δεν είναι διαθέσιμη στο EXIF. Επιτρέψτε στην εφαρμογή να αποκτήσει πρόσβαση στην τοποθεσία σας και δοκιμάστε ξανά.\n\nΣημείωση: Η μεταφόρτωση ενδέχεται να μην έχει τοποθεσία εάν η εφαρμογή δεν μπορεί να ανακτήσει την τοποθεσία από τη συσκευή σε σύντομο χρονικό διάστημα.</string>
<string name="in_app_camera_location_permission_denied">Η εφαρμογή δεν θα καταγράψει την τοποθεσία μαζί με τις φωτογραφίες λόγω έλλειψης άδειας τοποθεσίας</string> <string name="in_app_camera_location_permission_denied">Η εφαρμογή δε θα καταγράψει την τοποθεσία μαζί με τις φωτογραφίες λόγω έλλειψης άδειας τοποθεσίας</string>
<string name="in_app_camera_location_unavailable">Η εφαρμογή δεν θα καταγράψει την τοποθεσία μαζί με τις φωτογραφίες καθώς το GPS είναι απενεργοποιημένο</string> <string name="in_app_camera_location_unavailable">Η εφαρμογή δε θα καταγράψει την τοποθεσία μαζί με τις φωτογραφίες καθώς το GPS είναι απενεργοποιημένο</string>
<string name="open_document_photo_picker_title">Χρησιμοποιήστε εργαλείο επιλογής φωτογραφιών βάσει εγγράφων</string> <string name="open_document_photo_picker_title">Χρησιμοποιήστε εργαλείο επιλογής φωτογραφιών βάσει εγγράφων</string>
<string name="open_document_photo_picker_explanation">Το νέο εργαλείο επιλογής φωτογραφιών Android κινδυνεύει να χάσει τις πληροφορίες τοποθεσίας. Ενεργοποιήστε εάν φαίνεται ότι το χρησιμοποιείτε.</string> <string name="open_document_photo_picker_explanation">Το νέο εργαλείο επιλογής φωτογραφιών Android κινδυνεύει να χάσει τις πληροφορίες τοποθεσίας. Ενεργοποιήστε εάν φαίνεται ότι το χρησιμοποιείτε.</string>
<string name="location_loss_warning">Παρακαλώ σιγουρευτείτε ότι αύτος ο κανούριος επιλογέας Android δεν αφαιρεί την τοποθεσία από τις εικόνες.\n\nΠατήστε στο \'Διαβάστε περισσότερα\' για περισσότερες πληροφορίες.</string> <string name="location_loss_warning">Παρακαλώ σιγουρευτείτε ότι αύτος ο κανούριος επιλογέας Android δεν αφαιρεί την τοποθεσία από τις εικόνες.\n\nΠατήστε στο \'Διαβάστε περισσότερα\' για περισσότερες πληροφορίες.</string>
@ -797,5 +797,10 @@
<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">Τα σχόλιά σας δημοσιεύονται στην ακόλουθη σελίδα wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Εφαρμογή για κινητά/Σχόλια&lt;/a&gt;</string> <string name="feedback_destination_note">Τα σχόλιά σας δημοσιεύονται στην ακόλουθη σελίδα wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Εφαρμογή για κινητά/Σχόλια&lt;/a&gt;</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Είστε βέβαιοι ότι θέλετε να ακυρώσετε όλες τις μεταφορτώσεις;</string>
<string name="cancelling_all_the_uploads">Ακύρωση όλων των μεταφορτώσεων...</string>
<string name="uploads">Μεταφορτώσεις</string>
<string name="pending">Σε εκκρεμότητα</string>
<string name="failed">Απέτυχε</string>
<string name="could_not_load_place_data">Δεν ήταν δυνατή η φόρτωση δεδομένων της θέσης</string> <string name="could_not_load_place_data">Δεν ήταν δυνατή η φόρτωση δεδομένων της θέσης</string>
</resources> </resources>

View file

@ -68,7 +68,6 @@
<string name="preference_category_feedback">Prikomentado</string> <string name="preference_category_feedback">Prikomentado</string>
<string name="preference_category_privacy">Privateco</string> <string name="preference_category_privacy">Privateco</string>
<string name="app_name">Komunejo</string> <string name="app_name">Komunejo</string>
<string name="bullet"></string>
<string name="menu_settings">Agordoj</string> <string name="menu_settings">Agordoj</string>
<string name="intent_share_upload_label">Alŝuti al la Komunejo</string> <string name="intent_share_upload_label">Alŝuti al la Komunejo</string>
<string name="upload_in_progress">Alŝutante</string> <string name="upload_in_progress">Alŝutante</string>

View file

@ -32,6 +32,7 @@
* Juanman * Juanman
* Keneth Urrutia * Keneth Urrutia
* Ktranz * Ktranz
* Laquin
* Luisangelrg * Luisangelrg
* Macofe * Macofe
* Madamebiblio * Madamebiblio
@ -107,7 +108,6 @@
<string name="preference_category_feedback">Sugerencias</string> <string name="preference_category_feedback">Sugerencias</string>
<string name="preference_category_privacy">Privacidad</string> <string name="preference_category_privacy">Privacidad</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Configuración</string> <string name="menu_settings">Configuración</string>
<string name="intent_share_upload_label">Subir a Commons</string> <string name="intent_share_upload_label">Subir a Commons</string>
<string name="upload_in_progress">Carga en curso</string> <string name="upload_in_progress">Carga en curso</string>
@ -788,6 +788,9 @@
<string name="storage_permissions_denied">Se denegaron los permisos de almacenamiento</string> <string name="storage_permissions_denied">Se denegaron los permisos de almacenamiento</string>
<string name="unable_to_share_upload_item">No se puede compartir este elemento</string> <string name="unable_to_share_upload_item">No se puede compartir este elemento</string>
<string name="permissions_are_required_for_functionality">Se requieren permisos para la funcionalidad</string> <string name="permissions_are_required_for_functionality">Se requieren permisos para la funcionalidad</string>
<string name="learn_how_to_write_a_useful_description">Aprenda a escribir una descripción útil</string>
<string name="learn_how_to_write_a_useful_caption">Aprenda a escribir una leyenda útil</string>
<string name="see_your_achievements">Ver sus logros</string>
<string name="edit_image">Editar Imagen</string> <string name="edit_image">Editar Imagen</string>
<string name="edit_location">Editar Ubicación</string> <string name="edit_location">Editar Ubicación</string>
<string name="location_updated">¡Ubicación actualizada!</string> <string name="location_updated">¡Ubicación actualizada!</string>
@ -795,6 +798,8 @@
<string name="remove_location_warning_title">Eliminar el aviso de ubicación</string> <string name="remove_location_warning_title">Eliminar el aviso de ubicación</string>
<string name="remove_location_warning_desc">La ubicación hace que las imágenes sean más útiles y accesibles. ¿De verdad quieres eliminar la ubicación de esta foto?</string> <string name="remove_location_warning_desc">La ubicación hace que las imágenes sean más útiles y accesibles. ¿De verdad quieres eliminar la ubicación de esta foto?</string>
<string name="location_removed">¡Ubicación eliminada!</string> <string name="location_removed">¡Ubicación eliminada!</string>
<string name="send_thanks_to_author">Agradecer al autor</string>
<string name="error_sending_thanks">Error al enviar gracias al autor.</string>
<string name="invalid_login_message">Su sesión ha caducado. Inicie sesión de nuevo.</string> <string name="invalid_login_message">Su sesión ha caducado. Inicie sesión de nuevo.</string>
<string name="no_application_available_to_open_gpx_files">No hay ninguna aplicación disponible para abrir archivos GPX</string> <string name="no_application_available_to_open_gpx_files">No hay ninguna aplicación disponible para abrir archivos GPX</string>
<string name="file_saved_successfully">Guardado correctamente</string> <string name="file_saved_successfully">Guardado correctamente</string>
@ -810,4 +815,12 @@
</plurals> </plurals>
<string name="multiple_files_depiction">Recuerde que todas las imágenes en una carga múltiple tienen la misma categoría y representación. Si las imágenes no comparten representación y categoría, haga varias cargas por separado.</string> <string name="multiple_files_depiction">Recuerde que todas las imágenes en una carga múltiple tienen la misma categoría y representación. Si las imágenes no comparten representación y categoría, haga varias cargas por separado.</string>
<string name="multiple_files_depiction_header">Nota sobre cargas múltiples</string> <string name="multiple_files_depiction_header">Nota sobre cargas múltiples</string>
<string name="nearby_wikitalk">Informar a Wikidata sobre un problema relacionado con este elemento</string>
<string name="please_enter_some_comments">Por favor, escriba algunos comentarios.</string>
<string name="talk">Discusión</string>
<string name="write_something_about_the_item">Escriba algo sobre el elemento \'%1$s\'. Será visible públicamente.</string>
<string name="cancelling_all_the_uploads">Cancelando todas las subidas...</string>
<string name="uploads">Subidas</string>
<string name="pending">Pendiente</string>
<string name="failed">Falló</string>
</resources> </resources>

View file

@ -7,6 +7,7 @@
* Fitoschido * Fitoschido
* Iñaki LL * Iñaki LL
* Joseba * Joseba
* Laquin
* Mikel Ibaiba * Mikel Ibaiba
* Sator * Sator
* Subi * Subi
@ -24,6 +25,11 @@
<string name="add_new_contribution">Ekarpen berria gehitu</string> <string name="add_new_contribution">Ekarpen berria gehitu</string>
<string name="add_contribution_from_camera">Gehitu ekarpena kamaratik</string> <string name="add_contribution_from_camera">Gehitu ekarpena kamaratik</string>
<string name="add_contribution_from_photos">Gehitu ekarpena argazkietatik</string> <string name="add_contribution_from_photos">Gehitu ekarpena argazkietatik</string>
<string name="add_contribution_from_contributions_gallery">Gehitu ekarpena aurreko ekarpen-galeriatik</string>
<string name="show_captions">Irudi-oineko testuak</string>
<string name="row_item_language_description">Hizkuntzaren deskribapena</string>
<string name="row_item_caption">Irudi-oineko testua</string>
<string name="nearby_row_image">Irudia</string>
<string name="appwidget_img">Eguneko argazkia</string> <string name="appwidget_img">Eguneko argazkia</string>
<plurals name="uploads_pending_notification_indicator"> <plurals name="uploads_pending_notification_indicator">
<item quantity="one">Fitxategi %1$d kargatzen</item> <item quantity="one">Fitxategi %1$d kargatzen</item>
@ -56,7 +62,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Pribatutasuna</string> <string name="preference_category_privacy">Pribatutasuna</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Hobespenak</string> <string name="menu_settings">Hobespenak</string>
<string name="intent_share_upload_label">Commons-en kargatu</string> <string name="intent_share_upload_label">Commons-en kargatu</string>
<string name="username">Erabiltzaile izena</string> <string name="username">Erabiltzaile izena</string>
@ -67,6 +72,7 @@
<string name="signup">Eman izena</string> <string name="signup">Eman izena</string>
<string name="logging_in_title">Saioa hasten</string> <string name="logging_in_title">Saioa hasten</string>
<string name="logging_in_message">Mesedez itxaron…</string> <string name="logging_in_message">Mesedez itxaron…</string>
<string name="updating_caption_message">Itxaron mesedez…</string>
<string name="login_success">Sarrera arrakastatsua!</string> <string name="login_success">Sarrera arrakastatsua!</string>
<string name="login_failed">Saio hasieran akatsa!</string> <string name="login_failed">Saio hasieran akatsa!</string>
<string name="upload_failed">Fitxategia ez da aurkitu. Mesedez saiatu beste batekin.</string> <string name="upload_failed">Fitxategia ez da aurkitu. Mesedez saiatu beste batekin.</string>
@ -79,6 +85,7 @@
<string name="upload_progress_notification_title_finishing">%1$s igotzen bukatzen</string> <string name="upload_progress_notification_title_finishing">%1$s igotzen bukatzen</string>
<string name="upload_failed_notification_title">%1$s igotzean akatsa</string> <string name="upload_failed_notification_title">%1$s igotzean akatsa</string>
<string name="upload_failed_notification_subtitle">Ukitu ikusteko</string> <string name="upload_failed_notification_subtitle">Ukitu ikusteko</string>
<string name="upload_paused_notification_subtitle">Ukitu ikusteko</string>
<string name="title_activity_contributions">Nire azken igoerak</string> <string name="title_activity_contributions">Nire azken igoerak</string>
<string name="contribution_state_queued">Itxoite-zerrendan</string> <string name="contribution_state_queued">Itxoite-zerrendan</string>
<string name="contribution_state_failed">Hutseginda</string> <string name="contribution_state_failed">Hutseginda</string>
@ -97,7 +104,7 @@
<string name="login_failed_throttled">Sartzeko saiakera txar gehiegi. Mesedez saiatu zaitez minutu batzuk barru.</string> <string name="login_failed_throttled">Sartzeko saiakera txar gehiegi. Mesedez saiatu zaitez minutu batzuk barru.</string>
<string name="login_failed_blocked">Barka, baina erabiltzaile hau blokeatuta dago Commonsen</string> <string name="login_failed_blocked">Barka, baina erabiltzaile hau blokeatuta dago Commonsen</string>
<string name="login_failed_2fa_needed">Zure bi faktoreko autentifikazio kodea eman behar duzu.</string> <string name="login_failed_2fa_needed">Zure bi faktoreko autentifikazio kodea eman behar duzu.</string>
<string name="login_failed_generic" fuzzy="true">Saio hasieran akatsa</string> <string name="login_failed_generic">Saio hasieran akatsa</string>
<string name="share_upload_button">Igo</string> <string name="share_upload_button">Igo</string>
<string name="multiple_share_base_title">Izena eman bilduma honi</string> <string name="multiple_share_base_title">Izena eman bilduma honi</string>
<string name="provider_modifications">Aldaketak</string> <string name="provider_modifications">Aldaketak</string>
@ -114,6 +121,7 @@
<string name="title_activity_signup">Eman izena</string> <string name="title_activity_signup">Eman izena</string>
<string name="title_activity_featured_images">Nabarmendutako irudiak</string> <string name="title_activity_featured_images">Nabarmendutako irudiak</string>
<string name="title_activity_category_details">Kategoria</string> <string name="title_activity_category_details">Kategoria</string>
<string name="title_activity_review">Parekoen Ebaluazioa</string>
<string name="menu_about">Honi buruz</string> <string name="menu_about">Honi buruz</string>
<string name="about_license">Wikimedia Commons iturri-irekiko aplikazioa da Wikimedia komunitateko bolondresek sortu eta mantendutakoa. Wikimedia Fundazioa ez dago aplikazioaren sorreran, garapenean, edota mantenuan ibili.</string> <string name="about_license">Wikimedia Commons iturri-irekiko aplikazioa da Wikimedia komunitateko bolondresek sortu eta mantendutakoa. Wikimedia Fundazioa ez dago aplikazioaren sorreran, garapenean, edota mantenuan ibili.</string>
<string name="about_improve">&lt;a href=\"%1$s\"&gt;GitHub-eko gai&lt;/a&gt; berria sortu errore eta iradokizunen berri emateko.</string> <string name="about_improve">&lt;a href=\"%1$s\"&gt;GitHub-eko gai&lt;/a&gt; berria sortu errore eta iradokizunen berri emateko.</string>
@ -150,6 +158,7 @@
<string name="tutorial_3_text">Mesedez EZ igo:</string> <string name="tutorial_3_text">Mesedez EZ igo:</string>
<string name="tutorial_3_subtext_1">Autorretratuak edo zure lagunen argazkiak</string> <string name="tutorial_3_subtext_1">Autorretratuak edo zure lagunen argazkiak</string>
<string name="tutorial_3_subtext_2">Internetetik jaitsitako irudiak</string> <string name="tutorial_3_subtext_2">Internetetik jaitsitako irudiak</string>
<string name="tutorial_3_subtext_3">Aplikazio jabedunen pantaila-irudiak</string>
<string name="tutorial_4_text">Igoera adibidea:</string> <string name="tutorial_4_text">Igoera adibidea:</string>
<string name="tutorial_4_subtext_1">Izenburua: Sydney Opera House</string> <string name="tutorial_4_subtext_1">Izenburua: Sydney Opera House</string>
<string name="tutorial_4_subtext_2">Deskribapena: Sydney Opera House badiaren beste aldetik ikusita</string> <string name="tutorial_4_subtext_2">Deskribapena: Sydney Opera House badiaren beste aldetik ikusita</string>
@ -206,6 +215,7 @@
<string name="navigation_item_about">Honi buruz</string> <string name="navigation_item_about">Honi buruz</string>
<string name="navigation_item_settings">Ezarpenak</string> <string name="navigation_item_settings">Ezarpenak</string>
<string name="navigation_item_feedback">Feedback</string> <string name="navigation_item_feedback">Feedback</string>
<string name="navigation_item_feedback_github">Github-en bidez berrelikatu</string>
<string name="navigation_item_logout">Saioa itxi</string> <string name="navigation_item_logout">Saioa itxi</string>
<string name="navigation_item_info">Tutoriala</string> <string name="navigation_item_info">Tutoriala</string>
<string name="navigation_item_notification">Jakinarazpenak</string> <string name="navigation_item_notification">Jakinarazpenak</string>
@ -215,9 +225,12 @@
<string name="nearby_info_menu_wikidata_article">Wikidata itema</string> <string name="nearby_info_menu_wikidata_article">Wikidata itema</string>
<string name="nearby_info_menu_wikipedia_article">Wikipediako artikulua</string> <string name="nearby_info_menu_wikipedia_article">Wikipediako artikulua</string>
<string name="description_info">Mesedez, deskribatu multimedia elementua ahal duzun gehien: non hartu zen? zer erakusten du? zein da bere testuingurua? Mesedez, objektuak eta pertsonak deskribatu. Eman asmatzeko erraza ez den informazioa, adibidez, paisaia bat izatekotan, eguneko zein ordutan hartu den. Multimediak zerbait berezia erakusten badu, mesedez azaldu zerk egiten duen berezia.</string> <string name="description_info">Mesedez, deskribatu multimedia elementua ahal duzun gehien: non hartu zen? zer erakusten du? zein da bere testuingurua? Mesedez, objektuak eta pertsonak deskribatu. Eman asmatzeko erraza ez den informazioa, adibidez, paisaia bat izatekotan, eguneko zein ordutan hartu den. Multimediak zerbait berezia erakusten badu, mesedez azaldu zerk egiten duen berezia.</string>
<string name="upload_problem_exist">Irudi honen arazo potentzialak:</string>
<string name="upload_problem_image_dark">Irudia ilunegia da.</string> <string name="upload_problem_image_dark">Irudia ilunegia da.</string>
<string name="upload_problem_image_blurry">Argazkia lausoa da.</string>
<string name="upload_problem_image_duplicate">Irudia Commonsen badago.</string> <string name="upload_problem_image_duplicate">Irudia Commonsen badago.</string>
<string name="upload_problem_different_geolocation">Irudi hau beste leku batean hartu da.</string> <string name="upload_problem_different_geolocation">Irudi hau beste leku batean hartu da.</string>
<string name="upload_problem_do_you_continue">Oraindik igo nahi al duzu argazki hau?</string>
<string name="upload_connection_error_alert_title">Konektatzeko Errorea</string> <string name="upload_connection_error_alert_title">Konektatzeko Errorea</string>
<string name="upload_problem_image">Arazoak aurkitu dira irudian</string> <string name="upload_problem_image">Arazoak aurkitu dira irudian</string>
<string name="use_external_storage">Irudiak aplikazioan gorde</string> <string name="use_external_storage">Irudiak aplikazioan gorde</string>
@ -273,6 +286,7 @@
<string name="search_tab_title_depictions">Elementuak</string> <string name="search_tab_title_depictions">Elementuak</string>
<string name="explore_tab_title_featured">Nabarmendua</string> <string name="explore_tab_title_featured">Nabarmendua</string>
<string name="explore_tab_title_mobile">Mugikorretik igota</string> <string name="explore_tab_title_mobile">Mugikorretik igota</string>
<string name="explore_tab_title_map">Mapa</string>
<string name="successful_wikidata_edit">Irudia gehitu da %1$s-(e)ra Wikidatan!</string> <string name="successful_wikidata_edit">Irudia gehitu da %1$s-(e)ra Wikidatan!</string>
<string name="wikidata_edit_failure">Ezin izan da dagokion Wikidata entitatea eguneratu!</string> <string name="wikidata_edit_failure">Ezin izan da dagokion Wikidata entitatea eguneratu!</string>
<string name="menu_set_wallpaper">Horma-paper gisa ezarri</string> <string name="menu_set_wallpaper">Horma-paper gisa ezarri</string>
@ -328,6 +342,7 @@
<string name="provider_bookmarks">Lastermarkak</string> <string name="provider_bookmarks">Lastermarkak</string>
<string name="provider_bookmarks_location">Lastermarkak</string> <string name="provider_bookmarks_location">Lastermarkak</string>
<string name="search_this_area">Leku honetan bilatu</string> <string name="search_this_area">Leku honetan bilatu</string>
<string name="achievements_fetch_failed_ultimate_achievement">Hainbeste ekarpen egin dituzu, non gure lorpenetarako kalkulu-sistema ez den iristen. Hau da lorpen handiena.</string>
<string name="nominate_for_deletion_done">Egina</string> <string name="nominate_for_deletion_done">Egina</string>
<string name="review_thanks_yes_button_text">Hurrengo orria</string> <string name="review_thanks_yes_button_text">Hurrengo orria</string>
<string name="review_thanks_no_button_text">Bai, zergatik ez</string> <string name="review_thanks_no_button_text">Bai, zergatik ez</string>
@ -344,6 +359,8 @@
<string name="delete_helper_ask_reason_copyright_press_photo">Prentsarako argazkia</string> <string name="delete_helper_ask_reason_copyright_press_photo">Prentsarako argazkia</string>
<string name="delete_helper_ask_reason_copyright_logo">Logo</string> <string name="delete_helper_ask_reason_copyright_logo">Logo</string>
<string name="category_edit_helper_show_edit_title_success">Arrakasta</string> <string name="category_edit_helper_show_edit_title_success">Arrakasta</string>
<string name="you_have_no_achievements_yet">Oraindik ez duzu ekarpenik egin</string>
<string name="no_achievements_yet">%s(r)ek oraindik ez du ekarpenik egin</string>
<string name="title_app_shortcut_setting">Hobespenak</string> <string name="title_app_shortcut_setting">Hobespenak</string>
<string name="theme_dark_name">Iluna</string> <string name="theme_dark_name">Iluna</string>
<string name="theme_light_name">Argia</string> <string name="theme_light_name">Argia</string>
@ -358,4 +375,5 @@
<string name="leaderboard_column_count">Zenbaketa</string> <string name="leaderboard_column_count">Zenbaketa</string>
<string name="leaderboard_upload">Igo</string> <string name="leaderboard_upload">Igo</string>
<string name="leaderboard_nearby">Hurbilekoak</string> <string name="leaderboard_nearby">Hurbilekoak</string>
<string name="contributions_of_user">Erabiltzailearen ekarpenak: %s</string>
</resources> </resources>

View file

@ -73,7 +73,6 @@
<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="bullet"></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>

View file

@ -68,7 +68,6 @@
<string name="preference_category_feedback">Palaute</string> <string name="preference_category_feedback">Palaute</string>
<string name="preference_category_privacy">Yksityisyys</string> <string name="preference_category_privacy">Yksityisyys</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Asetukset</string> <string name="menu_settings">Asetukset</string>
<string name="intent_share_upload_label">Tallenna Commonsiin</string> <string name="intent_share_upload_label">Tallenna Commonsiin</string>
<string name="upload_in_progress">Tallennus käynnissä</string> <string name="upload_in_progress">Tallennus käynnissä</string>

View file

@ -101,7 +101,6 @@
<string name="preference_category_feedback">Commentaire</string> <string name="preference_category_feedback">Commentaire</string>
<string name="preference_category_privacy">Confidentialité</string> <string name="preference_category_privacy">Confidentialité</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet">&amp;#32;</string>
<string name="menu_settings">Paramètres</string> <string name="menu_settings">Paramètres</string>
<string name="intent_share_upload_label">Téléverser sur Commons</string> <string name="intent_share_upload_label">Téléverser sur Commons</string>
<string name="upload_in_progress">Chargement en cours</string> <string name="upload_in_progress">Chargement en cours</string>
@ -815,6 +814,8 @@
<string name="please_enter_some_comments">Merci de saisir vos commentaires</string> <string name="please_enter_some_comments">Merci de saisir vos commentaires</string>
<string name="talk">Discussion</string> <string name="talk">Discussion</string>
<string name="write_something_about_the_item">Ecrivez quelque chose sur l\'article \"%1$s\". Il sera visible par le public\nAjouter une définition terminologique pour ce terme</string> <string name="write_something_about_the_item">Ecrivez quelque chose sur l\'article \"%1$s\". Il sera visible par le public\nAjouter une définition terminologique pour ce terme</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_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>
<string name="could_not_load_place_data">Ne peut pas supporter les données</string> <string name="could_not_load_place_data">Ne peut pas supporter les données</string>

View file

@ -10,13 +10,27 @@
* Mguix * Mguix
* Toliño * Toliño
* Vivaelcelta * Vivaelcelta
* Xosecalvo
--> -->
<resources> <resources>
<string name="commons_facebook">Páxina de Commons en Facebook</string> <string name="commons_facebook">Páxina de Commons en Facebook</string>
<string name="commons_github">Código fonte de Commons en Github</string> <string name="commons_github">Código fonte de Commons en Github</string>
<string name="commons_logo">Logo de Commons</string> <string name="commons_logo">Logo de Commons</string>
<string name="commons_website">Sitio web de Commons</string> <string name="commons_website">Sitio web de Commons</string>
<string name="exit_location_picker">Saír do selector de localización</string>
<string name="submit">Enviar</string> <string name="submit">Enviar</string>
<string name="add_another_description">Engadir outra descrición</string>
<string name="add_new_contribution">Engadir unha nova achega</string>
<string name="add_contribution_from_camera">Engadir achega desde cámara</string>
<string name="add_contribution_from_photos">Engadir achega desde Photos</string>
<string name="add_contribution_from_contributions_gallery">Engadir achega desde galería de achegas previas</string>
<string name="show_captions">Lendas</string>
<string name="row_item_language_description">Descrición da lingua</string>
<string name="row_item_caption">Lenda</string>
<string name="show_captions_description">Descrición</string>
<string name="nearby_row_image">Imaxe</string>
<string name="nearby_all">Todo</string>
<string name="nearby_filter_search">Vista de busca</string>
<string name="appwidget_img">Imaxe do día</string> <string name="appwidget_img">Imaxe do día</string>
<plurals name="uploads_pending_notification_indicator"> <plurals name="uploads_pending_notification_indicator">
<item quantity="one">Cargando %1$d ficheiro</item> <item quantity="one">Cargando %1$d ficheiro</item>
@ -52,9 +66,9 @@
<string name="preference_category_feedback">Comentarios</string> <string name="preference_category_feedback">Comentarios</string>
<string name="preference_category_privacy">Privacidade</string> <string name="preference_category_privacy">Privacidade</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Configuracións</string> <string name="menu_settings">Configuracións</string>
<string name="intent_share_upload_label">Cargar en Commons</string> <string name="intent_share_upload_label">Cargar en Commons</string>
<string name="upload_in_progress">Envío en curso</string>
<string name="username">Nome de usuario</string> <string name="username">Nome de usuario</string>
<string name="password">Contrasinal</string> <string name="password">Contrasinal</string>
<string name="login_credential">Acceda á súa conta de Commons Beta</string> <string name="login_credential">Acceda á súa conta de Commons Beta</string>
@ -63,18 +77,25 @@
<string name="signup">Rexistrarse</string> <string name="signup">Rexistrarse</string>
<string name="logging_in_title">Accedendo ao sistema</string> <string name="logging_in_title">Accedendo ao sistema</string>
<string name="logging_in_message">Por favor, agarde…</string> <string name="logging_in_message">Por favor, agarde…</string>
<string name="login_success" fuzzy="true">Accedeu correctamente!</string> <string name="updating_caption_title">A actualizar lendas e descricións</string>
<string name="login_failed" fuzzy="true">Erro durante o inición de sesión!</string> <string name="updating_caption_message">Agarde un chisco…</string>
<string name="login_success">Accedeu correctamente!</string>
<string name="login_failed">Erro durante o inició 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="authentication_failed" fuzzy="true">Erro de autenticación, por favor inicia unha nova sesión</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="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="upload_completed_notification_title">Cargouse \"%1$s\"!</string> <string name="upload_completed_notification_title">Cargouse \"%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" fuzzy="true">Comezando a carga de \"%1$s\"</string> <string name="upload_progress_notification_title_start">A enviar 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" fuzzy="true">Erro ao cargar \"%1$s\"</string> <string name="upload_failed_notification_title">Produciuse un erro ao enviar %1$s</string>
<string name="upload_paused_notification_title">Deteuse o envío de %1$s</string>
<string name="upload_failed_notification_subtitle">Prema para amosalo</string> <string name="upload_failed_notification_subtitle">Prema para amosalo</string>
<string name="upload_paused_notification_subtitle">Toque para ver</string>
<string name="title_activity_contributions">As miñas subas recentes</string> <string name="title_activity_contributions">As miñas subas recentes</string>
<string name="contribution_state_queued">Na cola</string> <string name="contribution_state_queued">Na cola</string>
<string name="contribution_state_failed">Erróneo</string> <string name="contribution_state_failed">Erróneo</string>
@ -85,13 +106,15 @@
<string name="menu_nearby">Preto</string> <string name="menu_nearby">Preto</string>
<string name="provider_contributions">As miñas subidas</string> <string name="provider_contributions">As miñas subidas</string>
<string name="menu_share">Compartir</string> <string name="menu_share">Compartir</string>
<string name="menu_view_file_page">Ver a páxina do ficheiro</string>
<string name="share_title_hint">Lenda (Obrigatoria)</string> <string name="share_title_hint">Lenda (Obrigatoria)</string>
<string name="share_description_hint">Descrición</string> <string name="share_description_hint">Descrición</string>
<string name="login_failed_network" fuzzy="true">Erro ao acceder ao sistema: Fallou a rede</string> <string name="share_caption_hint">Lenda</string>
<string name="login_failed_network">Non foi posíbel acceder ao sistema - fallou a rede</string>
<string name="login_failed_throttled">Demasiados intentos incorrectos. Inténteo de novo nuns minutos.</string> <string name="login_failed_throttled">Demasiados intentos incorrectos. Inténteo de novo nuns minutos.</string>
<string name="login_failed_blocked">Sentímolo, este usuario está bloqueado en Commons</string> <string name="login_failed_blocked">Sentímolo, este usuario está bloqueado en Commons</string>
<string name="login_failed_2fa_needed">Debe proporcionar o seu código de autenticación de dous factores.</string> <string name="login_failed_2fa_needed">Debe proporcionar o seu código de autenticación de dous factores.</string>
<string name="login_failed_generic" fuzzy="true">Erro durante o inición de sesión</string> <string name="login_failed_generic">Fallou o inicio de sesión</string>
<string name="share_upload_button">Subir</string> <string name="share_upload_button">Subir</string>
<string name="multiple_share_base_title">Dea un nome a este conxunto</string> <string name="multiple_share_base_title">Dea un nome a este conxunto</string>
<string name="provider_modifications">Modificacións</string> <string name="provider_modifications">Modificacións</string>
@ -102,11 +125,13 @@
<string name="display_list_button">Lista</string> <string name="display_list_button">Lista</string>
<string name="contributions_subtitle_zero">(Aínda non hai subas)</string> <string name="contributions_subtitle_zero">(Aínda non hai subas)</string>
<string name="categories_not_found">Non se atopou ningunha categoría que coincidise con \"%1$s\"</string> <string name="categories_not_found">Non se atopou ningunha categoría que coincidise con \"%1$s\"</string>
<string name="depictions_not_found">Non se atopou ningún elemento de Wikidata que coincida con %1$s</string>
<string name="categories_skip_explanation">Engada categorías para facer máis accesibles as súas imaxes na Wikimedia Commons.\nComece a escribir para engadir categorías.</string> <string name="categories_skip_explanation">Engada categorías para facer máis accesibles as súas imaxes na Wikimedia Commons.\nComece a escribir para engadir categorías.</string>
<string name="categories_activity_title">Categorías</string> <string name="categories_activity_title">Categorías</string>
<string name="title_activity_settings">Configuracións</string> <string name="title_activity_settings">Configuracións</string>
<string name="title_activity_signup">Rexistrarse</string> <string name="title_activity_signup">Rexistrarse</string>
<string name="title_activity_featured_images">Imaxes destacadas</string> <string name="title_activity_featured_images">Imaxes destacadas</string>
<string name="title_activity_custom_selector">Selector personalizado</string>
<string name="title_activity_category_details">Categoría</string> <string name="title_activity_category_details">Categoría</string>
<string name="title_activity_review">Revisión por pares</string> <string name="title_activity_review">Revisión por pares</string>
<string name="menu_about">Acerca de</string> <string name="menu_about">Acerca de</string>
@ -160,6 +185,7 @@
<string name="detail_panel_cats_label">Categorías</string> <string name="detail_panel_cats_label">Categorías</string>
<string name="detail_panel_cats_loading">Cargando…</string> <string name="detail_panel_cats_loading">Cargando…</string>
<string name="detail_panel_cats_none">Ningunha seleccionada</string> <string name="detail_panel_cats_none">Ningunha seleccionada</string>
<string name="detail_caption_empty">Sen lenda</string>
<string name="detail_description_empty">Sen descrición</string> <string name="detail_description_empty">Sen descrición</string>
<string name="detail_discussion_empty">Sen conversas</string> <string name="detail_discussion_empty">Sen conversas</string>
<string name="detail_license_empty">Licenza descoñecida</string> <string name="detail_license_empty">Licenza descoñecida</string>
@ -170,8 +196,11 @@
<string name="location_permission_title">Pedindo Permiso de Localización</string> <string name="location_permission_title">Pedindo Permiso de Localización</string>
<string name="ok">Aceptar</string> <string name="ok">Aceptar</string>
<string name="warning">Aviso</string> <string name="warning">Aviso</string>
<string name="duplicate_file_name">Atopouse un nome de ficheiro duplicado</string>
<string name="upload">Enviar</string>
<string name="yes">Si</string> <string name="yes">Si</string>
<string name="no">Non</string> <string name="no">Non</string>
<string name="media_detail_caption">Lenda</string>
<string name="media_detail_title">Título</string> <string name="media_detail_title">Título</string>
<string name="media_detail_description">Descrición</string> <string name="media_detail_description">Descrición</string>
<string name="media_detail_discussion">Conversa</string> <string name="media_detail_discussion">Conversa</string>
@ -219,6 +248,8 @@
<string name="upload_problem_different_geolocation">Esta imaxe foi realizada nunha localización diferente.</string> <string name="upload_problem_different_geolocation">Esta imaxe foi realizada nunha localización diferente.</string>
<string name="upload_problem_fbmd">Por favor sube so fotografías feitas por ti mesmo. Non subas imaxes ou fotografías que atopes nas contas de Facebook de outros.</string> <string name="upload_problem_fbmd">Por favor sube so fotografías feitas por ti mesmo. Non subas imaxes ou fotografías que atopes nas contas de Facebook de outros.</string>
<string name="upload_problem_do_you_continue">Aínda quere subir esta imaxe?</string> <string name="upload_problem_do_you_continue">Aínda quere subir esta imaxe?</string>
<string name="upload_connection_error_alert_title">Erro de conexión</string>
<string name="upload_connection_error_alert_detail">O proceso de envío require acceso activo a Internet. Comprobe a súa conexión de rede.</string>
<string name="internet_downloaded">Por favor suba so fotografías feitas por vostede mesmo. Non suba imaxes ou fotografías que descargara da Internet.</string> <string name="internet_downloaded">Por favor suba so fotografías feitas por vostede mesmo. Non suba imaxes ou fotografías que descargara da Internet.</string>
<string name="use_external_storage">Gardar fotos tiradas na aplicación</string> <string name="use_external_storage">Gardar fotos tiradas na aplicación</string>
<string name="use_external_storage_summary">Gardar ao almacenamento interno as fotografías tiradas na aplicación</string> <string name="use_external_storage_summary">Gardar ao almacenamento interno as fotografías tiradas na aplicación</string>
@ -232,8 +263,8 @@
<string name="nominated_see_more">Ver páxina web para máis detalles</string> <string name="nominated_see_more">Ver páxina web para máis detalles</string>
<string name="skip_login">Omitir</string> <string name="skip_login">Omitir</string>
<string name="navigation_item_login">Acceder ao sistema</string> <string name="navigation_item_login">Acceder ao sistema</string>
<string name="skip_login_title" fuzzy="true">Realmente quere saltar o inicio de sesión?</string> <string name="skip_login_title">Confirma quequere saltar o inicio de sesión?</string>
<string name="skip_login_message" fuzzy="true">Terá que iniciar sesión para subir imaxes no futuro.</string> <string name="skip_login_message">Terá que iniciar sesión para enviar imaxes no futuro.</string>
<string name="login_alert_message">Por favor, inicie a sesión para usar esta funcionalidade</string> <string name="login_alert_message">Por favor, inicie a sesión para usar esta funcionalidade</string>
<string name="copy_wikicode">Copiar o texto wiki ó portapapeis</string> <string name="copy_wikicode">Copiar o texto wiki ó portapapeis</string>
<string name="wikicode_copied">Texto wiki copiado ó portapapeis</string> <string name="wikicode_copied">Texto wiki copiado ó portapapeis</string>
@ -245,6 +276,7 @@
<string name="nearby_commons">COMMONS</string> <string name="nearby_commons">COMMONS</string>
<string name="about_rate_us">Avalíenos</string> <string name="about_rate_us">Avalíenos</string>
<string name="about_faq">FAQ</string> <string name="about_faq">FAQ</string>
<string name="user_guide">Guía de uso</string>
<string name="welcome_skip_button">Saltar titorial</string> <string name="welcome_skip_button">Saltar titorial</string>
<string name="no_internet">Internet non dispoñible</string> <string name="no_internet">Internet non dispoñible</string>
<string name="error_notifications">Erro ó recuperar as notificacións</string> <string name="error_notifications">Erro ó recuperar as notificacións</string>
@ -257,6 +289,9 @@
<string name="about_translate_cancel">Cancelar</string> <string name="about_translate_cancel">Cancelar</string>
<string name="retry">Reintentar</string> <string name="retry">Reintentar</string>
<string name="showcase_view_whole_nearby_activity">Hai sitios preto de vostede que precisan fotos para ilustrar os seus artigos de Wikipedia</string> <string name="showcase_view_whole_nearby_activity">Hai sitios preto de vostede que precisan fotos para ilustrar os seus artigos de Wikipedia</string>
<string name="showcase_view_needs_photo">Este lugar precisa dunha foto.</string>
<string name="showcase_view_has_photo">Este lugar xa ten unha foto.</string>
<string name="showcase_view_no_longer_exists">Este lugar xa non existe.</string>
<string name="no_images_found">Non se atopou ningunha imaxeǃ</string> <string name="no_images_found">Non se atopou ningunha imaxeǃ</string>
<string name="error_loading_images">Houbo un erro ó subir as imaxes.</string> <string name="error_loading_images">Houbo un erro ó subir as imaxes.</string>
<string name="image_uploaded_by">Subida porː %1$s</string> <string name="image_uploaded_by">Subida porː %1$s</string>
@ -271,8 +306,10 @@
<string name="error_loading_categories">Houbo un erro ó cargar categorías.</string> <string name="error_loading_categories">Houbo un erro ó cargar categorías.</string>
<string name="search_tab_title_media">Multimedia</string> <string name="search_tab_title_media">Multimedia</string>
<string name="search_tab_title_categories">Categorías</string> <string name="search_tab_title_categories">Categorías</string>
<string name="search_tab_title_depictions">Elementos</string>
<string name="explore_tab_title_featured">Destacadas</string> <string name="explore_tab_title_featured">Destacadas</string>
<string name="explore_tab_title_mobile">Cargada vía móbil</string> <string name="explore_tab_title_mobile">Cargada vía móbil</string>
<string name="explore_tab_title_map">Mapa</string>
<string name="successful_wikidata_edit">A imaxe engadiuse a %1$s en Wikidata!</string> <string name="successful_wikidata_edit">A imaxe engadiuse a %1$s en Wikidata!</string>
<string name="wikidata_edit_failure">Fallou a actualización da entidade do Wikidata correspondente!</string> <string name="wikidata_edit_failure">Fallou a actualización da entidade do Wikidata correspondente!</string>
<string name="menu_set_wallpaper">Poñer como imaxe de fondo</string> <string name="menu_set_wallpaper">Poñer como imaxe de fondo</string>
@ -290,21 +327,27 @@
<string name="construction_event_answer">Fotografiás que amosen tecnoloxía ou cultura son moi benvidas en Commons</string> <string name="construction_event_answer">Fotografiás que amosen tecnoloxía ou cultura son moi benvidas en Commons</string>
<string name="congratulatory_message_quiz">Acadou un %1$s de respostas correctas. Parabéns!</string> <string name="congratulatory_message_quiz">Acadou un %1$s de respostas correctas. Parabéns!</string>
<string name="warning_for_no_answer">Escolla unha das dúas opcións para contestar a pregunta</string> <string name="warning_for_no_answer">Escolla unha das dúas opcións para contestar a pregunta</string>
<string name="user_not_logged_in" fuzzy="true">A sesión caducou, por favor inicia unha nova sesión.</string> <string name="user_not_logged_in">O inicio de sesión caducou. Inicie sesión de novo.</string>
<string name="quiz_result_share_message">Comparta o seu cuestionario cos seus amigos!</string> <string name="quiz_result_share_message">Comparta o seu cuestionario cos seus amigos!</string>
<string name="continue_message">Continuar</string> <string name="continue_message">Continuar</string>
<string name="correct">Resposta correcta</string> <string name="correct">Resposta correcta</string>
<string name="wrong">Resposta incorrecta</string> <string name="wrong">Resposta incorrecta</string>
<string name="quiz_screenshot_question">Pódese subir esta captura de pantalla?</string> <string name="quiz_screenshot_question">Pódese subir esta captura de pantalla?</string>
<string name="share_app_title">Compartir a aplicación</string> <string name="share_app_title">Compartir a aplicación</string>
<string name="error_fetching_nearby_places" fuzzy="true">Erro ó procurar os lugares próximos.</string> <string name="rotate">Xirar</string>
<string name="error_fetching_nearby_places">Non foi posíbel cargar lugares próximos</string>
<string name="no_pictures_in_this_area">Non hai imaxes nesta zona</string>
<string name="no_nearby_places_around">Non hai lugares próximos</string>
<string name="error_fetching_nearby_monuments">Produciuse un erro ao buscar monumentos próximos.</string>
<string name="no_recent_searches">Non hai procuras recentes</string> <string name="no_recent_searches">Non hai procuras recentes</string>
<string name="delete_recent_searches_dialog">Está seguro de querer borrar o seu historial de procuras?</string> <string name="delete_recent_searches_dialog">Está seguro de querer borrar o seu historial de procuras?</string>
<string name="cancel_upload_dialog">Confirma que quere cancelar este envío?</string>
<string name="delete_search_dialog">Queres borrar esta procura?</string> <string name="delete_search_dialog">Queres borrar esta procura?</string>
<string name="search_history_deleted">Eliminouse o historial de procuras</string> <string name="search_history_deleted">Eliminouse o historial de procuras</string>
<string name="nominate_delete">Nomear para borrado</string> <string name="nominate_delete">Nomear para borrado</string>
<string name="delete">Borrar</string> <string name="delete">Borrar</string>
<string name="Achievements">Logros</string> <string name="Achievements">Logros</string>
<string name="Profile">Perfil</string>
<string name="statistics">Estatísticas</string> <string name="statistics">Estatísticas</string>
<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>
@ -355,18 +398,22 @@
<string name="no_uploads">Dámoslle a benvida ó Commonsǃ\n\nCargue o seu primeiro ficheiro premendo no botón Engadir.</string> <string name="no_uploads">Dámoslle a benvida ó Commonsǃ\n\nCargue o seu primeiro ficheiro premendo no botón Engadir.</string>
<string name="no_categories_selected">Non hai categorías seleccionadas</string> <string name="no_categories_selected">Non hai categorías seleccionadas</string>
<string name="no_categories_selected_warning_desc">As imaxes sen categorías só son utilizables en contadas ocasións. Está seguro de que quere continuar sen seleccionar categorías?</string> <string name="no_categories_selected_warning_desc">As imaxes sen categorías só son utilizables en contadas ocasións. Está seguro de que quere continuar sen seleccionar categorías?</string>
<string name="upload_flow_all_images_in_set" fuzzy="true">(Para tódalas imaxes no conxunto)</string> <string name="back_button_warning">Cancelar envío</string>
<string name="back_button_continue">Continuar co envío</string>
<string name="upload_flow_all_images_in_set">(Para tódalas imaxes do conxunto)</string>
<string name="search_this_area">Procurar nesta área</string> <string name="search_this_area">Procurar nesta área</string>
<string name="nearby_card_permission_title">Solicitude de permisos</string> <string name="nearby_card_permission_title">Solicitude de permisos</string>
<string name="nearby_card_permission_explanation">Desexa que usemos a súa localizacións actual para amosarlle o lugar máis preto que precisa imaxes?</string> <string name="nearby_card_permission_explanation">Desexa que usemos a súa localizacións actual para amosarlle o lugar máis preto que precisa imaxes?</string>
<string name="unable_to_display_nearest_place">Imposible amosar o sitio máis achegado que precisa fotos sen ter permisos de localización</string> <string name="unable_to_display_nearest_place">Imposible amosar o sitio máis achegado que precisa fotos sen ter permisos de localización</string>
<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" fuzzy="true">Amosar 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" fuzzy="true">Algo foi mal, non puidemos obter as túas achegas</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_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" fuzzy="true">Esta función require 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>
@ -383,8 +430,8 @@
<string name="send_thank_success_title">Enviando agradecementos: Éxito</string> <string name="send_thank_success_title">Enviando agradecementos: Éxito</string>
<string name="send_thank_success_message">Enviado correctamente o agradecemento a %1$s</string> <string name="send_thank_success_message">Enviado correctamente o agradecemento a %1$s</string>
<string name="send_thank_toast">Enviando agradecementos por %1$s</string> <string name="send_thank_toast">Enviando agradecementos por %1$s</string>
<string name="review_thanks_yes_button_text" fuzzy="true">Si, por que non</string> <string name="review_thanks_yes_button_text">Imaxe seguinte</string>
<string name="review_thanks_no_button_text" fuzzy="true">Seguinte imaxe</string> <string name="review_thanks_no_button_text">Si, por que non</string>
<string name="no_image">Ningunha imaxe usada</string> <string name="no_image">Ningunha imaxe usada</string>
<string name="no_image_reverted">Ningunha imaxe revertida</string> <string name="no_image_reverted">Ningunha imaxe revertida</string>
<string name="no_image_uploaded">Ningunha imaxe subida</string> <string name="no_image_uploaded">Ningunha imaxe subida</string>
@ -396,6 +443,8 @@
<string name="error_occurred_in_picking_images">Houbo un erro ó escoller as imaxes</string> <string name="error_occurred_in_picking_images">Houbo un erro ó escoller as imaxes</string>
<string name="please_wait">Por favor, agarde…</string> <string name="please_wait">Por favor, agarde…</string>
<string name="skip_image">Saltar esta imaxe</string> <string name="skip_image">Saltar esta imaxe</string>
<string name="manage_exif_tags">Xestionar etiquetas EXIF</string>
<string name="manage_exif_tags_summary">Seleccione que etiquetas EXIF manter nos envíos</string>
<string name="exif_tag_name_author">Autor</string> <string name="exif_tag_name_author">Autor</string>
<string name="exif_tag_name_copyright">Dereitos de autoría</string> <string name="exif_tag_name_copyright">Dereitos de autoría</string>
<string name="exif_tag_name_location">Localización</string> <string name="exif_tag_name_location">Localización</string>
@ -407,16 +456,43 @@
<string name="image_info">Información da imaxe</string> <string name="image_info">Información da imaxe</string>
<string name="no_categories_found">Non se atoparon categorías</string> <string name="no_categories_found">Non se atoparon categorías</string>
<string name="upload_cancelled">Cancelouse a carga</string> <string name="upload_cancelled">Cancelouse a carga</string>
<string name="default_description_language">Lingua de descrición predeterminada</string>
<string name="delete_helper_show_deletion_title">Nomeando para borrado</string> <string name="delete_helper_show_deletion_title">Nomeando para borrado</string>
<string name="delete_helper_show_deletion_title_success">Todo correcto</string> <string name="delete_helper_show_deletion_title_success">Todo correcto</string>
<string name="delete_helper_show_deletion_title_failed">Fallou</string> <string name="delete_helper_show_deletion_title_failed">Fallou</string>
<string name="delete_helper_ask_spam_selfie" fuzzy="true">Un autorretrato</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_blurry" fuzzy="true">Borrosa</string> <string name="delete_helper_ask_spam_blurry" fuzzy="true">Borrosa</string>
<string name="delete_helper_ask_spam_nonsense" fuzzy="true">Sen sentido</string> <string name="delete_helper_ask_spam_nonsense" fuzzy="true">Sen sentido</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>
<string name="delete_helper_ask_alert_set_positive_button_reason">Porque é</string> <string name="delete_helper_ask_alert_set_positive_button_reason">Porque é</string>
<string name="category_edit_helper_show_edit_title_success">Todo correcto</string>
<plurals name="category_edit_helper_show_edit_message_if">
<item quantity="one">Engádese a categoría %1$s .</item>
<item quantity="other">Engádense as categorías %1$s .</item>
</plurals>
<string name="category_edit_helper_edit_message_else">Non foi posíbel engadir categorías.</string>
<string name="category_edit_button_text">Actualizar categorías</string>
<string name="depictions_edit_helper_make_edit_toast">A tentar actualizar representacións.</string>
<string name="depictions_edit_helper_show_edit_title">Editar representacións</string>
<plurals name="depictions_edit_helper_show_edit_message_if">
<item quantity="one">Engádese a representación %1$s .</item>
<item quantity="other">Engádense as representacións %1$s .</item>
</plurals>
<string name="depictions_edit_helper_edit_message_else">Non foi posíbel engadir representacións.</string>
<string name="coordinates_edit_helper_make_edit_toast">A tentar actualizar coordenadas.</string>
<string name="coordinates_edit_helper_show_edit_title">Actualización de coordenadas</string>
<string name="description_edit_helper_show_edit_title">Actualización da descrición</string>
<string name="caption_edit_helper_show_edit_title">Actualización da lenda</string>
<string name="coordinates_edit_helper_show_edit_title_success">Todo correcto</string>
<string name="coordinates_edit_helper_show_edit_message">Engádense as coordenadas %1$s .</string>
<string name="description_edit_helper_show_edit_message">Engádense as descricións.</string>
<string name="caption_edit_helper_show_edit_message">Engádese a lenda.</string>
<string name="coordinates_edit_helper_edit_message_else">Non foi posíbel engadir as coordenadas.</string>
<string name="description_edit_helper_edit_message_else">Non foi posíbel engadir descricións.</string>
<string name="caption_edit_helper_edit_message_else">Non foi posíbel engadir lenda.</string>
<string name="share_image_via">Compartir imaxe vía</string> <string name="share_image_via">Compartir imaxe vía</string>
<string name="account_created">Conta creada!</string> <string name="account_created">Conta creada!</string>
<string name="place_state_exists">Existe</string> <string name="place_state_exists">Existe</string>
@ -429,4 +505,28 @@
<string name="setting_wallpaper_dialog_title">Definir como fondo de pantalla</string> <string name="setting_wallpaper_dialog_title">Definir como fondo de pantalla</string>
<string name="theme_dark_name">Escuro</string> <string name="theme_dark_name">Escuro</string>
<string name="theme_light_name">Claro</string> <string name="theme_light_name">Claro</string>
<string name="todo_improve">Melloras suxeridas:</string>
<string name="missing_category">- Engadir categorías a esta imaxe para mellorar a usabilidade.</string>
<string name="missing_article">- Engade esta imaxe ao artigo asociado da Wikipedia que non ten imaxes.</string>
<string name="add_picture_to_wikipedia_article_title">Engadir imaxe á Wikipedia</string>
<string name="confirm">Confirmar</string>
<string name="instructions_title">Instrucións</string>
<string name="wikipedia_instructions_step_7">7. Publicar o artigo</string>
<string name="pause">pausar</string>
<string name="resume">continuar</string>
<string name="paused">En pausa</string>
<string name="more">Máis</string>
<string name="bookmarks">Marcadores</string>
<string name="achievements_tab_title">Logros</string>
<string name="leaderboard_tab_title">Tǃboa de maior actividade</string>
<string name="rank_prefix">Clasificaciónː</string>
<string name="count_prefix">Número:</string>
<string name="leaderboard_column_rank">Clasificación</string>
<string name="menu_set_avatar">Establecer como avatar</string>
<string name="leaderboard_yearly">Anualmente</string>
<string name="leaderboard_weekly">Semanalmente</string>
<string name="leaderboard_all_time">Todo o tempo</string>
<string name="leaderboard_upload">Enviar</string>
<string name="leaderboard_my_rank_button_text">A miña clasificación</string>
<string name="limited_connection_enabled">Activouse o modo de conexión limitadoǃ</string>
</resources> </resources>

View file

@ -4,6 +4,7 @@
* Abijeet Patro * Abijeet Patro
* Anamdas * Anamdas
* Anandra * Anandra
* AnupamM
* Bhatakati aatma * Bhatakati aatma
* Gopalindians * Gopalindians
* Nilesh shukla * Nilesh shukla
@ -60,7 +61,6 @@
<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="bullet"></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="username">सदस्य नाम</string> <string name="username">सदस्य नाम</string>
@ -349,4 +349,9 @@
<string name="leaderboard_column_count">गणना</string> <string name="leaderboard_column_count">गणना</string>
<string name="custom_selector_dismiss_limit_warning_button_text">रद्द करें</string> <string name="custom_selector_dismiss_limit_warning_button_text">रद्द करें</string>
<string name="talk">वार्ता</string> <string name="talk">वार्ता</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">क्या आप वाकई सभी अपलोड रद्द करना चाहते हैं?</string>
<string name="cancelling_all_the_uploads">सभी अपलोड रद्द किये जा रहे हैं...</string>
<string name="uploads">अपलोड</string>
<string name="pending">लंबित</string>
<string name="failed">विफल हुआ</string>
</resources> </resources>

View file

@ -37,7 +37,6 @@
<string name="preference_category_feedback">Povratna informacija</string> <string name="preference_category_feedback">Povratna informacija</string>
<string name="preference_category_privacy">Privatnost</string> <string name="preference_category_privacy">Privatnost</string>
<string name="app_name">Zajednički poslužitelj</string> <string name="app_name">Zajednički poslužitelj</string>
<string name="bullet"></string>
<string name="menu_settings">Postavke</string> <string name="menu_settings">Postavke</string>
<string name="intent_share_upload_label">Prenesi na Zajednički poslužitelj</string> <string name="intent_share_upload_label">Prenesi na Zajednički poslužitelj</string>
<string name="username">Suradničko ime</string> <string name="username">Suradničko ime</string>

View file

@ -58,7 +58,6 @@
<string name="preference_category_feedback">Visszajelzés</string> <string name="preference_category_feedback">Visszajelzés</string>
<string name="preference_category_privacy">Adatvédelem</string> <string name="preference_category_privacy">Adatvédelem</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Beállítások</string> <string name="menu_settings">Beállítások</string>
<string name="intent_share_upload_label">Feltöltés a Commonsra</string> <string name="intent_share_upload_label">Feltöltés a Commonsra</string>
<string name="upload_in_progress">Feltöltés folyamatban</string> <string name="upload_in_progress">Feltöltés folyamatban</string>

View file

@ -766,7 +766,7 @@
<string name="please_enter_some_comments">Per favor insere alcun commentos</string> <string name="please_enter_some_comments">Per favor insere alcun commentos</string>
<string name="talk">Discussion</string> <string name="talk">Discussion</string>
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">%1$s non existe plus, necun imagine pote jammais esser prendite de illo.</string> <string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">%1$s non existe plus, necun imagine pote jammais esser prendite de illo.</string>
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude" fuzzy="true">\'%1$s\' es in un altere loco (per favor specifica le loco correcte hic infra, si possibile indica le latitude/longitude correcte).</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">%1$s es in un altere loco. Per favor specifica le loco correcte hic infra, e si possibile, indica le latitude e longitude correcte.</string>
<string name="other_problem_or_information_please_explain_below">Altere problema o information (per favor explica hic infra).</string> <string name="other_problem_or_information_please_explain_below">Altere problema o information (per favor explica hic infra).</string>
<string name="feedback_destination_note">Tu retroaction apparera sur le sequente pagina wiki: &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">Tu retroaction apparera sur le sequente pagina wiki: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobile app/Feedback&lt;/a&gt;</string>
</resources> </resources>

View file

@ -3,8 +3,10 @@
* Agam Riyandana * Agam Riyandana
* Akmaie Ajam * Akmaie Ajam
* Arifin.wijaya * Arifin.wijaya
* Birusian
* DARMAS BUDI SANTOSO * DARMAS BUDI SANTOSO
* Daud I.F. Argana * Daud I.F. Argana
* Fafau06
* Farras * Farras
* Gombang * Gombang
* Hidayatsrf * Hidayatsrf
@ -68,7 +70,6 @@
<string name="preference_category_feedback">Umpan balik</string> <string name="preference_category_feedback">Umpan balik</string>
<string name="preference_category_privacy">Privasi</string> <string name="preference_category_privacy">Privasi</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Pengaturan</string> <string name="menu_settings">Pengaturan</string>
<string name="intent_share_upload_label">Unggah ke Commons</string> <string name="intent_share_upload_label">Unggah ke Commons</string>
<string name="upload_in_progress">Pengunggahan sedang berlangsung</string> <string name="upload_in_progress">Pengunggahan sedang berlangsung</string>
@ -240,6 +241,7 @@
<string name="navigation_item_about">Perihal</string> <string name="navigation_item_about">Perihal</string>
<string name="navigation_item_settings">Pengaturan</string> <string name="navigation_item_settings">Pengaturan</string>
<string name="navigation_item_feedback">Umpan balik</string> <string name="navigation_item_feedback">Umpan balik</string>
<string name="navigation_item_feedback_github">Ulasan melalui GitHub</string>
<string name="navigation_item_logout">Keluar</string> <string name="navigation_item_logout">Keluar</string>
<string name="navigation_item_info">Tutorial</string> <string name="navigation_item_info">Tutorial</string>
<string name="navigation_item_notification">Pemberitahuan</string> <string name="navigation_item_notification">Pemberitahuan</string>
@ -349,6 +351,7 @@
<string name="share_app_title">Bagikan Aplikasi</string> <string name="share_app_title">Bagikan Aplikasi</string>
<string name="rotate">Putar</string> <string name="rotate">Putar</string>
<string name="error_fetching_nearby_places" fuzzy="true">Galat saat mengambil tempat terdekat.</string> <string name="error_fetching_nearby_places" fuzzy="true">Galat saat mengambil tempat terdekat.</string>
<string name="no_pictures_in_this_area">Tidak ada gambar di area ini</string>
<string name="no_nearby_places_around">Tidak ditemukan tempat yang dekat</string> <string name="no_nearby_places_around">Tidak ditemukan tempat yang dekat</string>
<string name="error_fetching_nearby_monuments">Galat saat mengambil monumen terdekat.</string> <string name="error_fetching_nearby_monuments">Galat saat mengambil monumen terdekat.</string>
<string name="no_recent_searches">Tidak ada pencarian terbaru</string> <string name="no_recent_searches">Tidak ada pencarian terbaru</string>
@ -729,7 +732,19 @@
<string name="learn_how_to_write_a_useful_description">Pelajari cara menulis deskripsi yang berguna</string> <string name="learn_how_to_write_a_useful_description">Pelajari cara menulis deskripsi yang berguna</string>
<string name="learn_how_to_write_a_useful_caption">Pelajari cara menulis takarir yang berguna</string> <string name="learn_how_to_write_a_useful_caption">Pelajari cara menulis takarir yang berguna</string>
<string name="see_your_achievements">Lihat pencapaian Anda</string> <string name="see_your_achievements">Lihat pencapaian Anda</string>
<string name="edit_image">Edit Gambar</string>
<string name="edit_location">Edit Lokasi</string>
<string name="location_updated">Lokasi diperbarui!</string>
<string name="remove_location">Hapus Lokasi</string>
<string name="remove_location_warning_title">Hapus Peringatan Lokasi</string>
<string name="remove_location_warning_desc">Lokasi membuat gambar lebih berguna dan mudah ditemukan. Apakah Anda benar-benar ingin menghapus lokasi dari gambar ini?</string>
<string name="location_removed">Lokasi dihapus!</string>
<plurals name="custom_picker_images_selected_title_appendix"> <plurals name="custom_picker_images_selected_title_appendix">
<item quantity="other">%d gambar dipilih</item> <item quantity="other">%d gambar dipilih</item>
</plurals> </plurals>
<string name="talk">Bicara</string>
<string name="cancelling_all_the_uploads">Membatalkan semua unggahan...</string>
<string name="uploads">Unggahan</string>
<string name="pending">Menunggu</string>
<string name="failed">Gagal</string>
</resources> </resources>

View file

@ -136,7 +136,7 @@
<string name="menu_about">Pri</string> <string name="menu_about">Pri</string>
<string name="about_license">La programo \'\'app\'\' di Wikimedia Commons esas libera di autoroyuro, e kreesis e mantenesas da volontarii de la komunitato Wikimedia. La Fonduro Wikimedia ne partoprenas en lua kreo, developo o manteno.</string> <string name="about_license">La programo \'\'app\'\' di Wikimedia Commons esas libera di autoroyuro, e kreesis e mantenesas da volontarii de la komunitato Wikimedia. La Fonduro Wikimedia ne partoprenas en lua kreo, developo o manteno.</string>
<string name="about_improve">Krear nova &lt;a href=\"%1$s\"&gt;GitHub temo&lt;/a&gt; por raporti pri \'\'bugs\'\' e sugesti.</string> <string name="about_improve">Krear nova &lt;a href=\"%1$s\"&gt;GitHub temo&lt;/a&gt; por raporti pri \'\'bugs\'\' e sugesti.</string>
<string name="about_privacy_policy">Sistemo di agado pri privateso</string> <string name="about_privacy_policy">Nia politiki pri privateso</string>
<string name="about_credits">Kreinto o kreinti</string> <string name="about_credits">Kreinto o kreinti</string>
<string name="title_activity_about">Pri</string> <string name="title_activity_about">Pri</string>
<string name="menu_feedback">Sendez komenti (per e-posto)</string> <string name="menu_feedback">Sendez komenti (per e-posto)</string>

View file

@ -60,7 +60,6 @@
<string name="preference_category_feedback">Umsagnir</string> <string name="preference_category_feedback">Umsagnir</string>
<string name="preference_category_privacy">Persónuvernd</string> <string name="preference_category_privacy">Persónuvernd</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet">• \\</string>
<string name="menu_settings">Stillingar</string> <string name="menu_settings">Stillingar</string>
<string name="intent_share_upload_label">Senda inn á Commons</string> <string name="intent_share_upload_label">Senda inn á Commons</string>
<string name="username">Notandanafn</string> <string name="username">Notandanafn</string>

View file

@ -8,6 +8,7 @@
* Black Sky83 * Black Sky83
* Champ0999 * Champ0999
* Davio * Davio
* Dream Indigo
* Gianfranco * Gianfranco
* Lorelai87 * Lorelai87
* Lorem Ipsum * Lorem Ipsum
@ -78,7 +79,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Privacy</string> <string name="preference_category_privacy">Privacy</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Impostazioni</string> <string name="menu_settings">Impostazioni</string>
<string name="intent_share_upload_label">Carica su Commons</string> <string name="intent_share_upload_label">Carica su Commons</string>
<string name="upload_in_progress">Caricamento in corso</string> <string name="upload_in_progress">Caricamento in corso</string>
@ -127,7 +127,7 @@
<string name="share_caption_hint">Didascalia</string> <string name="share_caption_hint">Didascalia</string>
<string name="login_failed_network">Impossibile accedere: errore di rete</string> <string name="login_failed_network">Impossibile accedere: errore di rete</string>
<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, questo utente è stato bloccato 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_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>
@ -737,9 +737,9 @@
<string name="menu_view_set_white_background">Imposta lo sfondo bianco</string> <string name="menu_view_set_white_background">Imposta lo sfondo bianco</string>
<string name="menu_view_set_black_background">Imposta lo sfondo nero</string> <string name="menu_view_set_black_background">Imposta lo sfondo nero</string>
<string name="report_violation">Segnala violazione</string> <string name="report_violation">Segnala violazione</string>
<string name="report_user">Segnala questo utente</string> <string name="report_user">Segnala quest\'utente</string>
<string name="report_content">Segnala questo contenuto</string> <string name="report_content">Segnala questo contenuto</string>
<string name="request_user_block">Richiedi di bloccare questo utente</string> <string name="request_user_block">Richiedi di bloccare quest\'utente</string>
<string name="welcome_to_full_screen_mode_text">Benvenuto nella modalità di selezione a schermo intero</string> <string name="welcome_to_full_screen_mode_text">Benvenuto nella modalità di selezione a schermo intero</string>
<string name="full_screen_mode_zoom_info">Usa due dita per ingrandire e rimpicciolire.</string> <string name="full_screen_mode_zoom_info">Usa due dita per ingrandire e rimpicciolire.</string>
<string name="full_screen_mode_features_info">Scorri velocemente e a lungo per eseguire queste azioni: \n- Sinistra/destra: vai al precedente/successivo \n- Su: seleziona\n- Giù: contrassegna come da non caricare.</string> <string name="full_screen_mode_features_info">Scorri velocemente e a lungo per eseguire queste azioni: \n- Sinistra/destra: vai al precedente/successivo \n- Su: seleziona\n- Giù: contrassegna come da non caricare.</string>

View file

@ -91,7 +91,6 @@
<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="bullet"></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>
@ -815,5 +814,10 @@
<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>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">האם ברצונך באמת לבטל את כל ההעלאות?</string>
<string name="cancelling_all_the_uploads">ביטול כל ההעלאות...</string>
<string name="uploads">העלאות</string>
<string name="pending">ממתינות</string>
<string name="failed">נכשלו</string>
<string name="could_not_load_place_data">לא היה אפשר לטעון את נתוני המקום</string> <string name="could_not_load_place_data">לא היה אפשר לטעון את נתוני המקום</string>
</resources> </resources>

View file

@ -71,7 +71,6 @@
<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="bullet"></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>

View file

@ -27,7 +27,6 @@
<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="app_name">קאמאנס</string> <string name="app_name">קאמאנס</string>
<string name="bullet"></string>
<string name="menu_settings">איינשטעלונגען</string> <string name="menu_settings">איינשטעלונגען</string>
<string name="username">באַניצער־נאָמען</string> <string name="username">באַניצער־נאָמען</string>
<string name="password">פאַסווארט</string> <string name="password">פאַסווארט</string>

View file

@ -35,7 +35,6 @@
<string name="preference_category_general">Umum</string> <string name="preference_category_general">Umum</string>
<string name="preference_category_feedback">Pamrayoga</string> <string name="preference_category_feedback">Pamrayoga</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Setèlan</string> <string name="menu_settings">Setèlan</string>
<string name="intent_share_upload_label">Unggah menyang Commons</string> <string name="intent_share_upload_label">Unggah menyang Commons</string>
<string name="username">Jeneng naraguna</string> <string name="username">Jeneng naraguna</string>

View file

@ -53,7 +53,6 @@
<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="bullet"></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>

View file

@ -32,7 +32,6 @@
<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="app_name">공용</string> <string name="app_name">공용</string>
<string name="bullet"></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="username">사용자 이름</string> <string name="username">사용자 이름</string>

View file

@ -73,7 +73,6 @@
<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="bullet"></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>

View file

@ -61,7 +61,6 @@
<string name="preference_category_feedback">Paşragihandin</string> <string name="preference_category_feedback">Paşragihandin</string>
<string name="preference_category_privacy">Veşarîtî</string> <string name="preference_category_privacy">Veşarîtî</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Eyar</string> <string name="menu_settings">Eyar</string>
<string name="intent_share_upload_label">Li Commons-ê bar bike</string> <string name="intent_share_upload_label">Li Commons-ê bar bike</string>
<string name="username">Navê bikarhêner</string> <string name="username">Navê bikarhêner</string>

View file

@ -7,7 +7,6 @@
<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="bullet"></string>
<string name="menu_settings">Кюйлевлер</string> <string name="menu_settings">Кюйлевлер</string>
<string name="username">Къоллавчу аты</string> <string name="username">Къоллавчу аты</string>
<string name="password">Чечил</string> <string name="password">Чечил</string>

View file

@ -49,7 +49,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Dateschutz</string> <string name="preference_category_privacy">Dateschutz</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Astellungen</string> <string name="menu_settings">Astellungen</string>
<string name="intent_share_upload_label">Op Commons eroplueden</string> <string name="intent_share_upload_label">Op Commons eroplueden</string>
<string name="upload_in_progress">Eroplueden amgaang</string> <string name="upload_in_progress">Eroplueden amgaang</string>
@ -66,6 +65,7 @@
<string name="login_success">Umeldung huet geklappt!</string> <string name="login_success">Umeldung huet geklappt!</string>
<string name="login_failed">D\'Aloggen huet net funktionéiert!</string> <string name="login_failed">D\'Aloggen huet net funktionéiert!</string>
<string name="upload_failed">Fichier net fonnt. Probéiert wgl. en anere Fichier.</string> <string name="upload_failed">Fichier net fonnt. Probéiert wgl. en anere Fichier.</string>
<string name="unrestricted_battery_mode">Batterieoptiméierung deaktivieren?</string>
<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>

View file

@ -26,7 +26,6 @@
<string name="preference_category_general">Algemein</string> <string name="preference_category_general">Algemein</string>
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Instèllinge</string> <string name="menu_settings">Instèllinge</string>
<string name="username">Gebroekersnaam</string> <string name="username">Gebroekersnaam</string>
<string name="password">Wachwaord</string> <string name="password">Wachwaord</string>

View file

@ -55,7 +55,6 @@
<string name="preference_category_feedback">Atsiliepimai</string> <string name="preference_category_feedback">Atsiliepimai</string>
<string name="preference_category_privacy">Privatumas</string> <string name="preference_category_privacy">Privatumas</string>
<string name="app_name">Vikiteka</string> <string name="app_name">Vikiteka</string>
<string name="bullet"></string>
<string name="menu_settings">Nustatymai</string> <string name="menu_settings">Nustatymai</string>
<string name="intent_share_upload_label">Įkelti į Vikiteką</string> <string name="intent_share_upload_label">Įkelti į Vikiteką</string>
<string name="username">Naudotojo vardas</string> <string name="username">Naudotojo vardas</string>

View file

@ -12,7 +12,6 @@
<string name="preference_category_feedback">Atsauksmes</string> <string name="preference_category_feedback">Atsauksmes</string>
<string name="preference_category_privacy">Konfidencialitāte</string> <string name="preference_category_privacy">Konfidencialitāte</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Iestatījumi</string> <string name="menu_settings">Iestatījumi</string>
<string name="intent_share_upload_label">Augšupielādēt Commons</string> <string name="intent_share_upload_label">Augšupielādēt Commons</string>
<string name="username">Lietotājvārds</string> <string name="username">Lietotājvārds</string>

View file

@ -61,7 +61,6 @@
<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="bullet"></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>
@ -779,5 +778,10 @@
<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>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Дали сигурно сакате да ги откажете сите подигања?</string>
<string name="cancelling_all_the_uploads">Ги откажувам сите подигања...</string>
<string name="uploads">Подигања</string>
<string name="pending">Во исчекување</string>
<string name="failed">Неуспешно</string>
<string name="could_not_load_place_data">Не можев да ги вчитам податоците за место</string> <string name="could_not_load_place_data">Не можев да ги вчитам податоците за место</string>
</resources> </resources>

View file

@ -10,7 +10,6 @@
<string name="appwidget_img">ꯅꯨꯃꯤꯠꯁꯤꯒꯤ ꯃꯤꯔꯦꯜ</string> <string name="appwidget_img">ꯅꯨꯃꯤꯠꯁꯤꯒꯤ ꯃꯤꯔꯦꯜ</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="bullet"></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="username">ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯃꯤꯡ</string> <string name="username">ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯃꯤꯡ</string>

View file

@ -36,7 +36,6 @@
<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="bullet"></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="username">ယၟုညးလွပ်</string> <string name="username">ယၟုညးလွပ်</string>
@ -50,7 +49,7 @@
<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>
<string name="authentication_failed" fuzzy="true">ပွမစၟဳစၟတ်ဂှ် ဟွံအံင်ဇၞး။ ပဂုန်တုဲ လံက်အေန် မွဲဝါပၠန်</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>
@ -69,11 +68,12 @@
<string name="menu_nearby">ဗဒဲါဒၞာဲဏအ်</string> <string name="menu_nearby">ဗဒဲါဒၞာဲဏအ်</string>
<string name="provider_contributions">ပတိုန်ပၠုပ် ဇကုဂမၠိုင်</string> <string name="provider_contributions">ပတိုန်ပၠုပ် ဇကုဂမၠိုင်</string>
<string name="menu_share">ပါ်ပရအ်</string> <string name="menu_share">ပါ်ပရအ်</string>
<string name="menu_view_file_page">ဗဵု မုက်လိက် ဝှာင်</string>
<string name="share_title_hint">က္ဍိုပ်လိက် (အာတ်မိက်ဒၟံင်)</string> <string name="share_title_hint">က္ဍိုပ်လိက် (အာတ်မိက်ဒၟံင်)</string>
<string name="add_caption_toast">ပဂုန်တုဲ ကဵု က္ဍိုပ်လိက် ဝှာင်ဏအ်ညိ</string> <string name="add_caption_toast">ပဂုန်တုဲ ကဵု က္ဍိုပ်လိက် ဝှာင်ဏအ်ညိ</string>
<string name="share_description_hint">မဗမံက်ထ္ၜး</string> <string name="share_description_hint">မဗမံက်ထ္ၜး</string>
<string name="share_caption_hint" fuzzy="true">က္ဍိုပ်လိက် (ပိုင်ခြာလဝ် လၟိဟ်မလိက် ၂၅၅)</string> <string name="share_caption_hint">က္ဍိုပ်လိက်</string>
<string name="login_failed_network" fuzzy="true">လုပ်လံက်အေန် ဟွံဂွံ - ဇာဇၞိက် ဗၠေတ်</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">ကုစၟဳစၟတ်မၞးၜါဂှ် သ္ဒးပါ်လဝ် ဗွဲတၞဟ်ခြာရောင်။</string> <string name="login_failed_2fa_needed">ကုစၟဳစၟတ်မၞးၜါဂှ် သ္ဒးပါ်လဝ် ဗွဲတၞဟ်ခြာရောင်။</string>
@ -85,7 +85,7 @@
<string name="categories_search_text_hint">ဂၠာဲ ကဏ္ဍဂမၠိုၚ်</string> <string name="categories_search_text_hint">ဂၠာဲ ကဏ္ဍဂမၠိုၚ်</string>
<string name="depicts_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>
<string name="contributions_subtitle_zero" fuzzy="true">ဟွံဂွံ ပတိုန်ပၠုပ်ဏီ</string> <string name="contributions_subtitle_zero" fuzzy="true">ဟွံဂွံ ပတိုန်ပၠုပ်ဏီ</string>
<string name="categories_not_found">ကဏ္ဍ မကိတ်ညဳ ကု %1$s ဟွံဆဵု</string> <string name="categories_not_found">ကဏ္ဍ မကိတ်ညဳ ကု %1$s ဟွံဆဵု</string>

View file

@ -34,7 +34,6 @@
<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="app_name">कॉमन्स</string> <string name="app_name">कॉमन्स</string>
<string name="bullet"></string>
<string name="menu_settings">सेटिंग्स</string> <string name="menu_settings">सेटिंग्स</string>
<string name="username">सदस्यनाव</string> <string name="username">सदस्यनाव</string>
<string name="password">परवलीचा शब्द(पासवर्ड)</string> <string name="password">परवलीचा शब्द(पासवर्ड)</string>

View file

@ -41,7 +41,6 @@
<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="bullet"></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="username">အသုံးပြုသူအမည်</string> <string name="username">အသုံးပြုသူအမည်</string>

View file

@ -69,7 +69,6 @@
<string name="preference_category_feedback">Tilbakemelding</string> <string name="preference_category_feedback">Tilbakemelding</string>
<string name="preference_category_privacy">Personvern</string> <string name="preference_category_privacy">Personvern</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Innstillinger</string> <string name="menu_settings">Innstillinger</string>
<string name="intent_share_upload_label">Last opp til Commons</string> <string name="intent_share_upload_label">Last opp til Commons</string>
<string name="upload_in_progress">Opplasting pågår</string> <string name="upload_in_progress">Opplasting pågår</string>

View file

@ -27,7 +27,6 @@
<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="bullet"></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="username">प्रयोगकर्ता नाम</string> <string name="username">प्रयोगकर्ता नाम</string>

View file

@ -82,7 +82,6 @@
<string name="preference_category_feedback">Terugkoppeling</string> <string name="preference_category_feedback">Terugkoppeling</string>
<string name="preference_category_privacy">Privacy</string> <string name="preference_category_privacy">Privacy</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Instellingen</string> <string name="menu_settings">Instellingen</string>
<string name="intent_share_upload_label">Uploaden naar Commons</string> <string name="intent_share_upload_label">Uploaden naar Commons</string>
<string name="upload_in_progress">Aan het uploaden</string> <string name="upload_in_progress">Aan het uploaden</string>
@ -800,5 +799,10 @@
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">%1$s bevindt zich ergens anders. Geef hieronder de juiste plaats aan en noteer, indien mogelijk, de juiste breedte- en lengtegraad.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">%1$s bevindt zich ergens anders. Geef hieronder de juiste plaats aan en noteer, indien mogelijk, de juiste breedte- en lengtegraad.</string>
<string name="other_problem_or_information_please_explain_below">Ander probleem of andere informatie (verklaar hieronder).</string> <string name="other_problem_or_information_please_explain_below">Ander probleem of andere informatie (verklaar hieronder).</string>
<string name="feedback_destination_note">Uw feedback wordt op de volgende wikipagina geplaatst: &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">Uw feedback wordt op de volgende wikipagina geplaatst: &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">Weet u zeker dat u alle uploads wilt annuleren?</string>
<string name="cancelling_all_the_uploads">Alle uploads worden geannuleerd…</string>
<string name="uploads">Uploads</string>
<string name="pending">In behandeling</string>
<string name="failed">Mislukt</string>
<string name="could_not_load_place_data">Plaatsgegevens konden niet geladen worden</string> <string name="could_not_load_place_data">Plaatsgegevens konden niet geladen worden</string>
</resources> </resources>

View file

@ -97,7 +97,6 @@
<string name="preference_category_feedback">Opinia</string> <string name="preference_category_feedback">Opinia</string>
<string name="preference_category_privacy">Prywatność</string> <string name="preference_category_privacy">Prywatność</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Ustawienia</string> <string name="menu_settings">Ustawienia</string>
<string name="intent_share_upload_label">Prześlij do Commons</string> <string name="intent_share_upload_label">Prześlij do Commons</string>
<string name="upload_in_progress">Przesyłanie w toku</string> <string name="upload_in_progress">Przesyłanie w toku</string>

View file

@ -59,7 +59,6 @@
<string name="preference_category_feedback">Sugeriment</string> <string name="preference_category_feedback">Sugeriment</string>
<string name="preference_category_privacy">Confidensialità</string> <string name="preference_category_privacy">Confidensialità</string>
<string name="app_name">Comun</string> <string name="app_name">Comun</string>
<string name="bullet"></string>
<string name="menu_settings">Paràmeter</string> <string name="menu_settings">Paràmeter</string>
<string name="intent_share_upload_label">Carié su Commons</string> <string name="intent_share_upload_label">Carié su Commons</string>
<string name="upload_in_progress">Cariament an cors</string> <string name="upload_in_progress">Cariament an cors</string>
@ -775,5 +774,10 @@
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste.</string>
<string name="other_problem_or_information_please_explain_below">Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota).</string> <string name="other_problem_or_information_please_explain_below">Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota).</string>
<string name="feedback_destination_note">Ij sò sugeriment a saran giontà a coste pàgine wiki: &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">Ij sò sugeriment a saran giontà a coste pàgine 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">É-lo sigur ëd vorèj anulé tuti ij cariament?</string>
<string name="cancelling_all_the_uploads">Anulament ëd tuti ij cariament...</string>
<string name="uploads">Cariament</string>
<string name="pending">An atèisa</string>
<string name="failed">Falì</string>
<string name="could_not_load_place_data">Impossìbil carié ij dàit dël pòst</string> <string name="could_not_load_place_data">Impossìbil carié ij dàit dël pòst</string>
</resources> </resources>

View file

@ -14,7 +14,6 @@
</plurals> </plurals>
<string name="share_license_summary" fuzzy="true">دا انځور به د %1$s په منښتليک سمبال وي.</string> <string name="share_license_summary" fuzzy="true">دا انځور به د %1$s په منښتليک سمبال وي.</string>
<string name="app_name">ويکي خونديځ</string> <string name="app_name">ويکي خونديځ</string>
<string name="bullet"></string>
<string name="menu_settings">امستنې</string> <string name="menu_settings">امستنې</string>
<string name="username">کارن-نوم</string> <string name="username">کارن-نوم</string>
<string name="password">پټنوم</string> <string name="password">پټنوم</string>

View file

@ -85,7 +85,6 @@
<string name="preference_category_feedback">Comentário</string> <string name="preference_category_feedback">Comentário</string>
<string name="preference_category_privacy">Privacidade</string> <string name="preference_category_privacy">Privacidade</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Configurações</string> <string name="menu_settings">Configurações</string>
<string name="intent_share_upload_label">Carregar no Commons</string> <string name="intent_share_upload_label">Carregar no Commons</string>
<string name="upload_in_progress">Upload em progresso</string> <string name="upload_in_progress">Upload em progresso</string>

View file

@ -77,7 +77,6 @@
<string name="preference_category_feedback">Comentários</string> <string name="preference_category_feedback">Comentários</string>
<string name="preference_category_privacy">Privacidade</string> <string name="preference_category_privacy">Privacidade</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Configurações</string> <string name="menu_settings">Configurações</string>
<string name="intent_share_upload_label">Carregar na wiki Commons</string> <string name="intent_share_upload_label">Carregar na wiki Commons</string>
<string name="upload_in_progress">Carregamento em progresso</string> <string name="upload_in_progress">Carregamento em progresso</string>

View file

@ -64,7 +64,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Confidențialitate</string> <string name="preference_category_privacy">Confidențialitate</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Setări</string> <string name="menu_settings">Setări</string>
<string name="intent_share_upload_label">Încarcă la Commons</string> <string name="intent_share_upload_label">Încarcă la Commons</string>
<string name="upload_in_progress">Încărcare în curs</string> <string name="upload_in_progress">Încărcare în curs</string>

View file

@ -18,6 +18,7 @@
* Jesusmc * Jesusmc
* Kaganer * Kaganer
* Kareyac * Kareyac
* Lutece398
* MaxBioHazard * MaxBioHazard
* McDutchie * McDutchie
* Megakott * Megakott
@ -115,7 +116,6 @@
<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="bullet"></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>
@ -839,5 +839,10 @@
<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>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Вы уверены, что хотите отменить все загрузки?</string>
<string name="cancelling_all_the_uploads">Отмена всех загрузок...</string>
<string name="uploads">Загрузки</string>
<string name="pending">В ожидании</string>
<string name="failed">Не удалось</string>
<string name="could_not_load_place_data">Не удалось загрузить данные о месте</string> <string name="could_not_load_place_data">Не удалось загрузить данные о месте</string>
</resources> </resources>

View file

@ -57,7 +57,6 @@
<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="bullet"></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="username">واپرائيندڙنانءُ</string> <string name="username">واپرائيندڙنانءُ</string>

View file

@ -81,7 +81,6 @@
<string name="preference_category_feedback">Spätná väzba</string> <string name="preference_category_feedback">Spätná väzba</string>
<string name="preference_category_privacy">Súkromie</string> <string name="preference_category_privacy">Súkromie</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Nastavenia</string> <string name="menu_settings">Nastavenia</string>
<string name="intent_share_upload_label">Nahrať na Commons</string> <string name="intent_share_upload_label">Nahrať na Commons</string>
<string name="username">Používateľské meno</string> <string name="username">Používateľské meno</string>

View file

@ -23,7 +23,6 @@
<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="bullet"></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="username">ورتݨ آلا ناں</string> <string name="username">ورتݨ آلا ناں</string>
@ -270,4 +269,7 @@
<string name="menu_view_report">رپورٹ</string> <string name="menu_view_report">رپورٹ</string>
<string name="error_sending_thanks">مصنف کوں شکریہ بھیڄݨ وچ خرابی۔</string> <string name="error_sending_thanks">مصنف کوں شکریہ بھیڄݨ وچ خرابی۔</string>
<string name="talk">ڳالھ مہاڑ</string> <string name="talk">ڳالھ مہاڑ</string>
<string name="uploads">اپلوڈاں</string>
<string name="pending">وچار ہیٹھ</string>
<string name="failed">ناکام تھیا</string>
</resources> </resources>

View file

@ -77,7 +77,6 @@
<string name="preference_category_feedback">Povratne informacije</string> <string name="preference_category_feedback">Povratne informacije</string>
<string name="preference_category_privacy">Zasebnost</string> <string name="preference_category_privacy">Zasebnost</string>
<string name="app_name">Zbirka</string> <string name="app_name">Zbirka</string>
<string name="bullet"></string>
<string name="menu_settings">Nastavitve</string> <string name="menu_settings">Nastavitve</string>
<string name="intent_share_upload_label">Naloži v Zbirko</string> <string name="intent_share_upload_label">Naloži v Zbirko</string>
<string name="upload_in_progress">Nalaganje poteka</string> <string name="upload_in_progress">Nalaganje poteka</string>

View file

@ -67,7 +67,6 @@
<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="bullet"></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>
@ -735,4 +734,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="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="uploads">Отпремања</string>
<string name="pending">На чекању</string>
<string name="failed">Није успело</string>
</resources> </resources>

View file

@ -60,7 +60,6 @@
<string name="preference_category_feedback">Eupan balik</string> <string name="preference_category_feedback">Eupan balik</string>
<string name="preference_category_privacy">Privasi</string> <string name="preference_category_privacy">Privasi</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Séting</string> <string name="menu_settings">Séting</string>
<string name="intent_share_upload_label">Unjal ka Commons</string> <string name="intent_share_upload_label">Unjal ka Commons</string>
<string name="username">Sandiasma</string> <string name="username">Sandiasma</string>

View file

@ -67,7 +67,6 @@
<string name="preference_category_feedback">Återkoppling</string> <string name="preference_category_feedback">Återkoppling</string>
<string name="preference_category_privacy">Integritet</string> <string name="preference_category_privacy">Integritet</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Inställningar</string> <string name="menu_settings">Inställningar</string>
<string name="intent_share_upload_label">Ladda upp till Commons</string> <string name="intent_share_upload_label">Ladda upp till Commons</string>
<string name="upload_in_progress">Uppladdning pågår</string> <string name="upload_in_progress">Uppladdning pågår</string>
@ -783,5 +782,10 @@
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" är på en annan plats. Ange den korrekta platsen nedan samt ange latitud och longitud om det är möjligt.</string> <string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" är på en annan plats. Ange den korrekta platsen nedan samt ange latitud och longitud om det är möjligt.</string>
<string name="other_problem_or_information_please_explain_below">Andra problem eller information (ange nedan).</string> <string name="other_problem_or_information_please_explain_below">Andra problem eller information (ange nedan).</string>
<string name="feedback_destination_note">Din återkoppling kommer att skickas till följande wikisida: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobilapp/Återkoppling&lt;/a&gt;</string> <string name="feedback_destination_note">Din återkoppling kommer att skickas till följande wikisida: &lt;a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\"&gt;Commons:Mobilapp/Återkoppling&lt;/a&gt;</string>
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Är du säker på att du vill avbryta alla uppladdningar?</string>
<string name="cancelling_all_the_uploads">Avbryter alla uppladdningar...</string>
<string name="uploads">Uppladdningar</string>
<string name="pending">Pågår</string>
<string name="failed">Misslyckades</string>
<string name="could_not_load_place_data">Kunde inte läsa in platsdata</string> <string name="could_not_load_place_data">Kunde inte läsa in platsdata</string>
</resources> </resources>

View file

@ -26,7 +26,6 @@
<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="bullet"></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="username">பயனர் பெயர்</string> <string name="username">பயனர் பெயர்</string>

View file

@ -46,7 +46,6 @@
<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="app_name">ಕಾಮನ್ಸ್</string> <string name="app_name">ಕಾಮನ್ಸ್</string>
<string name="bullet"></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="username">ಬಳಕೆದಾರೆರೆಪುದರ್</string> <string name="username">ಬಳಕೆದಾರೆರೆಪುದರ್</string>

View file

@ -50,7 +50,6 @@
<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="bullet"></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="username">వాడుకరిపేరు</string> <string name="username">వాడుకరిపేరు</string>

View file

@ -61,7 +61,6 @@
<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="bullet"></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="username">ชื่อผู้ใช้</string> <string name="username">ชื่อผู้ใช้</string>

View file

@ -88,7 +88,6 @@
<string name="preference_category_feedback">Geri bildirim</string> <string name="preference_category_feedback">Geri bildirim</string>
<string name="preference_category_privacy">Gizlilik</string> <string name="preference_category_privacy">Gizlilik</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Ayarlar</string> <string name="menu_settings">Ayarlar</string>
<string name="intent_share_upload_label">Commons\'a yükle</string> <string name="intent_share_upload_label">Commons\'a yükle</string>
<string name="upload_in_progress">Yükleme devam etmekte</string> <string name="upload_in_progress">Yükleme devam etmekte</string>

View file

@ -14,7 +14,6 @@
<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="app_name">بايلىق ھەمبەھىرلەش</string> <string name="app_name">بايلىق ھەمبەھىرلەش</string>
<string name="bullet">.</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="username">ئىشلەتكۇچى ئىسمى</string> <string name="username">ئىشلەتكۇچى ئىسمى</string>

View file

@ -92,7 +92,6 @@
<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="bullet"></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>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Authors: <!-- Authors:
* Jamshid Nurkulov
* Malikxan * Malikxan
* Mirishkorlik * Mirishkorlik
* Zafar Shamsiddinov * Zafar Shamsiddinov
@ -231,6 +232,7 @@
<string name="navigation_item_about">Haqida</string> <string name="navigation_item_about">Haqida</string>
<string name="navigation_item_settings">Sozlamalar</string> <string name="navigation_item_settings">Sozlamalar</string>
<string name="navigation_item_feedback">Fikr-mulohazalar</string> <string name="navigation_item_feedback">Fikr-mulohazalar</string>
<string name="navigation_item_feedback_github">GitHub orqali fikr bildirish</string>
<string name="navigation_item_logout">Chiqish</string> <string name="navigation_item_logout">Chiqish</string>
<string name="navigation_item_info">Qoʻllanma</string> <string name="navigation_item_info">Qoʻllanma</string>
<string name="navigation_item_notification">Bildirishnomalar</string> <string name="navigation_item_notification">Bildirishnomalar</string>
@ -270,7 +272,9 @@
<string name="copy_wikicode">Vikimatndan nusxa olish</string> <string name="copy_wikicode">Vikimatndan nusxa olish</string>
<string name="wikicode_copied">Vikimatndan nusxa olindi</string> <string name="wikicode_copied">Vikimatndan nusxa olindi</string>
<string name="nearby_location_not_available">Joylashuv mavjud boʻlmaganda, yaqin atrofdagilar aniq ishlamasligi mumkin.</string> <string name="nearby_location_not_available">Joylashuv mavjud boʻlmaganda, yaqin atrofdagilar aniq ishlamasligi mumkin.</string>
<string name="upload_location_access_denied">Joylashuv maʼlumotlariga kirish taqiqlangan. Iltimos, ushbu funksiyadan foydalanish uchun joylashuv maʼlumotlaringizni qoʻlda kiriting.</string>
<string name="location_permission_rationale_nearby">Yaqin-atrofdagi joylar roʻyxatini koʻrsatish uchun ruxsat kerak</string> <string name="location_permission_rationale_nearby">Yaqin-atrofdagi joylar roʻyxatini koʻrsatish uchun ruxsat kerak</string>
<string name="location_permission_rationale_explore">Yaqin atrofdagi suratlar roʻyxatini koʻrish uchun ruxsat talab etiladi</string>
<string name="nearby_directions">Tomon</string> <string name="nearby_directions">Tomon</string>
<string name="nearby_wikidata">Vikimaʼlumotlar</string> <string name="nearby_wikidata">Vikimaʼlumotlar</string>
<string name="nearby_wikipedia">Vikipediya</string> <string name="nearby_wikipedia">Vikipediya</string>
@ -317,13 +321,37 @@
<string name="wikidata_edit_failure">Tegishli Wikidata obyektini yangilab boʻlmadi!</string> <string name="wikidata_edit_failure">Tegishli Wikidata obyektini yangilab boʻlmadi!</string>
<string name="menu_set_wallpaper">Fon rasmi sifatida qoʻyish</string> <string name="menu_set_wallpaper">Fon rasmi sifatida qoʻyish</string>
<string name="wallpaper_set_successfully">Fon rasmi oʻrnatildi!</string> <string name="wallpaper_set_successfully">Fon rasmi oʻrnatildi!</string>
<string name="quiz">Test</string>
<string name="quiz_question_string">Ushbu rasmni joylasa boʻladimi?</string> <string name="quiz_question_string">Ushbu rasmni joylasa boʻladimi?</string>
<string name="question">Savol</string> <string name="question">Savol</string>
<string name="result">Natija</string> <string name="result">Natija</string>
<string name="quiz_back_button">Siz oʻchirilishi talab etiladigan suratlarni yuklashda davom etsangiz akkauntingiz bloklanishi mumkin. Testni davom ettirishni istaysizmi?</string>
<string name="quiz_alert_message">Siz yuklagan %1$s dan ortiq tasvirlar oʻchirildi. Agar oʻchirilishi talab etiladigan tasvirlarni yuklashda davom etsangiz akkauntingiz bloklanishi mumkin.\n\nQanday tasvirlarni yuklash yo yuklamaslik kerakligini oʻrganish uchun qoʻllanmani yana bir marta oʻqishni, undan soʻng test qilib koʻrishni istaysizmi?</string>
<string name="selfie_answer">Selfi tasvirlar u qadar ensiklopedik ahamiyat kasb etmaydi. Iltimos, Vikipediyada siz haqingizda maqola mavjud boʻlmasa, oʻz suratingizni yuklamang.</string>
<string name="taj_mahal_answer">Koʻplab davlatlarda tashqi manzaralar va haykallarning suratlarini yukash mumkin. Eʼtibor bering, jamoat joylarida vaqtinchalik oʻrnatilgan koʻplab badiiy installyatsiyalar koʻp hollarda mualliflik huquqlari bilan himoyalangan boʻladi. Ularni tasvirga olib yuklab boʻlmaydi.</string>
<string name="screenshot_answer">Ekran tasvirlari (skrinshotlar) ham mehnat mahsuli hisoblanadi, ular veb saytning oʻzida har qanday mualliflik huquqlari buzilishiga olib kelishi mumkin. Ularni muallif ruxsatidan keyin yuklashingiz mumkin. Boshqa mualliflarning ishlaridan foydalanib yaratilgan har qanday sanʼat asari, agar muallifdan ruxsat olinmagan boʻlsa, yuridik jihatdan birlamchi muallifga tegishli mahsulotning litsenziyasiz nusxasi hisoblanadi.</string>
<string name="blurry_image_answer">Vikiomborning maqsadlaridan biri — sifatli tasvirlarni yigʻish. Shu sababli xira, shuvalib ketgan tasvirlarni yuklamang. Doim yaxshi yoritilgan joyda olingan sifatli rasmlarni yuklashga harakat qiling.</string>
<string name="construction_event_answer">Texnologiyalar yoki madaniyatlarni namoyon etuvchi tasvirlar Vikiomborga mamnuniyat bilan qabul qilinadi.</string>
<string name="congratulatory_message_quiz">Siz %1$s ta toʻgʻri javob berdingiz. Tabriklaymiz!</string>
<string name="warning_for_no_answer">Savolga javob berish uchun ikkita variantdan birini tanlang</string>
<string name="user_not_logged_in">Kirish muddati tugadi. Iltimos, qayta kiring.</string>
<string name="quiz_result_share_message">Natijangizni doʻstlaringizga ham ulashing!</string>
<string name="continue_message">Davom etish</string> <string name="continue_message">Davom etish</string>
<string name="correct">Toʻgʻri javob</string> <string name="correct">Toʻgʻri javob</string>
<string name="wrong">Xato javob</string> <string name="wrong">Xato javob</string>
<string name="quiz_screenshot_question">Bu skrinshotni yuklash mumkinmi?</string>
<string name="share_app_title">Ilovani ulashish</string> <string name="share_app_title">Ilovani ulashish</string>
<string name="rotate">Aylantirish</string>
<string name="error_fetching_nearby_places">Yaqin atrofdagi joylarni yuklab bolmadi</string>
<string name="no_pictures_in_this_area">Bu hududda rasm yoʻq</string>
<string name="no_nearby_places_around">Yaqin atrofda joy yoʻq</string>
<string name="error_fetching_nearby_monuments">Yaqin atrofdagi yodgorliklarni olishda xatolik yuz berdi.</string>
<string name="no_recent_searches">Soʻnggi qidiruvlar yoʻq</string>
<string name="delete_recent_searches_dialog">Qidiruv tarixini tozalamoqchimisiz?</string>
<string name="cancel_upload_dialog">Ushbu yuklashni bekor qilmoqchimisiz?</string>
<string name="delete_search_dialog">Bu qidiruvni oʻchirib tashlamoqchimisiz?</string>
<string name="search_history_deleted">Qidiruv tarixi oʻchirildi</string>
<string name="nominate_delete">Oʻchirish uchun nomzod</string>
<string name="delete">Oʻchirish</string> <string name="delete">Oʻchirish</string>
<string name="Profile">Profil</string> <string name="Profile">Profil</string>
<string name="statistics">Statistika</string> <string name="statistics">Statistika</string>

View file

@ -48,7 +48,6 @@
<string name="preference_category_feedback">Phản hồi</string> <string name="preference_category_feedback">Phản hồi</string>
<string name="preference_category_privacy">Sự riêng tư</string> <string name="preference_category_privacy">Sự riêng tư</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet"></string>
<string name="menu_settings">Thiết lập</string> <string name="menu_settings">Thiết lập</string>
<string name="intent_share_upload_label">Đăng tải lên Commons</string> <string name="intent_share_upload_label">Đăng tải lên Commons</string>
<string name="username">Tên người dùng</string> <string name="username">Tên người dùng</string>

View file

@ -64,7 +64,7 @@
<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">გეშართით თქვანი პროფილით Commons Beta-შა</string> <string name="login_credential">გეშართით თქვანი პროფილით Commons Beta-შა</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>
@ -77,6 +77,7 @@
<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">3 სურათშე უმოსიშ ეხარგუაშის პროცესი უჯგუშო მუშენს, მუჟანსჷთ ბატარეაშ დჷმაზოგე გოთიშილი რენ. წორობორჯული ეხარგუაშ გაუჯგუშებელო, გეგმოთიშით ბატარეაშ დჷმაზოგე ვიკიოწკარუეშ პროგრამაშო პარამეტრეფშე.\n\nბატარეაშ ოპტიმიზაციაშ გჷმოთიშუაშ შილებუანი ბიჯგეფი:\n\nბიჯგი 1 : გიმე ქეგუწკანტეთ „პარამეტრეფიშ“ კონჭის.\n\nბიჯგი 2: გეგნიღით „ვაოპტიმიზებული“ ვარიანტიშე „არძა პროგრამაშა“.\n\nბიჯგი 3: დოგორით „Commons“ ვარ-და „fr.free.nrw.commons“.\n \nბიჯგი 3: გექუწკანტეთ თის დო გოთიშით დაზოგებაშ რეჟიმი.\n\nბიჯგი 3: ქეგუწკანტეთ „თებას“.</string>
<string name="authentication_failed">ავთენტიფიკაციაქ ვემიხუჯინუ, ქოთხინთ კჷნი გენშართით.</string> <string name="authentication_failed">ავთენტიფიკაციაქ ვემიხუჯინუ, ქოთხინთ კჷნი გენშართით.</string>
<string name="uploading_started">ეხარგუაქ ქჷდიჭყუ!</string> <string name="uploading_started">ეხარგუაქ ქჷდიჭყუ!</string>
<string name="uploading_queued">ეხარგუა რანწკის გერე (გოხურგილი რსხუშ რეჟიმი ჩართული რე)</string> <string name="uploading_queued">ეხარგუა რანწკის გერე (გოხურგილი რსხუშ რეჟიმი ჩართული რე)</string>
@ -191,8 +192,11 @@
<string name="read_storage_permission_rationale">ოჸია: გალენი შვენაშ კითხირი. აპლიკაციას ვემიაჭირინე თქვან გალერეაშა თეშ უმუშო.</string> <string name="read_storage_permission_rationale">ოჸია: გალენი შვენაშ კითხირი. აპლიკაციას ვემიაჭირინე თქვან გალერეაშა თეშ უმუშო.</string>
<string name="write_storage_permission_rationale">ოჸიას ოხვილუ: გალენი შვენაშ გიმორინაფა. აპლიკაციას ვემიახუჯინე თქვან კამერაშა/გალერეაშა თეშ უმუშო.</string> <string name="write_storage_permission_rationale">ოჸიას ოხვილუ: გალენი შვენაშ გიმორინაფა. აპლიკაციას ვემიახუჯინე თქვან კამერაშა/გალერეაშა თეშ უმუშო.</string>
<string name="location_permission_title">ორენიშ გჷმორინაფაშ მოთხირი</string> <string name="location_permission_title">ორენიშ გჷმორინაფაშ მოთხირი</string>
<string name="in_app_camera_location_permission_title">აპლიკაციას გინოღალირი მასალაშო ორენიშ ჩართება</string>
<string name="in_app_camera_location_switch_pref_summary">ჩართით თე ორენიშ დინაჭარალო აპის გინოღალირი კადრეფშო, მონწყილობაშ კამერაქ ვენიჭარჷ-და</string>
<string name="ok">ჯგირი</string> <string name="ok">ჯგირი</string>
<string name="warning">ხვილაფა</string> <string name="warning">ხვილაფა</string>
<string name="duplicate_file_name">მეგორაფილი რე გომაჟირელი ფაილიშ ჯოხო</string>
<string name="upload">ეხარგუა</string> <string name="upload">ეხარგუა</string>
<string name="yes">ქო</string> <string name="yes">ქო</string>
<string name="no">ვარი</string> <string name="no">ვარი</string>
@ -207,6 +211,7 @@
<string name="media_detail_coordinates">კოორდინატეფი</string> <string name="media_detail_coordinates">კოორდინატეფი</string>
<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">ჩართით Beta-შა ჭირინაფა Google Play-ს დო მიღით ორდოიანი ჭირინაფა ახალ ფუნქციეფშა დო ჩილათეფიშ ეშახინტკალო</string>
<string name="_2fa_code">2ფა კოდი</string> <string name="_2fa_code">2ფა კოდი</string>
<string name="logout_verification">გოკონანო გიშულა?</string> <string name="logout_verification">გოკონანო გიშულა?</string>
<string name="mediaimage_failed">მედიაფაილიშ ჩილათა</string> <string name="mediaimage_failed">მედიაფაილიშ ჩილათა</string>
@ -246,21 +251,25 @@
<string name="upload_problem_fbmd">ქორთხინთ, გეხარგეთ ხვალე თქვანი გინნაღელი სურათეფი. ვეხარგათ თი სურათეფი, ნამუთ შხვა კათაშ ფეისბუქიშ ანგარიშის ძირითინ.</string> <string name="upload_problem_fbmd">ქორთხინთ, გეხარგეთ ხვალე თქვანი გინნაღელი სურათეფი. ვეხარგათ თი სურათეფი, ნამუთ შხვა კათაშ ფეისბუქიშ ანგარიშის ძირითინ.</string>
<string name="upload_problem_do_you_continue">იშენ გოკონანო თე სურათიშ ეხარგუა?</string> <string name="upload_problem_do_you_continue">იშენ გოკონანო თე სურათიშ ეხარგუა?</string>
<string name="upload_connection_error_alert_title">მერსხუაფაშ ჩილათა</string> <string name="upload_connection_error_alert_title">მერსხუაფაშ ჩილათა</string>
<string name="upload_connection_error_alert_detail">ეხარგუაშ პროცესი თხულენს ინტერნეტშა ჭირინაფას. ქორთხინთ, ქოძირით თქვანი ინტერნეტ რსხუ.</string>
<string name="upload_problem_image">სურათის პრობლემეფს ქიმუოგორეთ</string> <string name="upload_problem_image">სურათის პრობლემეფს ქიმუოგორეთ</string>
<string name="internet_downloaded">ქორთხინთ, გეხარგეთ ხვალე თქვანი გინნაღელი სურათეფი. ვეხარგათ თი სურათეფი, ნამუეფჷთ ინტერნეტშე გჷმოხარგელი გაფჷნან.</string> <string name="internet_downloaded">ქორთხინთ, გეხარგეთ ხვალე თქვანი გინნაღელი სურათეფი. ვეხარგათ თი სურათეფი, ნამუეფჷთ ინტერნეტშე გჷმოხარგელი გაფჷნან.</string>
<string name="use_external_storage">აპლიკაციაშ გინნაღელი სურათეფიშ ჩუალა</string> <string name="use_external_storage">აპლიკაციაშ გინნაღელი სურათეფიშ ჩუალა</string>
<string name="use_external_storage_summary">აპლიკაციაშ კამერათ გინნაღელო სურათეფიშ ჩუალა თქვან მონწყილობაშ შვენას</string> <string name="use_external_storage_summary">აპლიკაციაშ კამერათ გინნაღელო სურათეფიშ ჩუალა თქვან მონწყილობაშ შვენას</string>
<string name="login_to_your_account">გემშართით თქვან პროფილშა</string> <string name="login_to_your_account">გემშართით თქვან პროფილშა</string>
<string name="send_log_file">ლოგ-ფაილიშ ჯღონუა</string> <string name="send_log_file">ლოგ-ფაილიშ ჯღონუა</string>
<string name="no_web_browser">URL-იშ განწყუმალო ვებ ბრაუზერქ ვეგორუ</string>
<string name="null_url">ჩილათა! URL ვეგორუ</string> <string name="null_url">ჩილათა! URL ვეგორუ</string>
<string name="nominate_deletion">ლასუაშ ნომინანტი</string> <string name="nominate_deletion">ლასუაშ ნომინანტი</string>
<string name="nominated_for_deletion">თე სურათი ოლასარო რე წჷმორინაფილი</string> <string name="nominated_for_deletion">თე სურათი ოლასარო რე წჷმორინაფილი</string>
<string name="nominated_see_more">დეტალეფიშ გეშა ვებ-ხასჷლაშ ძირაფა</string> <string name="nominated_see_more">დეტალეფიშ გეშა ვებ-ხასჷლაშ ძირაფა</string>
<string name="skip_login">გიშატება</string> <string name="skip_login">გიშატება</string>
<string name="navigation_item_login">მიშულა</string> <string name="navigation_item_login">მიშულა</string>
<string name="skip_login_title" fuzzy="true">ნანდულო გოკონანო მიშულაშ გიშატება?</string> <string name="skip_login_title">ნანდულო გოკონანო მიშულაშ გიშატება?</string>
<string name="skip_login_message" fuzzy="true">სურათეფიშ ეიოხარგალო თქვა ოხვილუთ ანგარიშიშა მიშულას.</string> <string name="skip_login_message" fuzzy="true">სურათეფიშ ეიოხარგალო თქვა ოხვილუთ ანგარიშიშა მიშულას.</string>
<string name="login_alert_message">ქორთხინთ გენშართით თქვან ანგარიშიშა ათე ფუნქციაშ გჷმარინაფალო</string> <string name="login_alert_message">ქორთხინთ გენშართით თქვან ანგარიშიშა ათე ფუნქციაშ გჷმარინაფალო</string>
<string name="copy_wikicode">დაკოპირით ვიკიტექსტი</string>
<string name="wikicode_copied">ვიკიტექსტიქ დეკოპირუ</string>
<string name="nearby_location_not_available">გოხოლუაშ ფუნქციაქ შილებე თინას ვემუშუასჷნ, ლოკაცია გოთიშილი რე.</string> <string name="nearby_location_not_available">გოხოლუაშ ფუნქციაქ შილებე თინას ვემუშუასჷნ, ლოკაცია გოთიშილი რე.</string>
<string name="location_permission_rationale_nearby">გოხოლუაშ აბანეფიშ ერკებულიშ ოძირაფალო ალობა ოხვილური რე</string> <string name="location_permission_rationale_nearby">გოხოლუაშ აბანეფიშ ერკებულიშ ოძირაფალო ალობა ოხვილური რე</string>
<string name="nearby_directions">მალობეფი</string> <string name="nearby_directions">მალობეფი</string>

View file

@ -6,7 +6,6 @@
<resources> <resources>
<string name="preference_category_general">ⴰⵎⴰⵜⴰⵢ</string> <string name="preference_category_general">ⴰⵎⴰⵜⴰⵢ</string>
<string name="app_name">ⴽⵓⵎⵏⵣ</string> <string name="app_name">ⴽⵓⵎⵏⵣ</string>
<string name="bullet"></string>
<string name="menu_settings">ⵜⵉⵙⵖⴰⵍ</string> <string name="menu_settings">ⵜⵉⵙⵖⴰⵍ</string>
<string name="username">ⵉⵙⵎ ⵓⵎⵙⵙⵎⵔⵙ</string> <string name="username">ⵉⵙⵎ ⵓⵎⵙⵙⵎⵔⵙ</string>
<string name="password">ⵜⴰⴳⵓⵔⵉ ⵓⵣⵔⴰⵢ</string> <string name="password">ⵜⴰⴳⵓⵔⵉ ⵓⵣⵔⴰⵢ</string>

View file

@ -82,7 +82,6 @@
<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="bullet"></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>
@ -800,5 +799,10 @@
<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">您的回饋已發布到以下 wiki 頁面:&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">您的回饋已發布到以下 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">您確定要取消所有上傳嗎?</string>
<string name="cancelling_all_the_uploads">正在取消所有上傳…</string>
<string name="uploads">上傳</string>
<string name="pending">待處理</string>
<string name="failed">失敗</string>
<string name="could_not_load_place_data">無法載入地點資料</string> <string name="could_not_load_place_data">無法載入地點資料</string>
</resources> </resources>

View file

@ -111,7 +111,6 @@
<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="bullet"></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>

View file

@ -59,7 +59,6 @@
<string name="preference_category_feedback">Feedback</string> <string name="preference_category_feedback">Feedback</string>
<string name="preference_category_privacy">Privacy</string> <string name="preference_category_privacy">Privacy</string>
<string name="app_name">Commons</string> <string name="app_name">Commons</string>
<string name="bullet">&#8226;</string>
<string name="menu_settings">Settings</string> <string name="menu_settings">Settings</string>
<string name="intent_share_upload_label">Upload to Commons</string> <string name="intent_share_upload_label">Upload to Commons</string>
<string name="upload_in_progress">Upload in progress</string> <string name="upload_in_progress">Upload in progress</string>

View file

@ -6,7 +6,7 @@ buildscript {
maven { url "https://plugins.gradle.org/m2/" } maven { url "https://plugins.gradle.org/m2/" }
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.0.2' classpath 'com.android.tools.build:gradle:8.5.0'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION"
classpath 'org.codehaus.groovy:groovy-all:2.4.15' classpath 'org.codehaus.groovy:groovy-all:2.4.15'

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