refactor: Extract user list functionality to `feature:lists` (#537)
Move `ListsActivity`, along with fragments and viewmodels, to a new `feature:lists` module. Previous code used the `item_follow_request` layout, which was not ideal, so update it to use a dedicated layout, `item_account_in_list`. The UI uses strings and views originally defined in the main app, so move them elsewhere so they can be re-used. - `BackgroundMessageView` moves to `core.ui`. - `Lazy` moves to `core.common`. - `ThrowableExtensions` split; the extensions specific to throwables from network activity move to `core.network`, others move to `core.ui`. - `BindingHolder` moves to `core.ui` - Shared drawables and strings move to `core.ui`.
This commit is contained in:
parent
9535506596
commit
e41722e16f
|
@ -133,6 +133,7 @@ dependencies {
|
|||
implementation(projects.core.ui)
|
||||
|
||||
implementation(projects.feature.about)
|
||||
implementation(projects.feature.lists)
|
||||
implementation(projects.feature.login)
|
||||
|
||||
implementation(libs.kotlinx.coroutines.android)
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -144,7 +144,7 @@
|
|||
android:name="android.app.searchable"
|
||||
android:resource="@xml/searchable" />
|
||||
</activity>
|
||||
<activity android:name=".ListsActivity" />
|
||||
<activity android:name=".feature.lists.ListsActivity" />
|
||||
<activity android:name=".components.filters.FiltersActivity" />
|
||||
<activity android:name=".components.trending.TrendingActivity" />
|
||||
<activity android:name=".components.followedtags.FollowedTagsActivity" />
|
||||
|
|
|
@ -39,7 +39,7 @@ import app.pachli.core.common.extensions.show
|
|||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.data.repository.InstanceInfoRepository
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.ui.await
|
||||
import app.pachli.core.ui.extensions.await
|
||||
import app.pachli.databinding.ActivityEditProfileBinding
|
||||
import app.pachli.util.Error
|
||||
import app.pachli.util.Loading
|
||||
|
@ -178,8 +178,8 @@ class EditProfileActivity : BaseActivity() {
|
|||
}
|
||||
}
|
||||
is Error -> {
|
||||
Snackbar.make(binding.avatarButton, R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_retry) {
|
||||
Snackbar.make(binding.avatarButton, app.pachli.core.ui.R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
viewModel.obtainProfile()
|
||||
}
|
||||
.show()
|
||||
|
|
|
@ -74,6 +74,7 @@ import app.pachli.core.common.di.ApplicationScope
|
|||
import app.pachli.core.common.extensions.hide
|
||||
import app.pachli.core.common.extensions.show
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.data.repository.Lists
|
||||
import app.pachli.core.data.repository.ListsRepository
|
||||
import app.pachli.core.data.repository.ListsRepository.Companion.compareByListTitle
|
||||
|
@ -103,8 +104,8 @@ import app.pachli.core.navigation.TrendingActivityIntent
|
|||
import app.pachli.core.network.model.Account
|
||||
import app.pachli.core.network.model.Notification
|
||||
import app.pachli.core.preferences.PrefKeys
|
||||
import app.pachli.core.ui.await
|
||||
import app.pachli.core.ui.reduceSwipeSensitivity
|
||||
import app.pachli.core.ui.extensions.await
|
||||
import app.pachli.core.ui.extensions.reduceSwipeSensitivity
|
||||
import app.pachli.databinding.ActivityMainBinding
|
||||
import app.pachli.db.DraftsAlert
|
||||
import app.pachli.interfaces.ActionButtonActivity
|
||||
|
@ -115,7 +116,6 @@ import app.pachli.updatecheck.UpdateCheck
|
|||
import app.pachli.usecase.DeveloperToolsUseCase
|
||||
import app.pachli.usecase.LogoutUsecase
|
||||
import app.pachli.util.getDimension
|
||||
import app.pachli.util.unsafeLazy
|
||||
import app.pachli.util.updateShortcut
|
||||
import at.connyduck.calladapter.networkresult.fold
|
||||
import com.bumptech.glide.Glide
|
||||
|
@ -376,7 +376,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, MenuProvider {
|
|||
|
||||
result.onFailure {
|
||||
Snackbar.make(binding.root, R.string.error_list_load, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_retry) { listsRepository.refresh() }
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { listsRepository.refresh() }
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
@ -612,7 +612,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, MenuProvider {
|
|||
}
|
||||
}
|
||||
},
|
||||
R.string.title_lists,
|
||||
app.pachli.feature.lists.R.string.title_lists,
|
||||
)
|
||||
}
|
||||
} ?: Pair(emptyList(), R.string.title_lists_failed)
|
||||
|
|
|
@ -27,6 +27,7 @@ import app.pachli.appstore.FilterChangedEvent
|
|||
import app.pachli.components.timeline.TimelineFragment
|
||||
import app.pachli.core.activity.BottomSheetActivity
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.navigation.ComposeActivityIntent
|
||||
import app.pachli.core.navigation.ComposeActivityIntent.ComposeOptions
|
||||
import app.pachli.core.navigation.StatusListActivityIntent
|
||||
|
@ -40,7 +41,6 @@ import app.pachli.databinding.ActivityStatuslistBinding
|
|||
import app.pachli.interfaces.ActionButtonActivity
|
||||
import app.pachli.interfaces.AppBarLayoutHost
|
||||
import app.pachli.network.ServerRepository
|
||||
import app.pachli.util.unsafeLazy
|
||||
import at.connyduck.calladapter.networkresult.fold
|
||||
import com.github.michaelbull.result.getOrElse
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
|
|
|
@ -42,6 +42,7 @@ import app.pachli.core.activity.BaseActivity
|
|||
import app.pachli.core.common.extensions.show
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.data.repository.Lists
|
||||
import app.pachli.core.data.repository.ListsRepository
|
||||
import app.pachli.core.data.repository.ListsRepository.Companion.compareByListTitle
|
||||
|
@ -52,7 +53,6 @@ import app.pachli.core.network.model.MastoList
|
|||
import app.pachli.core.network.retrofit.MastodonApi
|
||||
import app.pachli.databinding.ActivityTabPreferenceBinding
|
||||
import app.pachli.databinding.DialogSelectListBinding
|
||||
import app.pachli.util.unsafeLazy
|
||||
import at.connyduck.sparkbutton.helpers.Utils
|
||||
import com.github.michaelbull.result.onFailure
|
||||
import com.github.michaelbull.result.onSuccess
|
||||
|
|
|
@ -125,7 +125,7 @@ data class TabViewData(
|
|||
is TabData.UserList -> TabViewData(
|
||||
tabData = tabData,
|
||||
text = R.string.list,
|
||||
icon = R.drawable.ic_list,
|
||||
icon = app.pachli.core.ui.R.drawable.ic_list,
|
||||
fragment = {
|
||||
TimelineFragment.newInstance(
|
||||
TimelineKind.UserList(tabData.listId, tabData.title),
|
||||
|
|
|
@ -238,7 +238,7 @@ class ViewMediaActivity : BaseActivity(), MediaActionsListener {
|
|||
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
downloadMedia()
|
||||
} else {
|
||||
showErrorDialog(binding.toolbar, R.string.error_media_download_permission, R.string.action_retry) {
|
||||
showErrorDialog(binding.toolbar, R.string.error_media_download_permission, app.pachli.core.ui.R.string.action_retry) {
|
||||
requestDownloadMedia()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,8 +21,8 @@ import android.view.ViewGroup
|
|||
import androidx.core.widget.doAfterTextChanged
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.core.network.model.StringField
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemEditFieldBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.fixTextSelection
|
||||
|
||||
class AccountFieldEditAdapter : RecyclerView.Adapter<BindingHolder<ItemEditFieldBinding>>() {
|
||||
|
|
|
@ -21,8 +21,8 @@ import android.view.ViewGroup
|
|||
import androidx.appcompat.widget.TooltipCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.core.network.model.Emoji
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemEmojiButtonBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import com.bumptech.glide.Glide
|
||||
import java.util.Locale
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import app.pachli.core.activity.emojify
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.network.model.Emoji
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemPollBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.viewdata.PollOptionViewData
|
||||
import app.pachli.viewdata.buildDescription
|
||||
import app.pachli.viewdata.calculatePercent
|
||||
|
|
|
@ -28,9 +28,9 @@ import app.pachli.core.common.extensions.hide
|
|||
import app.pachli.core.common.extensions.show
|
||||
import app.pachli.core.database.model.TabData
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemTabPreferenceBinding
|
||||
import app.pachli.databinding.ItemTabPreferenceSmallBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.setDrawableTint
|
||||
import com.google.android.material.chip.Chip
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ import androidx.core.widget.doAfterTextChanged
|
|||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.viewpager2.widget.MarginPageTransformer
|
||||
import app.pachli.R
|
||||
import app.pachli.components.account.list.ListsForAccountFragment
|
||||
import app.pachli.core.activity.AccountSelectionListener
|
||||
import app.pachli.core.activity.BottomSheetActivity
|
||||
import app.pachli.core.activity.emojify
|
||||
|
@ -77,9 +76,10 @@ import app.pachli.core.network.model.Relationship
|
|||
import app.pachli.core.network.parseAsMastodonHtml
|
||||
import app.pachli.core.preferences.AppTheme
|
||||
import app.pachli.core.preferences.PrefKeys
|
||||
import app.pachli.core.ui.reduceSwipeSensitivity
|
||||
import app.pachli.core.ui.extensions.reduceSwipeSensitivity
|
||||
import app.pachli.databinding.ActivityAccountBinding
|
||||
import app.pachli.db.DraftsAlert
|
||||
import app.pachli.feature.lists.ListsForAccountFragment
|
||||
import app.pachli.interfaces.ActionButtonActivity
|
||||
import app.pachli.interfaces.LinkListener
|
||||
import app.pachli.interfaces.ReselectableFragment
|
||||
|
@ -419,8 +419,8 @@ class AccountActivity :
|
|||
when (it) {
|
||||
is Success -> onAccountChanged(it.data)
|
||||
is Error -> {
|
||||
Snackbar.make(binding.accountCoordinatorLayout, R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_retry) { viewModel.refresh() }
|
||||
Snackbar.make(binding.accountCoordinatorLayout, app.pachli.core.ui.R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { viewModel.refresh() }
|
||||
.show()
|
||||
}
|
||||
is Loading -> { }
|
||||
|
@ -433,8 +433,8 @@ class AccountActivity :
|
|||
}
|
||||
|
||||
if (it is Error) {
|
||||
Snackbar.make(binding.accountCoordinatorLayout, R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_retry) { viewModel.refresh() }
|
||||
Snackbar.make(binding.accountCoordinatorLayout, app.pachli.core.ui.R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { viewModel.refresh() }
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,9 +24,9 @@ import app.pachli.core.activity.emojify
|
|||
import app.pachli.core.network.model.Emoji
|
||||
import app.pachli.core.network.model.Field
|
||||
import app.pachli.core.network.parseAsMastodonHtml
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemAccountFieldBinding
|
||||
import app.pachli.interfaces.LinkListener
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.setClickableText
|
||||
|
||||
class AccountFieldAdapter(
|
||||
|
|
|
@ -113,7 +113,7 @@ class AccountMediaFragment :
|
|||
is LoadState.NotLoading -> {
|
||||
if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) {
|
||||
binding.statusView.show()
|
||||
binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null)
|
||||
binding.statusView.setup(app.pachli.core.ui.R.drawable.elephant_friend_empty, app.pachli.core.ui.R.string.message_empty, null)
|
||||
}
|
||||
}
|
||||
is LoadState.Error -> {
|
||||
|
|
|
@ -17,8 +17,8 @@ import app.pachli.core.common.extensions.show
|
|||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.navigation.AttachmentViewData
|
||||
import app.pachli.core.network.model.Attachment
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemAccountMediaBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.StatusDisplayOptions
|
||||
import app.pachli.util.getFormattedDescription
|
||||
import app.pachli.util.iconResource
|
||||
|
|
|
@ -377,8 +377,8 @@ class AccountListFragment :
|
|||
if (adapter.itemCount == 0) {
|
||||
binding.messageView.show()
|
||||
binding.messageView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
} else {
|
||||
|
|
|
@ -19,9 +19,9 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.core.network.model.TimelineAccount
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemFooterBinding
|
||||
import app.pachli.interfaces.AccountActionListener
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.removeDuplicates
|
||||
|
||||
/** Generic adapter with bottom loading indicator. */
|
||||
|
|
|
@ -23,9 +23,9 @@ import app.pachli.core.activity.emojify
|
|||
import app.pachli.core.activity.loadAvatar
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemBlockedUserBinding
|
||||
import app.pachli.interfaces.AccountActionListener
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
/** Displays a list of blocked accounts. */
|
||||
class BlocksAdapter(
|
||||
|
|
|
@ -20,8 +20,8 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.R
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemFollowRequestsHeaderBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class FollowRequestsHeaderAdapter(
|
||||
private val instanceName: String,
|
||||
|
|
|
@ -24,9 +24,9 @@ import app.pachli.core.activity.emojify
|
|||
import app.pachli.core.activity.loadAvatar
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemMutedUserBinding
|
||||
import app.pachli.interfaces.AccountActionListener
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
/** Displays a list of muted accounts with mute/unmute account button and mute/unmute notifications switch */
|
||||
class MutesAdapter(
|
||||
|
|
|
@ -31,9 +31,9 @@ import app.pachli.core.common.extensions.visible
|
|||
import app.pachli.core.common.util.AbsoluteTimeFormatter
|
||||
import app.pachli.core.network.model.Announcement
|
||||
import app.pachli.core.network.parseAsMastodonHtml
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemAnnouncementBinding
|
||||
import app.pachli.interfaces.LinkListener
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.equalByMinute
|
||||
import app.pachli.util.getRelativeTimeSpanString
|
||||
import app.pachli.util.setClickableText
|
||||
|
|
|
@ -32,13 +32,13 @@ import app.pachli.core.activity.BottomSheetActivity
|
|||
import app.pachli.core.common.extensions.hide
|
||||
import app.pachli.core.common.extensions.show
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.navigation.StatusListActivityIntent
|
||||
import app.pachli.core.preferences.PrefKeys
|
||||
import app.pachli.databinding.ActivityAnnouncementsBinding
|
||||
import app.pachli.util.Error
|
||||
import app.pachli.util.Loading
|
||||
import app.pachli.util.Success
|
||||
import app.pachli.util.unsafeLazy
|
||||
import app.pachli.view.EmojiPicker
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.divider.MaterialDividerItemDecoration
|
||||
|
@ -109,7 +109,7 @@ class AnnouncementsActivity :
|
|||
binding.progressBar.hide()
|
||||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
if (it.data.isNullOrEmpty()) {
|
||||
binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_announcements)
|
||||
binding.errorMessageView.setup(app.pachli.core.ui.R.drawable.elephant_friend_empty, R.string.no_announcements)
|
||||
binding.errorMessageView.show()
|
||||
} else {
|
||||
binding.errorMessageView.hide()
|
||||
|
@ -122,7 +122,7 @@ class AnnouncementsActivity :
|
|||
is Error -> {
|
||||
binding.progressBar.hide()
|
||||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
binding.errorMessageView.setup(R.drawable.errorphant_error, R.string.error_generic) {
|
||||
binding.errorMessageView.setup(app.pachli.core.ui.R.drawable.errorphant_error, app.pachli.core.ui.R.string.error_generic) {
|
||||
refreshAnnouncements()
|
||||
}
|
||||
binding.errorMessageView.show()
|
||||
|
|
|
@ -585,7 +585,7 @@ class ComposeActivity :
|
|||
title = null
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
setDisplayShowHomeEnabled(true)
|
||||
setHomeAsUpIndicator(R.drawable.ic_close_24dp)
|
||||
setHomeAsUpIndicator(app.pachli.core.ui.R.drawable.ic_close_24dp)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -997,7 +997,7 @@ class ComposeActivity :
|
|||
R.string.error_media_upload_permission,
|
||||
Snackbar.LENGTH_SHORT,
|
||||
).apply {
|
||||
setAction(R.string.action_retry) { onMediaPick() }
|
||||
setAction(app.pachli.core.ui.R.string.action_retry) { onMediaPick() }
|
||||
// necessary so snackbar is shown over everything
|
||||
view.elevation = resources.getDimension(DR.dimen.compose_activity_snackbar_elevation)
|
||||
show()
|
||||
|
|
|
@ -32,11 +32,11 @@ import app.pachli.components.compose.ComposeActivity.QueuedMedia
|
|||
import app.pachli.core.common.string.randomAlphanumericString
|
||||
import app.pachli.core.data.model.InstanceInfo
|
||||
import app.pachli.core.mastodon.model.MediaUploadApi
|
||||
import app.pachli.core.network.extensions.getServerErrorMessage
|
||||
import app.pachli.network.ProgressRequestBody
|
||||
import app.pachli.util.MEDIA_SIZE_UNKNOWN
|
||||
import app.pachli.util.getImageSquarePixels
|
||||
import app.pachli.util.getMediaSize
|
||||
import app.pachli.util.getServerErrorMessage
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import java.io.File
|
||||
import java.io.FileInputStream
|
||||
|
|
|
@ -24,8 +24,8 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import app.pachli.R
|
||||
import app.pachli.components.compose.ComposeActivity.Companion.MastodonLengthFilter
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemAddPollOptionBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class AddPollOptionsAdapter(
|
||||
private var options: MutableList<String>,
|
||||
|
|
|
@ -21,8 +21,8 @@ import android.view.ViewGroup
|
|||
import androidx.paging.LoadState
|
||||
import androidx.paging.LoadStateAdapter
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemNetworkStateBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class ConversationLoadStateAdapter(
|
||||
private val retryCallback: () -> Unit,
|
||||
|
|
|
@ -127,8 +127,8 @@ class ConversationsFragment :
|
|||
if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) {
|
||||
binding.statusView.show()
|
||||
binding.statusView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ class DraftsActivity : BaseActivity(), DraftActionListener {
|
|||
setDisplayShowHomeEnabled(true)
|
||||
}
|
||||
|
||||
binding.draftsErrorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_drafts)
|
||||
binding.draftsErrorMessageView.setup(app.pachli.core.ui.R.drawable.elephant_friend_empty, R.string.no_drafts)
|
||||
|
||||
val adapter = DraftsAdapter(this)
|
||||
|
||||
|
|
|
@ -26,8 +26,8 @@ import app.pachli.core.common.extensions.hide
|
|||
import app.pachli.core.common.extensions.show
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.core.database.model.DraftEntity
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemDraftBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
interface DraftActionListener {
|
||||
fun onOpenDraft(draft: DraftEntity)
|
||||
|
|
|
@ -20,7 +20,7 @@ package app.pachli.components.filters
|
|||
import android.app.Activity
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import app.pachli.R
|
||||
import app.pachli.core.ui.await
|
||||
import app.pachli.core.ui.extensions.await
|
||||
|
||||
internal suspend fun Activity.showDeleteFilterDialog(filterTitle: String) = AlertDialog.Builder(this)
|
||||
.setMessage(getString(R.string.dialog_delete_filter_text, filterTitle))
|
||||
|
|
|
@ -62,13 +62,13 @@ class FiltersActivity : BaseActivity(), FiltersListener {
|
|||
when (state.loadingState) {
|
||||
FiltersViewModel.LoadingState.INITIAL, FiltersViewModel.LoadingState.LOADING -> binding.messageView.hide()
|
||||
FiltersViewModel.LoadingState.ERROR_NETWORK -> {
|
||||
binding.messageView.setup(R.drawable.errorphant_offline, R.string.error_network) {
|
||||
binding.messageView.setup(app.pachli.core.ui.R.drawable.errorphant_offline, app.pachli.core.ui.R.string.error_network) {
|
||||
loadFilters()
|
||||
}
|
||||
binding.messageView.show()
|
||||
}
|
||||
FiltersViewModel.LoadingState.ERROR_OTHER -> {
|
||||
binding.messageView.setup(R.drawable.errorphant_error, R.string.error_generic) {
|
||||
binding.messageView.setup(app.pachli.core.ui.R.drawable.errorphant_error, app.pachli.core.ui.R.string.error_generic) {
|
||||
loadFilters()
|
||||
}
|
||||
binding.messageView.show()
|
||||
|
@ -77,8 +77,8 @@ class FiltersActivity : BaseActivity(), FiltersListener {
|
|||
binding.filtersList.adapter = FiltersAdapter(this@FiltersActivity, state.filters)
|
||||
if (state.filters.isEmpty()) {
|
||||
binding.messageView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
binding.messageView.show()
|
||||
|
|
|
@ -5,8 +5,8 @@ import android.view.ViewGroup
|
|||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.R
|
||||
import app.pachli.core.network.model.Filter
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemRemovableBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.getRelativeTimeSpanString
|
||||
|
||||
class FiltersAdapter(val listener: FiltersListener, val filters: List<Filter>) :
|
||||
|
|
|
@ -4,9 +4,9 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemFollowedHashtagBinding
|
||||
import app.pachli.interfaces.HashtagActionListener
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class FollowedTagsAdapter(
|
||||
private val actionListener: HashtagActionListener,
|
||||
|
|
|
@ -4,8 +4,8 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import app.pachli.components.instancemute.interfaces.InstanceActionListener
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemMutedDomainBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class DomainMutesAdapter(
|
||||
private val actionListener: InstanceActionListener,
|
||||
|
|
|
@ -124,8 +124,8 @@ class InstanceListFragment :
|
|||
if (adapter.itemCount == 0) {
|
||||
binding.messageView.show()
|
||||
binding.messageView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
} else {
|
||||
|
|
|
@ -26,11 +26,11 @@ import androidx.fragment.app.commit
|
|||
import app.pachli.R
|
||||
import app.pachli.core.activity.BottomSheetActivity
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.navigation.ComposeActivityIntent
|
||||
import app.pachli.databinding.ActivityNotificationsBinding
|
||||
import app.pachli.interfaces.ActionButtonActivity
|
||||
import app.pachli.interfaces.AppBarLayoutHost
|
||||
import app.pachli.util.unsafeLazy
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
|
||||
class NotificationsActivity : BottomSheetActivity(), ActionButtonActivity, AppBarLayoutHost, MenuProvider {
|
||||
|
|
|
@ -229,7 +229,7 @@ class NotificationsFragment :
|
|||
Snackbar.LENGTH_INDEFINITE,
|
||||
)
|
||||
error.action?.let { action ->
|
||||
snackbar.setAction(R.string.action_retry) {
|
||||
snackbar.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
viewModel.accept(action)
|
||||
}
|
||||
}
|
||||
|
@ -421,8 +421,8 @@ class NotificationsFragment :
|
|||
if (loadState.refresh is LoadState.NotLoading) {
|
||||
if (adapter.itemCount == 0) {
|
||||
binding.statusView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
)
|
||||
binding.recyclerView.hide()
|
||||
binding.statusView.show()
|
||||
|
|
|
@ -27,6 +27,7 @@ import app.pachli.appstore.EventHub
|
|||
import app.pachli.components.notifications.currentAccountNeedsMigration
|
||||
import app.pachli.core.accounts.AccountManager
|
||||
import app.pachli.core.activity.BaseActivity
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.navigation.AccountListActivityIntent
|
||||
import app.pachli.core.navigation.FiltersActivityIntent
|
||||
|
@ -54,7 +55,6 @@ import app.pachli.util.getInitialLanguages
|
|||
import app.pachli.util.getLocaleList
|
||||
import app.pachli.util.getPachliDisplayName
|
||||
import app.pachli.util.makeIcon
|
||||
import app.pachli.util.unsafeLazy
|
||||
import com.github.michaelbull.result.getOrElse
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.mikepenz.iconics.IconicsDrawable
|
||||
|
@ -339,7 +339,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat() {
|
|||
private fun showErrorSnackbar(visibility: String?, sensitive: Boolean?) {
|
||||
view?.let { view ->
|
||||
Snackbar.make(view, R.string.pref_failed_to_sync, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_retry) { syncWithServer(visibility, sensitive) }
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { syncWithServer(visibility, sensitive) }
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import androidx.preference.Preference
|
|||
import androidx.preference.PreferenceFragmentCompat
|
||||
import app.pachli.R
|
||||
import app.pachli.core.accounts.AccountManager
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.network.model.Notification
|
||||
import app.pachli.core.preferences.AppTheme
|
||||
|
@ -48,7 +49,6 @@ import app.pachli.util.LocaleManager
|
|||
import app.pachli.util.deserialize
|
||||
import app.pachli.util.makeIcon
|
||||
import app.pachli.util.serialize
|
||||
import app.pachli.util.unsafeLazy
|
||||
import app.pachli.view.FontFamilyDialogFragment
|
||||
import com.mikepenz.iconics.IconicsDrawable
|
||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||
|
|
|
@ -53,7 +53,7 @@ class ReportActivity : BottomSheetActivity() {
|
|||
title = getString(R.string.report_username_format, viewModel.accountUserName)
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
setDisplayShowHomeEnabled(true)
|
||||
setHomeAsUpIndicator(R.drawable.ic_close_24dp)
|
||||
setHomeAsUpIndicator(app.pachli.core.ui.R.drawable.ic_close_24dp)
|
||||
}
|
||||
|
||||
initViewPager()
|
||||
|
|
|
@ -92,8 +92,8 @@ class ReportNoteFragment : Fragment(R.layout.fragment_report_note) {
|
|||
binding.buttonBack.isEnabled = true
|
||||
binding.progressBar.hide()
|
||||
|
||||
Snackbar.make(binding.buttonBack, if (error is IOException) R.string.error_network else R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.action_retry) {
|
||||
Snackbar.make(binding.buttonBack, if (error is IOException) app.pachli.core.ui.R.string.error_network else app.pachli.core.ui.R.string.error_generic, Snackbar.LENGTH_LONG)
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
sendReport()
|
||||
}
|
||||
.show()
|
||||
|
|
|
@ -184,7 +184,7 @@ class ReportStatusesFragment :
|
|||
private fun showError() {
|
||||
if (snackbarErrorRetry?.isShown != true) {
|
||||
snackbarErrorRetry = Snackbar.make(binding.swipeRefreshLayout, R.string.failed_fetch_posts, Snackbar.LENGTH_INDEFINITE)
|
||||
snackbarErrorRetry?.setAction(R.string.action_retry) {
|
||||
snackbarErrorRetry?.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
adapter.retry()
|
||||
}
|
||||
snackbarErrorRetry?.show()
|
||||
|
|
|
@ -107,7 +107,7 @@ class ScheduledStatusActivity :
|
|||
if (loadState.refresh is LoadState.NotLoading) {
|
||||
binding.progressBar.hide()
|
||||
if (adapter.itemCount == 0) {
|
||||
binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_scheduled_posts)
|
||||
binding.errorMessageView.setup(app.pachli.core.ui.R.drawable.elephant_friend_empty, R.string.no_scheduled_posts)
|
||||
binding.errorMessageView.show()
|
||||
} else {
|
||||
binding.errorMessageView.hide()
|
||||
|
|
|
@ -21,8 +21,8 @@ import android.view.ViewGroup
|
|||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import app.pachli.core.network.model.ScheduledStatus
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemScheduledStatusBinding
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
interface ScheduledStatusActionListener {
|
||||
fun edit(item: ScheduledStatus)
|
||||
|
|
|
@ -31,7 +31,7 @@ import app.pachli.components.search.adapter.SearchPagerAdapter
|
|||
import app.pachli.core.activity.BottomSheetActivity
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.preferences.PrefKeys
|
||||
import app.pachli.core.ui.reduceSwipeSensitivity
|
||||
import app.pachli.core.ui.extensions.reduceSwipeSensitivity
|
||||
import app.pachli.databinding.ActivitySearchBinding
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
|
|
@ -21,9 +21,9 @@ import android.view.ViewGroup
|
|||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import app.pachli.core.network.model.HashTag
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemHashtagBinding
|
||||
import app.pachli.interfaces.LinkListener
|
||||
import app.pachli.util.BindingHolder
|
||||
|
||||
class SearchHashtagsAdapter(private val linkListener: LinkListener) :
|
||||
PagingDataAdapter<HashTag, BindingHolder<ItemHashtagBinding>>(HASHTAG_COMPARATOR) {
|
||||
|
|
|
@ -131,7 +131,7 @@ abstract class SearchFragment<T : Any> :
|
|||
private fun showError() {
|
||||
if (snackbarErrorRetry?.isShown != true) {
|
||||
snackbarErrorRetry = Snackbar.make(binding.root, R.string.failed_search, Snackbar.LENGTH_INDEFINITE)
|
||||
snackbarErrorRetry?.setAction(R.string.action_retry) {
|
||||
snackbarErrorRetry?.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
snackbarErrorRetry = null
|
||||
adapter.retry()
|
||||
}
|
||||
|
|
|
@ -446,7 +446,7 @@ class SearchStatusesFragment : SearchFragment<StatusViewData>(), StatusActionLis
|
|||
},
|
||||
{ error ->
|
||||
Timber.w(error, "error deleting status")
|
||||
Toast.makeText(context, R.string.error_generic, Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(context, app.pachli.core.ui.R.string.error_generic, Toast.LENGTH_SHORT).show()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -60,6 +60,8 @@ import app.pachli.core.navigation.AttachmentViewData
|
|||
import app.pachli.core.network.model.Poll
|
||||
import app.pachli.core.network.model.Status
|
||||
import app.pachli.core.network.model.TimelineKind
|
||||
import app.pachli.core.ui.extensions.getDrawableRes
|
||||
import app.pachli.core.ui.extensions.getErrorString
|
||||
import app.pachli.databinding.FragmentTimelineBinding
|
||||
import app.pachli.fragment.SFragment
|
||||
import app.pachli.interfaces.ActionButtonActivity
|
||||
|
@ -70,8 +72,6 @@ import app.pachli.util.ListStatusAccessibilityDelegate
|
|||
import app.pachli.util.PresentationState
|
||||
import app.pachli.util.UserRefreshState
|
||||
import app.pachli.util.asRefreshState
|
||||
import app.pachli.util.getDrawableRes
|
||||
import app.pachli.util.getErrorString
|
||||
import app.pachli.util.withPresentationState
|
||||
import app.pachli.viewdata.StatusViewData
|
||||
import at.connyduck.sparkbutton.helpers.Utils
|
||||
|
@ -249,7 +249,7 @@ class TimelineFragment :
|
|||
Snackbar.LENGTH_INDEFINITE,
|
||||
)
|
||||
error.action?.let { action ->
|
||||
snackbar!!.setAction(R.string.action_retry) {
|
||||
snackbar!!.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
viewModel.accept(action)
|
||||
}
|
||||
}
|
||||
|
@ -438,7 +438,7 @@ class TimelineFragment :
|
|||
message,
|
||||
Snackbar.LENGTH_INDEFINITE,
|
||||
)
|
||||
.setAction(R.string.action_retry) { adapter.retry() }
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { adapter.retry() }
|
||||
snackbar!!.show()
|
||||
} else {
|
||||
val drawableRes = error.getDrawableRes()
|
||||
|
@ -454,8 +454,8 @@ class TimelineFragment :
|
|||
PresentationState.PRESENTED -> {
|
||||
if (adapter.itemCount == 0) {
|
||||
binding.statusView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
)
|
||||
if (timelineKind == TimelineKind.Home) {
|
||||
binding.statusView.showHelp(R.string.help_empty_home)
|
||||
|
|
|
@ -31,7 +31,7 @@ import app.pachli.components.timeline.TimelineFragment
|
|||
import app.pachli.core.activity.BottomSheetActivity
|
||||
import app.pachli.core.common.extensions.viewBinding
|
||||
import app.pachli.core.network.model.TimelineKind
|
||||
import app.pachli.core.ui.reduceSwipeSensitivity
|
||||
import app.pachli.core.ui.extensions.reduceSwipeSensitivity
|
||||
import app.pachli.databinding.ActivityTrendingBinding
|
||||
import app.pachli.interfaces.AppBarLayoutHost
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
|
|
|
@ -111,8 +111,8 @@ class TrendingLinksFragment :
|
|||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
if (it.data.isEmpty()) {
|
||||
binding.messageView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
binding.messageView.show()
|
||||
|
|
|
@ -200,8 +200,8 @@ class TrendingTagsFragment :
|
|||
binding.recyclerView.hide()
|
||||
binding.messageView.show()
|
||||
binding.messageView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
R.string.message_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.string.message_empty,
|
||||
null,
|
||||
)
|
||||
} else {
|
||||
|
@ -234,8 +234,8 @@ class TrendingTagsFragment :
|
|||
|
||||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
binding.messageView.setup(
|
||||
R.drawable.errorphant_offline,
|
||||
R.string.error_network,
|
||||
app.pachli.core.ui.R.drawable.errorphant_offline,
|
||||
app.pachli.core.ui.R.string.error_network,
|
||||
) { refreshContent() }
|
||||
}
|
||||
|
||||
|
@ -246,8 +246,8 @@ class TrendingTagsFragment :
|
|||
|
||||
binding.swipeRefreshLayout.isRefreshing = false
|
||||
binding.messageView.setup(
|
||||
R.drawable.errorphant_error,
|
||||
R.string.error_generic,
|
||||
app.pachli.core.ui.R.drawable.errorphant_error,
|
||||
app.pachli.core.ui.R.string.error_generic,
|
||||
) { refreshContent() }
|
||||
}
|
||||
|
||||
|
|
|
@ -209,9 +209,9 @@ class ViewThreadFragment :
|
|||
lifecycleScope.launch {
|
||||
viewModel.errors.collect { throwable ->
|
||||
Timber.w(throwable, "failed to load status context")
|
||||
val msg = view.context.getString(R.string.error_generic_fmt, throwable)
|
||||
val msg = view.context.getString(app.pachli.core.ui.R.string.error_generic_fmt, throwable)
|
||||
Snackbar.make(binding.root, msg, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_retry) {
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) {
|
||||
viewModel.retry(thisThreadsStatusId)
|
||||
}
|
||||
.show()
|
||||
|
|
|
@ -30,9 +30,9 @@ import app.pachli.core.common.util.AbsoluteTimeFormatter
|
|||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.network.model.StatusEdit
|
||||
import app.pachli.core.network.parseAsMastodonHtml
|
||||
import app.pachli.core.ui.BindingHolder
|
||||
import app.pachli.databinding.ItemStatusEditBinding
|
||||
import app.pachli.interfaces.LinkListener
|
||||
import app.pachli.util.BindingHolder
|
||||
import app.pachli.util.aspectRatios
|
||||
import app.pachli.util.setClickableText
|
||||
import app.pachli.viewdata.PollOptionViewData
|
||||
|
|
|
@ -113,7 +113,7 @@ class ViewEditsFragment :
|
|||
when (uiState.throwable) {
|
||||
is ViewEditsViewModel.MissingEditsException -> {
|
||||
binding.statusView.setup(
|
||||
R.drawable.elephant_friend_empty,
|
||||
app.pachli.core.ui.R.drawable.elephant_friend_empty,
|
||||
R.string.error_missing_edits,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ abstract class SFragment<T : IStatusViewData> : Fragment(), StatusActionListener
|
|||
Timber.e(msg)
|
||||
try {
|
||||
Snackbar.make(requireView(), msg, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_retry) { serverRepository.retry() }
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { serverRepository.retry() }
|
||||
.show()
|
||||
} catch (e: IllegalArgumentException) {
|
||||
// On rare occasions this code is running before the fragment's
|
||||
|
@ -433,7 +433,7 @@ abstract class SFragment<T : IStatusViewData> : Fragment(), StatusActionListener
|
|||
val result = timelineCases.delete(viewData.status.id).exceptionOrNull()
|
||||
if (result != null) {
|
||||
Timber.w(result, "error deleting status")
|
||||
Toast.makeText(context, R.string.error_generic, Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(context, app.pachli.core.ui.R.string.error_generic, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
// XXX: Removes the item even if there was an error. This is probably not
|
||||
// correct (see similar code in showConfirmEditDialog() which only
|
||||
|
@ -479,7 +479,7 @@ abstract class SFragment<T : IStatusViewData> : Fragment(), StatusActionListener
|
|||
},
|
||||
{ error: Throwable? ->
|
||||
Timber.w(error, "error deleting status")
|
||||
Toast.makeText(context, R.string.error_generic, Toast.LENGTH_SHORT)
|
||||
Toast.makeText(context, app.pachli.core.ui.R.string.error_generic, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
},
|
||||
)
|
||||
|
|
|
@ -244,7 +244,7 @@ class ViewVideoFragment : ViewMediaFragment() {
|
|||
error.cause?.message ?: error.message,
|
||||
)
|
||||
Snackbar.make(binding.root, message, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_retry) { player?.prepare() }
|
||||
.setAction(app.pachli.core.ui.R.string.action_retry) { player?.prepare() }
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ class SendStatusBroadcastReceiver : BroadcastReceiver() {
|
|||
.setGroup(senderFullName)
|
||||
.setDefaults(0) // So it doesn't ring twice, notify only in Target callback
|
||||
|
||||
builder.setContentTitle(context.getString(R.string.error_generic))
|
||||
builder.setContentTitle(context.getString(app.pachli.core.ui.R.string.error_generic))
|
||||
builder.setContentText(context.getString(R.string.error_sender_account_gone))
|
||||
|
||||
builder.setSubText(senderFullName)
|
||||
|
|
|
@ -28,6 +28,7 @@ import app.pachli.components.compose.UploadEvent
|
|||
import app.pachli.components.drafts.DraftHelper
|
||||
import app.pachli.components.notifications.pendingIntentFlags
|
||||
import app.pachli.core.accounts.AccountManager
|
||||
import app.pachli.core.common.util.unsafeLazy
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.navigation.MainActivityIntent
|
||||
import app.pachli.core.network.model.Attachment
|
||||
|
@ -36,7 +37,6 @@ import app.pachli.core.network.model.NewPoll
|
|||
import app.pachli.core.network.model.NewStatus
|
||||
import app.pachli.core.network.model.Status
|
||||
import app.pachli.core.network.retrofit.MastodonApi
|
||||
import app.pachli.util.unsafeLazy
|
||||
import at.connyduck.calladapter.networkresult.fold
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import java.io.IOException
|
||||
|
|
|
@ -28,7 +28,7 @@ import app.pachli.core.common.util.AbsoluteTimeFormatter
|
|||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.preferences.PrefKeys
|
||||
import app.pachli.core.preferences.SharedPreferencesRepository
|
||||
import app.pachli.core.ui.await
|
||||
import app.pachli.core.ui.extensions.await
|
||||
import app.pachli.updatecheck.UpdateCheckResult.AT_LATEST
|
||||
import app.pachli.updatecheck.UpdateCheckResult.DIALOG_SHOWN
|
||||
import app.pachli.updatecheck.UpdateCheckResult.IGNORED
|
||||
|
|
|
@ -27,13 +27,13 @@ import app.pachli.appstore.PollVoteEvent
|
|||
import app.pachli.appstore.ReblogEvent
|
||||
import app.pachli.appstore.StatusDeletedEvent
|
||||
import app.pachli.components.timeline.CachedTimelineRepository
|
||||
import app.pachli.core.network.extensions.getServerErrorMessage
|
||||
import app.pachli.core.network.model.DeletedStatus
|
||||
import app.pachli.core.network.model.Poll
|
||||
import app.pachli.core.network.model.Relationship
|
||||
import app.pachli.core.network.model.Status
|
||||
import app.pachli.core.network.model.Translation
|
||||
import app.pachli.core.network.retrofit.MastodonApi
|
||||
import app.pachli.util.getServerErrorMessage
|
||||
import app.pachli.viewdata.StatusViewData
|
||||
import at.connyduck.calladapter.networkresult.NetworkResult
|
||||
import at.connyduck.calladapter.networkresult.fold
|
||||
|
|
|
@ -318,7 +318,7 @@ class ListStatusAccessibilityDelegate<T : IStatusViewData>(
|
|||
|
||||
private val openProfileAction = AccessibilityActionCompat(
|
||||
R.id.action_open_profile,
|
||||
context.getString(R.string.action_view_profile),
|
||||
context.getString(app.pachli.core.ui.R.string.action_view_profile),
|
||||
)
|
||||
|
||||
private val linksAction = AccessibilityActionCompat(
|
||||
|
@ -353,7 +353,7 @@ class ListStatusAccessibilityDelegate<T : IStatusViewData>(
|
|||
|
||||
private val moreAction = AccessibilityActionCompat(
|
||||
R.id.action_more,
|
||||
context.getString(R.string.action_more),
|
||||
context.getString(app.pachli.core.ui.R.string.action_more),
|
||||
)
|
||||
|
||||
private data class LinkSpanInfo(val text: String, val link: String)
|
||||
|
|
|
@ -1,19 +1,12 @@
|
|||
package app.pachli.util
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import android.text.style.CharacterStyle
|
||||
import android.text.style.DynamicDrawableSpan
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.text.style.ImageSpan
|
||||
import android.text.style.URLSpan
|
||||
import app.pachli.core.ui.MentionSpan
|
||||
import app.pachli.core.ui.NoUnderlineURLSpan
|
||||
import com.mikepenz.iconics.IconicsDrawable
|
||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||
import java.util.regex.Pattern
|
||||
import kotlin.math.max
|
||||
|
||||
|
@ -97,30 +90,6 @@ fun highlightSpans(text: Spannable, colour: Int) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces text of the form [iconics name] with their spanned counterparts (ImageSpan).
|
||||
*/
|
||||
fun addDrawables(text: CharSequence, color: Int, size: Int, context: Context): Spannable {
|
||||
val alignment = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) DynamicDrawableSpan.ALIGN_CENTER else DynamicDrawableSpan.ALIGN_BASELINE
|
||||
|
||||
val builder = SpannableStringBuilder(text)
|
||||
|
||||
val pattern = Pattern.compile("\\[iconics ([0-9a-z_]+)\\]")
|
||||
val matcher = pattern.matcher(builder)
|
||||
while (matcher.find()) {
|
||||
val resourceName = matcher.group(1)
|
||||
?: continue
|
||||
|
||||
val drawable = IconicsDrawable(context, GoogleMaterial.getIcon(resourceName))
|
||||
drawable.setBounds(0, 0, size, size)
|
||||
drawable.setTint(color)
|
||||
|
||||
builder.setSpan(ImageSpan(drawable, alignment), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
}
|
||||
|
||||
return builder
|
||||
}
|
||||
|
||||
private fun <T> clearSpans(text: Spannable, spanClass: Class<T>) {
|
||||
for (span in text.getSpans(0, text.length, spanClass)) {
|
||||
text.removeSpan(span)
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
package app.pachli.util
|
||||
|
||||
import android.content.Context
|
||||
import app.pachli.R
|
||||
import java.io.IOException
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
import retrofit2.HttpException
|
||||
|
||||
/**
|
||||
* checks if this throwable indicates an error causes by a 4xx/5xx server response and
|
||||
* tries to retrieve the error message the server sent
|
||||
* @return the error message, or null if this is no server error or it had no error message
|
||||
*/
|
||||
fun Throwable.getServerErrorMessage(): String? {
|
||||
if (this is HttpException) {
|
||||
val errorResponse = response()?.errorBody()?.string()
|
||||
return if (!errorResponse.isNullOrBlank()) {
|
||||
try {
|
||||
JSONObject(errorResponse).getString("error")
|
||||
} catch (e: JSONException) {
|
||||
null
|
||||
}
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
/** @return A drawable resource to accompany the error message for this throwable */
|
||||
fun Throwable.getDrawableRes(): Int = when (this) {
|
||||
is IOException -> R.drawable.errorphant_offline
|
||||
is HttpException -> {
|
||||
if (this.code() == 404) {
|
||||
R.drawable.elephant_friend_empty
|
||||
} else {
|
||||
R.drawable.errorphant_offline
|
||||
}
|
||||
}
|
||||
else -> R.drawable.errorphant_error
|
||||
}
|
||||
|
||||
/** @return A string error message for this throwable */
|
||||
fun Throwable.getErrorString(context: Context): String = getServerErrorMessage() ?: when (this) {
|
||||
is IOException -> context.getString(R.string.error_network_fmt, this.message)
|
||||
is HttpException -> if (this.code() == 404) context.getString(R.string.error_404_not_found_fmt, this.message) else context.getString(R.string.error_generic_fmt, this.message)
|
||||
else -> context.getString(R.string.error_generic_fmt, this.message)
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
package app.pachli.view
|
||||
|
||||
import android.content.Context
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.util.AttributeSet
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import app.pachli.R
|
||||
import app.pachli.core.common.extensions.visible
|
||||
import app.pachli.databinding.ViewBackgroundMessageBinding
|
||||
import app.pachli.util.addDrawables
|
||||
import app.pachli.util.getDrawableRes
|
||||
import app.pachli.util.getErrorString
|
||||
|
||||
/**
|
||||
* This view is used for screens with content which may be empty or might have failed to download.
|
||||
*/
|
||||
class BackgroundMessageView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0,
|
||||
) : LinearLayout(context, attrs, defStyleAttr) {
|
||||
|
||||
private val binding = ViewBackgroundMessageBinding.inflate(LayoutInflater.from(context), this)
|
||||
|
||||
init {
|
||||
gravity = Gravity.CENTER_HORIZONTAL
|
||||
orientation = VERTICAL
|
||||
|
||||
if (isInEditMode) {
|
||||
setup(R.drawable.errorphant_offline, R.string.error_network) {}
|
||||
}
|
||||
}
|
||||
|
||||
fun setup(throwable: Throwable, listener: ((v: View) -> Unit)? = null) {
|
||||
setup(throwable.getDrawableRes(), throwable.getErrorString(context), listener)
|
||||
}
|
||||
|
||||
fun setup(
|
||||
@DrawableRes imageRes: Int,
|
||||
@StringRes messageRes: Int,
|
||||
clickListener: ((v: View) -> Unit)? = null,
|
||||
) = setup(imageRes, context.getString(messageRes), clickListener)
|
||||
|
||||
/**
|
||||
* Setup image, message and button.
|
||||
* If [clickListener] is `null` then the button will be hidden.
|
||||
*/
|
||||
fun setup(
|
||||
@DrawableRes imageRes: Int,
|
||||
message: String,
|
||||
clickListener: ((v: View) -> Unit)? = null,
|
||||
) {
|
||||
binding.messageTextView.text = message
|
||||
binding.messageTextView.movementMethod = LinkMovementMethod.getInstance()
|
||||
binding.imageView.setImageResource(imageRes)
|
||||
binding.button.setOnClickListener(clickListener)
|
||||
binding.button.visible(clickListener != null)
|
||||
}
|
||||
|
||||
fun showHelp(@StringRes helpRes: Int) {
|
||||
val size: Int = binding.helpText.textSize.toInt() + 2
|
||||
val color = binding.helpText.currentTextColor
|
||||
val text = context.getText(helpRes)
|
||||
val textWithDrawables = addDrawables(text, color, size, context)
|
||||
|
||||
binding.helpText.setText(textWithDrawables, TextView.BufferType.SPANNABLE)
|
||||
|
||||
binding.helpText.visible(true)
|
||||
}
|
||||
}
|
|
@ -27,6 +27,7 @@ import app.pachli.appstore.ProfileEditedEvent
|
|||
import app.pachli.core.common.string.randomAlphanumericString
|
||||
import app.pachli.core.data.model.InstanceInfo
|
||||
import app.pachli.core.data.repository.InstanceInfoRepository
|
||||
import app.pachli.core.network.extensions.getServerErrorMessage
|
||||
import app.pachli.core.network.model.Account
|
||||
import app.pachli.core.network.model.StringField
|
||||
import app.pachli.core.network.retrofit.MastodonApi
|
||||
|
@ -34,7 +35,6 @@ import app.pachli.util.Error
|
|||
import app.pachli.util.Loading
|
||||
import app.pachli.util.Resource
|
||||
import app.pachli.util.Success
|
||||
import app.pachli.util.getServerErrorMessage
|
||||
import at.connyduck.calladapter.networkresult.fold
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import java.io.File
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
android:indeterminate="true"
|
||||
android:contentDescription="@string/a11y_label_loading_thread" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/errorMessageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
android:scrollbars="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/draftsErrorMessageView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
android:scrollbars="vertical"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/messageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
/>
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/followedTagsMessageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/errorMessageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/messageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/messageView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/messageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/messageView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -100,13 +100,11 @@
|
|||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/a11y_label_loading_thread" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" >
|
||||
|
||||
</app.pachli.view.BackgroundMessageView>
|
||||
android:visibility="gone" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
android:background="?android:attr/colorBackground"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<app.pachli.view.BackgroundMessageView
|
||||
<app.pachli.core.ui.BackgroundMessageView
|
||||
android:id="@+id/statusView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/list_edit"
|
||||
android:title="@string/action_add_or_remove_from_list" />
|
||||
<item
|
||||
android:id="@+id/list_update"
|
||||
android:title="@string/action_rename_list" />
|
||||
<item
|
||||
android:id="@+id/list_delete"
|
||||
android:title="@string/action_delete_list" />
|
||||
|
||||
</menu>
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">وقع هناك خطأ.</string>
|
||||
<string name="error_network">حدث خطأ في الشبكة! يرجى التحقق من اتصالك ثم أعد المحاولة!</string>
|
||||
<string name="error_empty">لا يجب أن يترك هذا الحقل فارغا.</string>
|
||||
<string name="error_no_web_browser_found">تعذر العثور على متصفح ويب صالح للإستعمال.</string>
|
||||
<string name="error_compose_character_limit">إنّ المنشور طويل جدا!</string>
|
||||
|
@ -39,7 +37,6 @@
|
|||
<string name="post_content_warning_show_less">اعرض أقل</string>
|
||||
<string name="post_content_show_more">توسيع</string>
|
||||
<string name="post_content_show_less">تصغير</string>
|
||||
<string name="message_empty">لا شيء هنا.</string>
|
||||
<string name="footer_empty">لا يوجد شيء هنا. إسحب إلى أسفل للإنعاش!</string>
|
||||
<string name="notification_reblog_format">شارك %s منشورك</string>
|
||||
<string name="notification_favourite_format">أعجِب %s بمنشورك</string>
|
||||
|
@ -52,7 +49,6 @@
|
|||
<string name="action_unreblog">إزالة المشاركة</string>
|
||||
<string name="action_favourite">تفضيل</string>
|
||||
<string name="action_unfavourite">إزالة المفضلة</string>
|
||||
<string name="action_more">المزيد</string>
|
||||
<string name="action_compose">حرر</string>
|
||||
<string name="action_logout">خروج</string>
|
||||
<string name="action_logout_confirm">متأكد مِن أنك تود الخروج من الحساب %1$s؟</string>
|
||||
|
@ -66,8 +62,6 @@
|
|||
<string name="action_delete">إحذف</string>
|
||||
<string name="action_send">بَوّق</string>
|
||||
<string name="action_send_public">بوّق!</string>
|
||||
<string name="action_retry">أعد المحاولة</string>
|
||||
<string name="action_view_profile">الملف التعريفي</string>
|
||||
<string name="action_view_preferences">التفضيلات</string>
|
||||
<string name="action_view_account_preferences">اعدادات الحساب</string>
|
||||
<string name="action_view_favourites">المفضلة</string>
|
||||
|
@ -238,16 +232,6 @@
|
|||
<string name="filter_add_description">العبارة التي يلزم تصفيتها</string>
|
||||
<string name="add_account_name">إضافة حساب</string>
|
||||
<string name="add_account_description">إضافة حساب ماستدون جديد</string>
|
||||
<string name="title_lists">القوائم</string>
|
||||
<string name="error_create_list_fmt">%2$s: \"%1$s\" لا يمكن إنشاء قائمة</string>
|
||||
<string name="error_rename_list_fmt">%2$s: \"%1$s\" لا يمكن إعادة تسمية القائمة</string>
|
||||
<string name="error_delete_list_fmt">%2$s: \"%1$s\" لا يمكن حذف القائمة</string>
|
||||
<string name="action_create_list">إنشاء قائمة</string>
|
||||
<string name="action_rename_list">إعادة تسمية القائمة</string>
|
||||
<string name="action_delete_list">حذف القائمة</string>
|
||||
<string name="hint_search_people_list">البحث عن أشخاص قصد متابعتهم</string>
|
||||
<string name="action_add_to_list">إضافة الحساب إلى القائمة</string>
|
||||
<string name="action_remove_from_list">إزالة الحساب مِن القائمة</string>
|
||||
<string name="compose_active_account_description">النشر بإسم %1$s</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="zero">وصف لضعاف البصر
|
||||
|
@ -309,7 +293,6 @@
|
|||
<string name="description_visibility_unlisted">غير مُدرَج </string>
|
||||
<string name="description_visibility_private">المتابِعون </string>
|
||||
<string name="description_visibility_direct">مباشر </string>
|
||||
<string name="hint_list_name">اسم القائمة</string>
|
||||
<string name="action_delete_and_redraft">حذف وإعادة الصياغة</string>
|
||||
<string name="action_open_reblogger">إظهار صاحب المشاركة</string>
|
||||
<string name="action_open_media_n">افتح الوسيط #%d</string>
|
||||
|
@ -398,7 +381,6 @@
|
|||
<string name="pref_title_animate_gif_avatars">تنشيط الصور المتحركة GIF للحسابات</string>
|
||||
<string name="button_continue">واصل</string>
|
||||
<string name="button_back">العودة</string>
|
||||
<string name="button_done">تم</string>
|
||||
<string name="report_sent_success">تم الابلاغ عن @%s بنجاح</string>
|
||||
<string name="hint_additional_info">تعليقات إضافية</string>
|
||||
<string name="report_remote_instance">أعد تحويله إلى %s</string>
|
||||
|
@ -471,7 +453,6 @@
|
|||
<string name="action_unmute_desc">إلغاء كتم %s</string>
|
||||
<string name="pref_title_hide_top_toolbar">إخفاء عنوان شريط الأدوات العلوي</string>
|
||||
<string name="title_announcements">الاعلانات</string>
|
||||
<string name="dialog_delete_list_warning">أتريد حقا حذف القائمة %s؟</string>
|
||||
<string name="drafts_post_failed_to_send">فشلت عملية إرسال التبويق!</string>
|
||||
<string name="draft_deleted">حُذفَت المسودة</string>
|
||||
<string name="action_subscribe_account">اشترك</string>
|
||||
|
@ -523,7 +504,6 @@
|
|||
<string name="set_focus_description">اضغط على الدائرة أو اسحبها لاختيار النقطة المحورية التي ستكون مرئية دائمًا في الصور المصغرة.</string>
|
||||
<string name="compose_save_draft_loses_media">حفظ المسودة؟ (سيتم رفع المرفقات مرة أخرى عند استعادة المسودة.)</string>
|
||||
<string name="compose_unsaved_changes">لديك تعديلات لم تحفظ.</string>
|
||||
<string name="no_lists">ليس لديك أي قوائم.</string>
|
||||
<string name="post_edited">عدَّلَ %s</string>
|
||||
<string name="notification_report_format">شكوى جديدة عن %s</string>
|
||||
<string name="status_edit_info">عدّله %1$s</string>
|
||||
|
@ -537,8 +517,6 @@
|
|||
\nلن تتأثر الاشعارات، ولكن يمكنك مراجعة اعدادات الاشعارات يدويا.</string>
|
||||
<string name="confirmation_hashtag_unfollowed">#%s الغاء متابعة</string>
|
||||
<string name="pref_title_http_proxy_port_message">المنفذ (port) يجب ان يكون بين %d و %d</string>
|
||||
<string name="action_add_or_remove_from_list">إضافة أو إزالة من القائمة</string>
|
||||
<string name="failed_to_add_to_list">فشل إضافة الحساب إلى القائمة</string>
|
||||
<string name="description_post_edited">تم تعديله</string>
|
||||
<string name="duration_no_change">(لا تعديل)</string>
|
||||
<string name="pref_title_show_self_username">إظهار اسم المستخدم في أشرطة الأدوات</string>
|
||||
|
@ -585,7 +563,6 @@
|
|||
<string name="account_username_copied">تم نسخ اسم المستخدم</string>
|
||||
<string name="pref_show_self_username_disambiguate">عند تسجيل الدخول إلى حسابات متعددة</string>
|
||||
<string name="status_created_at_now">الآن</string>
|
||||
<string name="failed_to_remove_from_list">فشل إزالة الحساب من القائمة</string>
|
||||
<string name="action_unfollow_hashtag_format">الغاء متابعة #%s ؟</string>
|
||||
<string name="mute_notifications_switch">كتم الاشعارات</string>
|
||||
<string name="error_following_hashtag_format">خطأ في متابعة %s#</string>
|
||||
|
@ -634,16 +611,13 @@
|
|||
<string name="title_public_trending_statuses">المنشورات الشائعة</string>
|
||||
<string name="announcement_date">%1$s %2$s</string>
|
||||
<string name="select_list_manage">إدارة القوائم</string>
|
||||
<string name="error_network_fmt">وقع خطأ في الشبكة: %s</string>
|
||||
<string name="dialog_save_profile_changes_message">أتريد حفظ التغييرات التي طرأت على ملفك الشخصي؟</string>
|
||||
<string name="error_generic_fmt">وقع خطأ: %s</string>
|
||||
<string name="ui_error_bookmark">فشل إجراء إضافة المنشور إلى الفواصل المرجعية: %s</string>
|
||||
<string name="notification_unknown_name">غير معروف</string>
|
||||
<string name="pref_update_notification_frequency_always">دائما</string>
|
||||
<string name="error_media_upload_sending_fmt">اخفق التحميل: %s</string>
|
||||
<string name="pref_update_notification_frequency_never">أبدًا</string>
|
||||
<string name="filter_keyword_display_format">%s (الكلمةكاملة)</string>
|
||||
<string name="action_refresh">إنعاش</string>
|
||||
<string name="filter_keyword_addition_title">إضافة كلمة مفتاحية</string>
|
||||
<string name="label_filter_keywords">كلمات مفتاحية أو عبارات للتصفية</string>
|
||||
<string name="hint_description">الوصف</string>
|
||||
|
@ -653,12 +627,10 @@
|
|||
<string name="filter_description_hide">إخفاء تماما</string>
|
||||
<string name="filter_description_format">%s: %s</string>
|
||||
<string name="post_media_image">صورة</string>
|
||||
<string name="error_404_not_found_fmt">خادمك لا يدعم هذه الميزة: %1$s</string>
|
||||
<string name="filter_action_hide">إخفاء</string>
|
||||
<string name="label_filter_title">العنوان</string>
|
||||
<string name="pref_title_font_family">عائلة الخطوط</string>
|
||||
<string name="notification_listenable_worker_description">إشعارات عندما يعمل Pachli (باكلي) في الخلفية</string>
|
||||
<string name="list_exclusive_label">إخفاء مِن الخيط الرئيس</string>
|
||||
<string name="status_filtered_show_anyway">إظهار على أي حال</string>
|
||||
<string name="error_list_load">خطأ في تحميل القوائم</string>
|
||||
<string name="action_translate">ترجمة</string>
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
<resources>
|
||||
<string name="error_empty">Не можа быць пустым.</string>
|
||||
<string name="error_no_web_browser_found">Браўзер не знойдзены.</string>
|
||||
<string name="error_generic">Здарылася памылка.</string>
|
||||
<string name="error_network">Здарылася сеткавая памылка! Калі ласка, праверце злучэнне і паспрабуйце зноў!</string>
|
||||
<string name="error_compose_character_limit">Допіс занадта доўгі!</string>
|
||||
<string name="error_multimedia_size_limit">Памер відэа- ды аўдыяфайлаў не можа перавышаць %s Мб.</string>
|
||||
<string name="error_media_upload_type">Немагчыма запампаваць файл гэтага тыпу.</string>
|
||||
|
@ -55,7 +53,6 @@
|
|||
<string name="post_content_warning_show_less">Паказаць менш</string>
|
||||
<string name="post_content_show_less">Згарнуць</string>
|
||||
<string name="post_edited">Рэдагаваны %s</string>
|
||||
<string name="message_empty">Тут нічога няма.</string>
|
||||
<string name="footer_empty">Тут нічога няма. Пацягніце ўніз, каб абнавіць!</string>
|
||||
<string name="notification_reblog_format">%s пашырыў(-ла) ваш допіс</string>
|
||||
<string name="notification_favourite_format">%s падабаўся ваш допіс</string>
|
||||
|
@ -173,7 +170,6 @@
|
|||
</plurals>
|
||||
<string name="description_account_locked">Заблакаваны ўліковы запіс</string>
|
||||
<string name="action_unbookmark">Выдаліць з закладак</string>
|
||||
<string name="action_more">Разгарнуць</string>
|
||||
<string name="action_compose">Напісаць</string>
|
||||
<string name="action_logout">Выхад</string>
|
||||
<string name="action_logout_confirm">Вы ўпэўнены, што жадаеце выйсці з уліковага запісу %1$s\?</string>
|
||||
|
@ -189,8 +185,6 @@
|
|||
<string name="action_delete_and_redraft">Выдаліць і перастварыць</string>
|
||||
<string name="action_send">ПАШЫРЫЦЬ</string>
|
||||
<string name="action_send_public">ПАШЫРЫЦЬ!</string>
|
||||
<string name="action_retry">Паўтарыць</string>
|
||||
<string name="action_view_profile">Профіль</string>
|
||||
<string name="action_view_preferences">Налады</string>
|
||||
<string name="action_view_account_preferences">Налады ўліковага запісу</string>
|
||||
<string name="action_view_favourites">Абраныя</string>
|
||||
|
@ -320,10 +314,7 @@
|
|||
<string name="filter_dialog_whole_word">Цэлае слова</string>
|
||||
<string name="filter_dialog_whole_word_description">Калі ключавое слова ці фраза складаецца толькі з літар і лічбаў, то будзе ўлічвацца толькі ўсё слова</string>
|
||||
<string name="title_edits">Рэдагаванні</string>
|
||||
<string name="failed_to_add_to_list">Не атрымалася дадаць уліковы запіс у спіс</string>
|
||||
<string name="action_add_or_remove_from_list">Дадаць ці выдаліць са спіса</string>
|
||||
<string name="filter_expiration_format">%s (%s)</string>
|
||||
<string name="action_add_to_list">Дадаць уліковы запіс у спіс</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one">Апісанне змесціва для людзей з дэфектам зроку (ліміт у %d сімвал)</item>
|
||||
<item quantity="few">Апісанне змесціва для людзей з дэфектам зроку (ліміт у %d сімвалы)</item>
|
||||
|
@ -340,15 +331,12 @@
|
|||
<string name="conversation_more_recipients">%1$s, %2$s і яшчэ %3$d</string>
|
||||
<string name="action_discard">Скасаваць змены</string>
|
||||
<string name="action_continue_edit">Працягнуць рэдагаванне</string>
|
||||
<string name="hint_search_people_list">Пошук сярод вашых падпісак</string>
|
||||
<string name="add_account_name">Дадаць уліковы запіс</string>
|
||||
<string name="action_remove_from_list">Выдаліць уліковы запіс са спіса</string>
|
||||
<string name="compose_active_account_description">Публікаваць як %1$s</string>
|
||||
<string name="set_focus_description">Націсніце або перацягніце кола каб абраць пункт фокусу, які будзе заўсёды бачны на паменшаных выявах.</string>
|
||||
<string name="action_set_caption">Задаць подпіс</string>
|
||||
<string name="action_set_focus">Задаць пункт фокуса</string>
|
||||
<string name="action_edit_image">Рэдагаваць выяву</string>
|
||||
<string name="failed_to_remove_from_list">Не атрымалася выдаліць уліковы запіс са спіса</string>
|
||||
<string name="send_post_notification_channel_name">Дасыланне допісаў</string>
|
||||
<string name="later">Пазней</string>
|
||||
<plurals name="favs">
|
||||
|
@ -361,13 +349,6 @@
|
|||
<string name="profile_metadata_label">Метазвесткі профілю</string>
|
||||
<string name="title_favourited_by">Упадабалі</string>
|
||||
<string name="add_account_description">Дадаць уліковы запіс Mastodon</string>
|
||||
<string name="title_lists">Спісы</string>
|
||||
<string name="error_create_list_fmt">Не атрымалася стварыць спіс \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Не атрымалася перайменаваць спіс \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">Не атрымалася выдаліць спіс \"%1$s\": %2$s</string>
|
||||
<string name="action_create_list">Стварыць спіс</string>
|
||||
<string name="action_rename_list">Перайменаваць спіс</string>
|
||||
<string name="action_delete_list">Выдаліць спіс</string>
|
||||
<string name="filter_add_description">Фільтраваць фразу</string>
|
||||
<string name="action_remove">Выдаліць</string>
|
||||
<string name="lock_account_label">Заблакаваць уліковы запіс</string>
|
||||
|
@ -410,7 +391,6 @@
|
|||
<string name="description_visibility_direct">Асабіста</string>
|
||||
<string name="description_visibility_unlisted">Не ў стужках</string>
|
||||
<string name="hashtags">Хэштэгі</string>
|
||||
<string name="hint_list_name">Назва спіса</string>
|
||||
<string name="add_hashtag_title">Дадаць хэштэг</string>
|
||||
<string name="description_post_reblogged">Пашырана</string>
|
||||
<string name="description_poll">Апытанне з варыянтамі: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
|
@ -430,7 +410,6 @@
|
|||
<string name="compose_shortcut_short_label">Стварыць</string>
|
||||
<string name="notification_clear_text">Вы ўпэўнены, што жадаеце выдаліць усе апавяшчэнні\?</string>
|
||||
<string name="compose_preview_image_description">Дзеянні для выявы %s</string>
|
||||
<string name="button_done">Гатова</string>
|
||||
<string name="report_sent_success">Скарга на @%s адпраўлена</string>
|
||||
<string name="hint_additional_info">Дадатковыя каментары</string>
|
||||
<string name="title_accounts">Уліковыя запісы</string>
|
||||
|
@ -539,7 +518,6 @@
|
|||
<string name="saving_draft">Захоўваю чарнавік…</string>
|
||||
<string name="drafts_post_reply_removed">Допіс, для якога Вы стварылі чарнавік адказу, выдалены</string>
|
||||
<string name="follow_requests_info">Нягледзячы на тое што Ваш уліковы запіс не закрыты, кіраўнікі %1$s вырашылі, што Вы, магчыма, пажадаеце праглядзець запыты на падпіску ад гэтых уліковых запісаў уручную.</string>
|
||||
<string name="no_lists">У Вас няма спісаў.</string>
|
||||
<string name="no_drafts">У Вас няма чарнавікоў.</string>
|
||||
<string name="no_scheduled_posts">У Вас няма запланаваных допісаў.</string>
|
||||
<string name="no_announcements">Няма аб\'яў.</string>
|
||||
|
@ -552,7 +530,6 @@
|
|||
<item quantity="many">Вы не можаце запампаваць больш за %1$d медыя далучэнняў.</item>
|
||||
<item quantity="other">Вы не можаце запампаваць больш за %1$d медыя далучэнняў.</item>
|
||||
</plurals>
|
||||
<string name="dialog_delete_list_warning">Вы ўпэўнены, што жадаеце выдаліць спіс %s\?</string>
|
||||
<string name="limit_notifications">Абмежаванне апавяшчэнняў у стужцы</string>
|
||||
<string name="wellbeing_hide_stats_posts">Схаваць колькасную статыстыку допісаў</string>
|
||||
<string name="wellbeing_hide_stats_profile">Схаваць колькасную статыстыку профіляў</string>
|
||||
|
@ -588,7 +565,6 @@
|
|||
<string name="description_browser_login">Можа падтрымліваць дадатковыя метады праверкі сапраўднасці, але для гэтага патрэбны адпаведны браузер.</string>
|
||||
<string name="hint_description">Апісанне</string>
|
||||
<string name="post_media_image">Відарыс</string>
|
||||
<string name="action_refresh">Абнавіць</string>
|
||||
<string name="select_list_empty">Яшчэ няма спісаў</string>
|
||||
<string name="select_list_manage">Кіраванне спісамі</string>
|
||||
<string name="error_list_load">Памылка загрузкі спісаў</string>
|
||||
|
|
|
@ -6,9 +6,6 @@
|
|||
<string name="pref_title_proxy_settings">ⴰⵒⵕⵓⴽⵙⵉ</string>
|
||||
<string name="action_view_blocks">ⵉⵎⵙⴻⵇⴷⴰⵛⴻⵏ ⵜⵙⵡⴰⵃⵍⴻⵎ</string>
|
||||
<string name="action_view_favourites">ⵉⵙⵎⴻⵏⵢⵉⴼⴻⵏ</string>
|
||||
<string name="action_view_profile">ⴰⵎⴻⵖⵏⵓ</string>
|
||||
<string name="error_generic">ⵝⴻⵍⵍⴰ ⴷ ⵝⵓⵛⴹⴰ.</string>
|
||||
<string name="title_lists">ⵝⴰⴲⴸⴰⵔⵉⵏ</string>
|
||||
<string name="action_reset_schedule">ⵡⴻⵏⵏⴻⵣ ⵝⵉⴽⴻⵍⵜ ⵏⵏⵉⴸⴻⵏ</string>
|
||||
<string name="action_search">ⵏⴰⴸⵉ</string>
|
||||
<string name="action_edit_profile">ⵣⵔⴻⴳ ⴰⵎⴰⵖⵏⵓ</string>
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
<string name="report_remote_instance">Препращане към %s</string>
|
||||
<string name="hint_additional_info">Допълнителни коментари</string>
|
||||
<string name="report_sent_success">Успешно докладване на @%s</string>
|
||||
<string name="button_done">Готово</string>
|
||||
<string name="button_back">Назад</string>
|
||||
<string name="button_continue">Продължаване</string>
|
||||
<plurals name="poll_timespan_seconds">
|
||||
|
@ -64,7 +63,6 @@
|
|||
<string name="hashtags">Хаштагове</string>
|
||||
<string name="edit_hashtag_hint">Хаштаг без #</string>
|
||||
<string name="add_hashtag_title">Добавяне на хаштаг</string>
|
||||
<string name="hint_list_name">Име на списък</string>
|
||||
<string name="description_poll">Анкета с избори: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="description_visibility_direct">Директно</string>
|
||||
<string name="description_visibility_private">Последователи</string>
|
||||
|
@ -126,16 +124,6 @@
|
|||
\n(%d ограничение на знаците)</item>
|
||||
</plurals>
|
||||
<string name="compose_active_account_description">Публикуване с акаунт %1$s</string>
|
||||
<string name="action_remove_from_list">Премахване на акаунт от списъка</string>
|
||||
<string name="action_add_to_list">Добавяне на акаунт към списъка</string>
|
||||
<string name="hint_search_people_list">Търсене на хора, които следвате</string>
|
||||
<string name="action_delete_list">Изтриване на списъка</string>
|
||||
<string name="action_rename_list">Преименуване на списъка</string>
|
||||
<string name="action_create_list">Създаване на списък</string>
|
||||
<string name="error_delete_list_fmt">Списъкът не можа да се изтрие \"%1$s\": %2$s</string>
|
||||
<string name="error_create_list_fmt">Списъкът не можа да се създаде \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Списъкът не можа да се преименува \"%1$s\": %2$s</string>
|
||||
<string name="title_lists">Списъци</string>
|
||||
<string name="add_account_description">Добавяне на нов Mastodon акаунт</string>
|
||||
<string name="add_account_name">Добавяне на акаунт</string>
|
||||
<string name="filter_add_description">Фраза за филтриране</string>
|
||||
|
@ -307,8 +295,6 @@
|
|||
<string name="action_view_favourites">Любими</string>
|
||||
<string name="action_view_account_preferences">Предпочитания за акаунт</string>
|
||||
<string name="action_view_preferences">Предпочитания</string>
|
||||
<string name="action_view_profile">Профил</string>
|
||||
<string name="action_retry">Повторен опит</string>
|
||||
<string name="action_send_public">ПУБЛИКУВАНЕ!</string>
|
||||
<string name="action_send">ИЗПРАЩАНЕ</string>
|
||||
<string name="action_delete_and_redraft">Изтриване и преработване</string>
|
||||
|
@ -324,7 +310,6 @@
|
|||
<string name="action_logout_confirm">Сигурни ли сте, че искате да излезете от акаунта %1$s\?</string>
|
||||
<string name="action_logout">Излизане</string>
|
||||
<string name="action_compose">Композиране</string>
|
||||
<string name="action_more">Още</string>
|
||||
<string name="action_unfavourite">Премахване от любими</string>
|
||||
<string name="action_bookmark">Отмятане</string>
|
||||
<string name="action_favourite">Поставяне в любими</string>
|
||||
|
@ -340,7 +325,6 @@
|
|||
<string name="notification_favourite_format">%s постави вашата публикация в любими</string>
|
||||
<string name="notification_reblog_format">%s сподели вашата публикация</string>
|
||||
<string name="footer_empty">Нищо тук. Дръпнете надолу, за да опресните!</string>
|
||||
<string name="message_empty">Нищо тук.</string>
|
||||
<string name="post_content_show_less">Свиване</string>
|
||||
<string name="post_content_show_more">Разгъване</string>
|
||||
<string name="post_content_warning_show_less">Покажи по-малко</string>
|
||||
|
@ -380,12 +364,9 @@
|
|||
<string name="error_compose_character_limit">Състоянието е твърде дълго!</string>
|
||||
<string name="error_no_web_browser_found">Неуспешно намиране на уеб браузър, който да се използва.</string>
|
||||
<string name="error_empty">Това не може да бъде празно.</string>
|
||||
<string name="error_network">Възникна грешка в мрежата! Моля, проверете връзката си и опитайте отново!</string>
|
||||
<string name="error_generic">Възникна грешка.</string>
|
||||
<string name="draft_deleted">Черновата е изтрита</string>
|
||||
<string name="drafts_failed_loading_reply">Неуспешно зареждане на информация за отговор</string>
|
||||
<string name="drafts_post_failed_to_send">Тази публикация не успя да се изпрати!</string>
|
||||
<string name="dialog_delete_list_warning">Наистина ли искате да изтриете списъка %s\?</string>
|
||||
<plurals name="error_upload_max_media_reached">
|
||||
<item quantity="other">Не можете да качите повече от %1$d мултимедийни прикачени файлове.</item>
|
||||
</plurals>
|
||||
|
|
|
@ -50,16 +50,6 @@
|
|||
\n(%d অক্ষর সীমা)</item>
|
||||
</plurals>
|
||||
<string name="compose_active_account_description">অ্যাকাউন্ট %1$s থেকে পোস্ট করা হচ্ছে</string>
|
||||
<string name="action_remove_from_list">তালিকা থেকে অ্যাকাউন্ট সরান</string>
|
||||
<string name="action_add_to_list">তালিকায় অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="hint_search_people_list">আপনি অনুসরণ মানুষের জন্য অনুসন্ধান করুন</string>
|
||||
<string name="action_delete_list">তালিকা মুছে দিন</string>
|
||||
<string name="action_rename_list">তালিকা পুনঃ নামকরণ কর</string>
|
||||
<string name="action_create_list">একটি তালিকা তৈরি করুন</string>
|
||||
<string name="error_delete_list_fmt">তালিকা মুছে ফেলা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">তালিকা নামকরণ করা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="error_create_list_fmt">তালিকা তৈরি করা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="title_lists">তালিকাসমূহ</string>
|
||||
<string name="add_account_description">নতুন ম্যাস্টোডোন অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="add_account_name">অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="filter_add_description">বাক্য ফিল্টার কর</string>
|
||||
|
@ -216,8 +206,6 @@
|
|||
<string name="action_view_favourites">প্রিয়গুলি</string>
|
||||
<string name="action_view_account_preferences">অ্যাকাউন্টের পছন্দসমূহ</string>
|
||||
<string name="action_view_preferences">পছন্দসমূহ</string>
|
||||
<string name="action_view_profile">প্রোফাইল</string>
|
||||
<string name="action_retry">পুনরায় চেষ্টা কর</string>
|
||||
<string name="action_send_public">টুট!</string>
|
||||
<string name="action_send">টুট</string>
|
||||
<string name="action_delete_and_redraft">মুছুন এবং পুনরায় ড্রাফট কর</string>
|
||||
|
@ -232,7 +220,6 @@
|
|||
<string name="action_logout_confirm">আপনি কি অ্যাকাউন্ট %1$s থেকে লগ আউট করতে চান\?</string>
|
||||
<string name="action_logout">লগ আউট</string>
|
||||
<string name="action_compose">রচনা</string>
|
||||
<string name="action_more">অধিক</string>
|
||||
<string name="action_unfavourite">পছন্দ সরান</string>
|
||||
<string name="action_favourite">পছন্দ</string>
|
||||
<string name="action_unreblog">সমর্থন সরান</string>
|
||||
|
@ -242,7 +229,6 @@
|
|||
<string name="report_comment_hint">অতিরিক্ত মন্তব্যগুলি\?</string>
|
||||
<string name="report_username_format">রিপোর্ট @%s</string>
|
||||
<string name="footer_empty">এখানে কিছু নেই. রিফ্রেশ করতে নিচে টানুন!</string>
|
||||
<string name="message_empty">এখানে কিছুই নেই।</string>
|
||||
<string name="post_content_show_less">বন্ধ</string>
|
||||
<string name="post_content_show_more">বিস্তৃত</string>
|
||||
<string name="post_content_warning_show_less">প্রদর্শন কম</string>
|
||||
|
@ -325,7 +311,6 @@
|
|||
<string name="report_remote_instance">\'%s এ ফরওয়ার্ড করুন\'</string>
|
||||
<string name="hint_additional_info">অতিরিক্ত মন্তব্যগুলি</string>
|
||||
<string name="report_sent_success">\'%s এ সফলভাবে রিপোর্ট করা হয়েছে\'</string>
|
||||
<string name="button_done">সম্পন্ন</string>
|
||||
<string name="button_back">পিছাও</string>
|
||||
<string name="button_continue">চালিয়ে যাও</string>
|
||||
<string name="poll_ended_created">আপনি তৈরি একটি নির্বাচন শেষ হয়েছে</string>
|
||||
|
@ -342,7 +327,6 @@
|
|||
<string name="notifications_apply_filter">ফিল্টার</string>
|
||||
<string name="notifications_clear">পরিষ্কার</string>
|
||||
<string name="edit_hashtag_hint"># ছাড়া হ্যাশট্যাগ</string>
|
||||
<string name="hint_list_name">নামের তালিকা</string>
|
||||
<string name="title_favourites">প্রিয়গুলো</string>
|
||||
<string name="title_followers">অনুগামিবৃন্দ</string>
|
||||
<string name="title_follows">অনুসরণ</string>
|
||||
|
@ -366,8 +350,6 @@
|
|||
<string name="error_compose_character_limit">এই স্টেটাস টি খুব দীর্ঘ!</string>
|
||||
<string name="error_no_web_browser_found">ব্যবহার করার জন্য একটি ওয়েব ব্রাউজার খুঁজে পাওয়া যায়নি।</string>
|
||||
<string name="error_empty">এই জায়গা খালি হতে পারে না।</string>
|
||||
<string name="error_network">একটি নেটওয়ার্ক ত্রুটি ঘটেছে! আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন!</string>
|
||||
<string name="error_generic">একটি ত্রুটি ঘটেছে।</string>
|
||||
<plurals name="favs">
|
||||
<item quantity="one"><b>%1$s</b>টি পছন্দ</item>
|
||||
<item quantity="other"><b>%1$s</b>টি পছন্দ</item>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">একটি ত্রুটি ঘটেছে।</string>
|
||||
<string name="error_network">একটি নেটওয়ার্ক ত্রুটি ঘটেছে! আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন!</string>
|
||||
<string name="error_empty">এই জায়গা খালি হতে পারে না।</string>
|
||||
<string name="error_no_web_browser_found">ব্যবহার করার জন্য একটি ওয়েব ব্রাউজার খুঁজে পাওয়া যায়নি।</string>
|
||||
<string name="error_compose_character_limit">এই স্টেটাস টি খুব দীর্ঘ!</string>
|
||||
|
@ -39,7 +37,6 @@
|
|||
<string name="post_content_warning_show_less">প্রদর্শন কম</string>
|
||||
<string name="post_content_show_more">বিস্তৃত</string>
|
||||
<string name="post_content_show_less">বন্ধ</string>
|
||||
<string name="message_empty">এখানে কিছুই নেই।</string>
|
||||
<string name="footer_empty">এখানে কিছু নেই. রিফ্রেশ করতে নিচে টানুন!</string>
|
||||
<string name="notification_reblog_format">%s সমর্থন দিয়েছে</string>
|
||||
<string name="notification_favourite_format">%s আপনার টুট পছন্দ করেছে</string>
|
||||
|
@ -52,7 +49,6 @@
|
|||
<string name="action_unreblog">সমর্থন সরান</string>
|
||||
<string name="action_favourite">পছন্দ</string>
|
||||
<string name="action_unfavourite">পছন্দ সরান</string>
|
||||
<string name="action_more">অধিক</string>
|
||||
<string name="action_compose">রচনা</string>
|
||||
<string name="action_logout">লগ আউট</string>
|
||||
<string name="action_logout_confirm">আপনি কি অ্যাকাউন্ট %1$s থেকে লগ আউট করতে চান\?</string>
|
||||
|
@ -67,8 +63,6 @@
|
|||
<string name="action_delete_and_redraft">মুছুন এবং পুনরায় ড্রাফট কর</string>
|
||||
<string name="action_send">টুট</string>
|
||||
<string name="action_send_public">টুট!</string>
|
||||
<string name="action_retry">পুনরায় চেষ্টা করা</string>
|
||||
<string name="action_view_profile">প্রোফাইল</string>
|
||||
<string name="action_view_preferences">পছন্দসমূহ</string>
|
||||
<string name="action_view_account_preferences">অ্যাকাউন্টের পছন্দসমূহ</string>
|
||||
<string name="action_view_favourites">প্রিয়গুলো</string>
|
||||
|
@ -244,16 +238,6 @@
|
|||
<string name="filter_add_description">বাক্য ফিল্টার কর</string>
|
||||
<string name="add_account_name">অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="add_account_description">নতুন ম্যাস্টোডোন অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="title_lists">তালিকাসমূহ</string>
|
||||
<string name="error_create_list_fmt">তালিকা তৈরি করা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">তালিকা নামকরণ করা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">তালিকা মুছে ফেলা যায়নি \"%1$s\": %2$s</string>
|
||||
<string name="action_create_list">একটি তালিকা তৈরি করুন</string>
|
||||
<string name="action_rename_list">তালিকা পুনঃ নামকরণ কর</string>
|
||||
<string name="action_delete_list">তালিকা মুছে দিন</string>
|
||||
<string name="hint_search_people_list">আপনি অনুসরণ মানুষের জন্য অনুসন্ধান করুন</string>
|
||||
<string name="action_add_to_list">তালিকায় অ্যাকাউন্ট যোগ করুন</string>
|
||||
<string name="action_remove_from_list">তালিকা থেকে অ্যাকাউন্ট সরান</string>
|
||||
<string name="compose_active_account_description">অ্যাকাউন্ট %1$s থেকে পোস্ট করা হচ্ছে</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="other">দৃষ্টি প্রতিবন্ধী জন্য বর্ণনা করুন
|
||||
|
@ -315,7 +299,6 @@
|
|||
<string name="description_visibility_private">অনুগামিবৃন্দ</string>
|
||||
<string name="description_visibility_direct">সরাসরি</string>
|
||||
<string name="description_poll">পছন্দগুলি সহ নর্বাচন: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="hint_list_name">নামের তালিকা</string>
|
||||
<string name="edit_hashtag_hint"># ছাড়া হ্যাশট্যাগ</string>
|
||||
<string name="notifications_clear">পরিষ্কার</string>
|
||||
<string name="notifications_apply_filter">ফিল্টার</string>
|
||||
|
@ -332,7 +315,6 @@
|
|||
<string name="poll_ended_created">আপনি তৈরি একটি নির্বাচন শেষ হয়েছে</string>
|
||||
<string name="button_continue">চালিয়ে যাও</string>
|
||||
<string name="button_back">পিছাও</string>
|
||||
<string name="button_done">সম্পন্ন</string>
|
||||
<string name="report_sent_success">%s এ সফলভাবে রিপোর্ট করা হয়েছে</string>
|
||||
<string name="hint_additional_info">অতিরিক্ত মন্তব্যগুলি</string>
|
||||
<string name="report_remote_instance">%s এ ফরওয়ার্ড করুন</string>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">S\'ha produït un error.</string>
|
||||
<string name="error_empty">Això no pot estar buit.</string>
|
||||
<string name="error_no_web_browser_found">No s\'ha trobat cap navegador web per a utilitzar.</string>
|
||||
<string name="error_compose_character_limit">La publicació és massa llarga!</string>
|
||||
|
@ -39,7 +38,6 @@
|
|||
<string name="action_reply">Respon</string>
|
||||
<string name="action_reblog">Impulsa</string>
|
||||
<string name="action_favourite">Preferit</string>
|
||||
<string name="action_more">Més</string>
|
||||
<string name="action_compose">Escriure</string>
|
||||
<string name="action_logout">Tanca sessió</string>
|
||||
<string name="action_follow">Segueix</string>
|
||||
|
@ -50,8 +48,6 @@
|
|||
<string name="action_delete">Elimina</string>
|
||||
<string name="action_send">PUBLICA</string>
|
||||
<string name="action_send_public">PUBLICA!</string>
|
||||
<string name="action_retry">Torna a intentar-ho</string>
|
||||
<string name="action_view_profile">Perfil</string>
|
||||
<string name="action_view_preferences">Preferències</string>
|
||||
<string name="action_view_favourites">Preferits</string>
|
||||
<string name="action_view_mutes">Usuaris silenciats</string>
|
||||
|
@ -169,9 +165,7 @@
|
|||
<string name="action_view_account_preferences">Preferències del compte</string>
|
||||
<string name="action_edit_own_profile">Edita</string>
|
||||
<string name="title_direct_messages">Missatges directes</string>
|
||||
<string name="message_empty">No hi ha res aquí.</string>
|
||||
<string name="action_unreblog">Elimina l\'impuls</string>
|
||||
<string name="error_network">S\'ha produït un error de connexió! Comproveu la connexió i torneu-ho a provar!</string>
|
||||
<string name="post_media_hidden_title">Multimèdia amagada</string>
|
||||
<string name="post_content_show_less">Amaga</string>
|
||||
<string name="action_logout_confirm">Estàs segur de tancar la sessió de %1$s\?</string>
|
||||
|
@ -238,16 +232,6 @@
|
|||
<string name="filter_dialog_update_button">Actualització</string>
|
||||
<string name="filter_add_description">Frase per filtrar</string>
|
||||
<string name="add_account_description">Afegir un compte de Mastodont</string>
|
||||
<string name="title_lists">Llistes</string>
|
||||
<string name="error_create_list_fmt">És impossible crear la llista \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Impossible reanomenar la llista \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">És impossible suprimir la llista \"%1$s\": %2$s</string>
|
||||
<string name="action_create_list">Crear una llista</string>
|
||||
<string name="action_rename_list">Reanomenar la llista</string>
|
||||
<string name="action_delete_list">Suprimir la llista</string>
|
||||
<string name="hint_search_people_list">Cercar persones que segueixes</string>
|
||||
<string name="action_add_to_list">Afegir un compte a la llista</string>
|
||||
<string name="action_remove_from_list">Suprimir un compte de la llista</string>
|
||||
<string name="compose_active_account_description">"Publicar com a %1$s"</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one">Descriu per a persones amb discapacitat visual
|
||||
|
@ -306,7 +290,6 @@
|
|||
<string name="description_visibility_unlisted">Sense llistar</string>
|
||||
<string name="description_visibility_private">Seguidors</string>
|
||||
<string name="description_visibility_direct">Directe</string>
|
||||
<string name="hint_list_name">Nom de la llista</string>
|
||||
<string name="edit_hashtag_hint">Hashtag sense #</string>
|
||||
<string name="notifications_clear">Netejar</string>
|
||||
<string name="notifications_apply_filter">Filtrar</string>
|
||||
|
@ -341,7 +324,6 @@
|
|||
<string name="description_poll">Enquesta amb opcions: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="button_continue">Continuar</string>
|
||||
<string name="button_back">Enrere</string>
|
||||
<string name="button_done">Fet</string>
|
||||
<string name="hint_additional_info">Comentaris addicionals</string>
|
||||
<string name="report_remote_instance">Reenviar a %s</string>
|
||||
<string name="failed_report">Report erroni</string>
|
||||
|
@ -440,7 +422,6 @@
|
|||
<string name="draft_deleted">S\'ha eliminat l\'esborrany</string>
|
||||
<string name="drafts_failed_loading_reply">No s\'ha pogut carregar la informació de la resposta</string>
|
||||
<string name="drafts_post_failed_to_send">No s\'ha pogut publicar!</string>
|
||||
<string name="dialog_delete_list_warning">Segur que voleu esborrar la llista %s\?</string>
|
||||
<plurals name="error_upload_max_media_reached">
|
||||
<item quantity="one">No podeu penjar més de %1$d fitxers adjunts multimèdia.</item>
|
||||
<item quantity="other">No podeu penjar més de %1$d fitxers adjunts multimèdia.</item>
|
||||
|
@ -448,10 +429,8 @@
|
|||
<string name="wellbeing_hide_stats_profile">Amaga les estadístiques quantitatives dels perfils</string>
|
||||
<string name="wellbeing_hide_stats_posts">Amaga les estadístiques quantitatives de les publicacions</string>
|
||||
<string name="limit_notifications">Limita les notificacions de la cronologia</string>
|
||||
<string name="action_add_or_remove_from_list">Afegeix o elimina de la llista</string>
|
||||
<string name="filter_expiration_format">%s (%s)</string>
|
||||
<string name="dialog_delete_conversation_warning">Vols suprimir aquesta conversa\?</string>
|
||||
<string name="failed_to_add_to_list">No s\'ha pogut afegir el compte a la llista</string>
|
||||
<string name="error_multimedia_size_limit">Els fitxers de vídeo i àudio no poden superar la mida de %s MB.</string>
|
||||
<string name="error_image_edit_failed">La imatge no s\'ha pogut editar.</string>
|
||||
<string name="action_dismiss">Descartar</string>
|
||||
|
@ -523,7 +502,6 @@
|
|||
<string name="follow_requests_info">Tot i que el vostre compte no està bloquejat, el personal de %1$s va pensar que potser voldreu revisar les sol·licituds de seguiment d\'aquests comptes manualment.</string>
|
||||
<string name="report_category_other">Altres</string>
|
||||
<string name="duration_30_days">30 dies</string>
|
||||
<string name="failed_to_remove_from_list">No s\'ha pogut eliminar el compte de la llista</string>
|
||||
<string name="duration_60_days">60 dies</string>
|
||||
<string name="duration_90_days">90 dies</string>
|
||||
<string name="duration_no_change">(Sense canvis)</string>
|
||||
|
@ -537,7 +515,6 @@
|
|||
<string name="action_set_focus">Estableix el punt d\'enfocament</string>
|
||||
<string name="description_login">Funciona en la majoria dels casos. No es filtra cap dada a altres aplicacions.</string>
|
||||
<string name="description_browser_login">Pot ser compatible amb mètodes d\'autenticació addicionals, però requereix un navegador compatible.</string>
|
||||
<string name="no_lists">No tens cap llista.</string>
|
||||
<string name="delete_scheduled_post_warning">Vols suprimir aquesta publicació programada\?</string>
|
||||
<string name="language_display_name_format">%s (%s)</string>
|
||||
<string name="report_category_violation">Incompliment de la regla</string>
|
||||
|
@ -567,7 +544,6 @@
|
|||
<string name="total_accounts">Total de comptes</string>
|
||||
<string name="dialog_follow_hashtag_title">Segueix hashtag</string>
|
||||
<string name="dialog_follow_hashtag_hint">#hashtag</string>
|
||||
<string name="action_refresh">Actualitzar</string>
|
||||
<string name="notification_unknown_name">Desconegut</string>
|
||||
<string name="status_filter_placeholder_label_format">Filtrat: %s</string>
|
||||
<string name="pref_title_account_filter_keywords">Perfils</string>
|
||||
|
|
|
@ -63,8 +63,6 @@
|
|||
<string name="action_view_favourites">بەدڵبوونەکان</string>
|
||||
<string name="action_view_account_preferences">پەسەندکراوەکانی ئەژمێر</string>
|
||||
<string name="action_view_preferences">پەسەندەکان</string>
|
||||
<string name="action_view_profile">پرۆفایل</string>
|
||||
<string name="action_retry">دووبارە هەوڵ بدە</string>
|
||||
<string name="action_send_public">توت!</string>
|
||||
<string name="action_send">توت</string>
|
||||
<string name="action_delete_and_redraft">سڕینەوە و دووبارە-ڕەشنووس</string>
|
||||
|
@ -80,7 +78,6 @@
|
|||
<string name="action_logout_confirm">ئایا دڵنیایت لەوەی دەتەوێت بچیتەدەرەوە لە هەژماری %1$s؟</string>
|
||||
<string name="action_logout">چوونەدەرەوە</string>
|
||||
<string name="action_compose">دروستکردن</string>
|
||||
<string name="action_more">زیاتر</string>
|
||||
<string name="action_unfavourite">لابردنی دڵخوازەکان</string>
|
||||
<string name="action_bookmark">نیشانه</string>
|
||||
<string name="action_favourite">دڵخواز</string>
|
||||
|
@ -96,7 +93,6 @@
|
|||
<string name="notification_favourite_format">%s خۆشترین توتەکەت</string>
|
||||
<string name="notification_reblog_format">%s توتەکەتی بەرزکردەوە</string>
|
||||
<string name="footer_empty">هیچ شتێک لێرە نیە ڕاکە خوارەوە بۆ نوێکردنەوە!</string>
|
||||
<string name="message_empty">هیچ شتێک لێرە نیە.</string>
|
||||
<string name="post_content_show_less">نوشتانەوە</string>
|
||||
<string name="post_content_show_more">فراوانکردن</string>
|
||||
<string name="post_content_warning_show_less">کەمتر نیشان بدە</string>
|
||||
|
@ -137,8 +133,6 @@
|
|||
<string name="error_compose_character_limit">ئەم نووسینە زۆر درێژە!</string>
|
||||
<string name="error_no_web_browser_found">نەیتوانی وێبگەڕبدۆزێتەوە بۆ بەکارهێنان.</string>
|
||||
<string name="error_empty">ناکرێت ئەمە بەتاڵ بێت.</string>
|
||||
<string name="error_network">هەڵەیەک لە پەیوەندییەکەدا ڕوویدا. تکایە دڵنیا ببەوە لە بەردەستبوونی هێڵی ئینتەرنێت.</string>
|
||||
<string name="error_generic">هەڵەیەک ڕوویدا.</string>
|
||||
<string name="pref_default_post_privacy">تایبەتمەندی بابەت گریمانەیی</string>
|
||||
<string name="pref_title_http_proxy_port">دەرگای پرۆکسی HTTP</string>
|
||||
<string name="pref_title_http_proxy_server">ڕاژەکاری پرۆکسی HTTP</string>
|
||||
|
@ -249,7 +243,6 @@
|
|||
<string name="report_remote_instance">ناردنەوە بۆ %s</string>
|
||||
<string name="hint_additional_info">سەرنجەکانی زیاتر</string>
|
||||
<string name="report_sent_success">سەرکەوتووانە ڕاپۆرتکرا @%s</string>
|
||||
<string name="button_done">تەواوبوو</string>
|
||||
<string name="button_back">دواوە</string>
|
||||
<string name="button_continue">بەردەوام بە</string>
|
||||
<plurals name="poll_timespan_seconds">
|
||||
|
@ -290,7 +283,6 @@
|
|||
<string name="hashtags">هاشتاگی</string>
|
||||
<string name="edit_hashtag_hint">هاشتاگی بێ #</string>
|
||||
<string name="add_hashtag_title">هاشتاگی زیاد بکە</string>
|
||||
<string name="hint_list_name">ناوی لیست</string>
|
||||
<string name="description_poll">ڕاپرسی لەگەڵ هەڵبژاردنەکان: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="description_visibility_direct">ڕاستەوخۆ</string>
|
||||
<string name="description_visibility_private">شوێنکەوتوانی</string>
|
||||
|
@ -353,16 +345,6 @@
|
|||
\n(%d سنوری کاراکتەر)</item>
|
||||
</plurals>
|
||||
<string name="compose_active_account_description">%1$s بڵاوکردنەوە بە هەژماری</string>
|
||||
<string name="action_remove_from_list">لابردنی ئەژمێر لە لیستەکە</string>
|
||||
<string name="action_add_to_list">زیادکردنی ئەژمێر بۆ لیستەکە</string>
|
||||
<string name="hint_search_people_list">گەڕان بەدوای ئەو کەسانەی کە پەیڕەوی ان دەکەیت</string>
|
||||
<string name="action_delete_list">سڕینەوەی لیستەکە</string>
|
||||
<string name="action_rename_list">ناونانەوەی لیستەکە</string>
|
||||
<string name="action_create_list">دروستکردنی لیستێک</string>
|
||||
<string name="error_delete_list_fmt">%2$s: \"%1$s\" نەیتوانی لیستەکە بسڕێتەوە</string>
|
||||
<string name="error_rename_list_fmt">%2$s: \"%1$s\" نەیتوانی ناوی لیست بنووسرێ</string>
|
||||
<string name="error_create_list_fmt">%2$s: \"%1$s\" نەیتوانی لیست دروست بکات</string>
|
||||
<string name="title_lists">لیستەکان</string>
|
||||
<string name="add_account_description">زیادکردنی ئەژمێری ماتۆدۆنی نوێ</string>
|
||||
<string name="add_account_name">زیادکردنی ئەژمێر</string>
|
||||
<string name="filter_add_description">دەستەواژە بۆ فلتەر</string>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">Vyskytla se chyba.</string>
|
||||
<string name="error_network">Vyskytla se chyba sítě! Prosím zkontrolujte své připojení a zkuste to znovu!</string>
|
||||
<string name="error_empty">Toto nemůže být prázdné.</string>
|
||||
<string name="error_no_web_browser_found">Nepodařilo se najít webový prohlížeč, který lze použít.</string>
|
||||
<string name="error_compose_character_limit">Příspěvek je příliš dlouhý!</string>
|
||||
|
@ -39,7 +37,6 @@
|
|||
<string name="post_content_warning_show_less">Zobrazit méně</string>
|
||||
<string name="post_content_show_more">Rozbalit</string>
|
||||
<string name="post_content_show_less">Sbalit</string>
|
||||
<string name="message_empty">Tady nic není.</string>
|
||||
<string name="footer_empty">Tady nic není. Obnovte přetažením dolů!</string>
|
||||
<string name="notification_reblog_format">%s boostnul/a váš příspěvek</string>
|
||||
<string name="notification_favourite_format">%s si oblíbil/a váš příspěvek</string>
|
||||
|
@ -52,7 +49,6 @@
|
|||
<string name="action_unreblog">Odstranit boost</string>
|
||||
<string name="action_favourite">Oblíbit</string>
|
||||
<string name="action_unfavourite">Odstranit oblíbení</string>
|
||||
<string name="action_more">Více</string>
|
||||
<string name="action_compose">Napsat</string>
|
||||
<string name="action_logout">Odhlásit se</string>
|
||||
<string name="action_logout_confirm">Jste si jistý/á, že se chcete odhlásit z účtu %1$s?</string>
|
||||
|
@ -66,8 +62,6 @@
|
|||
<string name="action_delete">Smazat</string>
|
||||
<string name="action_send">TOOTNOUT</string>
|
||||
<string name="action_send_public">TOOTNOUT!</string>
|
||||
<string name="action_retry">Zkusit znovu</string>
|
||||
<string name="action_view_profile">Profil</string>
|
||||
<string name="action_view_preferences">Předvolby</string>
|
||||
<string name="action_view_account_preferences">Předvolby účtu</string>
|
||||
<string name="action_view_favourites">Oblíbené</string>
|
||||
|
@ -239,16 +233,6 @@
|
|||
<string name="filter_add_description">Fráze k filtrování</string>
|
||||
<string name="add_account_name">Přidat účet</string>
|
||||
<string name="add_account_description">Přidat nový účet Mastodon</string>
|
||||
<string name="title_lists">Seznamy</string>
|
||||
<string name="error_create_list_fmt">Nelze vytvořit seznam \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Nelze přejmenovat seznam \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">Nelze smazat seznam \"%1$s\": %2$s</string>
|
||||
<string name="action_create_list">Vytvořit seznam</string>
|
||||
<string name="action_rename_list">Přejmenovat seznam</string>
|
||||
<string name="action_delete_list">Smazat seznam</string>
|
||||
<string name="hint_search_people_list">Hledejte mezi lidmi, které sledujete</string>
|
||||
<string name="action_add_to_list">Přidat účet na seznam</string>
|
||||
<string name="action_remove_from_list">Odstranit účet ze seznamu</string>
|
||||
<string name="compose_active_account_description">Píšete jako %1$s</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one">Popis pro zrakově postižené
|
||||
|
@ -315,7 +299,6 @@
|
|||
<string name="description_visibility_unlisted">Neuvedený</string>
|
||||
<string name="description_visibility_private">Pro sledující</string>
|
||||
<string name="description_visibility_direct">Přímý</string>
|
||||
<string name="hint_list_name">Název seznamu</string>
|
||||
<string name="edit_hashtag_hint">Hashtag bez #</string>
|
||||
<string name="compose_shortcut_long_label">Napsat příspěvek</string>
|
||||
<string name="compose_shortcut_short_label">Napsat</string>
|
||||
|
@ -366,7 +349,6 @@
|
|||
<string name="mute_domain_warning_dialog_ok">Skrýt celou doménu</string>
|
||||
<string name="button_continue">Pokračovat</string>
|
||||
<string name="button_back">Zpět</string>
|
||||
<string name="button_done">Hotovo</string>
|
||||
<string name="report_sent_success">\@%s byla/a úspěšně nahlášen/a</string>
|
||||
<string name="hint_additional_info">Další komentáře</string>
|
||||
<string name="report_remote_instance">Přeposlat na %s</string>
|
||||
|
@ -462,7 +444,6 @@
|
|||
<string name="pref_title_confirm_favourites">Před oblíbením zobrazit dialog pro potvrzení</string>
|
||||
<string name="pref_title_hide_top_toolbar">Skrýt nadpis horního panelu nástrojů</string>
|
||||
<string name="wellbeing_hide_stats_profile">Skrýt kvantitativní statistiky profilů</string>
|
||||
<string name="dialog_delete_list_warning">Opravdu chcete smazat seznam %s\?</string>
|
||||
<string name="follow_requests_info">I když váš účet není uzamčen, zaměstnanci %1$s si myslí, že byste mohli chtít zkontrolovat žádosti o sledování z těchto účtů ručně.</string>
|
||||
<string name="action_subscribe_account">Odebírat</string>
|
||||
<string name="action_unsubscribe_account">Přestat odebírat</string>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">Bu gwall.</string>
|
||||
<string name="error_empty">Ni all hwn fod yn wag.</string>
|
||||
<string name="error_no_web_browser_found">Methu dod o hyd i borwr gwe i\'w ddefnyddio.</string>
|
||||
<string name="error_compose_character_limit">Mae\'ch neges yn rhy hir!</string>
|
||||
|
@ -44,7 +43,6 @@
|
|||
<string name="action_reply">Ymateb</string>
|
||||
<string name="action_reblog">Hybu</string>
|
||||
<string name="action_favourite">Hoffi</string>
|
||||
<string name="action_more">Mwy</string>
|
||||
<string name="action_compose">Creu</string>
|
||||
<string name="action_logout">Allgofnodi</string>
|
||||
<string name="action_logout_confirm">Ydych chi\'n siŵr eich bod am allgofnodi o\'r cyfrif %1$s\? Bydd hyn yn dileu\'r holl ddata lleol, gan gynnwys drafftiau a chyfeiriadau.</string>
|
||||
|
@ -58,8 +56,6 @@
|
|||
<string name="action_delete">Dileu</string>
|
||||
<string name="action_send">TŴTIO</string>
|
||||
<string name="action_send_public">TŴTIO!</string>
|
||||
<string name="action_retry">Ceisio eto</string>
|
||||
<string name="action_view_profile">Proffil</string>
|
||||
<string name="action_view_preferences">Dewisiadau</string>
|
||||
<string name="action_view_favourites">Ffefrynnau</string>
|
||||
<string name="action_view_mutes">Defnyddwyr a dawyd</string>
|
||||
|
@ -205,7 +201,6 @@
|
|||
<string name="replying_to">Yn ymateb i @%s</string>
|
||||
<string name="add_account_name">Ychwanegu Cyfrif</string>
|
||||
<string name="add_account_description">Ychwanegu Cyfrif Mastodon newydd</string>
|
||||
<string name="title_lists">Rhestrau</string>
|
||||
<string name="compose_active_account_description">Yn postio fel %1$s</string>
|
||||
<string name="action_set_caption">Gosod pennawd</string>
|
||||
<string name="action_remove">Dileu</string>
|
||||
|
@ -237,12 +232,10 @@
|
|||
<string name="profile_metadata_content_label">Cynnwys</string>
|
||||
<string name="pref_title_absolute_time">Defnyddio amser absoliwt</string>
|
||||
<string name="post_username_format">\@%s</string>
|
||||
<string name="error_network">Digwyddodd gwall rhwydwaith. Gwiriwch eich cysylltiad a cheisiwch eto.</string>
|
||||
<string name="title_direct_messages">Negeseuon uniongyrchol</string>
|
||||
<string name="title_tab_preferences">Tabiau</string>
|
||||
<string name="title_posts_pinned">Piniwyd</string>
|
||||
<string name="title_domain_mutes">Parthau cudd</string>
|
||||
<string name="message_empty">Dim byd yma.</string>
|
||||
<string name="action_unreblog">Dileu hwb</string>
|
||||
<string name="action_unfavourite">Dileu ffefryn</string>
|
||||
<string name="action_delete_and_redraft">Dileu ac ailddrafftio</string>
|
||||
|
@ -346,7 +339,6 @@
|
|||
<string name="follow_requests_info">Er nad ydych wedi cloi\'ch cyfrif, roedd staff %1$s yn meddwl efallai yr hoffech adolygu\'r ceisiadau i\'ch dilyn o\'r cyfrifon hyn â llaw.</string>
|
||||
<string name="delete_scheduled_post_warning">Hoffech chi ddileu\'r neges a amserlennwyd hon\?</string>
|
||||
<string name="description_post_media_no_description_placeholder">Dim disgrifiad</string>
|
||||
<string name="hint_list_name">Enw rhestr</string>
|
||||
<string name="edit_hashtag_hint">Hashnod heb #</string>
|
||||
<string name="report_remote_instance">Anfon ymlaen at %s</string>
|
||||
<string name="report_description_remote_instance">Daw\'r cyfrif o weinydd arall. Hoffech chi anfon copi dienw o\'r adroddiad i\'r gweinydd hwnnw hefyd\?</string>
|
||||
|
@ -357,9 +349,6 @@
|
|||
<string name="pref_show_self_username_never">Byth</string>
|
||||
<string name="pref_show_self_username_always">Bob tro</string>
|
||||
<string name="post_media_attachments">Atodiadau</string>
|
||||
<string name="action_create_list">Creu rhestr</string>
|
||||
<string name="action_rename_list">Diweddaru\'r rhestr</string>
|
||||
<string name="hint_search_people_list">Chwilio am bobl rydych chi\'n eu dilyn</string>
|
||||
<string name="action_edit_image">Golygu llun</string>
|
||||
<string name="title_reblogged_by">Hybwyd gan</string>
|
||||
<string name="label_duration">Hyd</string>
|
||||
|
@ -385,7 +374,6 @@
|
|||
<string name="account_note_saved">Cadwyd!</string>
|
||||
<string name="action_subscribe_account">Tanysgrifio</string>
|
||||
<string name="action_unsubscribe_account">Dad-danysgrifo</string>
|
||||
<string name="dialog_delete_list_warning">Ydych chi wir eisiau dileu rhestr %s\?</string>
|
||||
<string name="no_drafts">Does gennych chi ddim drafftiau.</string>
|
||||
<string name="pref_title_show_cards_in_timelines">Dangos rhagolygon ffrydiau</string>
|
||||
<string name="pref_title_wellbeing_mode">Llesiant</string>
|
||||
|
@ -407,7 +395,6 @@
|
|||
<string name="pref_default_media_sensitivity">Nodi cyfryngau yn sensitif bob tro</string>
|
||||
<string name="title_accounts">Cyfrifon</string>
|
||||
<string name="create_poll_title">Pôl</string>
|
||||
<string name="action_delete_list">Dileu\'r rhestr</string>
|
||||
<string name="add_hashtag_title">Ychwanegu hashnod</string>
|
||||
<string name="status_count_one_plus">1+</string>
|
||||
<string name="post_media_audio">Sain</string>
|
||||
|
@ -427,9 +414,6 @@
|
|||
<item quantity="other"><b>%1$s</b> Ffefryn</item>
|
||||
</plurals>
|
||||
<string name="description_visibility_direct">Uniongyrchol</string>
|
||||
<string name="action_add_or_remove_from_list">Ychwanegu at neu dynnu oddi ar restr</string>
|
||||
<string name="failed_to_add_to_list">Wedi methu ag ychwanegu\'r cyfrif at y rhestr</string>
|
||||
<string name="failed_to_remove_from_list">Wedi methu tynnu\'r cyfrif o\'r rhestr</string>
|
||||
<string name="compose_save_draft_loses_media">Cadw drafft\? (Bydd atodiadau\'n cael eu lanlwytho eto pan fyddwch chi\'n adfer y drafft.)</string>
|
||||
<string name="description_post_reblogged">Ailflogiwyd</string>
|
||||
<string name="dialog_push_notification_migration_other_accounts">Rydych wedi ail-fewngofnodi i\'ch cyfrif cyfredol i roi caniatâd tanysgrifio gwthio i Pachli. Fodd bynnag, mae gennych gyfrifon eraill o hyd nad ydyn nhw wedi\'u mudo fel hyn. Newidiwch atyn nhw ac ail-fewngofnodi fesul un er mwyn galluogi cefnogaeth hysbysiadau UnifiedPush.</string>
|
||||
|
@ -447,11 +431,9 @@
|
|||
<string name="failed_to_pin">Wedi methu pinio</string>
|
||||
<string name="failed_to_unpin">Wedi methu dadbinio</string>
|
||||
<string name="pref_title_http_proxy_port_message">Dylai\'r porth fod rhwng %d a %d</string>
|
||||
<string name="error_rename_list_fmt">Methu diweddaru\'r rhestr \"%1$s\": %2$s</string>
|
||||
<string name="pref_default_post_language">Iaith bostio ragosodedig</string>
|
||||
<string name="description_post_bookmarked">Tudalnodiwyd</string>
|
||||
<string name="select_list_title">Dewiswch restr</string>
|
||||
<string name="button_done">Wedi gorffen</string>
|
||||
<string name="report_sent_success">Wedi adrodd ar @%s yn llwyddiannus</string>
|
||||
<string name="limit_notifications">Cyfyngu ar hysbysiadau ffrydiau</string>
|
||||
<string name="pref_title_show_self_username">Dangos enw defnyddiwr mewn bariau offer</string>
|
||||
|
@ -487,15 +469,11 @@
|
|||
<string name="notification_sign_up_description">Hysbysiadau am ddefnyddwyr newydd</string>
|
||||
<string name="notification_report_description">Hysbysiadau am adroddiadau cymedroli</string>
|
||||
<string name="filter_dialog_whole_word_description">Os yw\'r allweddair neu\'r ymadrodd yn alffaniwmerig yn unig, mi fydd ond yn cael ei osod os yw\'n cyfateb â\'r gair cyfan</string>
|
||||
<string name="error_create_list_fmt">Methu creu rhestr \"%1$s\": %2$s</string>
|
||||
<string name="set_focus_description">Tapiwch neu lusgo\'r cylch i ddewis y canolbwynt a fydd bob amser yn weladwy mewn lluniau bach.</string>
|
||||
<string name="description_poll">Pôl gyda dewisiadau: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="list">Rhestr</string>
|
||||
<string name="action_set_focus">Gosod pwynt ffocws</string>
|
||||
<string name="status_created_at_now">nawr</string>
|
||||
<string name="error_delete_list_fmt">Methu dileu\'r rhestr \"%1$s\": %2$s</string>
|
||||
<string name="action_add_to_list">Ychwanegwch gyfrif at y rhestr</string>
|
||||
<string name="action_remove_from_list">Tynnu cyfrif o\'r rhestr</string>
|
||||
<string name="action_add_reaction">ychwanegu ymateb</string>
|
||||
<string name="description_post_media">Cyfryngau: %s</string>
|
||||
<string name="error_status_source_load">Wedi methu llwytho\'r ffynhonnell statws o\'r gweinydd.</string>
|
||||
|
@ -516,7 +494,6 @@
|
|||
<item quantity="many">%s person</item>
|
||||
<item quantity="other">%s pherson</item>
|
||||
</plurals>
|
||||
<string name="no_lists">Nid oes gennych unrhyw restrau.</string>
|
||||
<string name="wellbeing_mode_notice">Bydd rhywfaint o wybodaeth a all effeithio ar eich lles meddyliol yn cael ei chuddio. Mae hyn yn cynnwys:
|
||||
\n
|
||||
\n - Hysbysiadau hoffi/hybu/dilyn
|
||||
|
@ -614,7 +591,6 @@
|
|||
<string name="total_accounts">Cyfrifon cyfan</string>
|
||||
<string name="dialog_follow_hashtag_title">Dilyn hashnod</string>
|
||||
<string name="dialog_follow_hashtag_hint">#hashnod</string>
|
||||
<string name="action_refresh">Adnewyddu</string>
|
||||
<string name="notification_unknown_name">Anhysbys</string>
|
||||
<string name="status_filtered_show_anyway">Dangos beth bynnag</string>
|
||||
<string name="status_filter_placeholder_label_format">Hidlwyd: %s</string>
|
||||
|
@ -664,7 +640,6 @@
|
|||
<string name="load_newest_notifications">Llwytho hysbysiadau diweddaraf</string>
|
||||
<string name="compose_delete_draft">Dileu\'r drafft\?</string>
|
||||
<string name="error_media_upload_sending_fmt">Methodd y lanlwytho: %s</string>
|
||||
<string name="list_exclusive_label">Cuddio o\'r ffrwd cartref</string>
|
||||
<string name="error_media_playback">Methodd chwarae: %s</string>
|
||||
<string name="dialog_delete_filter_positive_action">Dileu</string>
|
||||
<string name="dialog_delete_filter_text">Dileu\'r hidlydd \'%1$s\'\?</string>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">Ein Fehler ist aufgetreten.</string>
|
||||
<string name="error_network">Ein Netzwerkfehler ist aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut.</string>
|
||||
<string name="error_empty">Das darf nicht leer sein.</string>
|
||||
<string name="error_no_web_browser_found">Kein Webbrowser gefunden.</string>
|
||||
<string name="error_compose_character_limit">Der Beitrag ist zu lang!</string>
|
||||
|
@ -40,7 +38,6 @@
|
|||
<string name="post_content_warning_show_less">Weniger anzeigen</string>
|
||||
<string name="post_content_show_more">Ausklappen</string>
|
||||
<string name="post_content_show_less">Einklappen</string>
|
||||
<string name="message_empty">Hier ist nichts.</string>
|
||||
<string name="footer_empty">Noch keine Beiträge. Ziehe zum Aktualisieren nach unten!</string>
|
||||
<string name="notification_reblog_format">%s teilte deinen Beitrag</string>
|
||||
<string name="notification_favourite_format">%s favorisierte deinen Beitrag</string>
|
||||
|
@ -53,7 +50,6 @@
|
|||
<string name="action_unreblog">Teilen rückgängig machen</string>
|
||||
<string name="action_favourite">Favorisieren</string>
|
||||
<string name="action_unfavourite">Aus Favoriten entfernen</string>
|
||||
<string name="action_more">Mehr</string>
|
||||
<string name="action_compose">Beitrag erstellen</string>
|
||||
<string name="action_logout">Abmelden</string>
|
||||
<string name="action_logout_confirm">Möchtest du %1$s wirklich abmelden\? Dadurch werden alle lokalen Daten des Profils, wie Entwürfe und Einstellungen, gelöscht.</string>
|
||||
|
@ -67,8 +63,6 @@
|
|||
<string name="action_delete">Löschen</string>
|
||||
<string name="action_send">TRÖT</string>
|
||||
<string name="action_send_public">TRÖT!</string>
|
||||
<string name="action_retry">Erneut versuchen</string>
|
||||
<string name="action_view_profile">Profil</string>
|
||||
<string name="action_view_preferences">Einstellungen</string>
|
||||
<string name="action_view_account_preferences">Profileinstellungen</string>
|
||||
<string name="action_view_favourites">Favoriten</string>
|
||||
|
@ -225,11 +219,6 @@
|
|||
<string name="filter_dialog_update_button">Aktualisieren</string>
|
||||
<string name="add_account_name">Konto hinzufügen</string>
|
||||
<string name="add_account_description">Neues Mastodon-Konto hinzufügen</string>
|
||||
<string name="title_lists">Listen</string>
|
||||
<string name="action_create_list">Liste erstellen</string>
|
||||
<string name="action_rename_list">Liste aktualisieren</string>
|
||||
<string name="action_delete_list">Liste löschen</string>
|
||||
<string name="action_add_to_list">Konto zur Liste hinzufügen</string>
|
||||
<string name="compose_active_account_description">Veröffentlichen als %1$s</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one">Inhalt für Menschen mit Sehbehinderung beschreiben (%d Zeichen)</item>
|
||||
|
@ -277,15 +266,9 @@
|
|||
<string name="description_visibility_public">Öffentlich </string>
|
||||
<string name="description_visibility_private">Follower</string>
|
||||
<string name="description_visibility_direct">Direkt </string>
|
||||
<string name="hint_list_name">Listenname</string>
|
||||
<string name="download_media">Dateien herunterladen</string>
|
||||
<string name="downloading_media">Dateien werden heruntergeladen</string>
|
||||
<string name="filter_add_description">zu filternder Ausdruck</string>
|
||||
<string name="error_create_list_fmt">Liste konnte nicht erstellt werden \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Liste konnte nicht aktualisiert werden \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">Liste konnte nicht gelöscht werden \"%1$s\": %2$s</string>
|
||||
<string name="hint_search_people_list">Suche nach Leuten, denen du folgst</string>
|
||||
<string name="action_remove_from_list">Konto aus der Liste entfernen</string>
|
||||
<string name="edit_hashtag_hint">Hashtag ohne #</string>
|
||||
<string name="action_open_reblogger">Autor*in des geteilten Beitrags öffnen</string>
|
||||
<string name="pref_title_public_filter_keywords">Öffentliche Timelines</string>
|
||||
|
@ -347,7 +330,6 @@
|
|||
<string name="filter_dialog_whole_word_description">Wenn das Wort oder die Formulierung nur aus Buchstaben oder Zahlen besteht, tritt der Filter nur dann in Kraft, wenn er exakt dieser Zeichenfolge entspricht</string>
|
||||
<string name="button_continue">Weiter</string>
|
||||
<string name="button_back">Zurück</string>
|
||||
<string name="button_done">Fertig</string>
|
||||
<string name="report_sent_success">\@%s wurde erfolgreich gemeldet</string>
|
||||
<string name="hint_additional_info">Zusätzliche Anmerkungen</string>
|
||||
<string name="report_remote_instance">An %s weiterleiten</string>
|
||||
|
@ -431,7 +413,6 @@
|
|||
<string name="drafts_post_reply_removed">Der Beitrag, auf den du antworten wolltest, wurde gelöscht</string>
|
||||
<string name="draft_deleted">Entwurf gelöscht</string>
|
||||
<string name="drafts_post_failed_to_send">Dieser Beitrag konnte nicht gesendet werden!</string>
|
||||
<string name="dialog_delete_list_warning">Möchtest du die Liste %s wirklich löschen\?</string>
|
||||
<plurals name="error_upload_max_media_reached">
|
||||
<item quantity="one">Du kannst nicht mehr als %1$d Anhang hochladen.</item>
|
||||
<item quantity="other">Du kannst nicht mehr als %1$d Anhänge hochladen.</item>
|
||||
|
@ -516,10 +497,6 @@
|
|||
<string name="url_domain_notifier">\u0020(🔗 %s)</string>
|
||||
<string name="action_set_focus">Fokuspunkt setzen</string>
|
||||
<string name="action_add_reaction">Reaktion hinzufügen</string>
|
||||
<string name="failed_to_remove_from_list">Das Konto konnte nicht aus der Liste entfernt werden</string>
|
||||
<string name="action_add_or_remove_from_list">Zur Liste hzfg. / aus Liste entf.</string>
|
||||
<string name="failed_to_add_to_list">Das Konto konnte nicht zur Liste hinzugefügt werden</string>
|
||||
<string name="no_lists">Du hast keine Listen.</string>
|
||||
<string name="notification_summary_report_format">%s · %d Beiträge angehängt</string>
|
||||
<string name="notification_header_report_format">%s hat %s gemeldet</string>
|
||||
<string name="confirmation_hashtag_unfollowed">#%s entfolgt</string>
|
||||
|
@ -574,7 +551,6 @@
|
|||
<string name="total_accounts">Konten insg.</string>
|
||||
<string name="dialog_follow_hashtag_title">Hashtag folgen</string>
|
||||
<string name="dialog_follow_hashtag_hint">#Hashtag</string>
|
||||
<string name="action_refresh">Aktualisieren</string>
|
||||
<string name="socket_timeout_exception">Kontaktaufnahme mit dem Server dauerte zu lange</string>
|
||||
<string name="ui_error_bookmark">Beitrag konnte nicht als Lesezeichen gespeichert werden: %s</string>
|
||||
<string name="ui_error_reblog">Beitrag konnte nicht geteilt werden: %s</string>
|
||||
|
@ -619,7 +595,6 @@
|
|||
<string name="error_missing_edits">Deinem Server ist bekannt, dass dieser Beitrag bearbeitet wurde. Allerdings besitzt er keine Kopien der Änderungen, weshalb diese nicht angezeigt werden können.
|
||||
\n
|
||||
\nHierbei handelt es sich um <a href="https://github.com/mastodon/mastodon/issues/25398">Mastodon Issue #25398</a>.</string>
|
||||
<string name="list_exclusive_label">Nicht in der Startseite anzeigen</string>
|
||||
<string name="error_media_upload_sending_fmt">Das Hochladen ist fehlgeschlagen: %s</string>
|
||||
<string name="ui_error_translate_status">Übersetzung fehlgeschlagen: %s</string>
|
||||
<string name="update_dialog_negative">Erinnere mich nie</string>
|
||||
|
@ -636,9 +611,7 @@
|
|||
<string name="pref_title_update_settings">Softwareaktualisierungen</string>
|
||||
<string name="title_public_trending_statuses">Angesagte Beiträge</string>
|
||||
<string name="load_newest_statuses">Neueste Beiträge laden</string>
|
||||
<string name="error_network_fmt">Ein Netzwerkfehler ist aufgetreten: %s</string>
|
||||
<string name="dialog_save_profile_changes_message">Möchtest du deine Profiländerungen speichern?</string>
|
||||
<string name="error_generic_fmt">Es ist ein Fehler aufgetreten: %s</string>
|
||||
<string name="pref_update_notification_frequency_always">Immer</string>
|
||||
<string name="pref_update_notification_frequency_never">Nie</string>
|
||||
<string name="pref_title_show_self_boosts_description">Jemand teilt einen eigenen Beitrag</string>
|
||||
|
@ -648,7 +621,6 @@
|
|||
<string name="pref_title_show_self_boosts">Selbst geteilte Beiträge anzeigen</string>
|
||||
<string name="title_tab_public_trending_statuses">Beiträge</string>
|
||||
<string name="pref_update_notification_frequency_once_per_version">Einmal pro Version</string>
|
||||
<string name="error_404_not_found_fmt">Dein Server unterstützt diese Funktion nicht: %1$s</string>
|
||||
<string name="pref_title_font_family">Schriftfamilie</string>
|
||||
<string name="action_translate">Übersetzen</string>
|
||||
<string name="update_dialog_title">Eine Aktualisierung ist verfügbar</string>
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_empty">Αυτό δεν μπορεί να είναι κενό.</string>
|
||||
<string name="error_network">Προέκυψε σφάλμα δικτύου! Παρακαλώ ελέγξτε τη σύνδεσή σας και προσπαθήστε ξανά.</string>
|
||||
<string name="error_generic">Προέκυψε ένα σφάλμα.</string>
|
||||
<string name="action_view_blocks">Αποκλεισμένοι χρήστες</string>
|
||||
<string name="dialog_message_cancel_follow_request">Ακύρωση αιτήματος ακολούθησης;</string>
|
||||
<string name="dialog_delete_conversation_warning">Διαγραφή αυτής της συζήτησης;</string>
|
||||
|
@ -21,7 +19,6 @@
|
|||
<string name="action_open_in_web">Ανοίξτε σε browser</string>
|
||||
<string name="action_view_follow_requests">Αιτήματα ακολούθησης</string>
|
||||
<string name="action_bookmark">Προσθήκη σελιδοδείκτη</string>
|
||||
<string name="action_more">Περισσότερα</string>
|
||||
<string name="action_view_bookmarks">Σελιδοδείκτες</string>
|
||||
<string name="title_bookmarks">Σελιδοδείκτες</string>
|
||||
<string name="title_followers">Ακόλουθοι</string>
|
||||
|
@ -56,7 +53,6 @@
|
|||
<string name="hint_search">Αναζήτηση…</string>
|
||||
<string name="action_accept">Αποδοχή</string>
|
||||
<string name="action_show_reblogs">Εμφάνιση προωθήσεων</string>
|
||||
<string name="action_view_profile">Προφίλ</string>
|
||||
<string name="title_follow_requests">Αιτήματα ακολούθησης</string>
|
||||
<string name="action_search">Αναζήτηση</string>
|
||||
<string name="action_delete_conversation">Διαγραφή συζήτησης</string>
|
||||
|
@ -70,7 +66,6 @@
|
|||
<string name="title_announcements">Ανακοινώσεις</string>
|
||||
<string name="action_access_drafts">Προσχέδια</string>
|
||||
<string name="notification_sign_up_format">ο/η %s έκανε εγγραφή</string>
|
||||
<string name="action_retry">Προσπαθήστε ξανά</string>
|
||||
<string name="dialog_delete_post_warning">Διαγραφή αυτής της δημοσίευσης;</string>
|
||||
<string name="action_unmute">Άρση σίγασης</string>
|
||||
<string name="action_favourite">Αγαπημένο</string>
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
<string name="title_edit_profile">Edit your profile</string>
|
||||
<string name="error_media_upload_permission">Permission to read media is required.</string>
|
||||
<string name="error_media_upload_image_or_video">Images and videos cannot both be attached to the same post.</string>
|
||||
<string name="error_network">A network error occurred! Please check your connection and try again!</string>
|
||||
<string name="error_no_web_browser_found">Couldn\'t find a web browser to use.</string>
|
||||
<string name="title_notifications">Notifications</string>
|
||||
<string name="title_posts">Posts</string>
|
||||
|
@ -35,7 +34,6 @@
|
|||
<string name="title_direct_messages">Direct messages</string>
|
||||
<string name="title_followers">Followers</string>
|
||||
<string name="error_compose_character_limit">The post is too long!</string>
|
||||
<string name="error_generic">An error occurred.</string>
|
||||
<string name="title_public_local">Local</string>
|
||||
<string name="title_blocks">Blocked users</string>
|
||||
<string name="title_tab_preferences">Tabs</string>
|
||||
|
@ -60,14 +58,12 @@
|
|||
<string name="dialog_follow_hashtag_title">Follow hashtag</string>
|
||||
<string name="title_public_trending_statuses">Trending posts</string>
|
||||
<string name="error_following_hashtags_unsupported">This instance does not support following hashtags.</string>
|
||||
<string name="error_generic_fmt">An error occurred: %s</string>
|
||||
<string name="title_edits">Edits</string>
|
||||
<string name="title_followed_hashtags">Followed hashtags</string>
|
||||
<string name="error_media_upload_sending_fmt">The upload failed: %s</string>
|
||||
<string name="title_migration_relogin">Re-login for push notifications</string>
|
||||
<string name="title_drafts">Drafts</string>
|
||||
<string name="title_tab_public_trending_statuses">Posts</string>
|
||||
<string name="error_404_not_found_fmt">Your server does not support this feature: %1$s</string>
|
||||
<string name="error_unfollowing_hashtag_format">Error unfollowing #%s</string>
|
||||
<string name="error_following_hashtag_format">Error following #%s</string>
|
||||
<string name="title_announcements">Announcements</string>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">Eraro okazis.</string>
|
||||
<string name="error_network">Reta eraro okazis! Bonvolu kontroli vian konekton kaj klopodi denove!</string>
|
||||
<string name="error_empty">Tiu ne povas esti malplena.</string>
|
||||
<string name="error_no_web_browser_found">Ne eblas trovi retumilon.</string>
|
||||
<string name="error_compose_character_limit">Via mesaĝo estas tro longa!</string>
|
||||
|
@ -39,7 +37,6 @@
|
|||
<string name="post_content_warning_show_less">Montri malpli</string>
|
||||
<string name="post_content_show_more">Pligrandigi</string>
|
||||
<string name="post_content_show_less">Malgrandigi</string>
|
||||
<string name="message_empty">Nenio tie ĉi.</string>
|
||||
<string name="footer_empty">Nenio tie ĉi. Tiru malsupren por aktualigi!</string>
|
||||
<string name="notification_reblog_format">%s diskonigis vian mesaĝon</string>
|
||||
<string name="notification_favourite_format">%s stelumis vian mesaĝon</string>
|
||||
|
@ -52,7 +49,6 @@
|
|||
<string name="action_unreblog">Nuligi diskonigon</string>
|
||||
<string name="action_favourite">Stelumi</string>
|
||||
<string name="action_unfavourite">Nuligi stelumon</string>
|
||||
<string name="action_more">Pli</string>
|
||||
<string name="action_compose">Verki</string>
|
||||
<string name="action_logout">Elsaluti</string>
|
||||
<string name="action_logout_confirm">Ĉu vi certas, ke vi volas elsaluti el la konto %1$s\?</string>
|
||||
|
@ -66,8 +62,6 @@
|
|||
<string name="action_delete">Forigi</string>
|
||||
<string name="action_send">HUP</string>
|
||||
<string name="action_send_public">HUP!</string>
|
||||
<string name="action_retry">Reprovi</string>
|
||||
<string name="action_view_profile">Profilo</string>
|
||||
<string name="action_view_preferences">Agordoj</string>
|
||||
<string name="action_view_account_preferences">Agordoj de konto</string>
|
||||
<string name="action_view_favourites">Stelumoj</string>
|
||||
|
@ -238,16 +232,6 @@
|
|||
<string name="filter_add_description">Frazo filtrota</string>
|
||||
<string name="add_account_name">Aldoni konton</string>
|
||||
<string name="add_account_description">Aldoni novan Mastodon-konton</string>
|
||||
<string name="title_lists">Listoj</string>
|
||||
<string name="error_create_list_fmt">Ne povis krei la liston \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">Ne povis ŝanĝi la nomon de la listo \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">Ne povis forigi la liston \"%1$s\": %2$s</string>
|
||||
<string name="action_create_list">Krei liston</string>
|
||||
<string name="action_rename_list">Ŝanĝi la nomon de la listo</string>
|
||||
<string name="action_delete_list">Forigi la liston</string>
|
||||
<string name="hint_search_people_list">Serĉi homojn, kiujn vi sekvas</string>
|
||||
<string name="action_add_to_list">Aldoni konton al la listo</string>
|
||||
<string name="action_remove_from_list">Forigi konton el la listo</string>
|
||||
<string name="compose_active_account_description">Afiŝi per konto %1$s</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one"/>
|
||||
|
@ -316,7 +300,6 @@
|
|||
<string name="description_visibility_private"> Sekvantoj
|
||||
</string>
|
||||
<string name="description_visibility_direct"> Rekta </string>
|
||||
<string name="hint_list_name">Nomo de la listo</string>
|
||||
<string name="action_delete_and_redraft">Forigi kaj reskribi</string>
|
||||
<string name="dialog_redraft_post_warning">Ĉu forigi kaj reskribi ĉi tiun mesaĝon\?</string>
|
||||
<string name="pref_title_notification_filter_poll">enketoj finiĝis</string>
|
||||
|
@ -351,7 +334,6 @@
|
|||
<string name="description_poll">Balotenketo kun elektoj: %1$s, %2$s, %3$s, %4$s, %5$s</string>
|
||||
<string name="button_continue">Daŭrigi</string>
|
||||
<string name="button_back">Reveni</string>
|
||||
<string name="button_done">Farita</string>
|
||||
<string name="report_sent_success">\@%s sukcese signalita</string>
|
||||
<string name="hint_additional_info">Pliaj komentoj</string>
|
||||
<string name="report_remote_instance">Plusendi al %s</string>
|
||||
|
@ -438,7 +420,6 @@
|
|||
<string name="warning_scheduling_interval">Mastodon havas minimuman intervalon de planado de 5 minutoj.</string>
|
||||
<string name="post_media_attachments">Kunsendaĵoj</string>
|
||||
<string name="pref_title_notification_filter_subscriptions">iu, kiun mi sekvas, afiŝis novan mesaĝon</string>
|
||||
<string name="dialog_delete_list_warning">Ĉu vi vere volas forigi la liston %s\?</string>
|
||||
<string name="post_media_audio">Aŭdaĵo</string>
|
||||
<string name="action_subscribe_account">Aboni</string>
|
||||
<string name="draft_deleted">Malneto forigita</string>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="error_generic">Ha ocurrido un error.</string>
|
||||
<string name="error_network">Ha ocurrido un error de red. Por favor, comprueba tu conexión e inténtalo de nuevo.</string>
|
||||
<string name="error_empty">Este campo no puede estar vacío.</string>
|
||||
<string name="error_no_web_browser_found">No se ha encontrado ningún navegador web.</string>
|
||||
<string name="error_compose_character_limit">¡La publicación es demasiado larga!</string>
|
||||
|
@ -39,7 +37,6 @@
|
|||
<string name="post_content_warning_show_less">Mostrar menos</string>
|
||||
<string name="post_content_show_more">Expandir</string>
|
||||
<string name="post_content_show_less">Ocultar</string>
|
||||
<string name="message_empty">Nada aquí.</string>
|
||||
<string name="footer_empty">Nada por aquí. ¡Arrastra hacia abajo para recargar!</string>
|
||||
<string name="notification_reblog_format">%s impulsó tu publicación</string>
|
||||
<string name="notification_favourite_format">%s marcó como favorita tu publicación</string>
|
||||
|
@ -50,7 +47,6 @@
|
|||
<string name="action_reply">Responder</string>
|
||||
<string name="action_reblog">Compartir</string>
|
||||
<string name="action_favourite">Favorito</string>
|
||||
<string name="action_more">Más</string>
|
||||
<string name="action_compose">Redactar</string>
|
||||
<string name="action_logout">Cerrar sesión</string>
|
||||
<string name="action_logout_confirm">¿Seguro que quiere cerrar la sesión de %1$s? Esto eliminará todos los datos locales de la cuenta, incluyendo borradores y preferencias.</string>
|
||||
|
@ -64,8 +60,6 @@
|
|||
<string name="action_delete">Borrar</string>
|
||||
<string name="action_send">TOOT</string>
|
||||
<string name="action_send_public">¡Publicar!</string>
|
||||
<string name="action_retry">Reintentar</string>
|
||||
<string name="action_view_profile">Perfil</string>
|
||||
<string name="action_view_preferences">Ajustes</string>
|
||||
<string name="action_view_account_preferences">Preferencias de cuenta</string>
|
||||
<string name="action_view_favourites">Favoritos</string>
|
||||
|
@ -87,7 +81,6 @@
|
|||
<string name="action_edit_own_profile">Editar</string>
|
||||
<string name="action_undo">Deshacer</string>
|
||||
<string name="action_accept">Aceptar</string>
|
||||
<string name="action_reject">Rechazar</string>
|
||||
<string name="action_search">Buscar</string>
|
||||
<string name="action_access_drafts">Borradores</string>
|
||||
<string name="action_toggle_visibility">Visibilidad de la publicación</string>
|
||||
|
@ -216,7 +209,6 @@
|
|||
<string name="replying_to">Respondiendo a @%s</string>
|
||||
<string name="add_account_name">Añadir cuenta</string>
|
||||
<string name="add_account_description">Añadir cuenta de Mastodon</string>
|
||||
<string name="title_lists">Listas</string>
|
||||
<string name="compose_active_account_description">Publicar como %1$s</string>
|
||||
<plurals name="hint_describe_for_visually_impaired">
|
||||
<item quantity="one">Descripción para persona con problema de visión (Límite de %d caracteres)</item>
|
||||
|
@ -282,10 +274,6 @@
|
|||
<string name="pref_title_timeline_filters">Filtros</string>
|
||||
<string name="notification_poll_name">Encuestas</string>
|
||||
<string name="filter_dialog_remove_button">Eliminar</string>
|
||||
<string name="action_create_list">Crear una lista</string>
|
||||
<string name="action_rename_list">Renombrar la lista</string>
|
||||
<string name="action_add_to_list">Añadir cuenta a la lista</string>
|
||||
<string name="action_remove_from_list">Eliminar cuenta de la lista</string>
|
||||
<string name="description_post_favourited">1Favoritos</string>
|
||||
<string name="description_visibility_private">Seguidores</string>
|
||||
<string name="filter_apply">Aplicar</string>
|
||||
|
@ -334,11 +322,6 @@
|
|||
<string name="filter_edit_title">Editar filtro</string>
|
||||
<string name="filter_dialog_update_button">Actualizar</string>
|
||||
<string name="filter_add_description">Frase para filtrar</string>
|
||||
<string name="error_create_list_fmt">No se pudo crear la lista \"%1$s\": %2$s</string>
|
||||
<string name="error_rename_list_fmt">No se pudo renombrar la lista \"%1$s\": %2$s</string>
|
||||
<string name="error_delete_list_fmt">No se pudo eliminar la lista \"%1$s\": %2$s</string>
|
||||
<string name="action_delete_list">Eliminar la lista</string>
|
||||
<string name="hint_search_people_list">Buscar personas que sigues</string>
|
||||
<string name="description_post_media">Contenido: %s</string>
|
||||
<string name="description_post_cw">Aviso de contenido: %s</string>
|
||||
<string name="description_post_media_no_description_placeholder">Sin descripción</string>
|
||||
|
@ -346,7 +329,6 @@
|
|||
<string name="description_visibility_public">Público</string>
|
||||
<string name="description_visibility_unlisted">Sin listar</string>
|
||||
<string name="description_visibility_direct">Directo</string>
|
||||
<string name="hint_list_name">Nombre de la lista</string>
|
||||
<string name="edit_hashtag_hint">Etiqueta sin #</string>
|
||||
<string name="notifications_clear">Limpiar</string>
|
||||
<string name="notifications_apply_filter">Filtro</string>
|
||||
|
@ -371,7 +353,6 @@
|
|||
<string name="description_poll">Encuesta con opciones: %1$s, %2$s, %3$s, %4$s; %5$s</string>
|
||||
<string name="button_continue">Continuar</string>
|
||||
<string name="button_back">Atrás</string>
|
||||
<string name="button_done">Hecho</string>
|
||||
<string name="report_sent_success">\@%s reportado satisfactoriamente</string>
|
||||
<string name="hint_additional_info">Comentarios adicionales</string>
|
||||
<string name="report_remote_instance">Reenviar a %s</string>
|
||||
|
@ -463,7 +444,6 @@
|
|||
<string name="draft_deleted">Borrador eliminado</string>
|
||||
<string name="drafts_failed_loading_reply">Error al cargar la información de respuesta</string>
|
||||
<string name="drafts_post_failed_to_send">¡Este toot no se pudo enviar!</string>
|
||||
<string name="dialog_delete_list_warning">¿Realmente quieres eliminar la lista %s\?</string>
|
||||
<string name="duration_indefinite">Indefinido</string>
|
||||
<string name="label_duration">Duración</string>
|
||||
<string name="post_media_attachments">Adjuntos</string>
|
||||
|
@ -521,9 +501,6 @@
|
|||
<string name="dialog_push_notification_migration_other_accounts">Has vuelto a iniciar sesión en esta cuenta para dar permiso de notificaciones push a Pachli. Sin embargo, aún hay otras cuentas que no tienen este permiso. Cambia a estas cuentas y vuelve a iniciar sesión, una a una, para activar el soporte de notificaciones de UnifiedPush.</string>
|
||||
<string name="notification_sign_up_name">Creación de cuentas</string>
|
||||
<string name="action_edit_image">Editar imagen</string>
|
||||
<string name="failed_to_add_to_list">Falló añadir la cuenta a la lista</string>
|
||||
<string name="failed_to_remove_from_list">Falló al eliminar la cuenta de la lista</string>
|
||||
<string name="action_add_or_remove_from_list">Añadir o quitar de la lista</string>
|
||||
<string name="hint_media_description_missing">El contenido debería tener una descripción.</string>
|
||||
<string name="report_category_violation">Violación de una regla</string>
|
||||
<string name="report_category_spam">Spam</string>
|
||||
|
@ -537,7 +514,6 @@
|
|||
<string name="language_display_name_format">%s (%s)</string>
|
||||
<string name="error_muting_hashtag_format">Error al silenciar #%s</string>
|
||||
<string name="error_unmuting_hashtag_format">Error al reactivar #%s</string>
|
||||
<string name="no_lists">No tienes ninguna lista.</string>
|
||||
<string name="notification_report_description">Notificaciones sobre informes de moderación</string>
|
||||
<string name="error_following_hashtags_unsupported">Esta instancia no soporta el seguimiento de etiquetas.</string>
|
||||
<string name="title_followed_hashtags">Etiquetas seguidas</string>
|
||||
|
@ -584,7 +560,6 @@
|
|||
<string name="hint_description">Descripción</string>
|
||||
<string name="post_media_image">Imagen</string>
|
||||
<string name="pref_title_account_filter_keywords">Perfiles</string>
|
||||
<string name="action_refresh">Recargar</string>
|
||||
<string name="notification_unknown_name">Desconocido</string>
|
||||
<string name="status_filtered_show_anyway">Mostrar de todas formas</string>
|
||||
<string name="status_filter_placeholder_label_format">Filtrado: %s</string>
|
||||
|
@ -651,9 +626,7 @@
|
|||
<string name="title_public_trending_statuses">Publicaciones en tendencia</string>
|
||||
<string name="announcement_date">%1$s %2$s</string>
|
||||
<string name="load_newest_statuses">Carga publicaciones más nuevas</string>
|
||||
<string name="error_network_fmt">Ha ocurrido un error de red: %s</string>
|
||||
<string name="dialog_save_profile_changes_message">¿Quieres guardar tus cambios de perfil?</string>
|
||||
<string name="error_generic_fmt">Ha ocurrido un error: %s</string>
|
||||
<string name="pref_update_notification_frequency_always">Siempre</string>
|
||||
<string name="error_media_upload_sending_fmt">La carga falló: %s</string>
|
||||
<string name="pref_update_notification_frequency_never">Nunca</string>
|
||||
|
@ -666,10 +639,8 @@
|
|||
<string name="announcement_date_updated">(Actualizado: %1$s)</string>
|
||||
<string name="title_tab_public_trending_statuses">Publicaciones</string>
|
||||
<string name="pref_update_notification_frequency_once_per_version">Una vez por versión</string>
|
||||
<string name="error_404_not_found_fmt">Su servidor no soporta esta función: %1$s</string>
|
||||
<string name="pref_title_font_family">Familia de fuente</string>
|
||||
<string name="notification_listenable_worker_description">Notificaciones cuando Pachli está trabajando en el fondo</string>
|
||||
<string name="list_exclusive_label">Oculta de la cronología de inicio</string>
|
||||
<string name="action_translate">Traducir</string>
|
||||
<string name="error_missing_edits">Tu servidor sabe que esta publicación fue editada, pero no tiene una copia de las ediciones, así que no pueden ser asomados a ti.
|
||||
\n
|
||||
|
@ -691,4 +662,5 @@
|
|||
<string name="pref_title_update_check_now">Buscar actualizaciones ahora</string>
|
||||
<string name="pref_update_check_no_updates">No hay actualizaciones disponibles</string>
|
||||
<string name="pref_update_next_scheduled_check">Próxima comprobación: %1$s</string>
|
||||
<string name="action_reject">Rechazar</string>
|
||||
</resources>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue