Always publish image alt text

Previous code would discard the image alt-text if the user finished writing the text before the image had finished uploading.

This code ensures the text is set after the image has completed uploading.
This commit is contained in:
UlrichKu 2023-04-24 11:48:40 +02:00 committed by GitHub
parent 168be9223d
commit 24d7ef7ccb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 209 additions and 288 deletions

View file

@ -227,13 +227,13 @@ class ComposeActivity :
val mediaAdapter = MediaPreviewAdapter(
this,
onAddCaption = { item ->
CaptionDialog.newInstance(item.localId, item.description, item.uri)
.show(supportFragmentManager, "caption_dialog")
CaptionDialog.newInstance(item.localId, item.description, item.uri).show(supportFragmentManager, "caption_dialog")
},
onAddFocus = { item ->
makeFocusDialog(item.focus, item.uri) { newFocus ->
viewModel.updateFocus(item.localId, newFocus)
}
// TODO this is inconsistent to CaptionDialog (device rotation)?
},
onEditImage = this::editImageInQueue,
onRemove = this::removeMediaFromQueue
@ -1266,11 +1266,7 @@ class ComposeActivity :
}
override fun onUpdateDescription(localId: Int, description: String) {
lifecycleScope.launch {
if (!viewModel.updateDescription(localId, description)) {
Toast.makeText(this@ComposeActivity, R.string.error_failed_set_caption, Toast.LENGTH_SHORT).show()
}
}
viewModel.updateDescription(localId, description)
}
/**

View file

@ -48,7 +48,6 @@ import kotlinx.coroutines.flow.asFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.flow.updateAndGet
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import javax.inject.Inject
@ -130,7 +129,7 @@ class ComposeViewModel @Inject constructor(
): QueuedMedia {
var stashMediaItem: QueuedMedia? = null
media.updateAndGet { mediaValue ->
media.update { mediaList ->
val mediaItem = QueuedMedia(
localId = mediaUploader.getNewLocalMediaId(),
uri = uri,
@ -144,11 +143,11 @@ class ComposeViewModel @Inject constructor(
if (replaceItem != null) {
mediaUploader.cancelUploadScope(replaceItem.localId)
mediaValue.map {
mediaList.map {
if (it.localId == replaceItem.localId) mediaItem else it
}
} else { // Append
mediaValue + mediaItem
mediaList + mediaItem
}
}
val mediaItem = stashMediaItem!! // stashMediaItem is always non-null and uncaptured at this point, but Kotlin doesn't know that
@ -169,13 +168,13 @@ class ComposeViewModel @Inject constructor(
state = if (event.processed) { QueuedMedia.State.PROCESSED } else { QueuedMedia.State.UNPROCESSED }
)
is UploadEvent.ErrorEvent -> {
media.update { mediaValue -> mediaValue.filter { it.localId != mediaItem.localId } }
media.update { mediaList -> mediaList.filter { it.localId != mediaItem.localId } }
uploadError.emit(event.error)
return@collect
}
}
media.update { mediaValue ->
mediaValue.map { mediaItem ->
media.update { mediaList ->
mediaList.map { mediaItem ->
if (mediaItem.localId == newMediaItem.localId) {
newMediaItem
} else {
@ -189,7 +188,7 @@ class ComposeViewModel @Inject constructor(
}
private fun addUploadedMedia(id: String, type: QueuedMedia.Type, uri: Uri, description: String?, focus: Attachment.Focus?) {
media.update { mediaValue ->
media.update { mediaList ->
val mediaItem = QueuedMedia(
localId = mediaUploader.getNewLocalMediaId(),
uri = uri,
@ -201,13 +200,13 @@ class ComposeViewModel @Inject constructor(
focus = focus,
state = QueuedMedia.State.PUBLISHED
)
mediaValue + mediaItem
mediaList + mediaItem
}
}
fun removeMediaFromQueue(item: QueuedMedia) {
mediaUploader.cancelUploadScope(item.localId)
media.update { mediaValue -> mediaValue.filter { it.localId != item.localId } }
media.update { mediaList -> mediaList.filter { it.localId != item.localId } }
}
fun toggleMarkSensitive() {
@ -322,10 +321,9 @@ class ComposeViewModel @Inject constructor(
serviceClient.sendToot(tootToSend)
}
// Updates a QueuedMedia item arbitrarily, then sends description and focus to server
private suspend fun updateMediaItem(localId: Int, mutator: (QueuedMedia) -> QueuedMedia): Boolean {
val newMediaList = media.updateAndGet { mediaValue ->
mediaValue.map { mediaItem ->
private fun updateMediaItem(localId: Int, mutator: (QueuedMedia) -> QueuedMedia) {
media.update { mediaList ->
mediaList.map { mediaItem ->
if (mediaItem.localId == localId) {
mutator(mediaItem)
} else {
@ -333,33 +331,16 @@ class ComposeViewModel @Inject constructor(
}
}
}
if (!editing) {
// Updates to media for already-published statuses need to go through the status edit api
val updatedItem = newMediaList.find { it.localId == localId }
if (updatedItem?.id != null) {
val focus = updatedItem.focus
val focusString = if (focus != null) "${focus.x},${focus.y}" else null
return api.updateMedia(updatedItem.id, updatedItem.description, focusString)
.fold({
true
}, { throwable ->
Log.w(TAG, "failed to update media", throwable)
false
})
}
}
return true
}
suspend fun updateDescription(localId: Int, description: String): Boolean {
return updateMediaItem(localId) { mediaItem ->
fun updateDescription(localId: Int, description: String) {
updateMediaItem(localId) { mediaItem ->
mediaItem.copy(description = description)
}
}
suspend fun updateFocus(localId: Int, focus: Attachment.Focus): Boolean {
return updateMediaItem(localId) { mediaItem ->
fun updateFocus(localId: Int, focus: Attachment.Focus) {
updateMediaItem(localId) { mediaItem ->
mediaItem.copy(focus = focus)
}
}

View file

@ -21,7 +21,6 @@ import android.graphics.drawable.Drawable
import android.net.Uri
import android.view.WindowManager
import android.widget.FrameLayout
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
@ -31,7 +30,6 @@ import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target
import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.databinding.DialogFocusBinding
import com.keylesspalace.tusky.entity.Attachment.Focus
import kotlinx.coroutines.launch
@ -39,7 +37,7 @@ import kotlinx.coroutines.launch
fun <T> T.makeFocusDialog(
existingFocus: Focus?,
previewUri: Uri,
onUpdateFocus: suspend (Focus) -> Boolean
onUpdateFocus: suspend (Focus) -> Unit
) where T : Activity, T : LifecycleOwner {
val focus = existingFocus ?: Focus(0.0f, 0.0f) // Default to center
@ -79,9 +77,7 @@ fun <T> T.makeFocusDialog(
val okListener = { dialog: DialogInterface, _: Int ->
lifecycleScope.launch {
if (!onUpdateFocus(dialogBinding.focusIndicator.getFocus())) {
showFailedFocusMessage()
}
onUpdateFocus(dialogBinding.focusIndicator.getFocus())
}
dialog.dismiss()
}
@ -99,7 +95,3 @@ fun <T> T.makeFocusDialog(
dialog.show()
}
private fun Activity.showFailedFocusMessage() {
Toast.makeText(this, R.string.error_failed_set_focus, Toast.LENGTH_SHORT).show()
}

View file

@ -67,6 +67,8 @@ public final class ProgressRequestBody extends RequestBody {
uploaded += read;
sink.write(buffer, 0, read);
}
uploadListener.onProgressUpdate((int)(100 * uploaded / contentLength));
} finally {
content.close();
}

View file

@ -183,6 +183,23 @@ class SendStatusService : Service(), Injectable {
return@launch
}
val isNew = statusToSend.statusId == null
if (isNew) {
media.forEach { mediaItem ->
if (mediaItem.processed && (mediaItem.description != null || mediaItem.focus != null)) {
mastodonApi.updateMedia(mediaItem.id!!, mediaItem.description, mediaItem.focus?.toMastodonApiString())
.fold({
}, { throwable ->
Log.w(TAG, "failed to update media on status send", throwable)
failOrRetry(throwable, statusId)
return@launch
})
}
}
}
// finally, send the new status
val newStatus = NewStatus(
status = statusToSend.text,
@ -204,17 +221,16 @@ class SendStatusService : Service(), Injectable {
}
)
val editing = (statusToSend.statusId != null)
val sendResult = if (editing) {
mastodonApi.editStatus(
statusToSend.statusId!!,
val sendResult = if (isNew) {
mastodonApi.createStatus(
"Bearer " + account.accessToken,
account.domain,
statusToSend.idempotencyKey,
newStatus
)
} else {
mastodonApi.createStatus(
mastodonApi.editStatus(
statusToSend.statusId!!,
"Bearer " + account.accessToken,
account.domain,
statusToSend.idempotencyKey,
@ -235,7 +251,7 @@ class SendStatusService : Service(), Injectable {
if (scheduled) {
eventHub.dispatch(StatusScheduledEvent(sentStatus))
} else if (editing) {
} else if (!isNew) {
eventHub.dispatch(StatusEditedEvent(statusToSend.statusId!!, sentStatus))
} else {
eventHub.dispatch(StatusComposedEvent(sentStatus))
@ -244,16 +260,20 @@ class SendStatusService : Service(), Injectable {
notificationManager.cancel(statusId)
}, { throwable ->
Log.w(TAG, "failed sending status", throwable)
failOrRetry(throwable, statusId)
})
stopSelfWhenDone()
}
}
private suspend fun failOrRetry(throwable: Throwable, statusId: Int) {
if (throwable is HttpException) {
// the server refused to accept the status, save status & show error message
// the server refused to accept, save status & show error message
failSending(statusId)
} else {
// a network problem occurred, let's retry sending the status
retrySending(statusId)
}
})
stopSelfWhenDone()
}
}
private suspend fun retrySending(statusId: Int) {
@ -290,6 +310,9 @@ class SendStatusService : Service(), Injectable {
notificationManager.cancel(statusId)
notificationManager.notify(errorNotificationId++, notification)
}
// NOTE only this removes the "Sending..." notification (added with startForeground() above)
stopSelfWhenDone()
}
private fun cancelSending(statusId: Int) = serviceScope.launch {

View file

@ -278,7 +278,6 @@
<string name="action_add_to_list">إضافة الحساب إلى القائمة</string>
<string name="action_remove_from_list">إزالة الحساب مِن القائمة</string>
<string name="compose_active_account_description">النشر بإسم %1$s</string>
<string name="error_failed_set_caption">تعذرت عملية إضافة الشرح</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="zero">وصف لضعاف البصر
\n(%d أحرف على أقصى تقدير)</item>
@ -631,7 +630,6 @@
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="action_set_focus">ضبط نقطة التركيز</string>
<string name="action_edit_image">تعديل الصورة</string>
<string name="error_failed_set_focus">فشل في تعيين نقطة التركيز</string>
<string name="action_add_reaction">إضافة رد فعل</string>
<string name="action_share_account_link">مشاركة رابط الحساب</string>
<string name="action_share_account_username">مشاركة اسم مستخدم الحساب</string>

View file

@ -386,7 +386,6 @@
<string name="add_account_name">Дадаць уліковы запіс</string>
<string name="action_remove_from_list">Выдаліць уліковы запіс са спіса</string>
<string name="compose_active_account_description">Публікаваць як %1$s</string>
<string name="error_failed_set_caption">Не атрымалася дадаць подпіс</string>
<string name="set_focus_description">Націсніце або перацягніце кола каб абраць пункт фокусу, які будзе заўсёды бачны на паменшаных выявах.</string>
<string name="action_set_caption">Задаць подпіс</string>
<string name="action_set_focus">Задаць пункт фокуса</string>
@ -413,7 +412,6 @@
<string name="action_rename_list">Перайменаваць спіс</string>
<string name="action_delete_list">Выдаліць спіс</string>
<string name="filter_add_description">Фільтраваць фразу</string>
<string name="error_failed_set_focus">Не атрымалася задаць пункт фокуса</string>
<string name="action_remove">Выдаліць</string>
<string name="lock_account_label">Заблакаваць уліковы запіс</string>
<string name="compose_save_draft">Захаваць чарнавік\?</string>

View file

@ -139,7 +139,6 @@
<item quantity="other">Опишете за хора със зрителни увреждания
\n(%d ограничение на знаците)</item>
</plurals>
<string name="error_failed_set_caption">Неуспешно задаване на надпис</string>
<string name="compose_active_account_description">Публикуване с акаунт %1$s</string>
<string name="action_remove_from_list">Премахване на акаунт от списъка</string>
<string name="action_add_to_list">Добавяне на акаунт към списъка</string>

View file

@ -63,7 +63,6 @@
<item quantity="other">দৃষ্টি প্রতিবন্ধী জন্য বর্ণনা করুন
\n(%d অক্ষর সীমা)</item>
</plurals>
<string name="error_failed_set_caption">ক্যাপশন সেট করতে ব্যর্থ</string>
<string name="compose_active_account_description">অ্যাকাউন্ট %1$s থেকে পোস্ট করা হচ্ছে</string>
<string name="action_remove_from_list">তালিকা থেকে অ্যাকাউন্ট সরান</string>
<string name="action_add_to_list">তালিকায় অ্যাকাউন্ট যোগ করুন</string>

View file

@ -284,7 +284,6 @@
<string name="action_add_to_list">তালিকায় অ্যাকাউন্ট যোগ করুন</string>
<string name="action_remove_from_list">তালিকা থেকে অ্যাকাউন্ট সরান</string>
<string name="compose_active_account_description">অ্যাকাউন্ট %1$s থেকে পোস্ট করা হচ্ছে</string>
<string name="error_failed_set_caption">ক্যাপশন সেট করতে ব্যর্থ</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">দৃষ্টি প্রতিবন্ধী জন্য বর্ণনা করুন
\n(%d অক্ষর সীমা)</item>

View file

@ -285,7 +285,6 @@
<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>
<string name="error_failed_set_caption">Error al afegir la llegenda</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Descriu per a persones amb discapacitat visual
\n(%d límit de caràcters)</item>
@ -595,7 +594,6 @@
<string name="compose_unsaved_changes">Tens canvis no desats.</string>
<string name="set_focus_description">Toqueu o arrossegueu el cercle per triar el punt focal que sempre serà visible a les miniatures.</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">No s\'ha pogut establir el punt d\'enfocament</string>
<string name="pref_title_show_self_username">Mostra el nom d\'usuari a les barres d\'eines</string>
<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>

View file

@ -386,7 +386,6 @@
<item quantity="other">وەسف بکە بۆ بینایی داڕماو
\n(%d سنوری کاراکتەر)</item>
</plurals>
<string name="error_failed_set_caption">دانانی سەردێڕ شکستی هێنا</string>
<string name="compose_active_account_description">بڵاوکردنەوە بە هەژماری %1$s</string>
<string name="action_remove_from_list">لابردنی ئەژمێر لە لیستەکە</string>
<string name="action_add_to_list">زیادکردنی ئەژمێر بۆ لیستەکە</string>

View file

@ -285,7 +285,6 @@
<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>
<string name="error_failed_set_caption">Nastavení popisku selhalo</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Popis pro zrakově postižené
\n(limit %d znak)</item>
@ -539,7 +538,6 @@
<string name="drafts_post_reply_removed">Příspěvek, na který jste připravili odpověď, byl odstraněn</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="action_set_focus">Nastavit bod zaostření</string>
<string name="error_failed_set_focus">Nepodařilo se nastavit zaostřovací bod</string>
<string name="tips_push_notification_migration">Znovu se přihlaste ke všem účtům, abyste povolili podporu push oznámení.</string>
<string name="dialog_push_notification_migration">Aby bylo možné používat push oznámení prostřednictvím UnifiedPush, Tusky potřebuje oprávnění k odběru oznámení na vašem serveru Mastodon. To vyžaduje opětovné přihlášení ke změně rozsahů OAuth udělených aplikaci Tusky. Použitím možnosti opětovného přihlášení zde nebo v předvolbách účtu zachováte všechny vaše místní koncepty a mezipaměť.</string>
<string name="action_add_reaction">přidat reakci</string>

View file

@ -234,7 +234,6 @@
<string name="action_lists">Rhestrau</string>
<string name="title_lists">Rhestrau</string>
<string name="compose_active_account_description">Yn postio fel %1$s</string>
<string name="error_failed_set_caption">Methu gosod pennawd</string>
<string name="action_set_caption">Gosod pennawd</string>
<string name="action_remove">Dileu</string>
<string name="lock_account_label">Cloi cyfrif</string>
@ -546,7 +545,6 @@
<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="error_failed_set_focus">Wedi methu gosod pwynt ffocws</string>
<string name="action_set_focus">Gosod pwynt ffocws</string>
<string name="status_created_at_now">nawr</string>
<string name="error_delete_list">Methu dileu\'r rhestr</string>

View file

@ -261,7 +261,6 @@
<string name="action_edit_list">Liste bearbeiten</string>
<string name="action_add_to_list">Ein Konto zu einer Liste hinzufügen</string>
<string name="compose_active_account_description">Veröffentlichen als %1$s</string>
<string name="error_failed_set_caption">Fehler beim Speichern der Beschreibung</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Inhalt für Menschen mit Sehbehinderung beschreiben (%d Zeichen)</item>
<item quantity="other">Inhalte für Menschen mit Sehbehinderung beschreiben (%d Zeichen)</item>
@ -567,7 +566,6 @@
<string name="filter_expiration_format">%s (%s)</string>
<string name="description_post_language">Sprache des Beitrags</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Setzen des Fokuspunktes fehlgeschlagen</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>

View file

@ -280,7 +280,6 @@
<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>
<string name="error_failed_set_caption">Redakto de apudskribo malsukcesis</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one"/>
<item quantity="other">Priskribi por vide handikapitaj homoj

View file

@ -252,7 +252,6 @@
<string name="action_lists">Listas</string>
<string name="title_lists">Listas</string>
<string name="compose_active_account_description">Publicar como %1$s</string>
<string name="error_failed_set_caption">Error al añadir leyenda</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Descripción para personas con problemas de visión
\n(Límite de %d caracter)</item>
@ -569,7 +568,6 @@
<string name="notification_update_description">Notificaciones cuando se editan publicaciones con las que has interactuado</string>
<string name="status_count_one_plus">1+</string>
<string name="filter_expiration_format">%s (%s)</string>
<string name="error_failed_set_focus">Fallo al establecer foco</string>
<string name="action_set_focus">Establece el foco</string>
<string name="description_post_language">Idioma de publicación</string>
<string name="duration_30_days">30 días</string>
@ -659,3 +657,4 @@
<string name="ui_error_unknown">razón desconocida</string>
<string name="socket_timeout_exception">Contactar con tu servidor ha tardado demasiado tiempo</string>
</resources>

View file

@ -234,7 +234,6 @@
<string name="action_lists">Zerrendak</string>
<string name="title_lists">Zerrendak</string>
<string name="compose_active_account_description">%1$s kontuarekin tut egiten</string>
<string name="error_failed_set_caption">Akatsa deskribapena eranstean</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Ikusmen urritasuna dutenentzat deskribapena\n(%d karaktereko muga)</item>
</plurals>

View file

@ -228,7 +228,6 @@
<string name="action_lists">فهرست‌ها</string>
<string name="title_lists">فهرست‌ها</string>
<string name="compose_active_account_description">فرستادن از طرف %1$s</string>
<string name="error_failed_set_caption">شکست در تنظیم عنوان</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">توصیف محتوا برای کم‌بینایان (کران ۱ نویسه)</item>
<item quantity="other">توصیف محتوا برای کم‌بینایان (کران %d نویسه)</item>
@ -556,7 +555,6 @@
<string name="pref_title_show_self_username">نمایش نام کاربری در نوارابزارها</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="action_add_reaction">افزودن واکنش</string>
<string name="error_failed_set_focus">شکست در تنظیم نقطهٔ تمرکز</string>
<string name="action_set_focus">تنظیم نقطهٔ تمرکز</string>
<string name="duration_no_change">(بدون تغییر)</string>
<string name="error_loading_account_details">شکست در بار کردن جزییات حساب</string>

View file

@ -200,7 +200,6 @@
<string name="error_compose_character_limit">Julkaisusi on liian pitkä!</string>
<string name="action_unmute_conversation">Poista keskustelun mykistys</string>
<string name="download_image">Ladataan kuvaa %1$s</string>
<string name="error_failed_set_caption">Kuvauksen lisääminen epäonnistui</string>
<string name="action_mute_conversation">Mykistä keskustelu</string>
<string name="error_generic">Tapahtui virhe.</string>
<string name="action_logout_confirm">Halutako varmasti kirjautua ulos tililtä %s1\?</string>

View file

@ -285,7 +285,6 @@
<string name="action_add_to_list">Ajouter un compte à la liste</string>
<string name="action_remove_from_list">Supprimer un compte de la liste</string>
<string name="compose_active_account_description">Publier en tant que %1$s</string>
<string name="error_failed_set_caption">Impossible de définir la légende</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Décrire pour les malvoyants
\n(%d caractères maximum)</item>

View file

@ -12,7 +12,6 @@
<string name="compose_save_draft">Skets bewarje\?</string>
<string name="action_remove">Fuortsmite</string>
<string name="action_set_caption">Ûnderskrift pleatse</string>
<string name="error_failed_set_caption">Koe ûnderskrift net pleatse</string>
<string name="action_add_to_list">Account oan de list tafoegje</string>
<string name="hint_search_people_list">Sykje om minsken dy\'t jo folgje</string>
<string name="action_edit_list">Pas de list oan</string>

View file

@ -316,7 +316,6 @@
<string name="action_add_to_list">Cuir cuntas leis an liosta</string>
<string name="action_remove_from_list">Bain cuntas ón liosta</string>
<string name="compose_active_account_description">Postáil le cuntas %1$s</string>
<string name="error_failed_set_caption">Theip ar an bhfotheideal a shocrú</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Déan cur síos ar dhaoine lagamhairc
\n(teorainn carachtar %d)</item>

View file

@ -257,7 +257,6 @@
<item quantity="other">Mìnich e dhan fheadhainn air a bheil cion-lèirsinn
\n(%d caractar air a char as fhaide)</item>
</plurals>
<string name="error_failed_set_caption">Cha deach leinn am fo-thiotal a shuidheachadh</string>
<string name="compose_active_account_description">A postadh mar %1$s</string>
<string name="action_remove_from_list">Thoir an cunntas air falbh on liosta</string>
<string name="action_add_to_list">Cuir cunntas ris an liosta</string>
@ -574,7 +573,6 @@
<string name="pref_show_self_username_never">Chan ann idir</string>
<string name="filter_expiration_format">%s (%s)</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Dhfhàillig suidheachadh na puinge-fòcais</string>
<string name="action_set_focus">Suidhich puing an fhòcais</string>
<string name="delete_scheduled_post_warning">A bheil thu airson am post sgeidealaichte seo a sguabadh às\?</string>
<string name="instance_rule_info">Le clàradh a-steach, bidh tu ag aontachadh ri riaghailtean %s.</string>

View file

@ -258,7 +258,6 @@
<item quantity="one">Describe para persoas con deficiencias visuais (límite %d caracter)</item>
<item quantity="other">Describe para persoas con deficiencias visuais (%d caracteres como máximo)</item>
</plurals>
<string name="error_failed_set_caption">Fallou establecemento do texto</string>
<string name="compose_active_account_description">Publicar como %1$s</string>
<string name="action_remove_from_list">Eliminar conta da listaxe</string>
<string name="action_add_to_list">Engadir conta á listaxe</string>
@ -540,7 +539,6 @@
<string name="error_multimedia_size_limit">Os ficheiros de vídeo e audio non poden superar os %s MB.</string>
<string name="description_post_language">Idioma de publicación</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Fallou o establecemento do foco</string>
<string name="action_set_focus">Establece foco</string>
<string name="error_following_hashtag_format">Erro ao seguir #%s</string>
<string name="error_unfollowing_hashtag_format">Error ao retirar seguimento de #%s</string>

View file

@ -311,7 +311,6 @@
<item quantity="other">दृष्टिहीन लोगों के लिए वर्णन करें
\n(%d वर्ण सीमा)</item>
</plurals>
<string name="error_failed_set_caption">कैप्शन सेट करने में विफल</string>
<string name="compose_active_account_description">%1$s खाते के साथ पोस्ट कर रहे</string>
<string name="action_remove_from_list">सूची से खाता निकालें</string>
<string name="action_add_to_list">सूची में खाता जोड़ें</string>

View file

@ -338,7 +338,6 @@
<string name="action_add_to_list">Fiók hozzáadása a listához</string>
<string name="action_remove_from_list">Fiók eltávolítása a listából</string>
<string name="compose_active_account_description">Bejegyzés mint %1$s</string>
<string name="error_failed_set_caption">Cím beállítása nem sikerült</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Leírás látássérülteknek
\n(%d karakter korlát)</item>
@ -555,7 +554,6 @@
<string name="pref_show_self_username_never">Soha</string>
<string name="duration_no_change">(Nincs változás)</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Nem sikerült a fókuszpont beállítása</string>
<string name="action_set_focus">Fókuszpont beállítása</string>
<string name="error_following_hashtag_format">Hiba a #%s követésekor</string>
<string name="error_unfollowing_hashtag_format">Hiba a #%s követésének befejezésekor</string>

View file

@ -297,7 +297,6 @@
<string name="action_add_to_list">Bæta notandaaðgangi á listann</string>
<string name="action_remove_from_list">Fjarlægja notandaaðganginn af listanum</string>
<string name="compose_active_account_description">Sendi sem %1$s</string>
<string name="error_failed_set_caption">Ekki tókst að setja skýringatexta</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Lýstu þessu fyrir sjónskerta
\n(hámark %d stafur)</item>
@ -553,7 +552,6 @@
<string name="pref_show_self_username_always">Alltaf</string>
<string name="pref_show_self_username_disambiguate">Þegar er skráð inn á mörgum aðgöngum</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Mistókst að setja virknistað</string>
<string name="action_set_focus">Setja virknistað</string>
<string name="pref_show_self_username_never">Aldrei</string>
<string name="pref_title_show_self_username">Birta notandanafn á verkfærastikum</string>

View file

@ -279,7 +279,6 @@
<string name="action_add_to_list">Aggiungi un account alla lista</string>
<string name="action_remove_from_list">Rimuovi un account dalla lista</string>
<string name="compose_active_account_description">Pubblicando come %1$s</string>
<string name="error_failed_set_caption">Impostazione del sottotitolo non riuscita</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Descrivi per ipovedenti
\n(limite di %d carattere)</item>
@ -566,7 +565,6 @@
<string name="error_loading_account_details">Caricamento dettagli utente fallito</string>
<string name="delete_scheduled_post_warning">Cancellare questo post programmato\?</string>
<string name="instance_rule_title">Regole di %s</string>
<string name="error_failed_set_focus">Impossibile selezionare il punto focale</string>
<string name="instance_rule_info">Facendo il log in accetti le regole di %s.</string>
<string name="set_focus_description">Tappa o crea un cerchio per scegliere il punto focale che sarà sempre visibile nelle anteprime.</string>
<string name="action_set_focus">Imposta punto focale</string>

View file

@ -257,7 +257,6 @@
<string name="error_rename_list">リスト名を変更できませんでした</string>
<string name="action_rename_list">リスト名の変更</string>
<string name="compose_active_account_description">%1$sで投稿</string>
<string name="error_failed_set_caption">説明の設定に失敗しました</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">視覚障害者のための説明 (%d文字まで)</item>
</plurals>
@ -591,7 +590,6 @@
<string name="status_edit_info">%1$s 編集 %2$s</string>
<string name="status_created_info">%1$s の投稿 %2$s</string>
<string name="post_lookup_error_format">投稿 %s の検索エラー</string>
<string name="error_failed_set_focus">中心点の設定に失敗しました</string>
<string name="follow_requests_info">アカウントがロックされていなかったとしても、%1$s のスタッフは以下のアカウントのフォローリクエストを確認した方がいいと判断しました。</string>
<string name="action_set_focus">中心点の設定</string>
<string name="compose_unsaved_changes">保存していない変更があります。</string>

View file

@ -291,7 +291,6 @@
<string name="action_add_to_list">리스트에 계정 추가</string>
<string name="action_remove_from_list">리스트에서 계정 삭제</string>
<string name="compose_active_account_description">%1$s로서 포스팅</string>
<string name="error_failed_set_caption">미디어에 대한 설명을 추가할 수 없습니다</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">시각 장애인을 위한 설명
\n(%d글자 작성 가능)</item>

View file

@ -460,8 +460,6 @@
<string name="notification_summary_small">%1$s un %2$s</string>
<string name="notification_summary_medium">%1$s, %2$s un %3$s</string>
<string name="post_share_link">Dalīties ar saiti uz ierakstu</string>
<string name="error_failed_set_caption">Neizdevās pievienot parakstu</string>
<string name="error_failed_set_focus">Neizdevās iestatīt fokusa punktu</string>
<string name="pref_title_absolute_time">Izmantot absolūto laiku</string>
<string name="conversation_1_recipients">%1$s</string>
<string name="conversation_2_recipients">%1$s un %2$s</string>

View file

@ -258,7 +258,6 @@
\n https://tusky.app</string>
<string name="abbreviated_in_years">om %dy</string>
<string name="compose_active_account_description">Poster som %1$s</string>
<string name="error_failed_set_caption">Klarte ikke å sette bildetekst</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Beskriv for de med nedsatt synsevne
\n(maks %d tegn)</item>
@ -544,7 +543,6 @@
<string name="description_post_language">Innleggspråk</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="action_set_focus">Sett fokuspunkt</string>
<string name="error_failed_set_focus">Klarte ikke å sette fokuspunkt</string>
<string name="set_focus_description">Trykk eller dra sirkelen for å velge fokuspunktet som alltid skal være synlig i miniatyrbilder.</string>
<string name="pref_show_self_username_always">Alltid</string>
<string name="pref_show_self_username_disambiguate">Når flere konti er logget inn</string>

View file

@ -258,7 +258,6 @@
<string name="action_lists">Lijsten</string>
<string name="title_lists">Lijsten</string>
<string name="compose_active_account_description">Berichten plaatsen als %1$s</string>
<string name="error_failed_set_caption">Toevoegen van beschrijving mislukt</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one"/>
<item quantity="other">Omschrijf dit voor mensen met een visuele beperking
@ -553,7 +552,6 @@
<string name="pref_show_self_username_never">Nooit</string>
<string name="filter_expiration_format">%s (%s)</string>
<string name="action_set_focus">Focuspunt instellen</string>
<string name="error_failed_set_focus">Instellen van focuspunt mislukt</string>
<string name="error_following_hashtag_format">Fout tijdens het volgen van #%s</string>
<string name="error_unfollowing_hashtag_format">Fout tijdens het ontvolgen van #%s</string>
<string name="delete_scheduled_post_warning">Dit ingeplande bericht verwijderen\?</string>

View file

@ -225,7 +225,6 @@
<string name="action_lists">Listas</string>
<string name="title_lists">Listas</string>
<string name="compose_active_account_description">Publicar coma %1$s</string>
<string name="error_failed_set_caption">Fracàs en apondre una legenda</string>
<string name="action_set_caption">Apondre una legenda</string>
<string name="action_remove">Levar</string>
<string name="lock_account_label">Clavar lo compte</string>
@ -565,7 +564,6 @@
<string name="report_category_other">Autre</string>
<string name="failed_to_add_to_list">Fracàs de lapondon del compte a la lista</string>
<string name="failed_to_remove_from_list">Fracàs de la supression del compte de la lista</string>
<string name="error_failed_set_focus">Fracàs de la definicion del punt focal</string>
<string name="notification_sign_up_description">Notificacions quand qualquun crèa un compte novèl</string>
<string name="notification_report_description">Notificacions a prepaus dels senhalament a la moderacion</string>
<string name="notification_update_description">Notificacions quand una publicacion ont avètz reagit es modificada</string>
@ -659,3 +657,4 @@
<string name="hint_description">Descripcion</string>
<string name="post_media_image">Imatge</string>
</resources>

View file

@ -229,7 +229,6 @@
<string name="action_lists">Listy</string>
<string name="title_lists">Listy</string>
<string name="compose_active_account_description">Publikowanie jako %1$s</string>
<string name="error_failed_set_caption">Nie udało się ustawić podpisu</string>
<string name="action_set_caption">Ustaw podpis</string>
<string name="action_remove">Usuń</string>
<string name="lock_account_label">Zablokuj konto</string>
@ -587,7 +586,6 @@
<string name="pref_show_self_username_always">Zawsze</string>
<string name="pref_show_self_username_disambiguate">Gdy wiele kont jest zalogowanych</string>
<string name="status_created_at_now">teraz</string>
<string name="error_failed_set_focus">Nie udało się ustawić punktu centralnego</string>
<string name="action_add_reaction">dodaj reakcję</string>
<string name="notification_header_report_format">%s zgłosił/a %s</string>
<string name="confirmation_hashtag_unfollowed">Odobserwowano #%s</string>

View file

@ -246,7 +246,6 @@
<string name="action_lists">Listas</string>
<string name="title_lists">Listas</string>
<string name="compose_active_account_description">Postando como %1$s</string>
<string name="error_failed_set_caption">Erro ao incluir descrição</string>
<string name="action_set_caption">Descrever</string>
<string name="action_remove">Remover</string>
<string name="lock_account_label">Trancar perfil</string>
@ -603,7 +602,6 @@
<string name="error_following_hashtags_unsupported">Esta instância não oferece o recurso de seguir hashtags.</string>
<string name="pref_title_notification_filter_updates">um toot que eu interagi foi editado</string>
<string name="notification_sign_up_description">Notificações sobre novos usuários</string>
<string name="error_failed_set_focus">Falha ao definir o ponto de foco</string>
<string name="action_set_focus">Definir ponto de foco</string>
<string name="action_edit_image">Editar imagem</string>
<string name="pref_title_notification_filter_sign_ups">alguém se inscreveu</string>

View file

@ -330,7 +330,6 @@
<string name="action_add_to_list">Adicionar conta à lista</string>
<string name="action_remove_from_list">Remover conta da lista</string>
<string name="compose_active_account_description">Publicar com a conta %1$s</string>
<string name="error_failed_set_caption">Erro ao incluir descrição</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Descrição para deficientes visuais
\n(até %d letra)</item>
@ -560,7 +559,6 @@
<string name="description_post_language">Idioma da publicação</string>
<string name="pref_title_show_self_username">Mostrar o nome de utilizador nas barras de ferramentas</string>
<string name="error_multimedia_size_limit">Os ficheiros de áudio e vídeo não podem exceder os %s MB.</string>
<string name="error_failed_set_focus">Erro ao definir ponto de focagem</string>
<string name="action_set_focus">Define o ponto de focagem</string>
<string name="error_following_hashtag_format">Erro ao seguir #%s</string>
<string name="error_unfollowing_hashtag_format">Erro ao deixar de seguir #%s</string>

View file

@ -305,7 +305,6 @@
<string name="action_add_to_list">Добавить аккаунт в список</string>
<string name="action_remove_from_list">Удалить аккаунт из списка</string>
<string name="compose_active_account_description">Отправка от имени %1$s</string>
<string name="error_failed_set_caption">Не удалось добавить подпись</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Описание для слабовидящих\n(не более %d символов)</item>
</plurals>

View file

@ -328,7 +328,6 @@
<item quantity="other">दृष्ट्यां येषां समस्याऽस्ति तेषांं कृते विवरणम्
\n(%d परिमिता न्यूनाक्षरसङ्ख्या)</item>
</plurals>
<string name="error_failed_set_caption">शीर्षकवाक्यं लेखितुमशक्यम्</string>
<string name="compose_active_account_description">%1$s लेखया प्रकटनं क्रियते</string>
<string name="action_remove_from_list">सूच्याः लेखा नश्यताम्</string>
<string name="action_add_to_list">सूच्यां लेखा स्थाप्यताम्</string>

View file

@ -256,7 +256,6 @@
<string name="action_add_to_list">Dodaj račun na seznam</string>
<string name="action_remove_from_list">Odstrani račun iz seznama</string>
<string name="compose_active_account_description">Objavljanje z računom %1$s</string>
<string name="error_failed_set_caption">Opisa ni bilo mogoče nastaviti</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Opišite za slabovidne
\n(omejitev znakov - %d)</item>

View file

@ -279,7 +279,6 @@
<string name="action_add_to_list">Lägg till konto i listan</string>
<string name="action_remove_from_list">Ta bort kontot från listan</string>
<string name="compose_active_account_description">Publicerar som %1$s</string>
<string name="error_failed_set_caption">Misslyckades med att ange bildtext</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="one">Beskriv för synskadade
\n(max %d tecken)</item>
@ -550,7 +549,6 @@
<string name="error_image_edit_failed">Bilden kunde inte redigeras.</string>
<string name="duration_365_days">365 dagar</string>
<string name="duration_180_days">180 dagar</string>
<string name="error_failed_set_focus">Kunde inte sätta fokuspunkt</string>
<string name="action_set_focus">Sätt fokuspunkt</string>
<string name="error_following_hashtag_format">Kunde inte följa #%s</string>
<string name="notification_sign_up_format">%s registrerade sig</string>

View file

@ -216,7 +216,6 @@
<string name="action_lists">பட்டியல்கள்</string>
<string name="title_lists">பட்டியல்கள்</string>
<string name="compose_active_account_description">%1$s கணக்குடன் பதிவிட</string>
<string name="error_failed_set_caption">தலைப்பை அமைக்க முடியவில்லை</string>
<string name="action_set_caption">தலைப்பை அமை</string>
<string name="action_remove">நீக்கு</string>
<string name="lock_account_label">கணக்கை முடக்கு</string>

View file

@ -127,7 +127,6 @@
<string name="lock_account_label_description">ต้องอนุมัติผู้ติดตามด้วยตัวเอง</string>
<string name="lock_account_label">ล็อกบัญชี</string>
<string name="action_remove">ลบ</string>
<string name="error_failed_set_caption">ตั้งคำอธิบายล้มเหลว</string>
<string name="action_set_caption">ตั้งคำอธิบาย</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">อธิบายเพื่อผู้บกพร่องทางสายตา

View file

@ -470,7 +470,6 @@
<string name="action_mute_conversation">Sohbeti sessize al</string>
<string name="pref_main_nav_position">Ana gezinti konumu</string>
<string name="pref_title_gradient_for_media">Gizli medya için renkli gradyanlar göster</string>
<string name="error_failed_set_caption">Başlık ayarlanamadı</string>
<string name="warning_scheduling_interval">Mastodon\'un minimum 5 dakikalık zamanlama aralığı vardır.</string>
<string name="pref_title_hide_top_toolbar">Üst araç çubuğunun başlığını gizle</string>
<string name="action_delete_conversation">Konuşmayı sil</string>
@ -542,7 +541,6 @@
<string name="wellbeing_hide_stats_profile">Profillerdeki niceliksel istatistikleri gizle</string>
<string name="tusky_compose_post_quicksetting_label">Gönderi Oluştur</string>
<string name="saving_draft">Taslağı kaydediyor…</string>
<string name="error_failed_set_focus">Odak noktası ayarlanamadı</string>
<string name="action_set_focus">Odak noktasını ayarla</string>
<string name="action_edit_image">Görseli düzenle</string>
<string name="account_date_joined">%1$s katıldı</string>

View file

@ -186,7 +186,6 @@
<item quantity="many">Опис матеріалів для людей з вадами зору (обмеження %d символів)</item>
<item quantity="other">Опис матеріалів для людей з вадами зору (обмеження %d символів)</item>
</plurals>
<string name="error_failed_set_caption">Не вдалося додати підпис</string>
<string name="action_unsubscribe_account">Відписатися</string>
<string name="action_subscribe_account">Підписатися</string>
<string name="account_note_saved">Збережено!</string>
@ -565,7 +564,6 @@
<string name="description_post_language">Мова допису</string>
<string name="duration_no_change">(Не змінено)</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Не вдалося налаштувати точку фокусування</string>
<string name="action_set_focus">Налаштувати точку фокусування</string>
<string name="pref_show_self_username_always">Завжди</string>
<string name="set_focus_description">Торкніться або перетягніть коло, щоб вибрати точку фокусування, яку завжди буде видно на мініатюрах.</string>

View file

@ -20,7 +20,6 @@
<string name="post_lookup_error_format">Lỗi khi tìm tút %s</string>
<string name="error_no_custom_emojis">Máy chủ %s không có emoji tùy chỉnh</string>
<string name="send_post_notification_error_title">Lỗi đăng tút</string>
<string name="error_failed_set_caption">Thêm nội dung thất bại</string>
<string name="error_delete_list">Không thể xóa danh sách</string>
<string name="error_rename_list">Không thể đổi tên danh sách</string>
<string name="error_create_list">Không thể tạo danh sách</string>
@ -530,7 +529,6 @@
<string name="duration_no_change">(Không đổi)</string>
<string name="description_post_language">Ngôn ngữ đăng</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">Không thể chọn tâm điểm</string>
<string name="action_set_focus">Chọn tâm điểm</string>
<string name="set_focus_description">Nhấn hoặc kéo vòng tròn để chọn tiêu điểm sẽ hiển thị trong hình thu nhỏ.</string>
<string name="pref_title_show_self_username">Hiện URL của tôi trên tab</string>

View file

@ -286,7 +286,6 @@
<string name="action_add_to_list">添加用户到列表</string>
<string name="action_remove_from_list">从列表中移除用户</string>
<string name="compose_active_account_description">以 %1$s 身份发布嘟文</string>
<string name="error_failed_set_caption">设置图片标题失败</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">为视觉障碍用户描述内容(最多 %d 个字符)</item>
</plurals>
@ -548,7 +547,6 @@
<string name="duration_no_change">(无更改)</string>
<string name="description_post_language">嘟文语言</string>
<string name="url_domain_notifier">%s (🔗 %s)</string>
<string name="error_failed_set_focus">设置焦点失败</string>
<string name="action_set_focus">设置焦点</string>
<string name="set_focus_description">轻按或拖动圆圈选择始终在缩略图中可见的焦点。</string>
<string name="pref_show_self_username_disambiguate">登录多个账户时</string>
@ -667,3 +665,4 @@
<string name="error_list_load">加载列表出错</string>
<string name="select_list_empty">你还没有列表</string>
</resources>

View file

@ -285,7 +285,6 @@
<string name="action_add_to_list">添加用戶到列表</string>
<string name="action_remove_from_list">從列表中移除用戶</string>
<string name="compose_active_account_description">以 %1$s 發嘟文</string>
<string name="error_failed_set_caption">設定圖片標題失敗</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">為視覺障礙用戶提供的描述\n(限制 %d 字)</item>
</plurals>

View file

@ -279,7 +279,6 @@
<string name="action_add_to_list">添加用戶到列表</string>
<string name="action_remove_from_list">從列表中移除用戶</string>
<string name="compose_active_account_description">以 %1$s 發嘟文</string>
<string name="error_failed_set_caption">設定圖片標題失敗</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">為視覺障礙用戶提供的描述\n(限制 %d 字)</item>
</plurals>

View file

@ -284,7 +284,6 @@
<string name="action_add_to_list">添加用户到列表</string>
<string name="action_remove_from_list">从列表中移除用户</string>
<string name="compose_active_account_description">以 %1$s 发布嘟文</string>
<string name="error_failed_set_caption">设置图片标题失败</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">为视觉障碍用户提供的描述\n(限制 %d 字)</item>
</plurals>

View file

@ -285,7 +285,6 @@
<string name="action_add_to_list">添加用戶到列表</string>
<string name="action_remove_from_list">從列表中移除用戶</string>
<string name="compose_active_account_description">以 %1$s 發嘟文</string>
<string name="error_failed_set_caption">設定圖片標題失敗</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">為視覺障礙用戶提供的描述
\n(限制 %d 字)</item>
@ -547,7 +546,6 @@
<string name="action_unsubscribe_account">取消訂閱</string>
<string name="saving_draft">正在儲存草稿…</string>
<string name="tips_push_notification_migration">重新登入所有帳號以啟用推播功能。</string>
<string name="error_failed_set_focus">設置關注點失敗</string>
<string name="action_set_focus">設置關注點</string>
<string name="title_migration_relogin">重新登入以啟用推播功能</string>
<string name="error_multimedia_size_limit">影片和音訊檔案大小不能超過 %s MB。</string>

View file

@ -471,8 +471,6 @@
<string name="compose_active_account_description">Posting as %1$s</string>
<string name="error_failed_set_caption">Failed to set caption</string>
<string name="error_failed_set_focus">Failed to set focus point</string>
<plurals name="hint_describe_for_visually_impaired">
<item quantity="other">Describe contents for visually impaired (%d character limit)</item>
</plurals>