Merge CrowdIn strings circa 2024-08-29

This commit is contained in:
alansley
2024-08-29 12:32:30 +10:00
parent dd57da70f6
commit cb9554ab38
101 changed files with 832 additions and 898 deletions

View File

@@ -8,7 +8,7 @@ class DeleteMediaDialog {
@JvmStatic
fun show(context: Context, recordCount: Int, doDelete: Runnable) = context.showSessionDialog {
iconAttribute(R.attr.dialog_alert_icon)
title(context.resources.getString(R.string.deleteMessages))
title(context.resources.getQuantityString(R.plurals.deleteMessage, recordCount))
text(context.resources.getString(R.string.deleteMessageDescriptionEveryone))
button(R.string.delete) { doDelete.run() }
cancelButton()

View File

@@ -9,7 +9,8 @@ class DeleteMediaPreviewDialog {
fun show(context: Context, doDelete: Runnable) {
context.showSessionDialog {
iconAttribute(R.attr.dialog_alert_icon)
title(R.string.deleteMessage)
title(context.resources.getQuantityString(R.plurals.deleteMessage, 1))
text(R.string.deleteMessageDescriptionEveryone)
dangerButton(R.string.delete) { doDelete.run() }
cancelButton()

View File

@@ -15,6 +15,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
@@ -41,6 +42,10 @@ internal fun StartConversationScreen(
accountId: String,
delegate: StartConversationDelegate
) {
val context = LocalContext.current
val newMessageTitleTxt:String = context.resources.getQuantityString(R.plurals.messageNew, 1, 1)
Column(modifier = Modifier.background(
LocalColors.current.backgroundSecondary,
shape = MaterialTheme.shapes.small
@@ -58,7 +63,7 @@ internal fun StartConversationScreen(
modifier = Modifier.verticalScroll(rememberScrollState())
) {
ItemButton(
textId = R.string.messageNew,
textId = newMessageTitleTxt,
icon = R.drawable.ic_message,
modifier = Modifier.contentDescription(R.string.AccessibilityId_messageNew),
onClick = delegate::onNewMessageSelected)

View File

@@ -32,6 +32,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
@@ -75,12 +76,16 @@ internal fun NewMessage(
) {
val pagerState = rememberPagerState { TITLES.size }
// `messageNew` is now a plurals string so get the singular version
val context = LocalContext.current
val newMessageTitleTxt:String = context.resources.getQuantityString(R.plurals.messageNew, 1, 1)
Column(modifier = Modifier.background(
LocalColors.current.backgroundSecondary,
shape = MaterialTheme.shapes.small
)) {
BackAppBar(
title = stringResource(R.string.messageNew),
title = newMessageTitleTxt,
backgroundColor = Color.Transparent, // transparent to show the rounded shape of the container
onBack = onBack,
actions = { AppBarCloseIcon(onClose = onClose) }

View File

@@ -2065,9 +2065,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
}
private fun showDeleteLocallyUI(messages: Set<MessageRecord>) {
val titleStringId = if (messages.count() == 1) R.string.deleteMessage else R.string.deleteMessages
showSessionDialog {
title(resources.getString(titleStringId))
title(resources.getQuantityString(R.plurals.deleteMessage, messages.count()))
text(resources.getString(R.string.deleteMessagesDescriptionDevice))
button(R.string.delete) { messages.forEach(viewModel::deleteLocally); endActionMode() }
cancelButton(::endActionMode)
@@ -2089,7 +2088,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
// If the recipient is a community OR a Note-to-Self then we delete the message for everyone
if (recipient.isCommunityRecipient || recipient.isLocalNumber) {
showSessionDialog {
title(resources.getString(R.string.deleteMessage))
title(resources.getQuantityString(R.plurals.deleteMessage, messages.count()))
text(resources.getString(R.string.deleteMessageDescriptionEveryone))
button(R.string.delete) { messages.forEach(viewModel::deleteForEveryone); endActionMode() }
cancelButton { endActionMode() }
@@ -2117,8 +2116,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
else // Finally, if this is a closed group and you are deleting someone else's message(s) then we can only delete locally.
{
showSessionDialog {
val titleTxtId = if (messages.size == 1) { R.string.deleteMessage } else { R.string.deleteMessages }
title(resources.getString(titleTxtId))
title(resources.getQuantityString(R.plurals.deleteMessage, messages.count()))
text(resources.getString(R.string.deleteMessageDescriptionDevice))
dangerButton(R.string.delete) { messages.forEach(viewModel::deleteLocally); endActionMode() }
cancelButton(::endActionMode)

View File

@@ -21,7 +21,7 @@ class DeletedMessageView : LinearLayout {
// region Updating
fun bind(message: MessageRecord, @ColorInt textColor: Int) {
assert(message.isDeleted)
binding.deleteTitleTextView.text = context.getString(R.string.deleteMessageDeleted)
binding.deleteTitleTextView.text = context.resources.getQuantityString(R.plurals.deleteMessageDeleted, 1)
binding.deleteTitleTextView.setTextColor(textColor)
binding.deletedMessageViewIconImageView.imageTintList = ColorStateList.valueOf(textColor)
}

View File

@@ -72,9 +72,9 @@ public abstract class AbstractNotificationBuilder extends NotificationCompat.Bui
if (privacy.isDisplayMessage()) {
setTicker(getStyledMessage(recipient, trimToDisplayLength(message)));
} else if (privacy.isDisplayContact()) {
setTicker(getStyledMessage(recipient, context.getString(R.string.messageNew)));
setTicker(getStyledMessage(recipient, context.getResources().getQuantityString(R.plurals.messageNew, 1, 1)));
} else {
setTicker(context.getString(R.string.messageNew));
setTicker(context.getResources().getQuantityString(R.plurals.messageNew, 1, 1));
}
}

View File

@@ -128,7 +128,7 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
setContentText(stringBuilder.append(message));
this.slideDeck = slideDeck;
} else {
setContentText(stringBuilder.append(context.getString(R.string.messageNew)));
setContentText(stringBuilder.append(context.getResources().getQuantityString(R.plurals.messageNew, 1, 1)));
}
}
@@ -215,7 +215,7 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
if (privacy.isDisplayMessage()) {
messageBodies.add(stringBuilder.append(messageBody == null ? "" : messageBody));
} else {
messageBodies.add(stringBuilder.append(context.getString(R.string.messageNew)));
messageBodies.add(stringBuilder.append(context.getResources().getQuantityString(R.plurals.messageNew, 1, 1)));
}
}

View File

@@ -211,15 +211,20 @@ fun ItemButton(text: String, icon: Int, modifier: Modifier, textStyle: TextStyle
*/
@Composable
fun ItemButton(
@StringRes textId: Int,
@StringRes textId: Any, // Type was: Int - see comment below.
@DrawableRes icon: Int,
modifier: Modifier = Modifier,
textStyle: TextStyle = LocalType.current.xl,
colors: ButtonColors = transparentButtonColors(),
onClick: () -> Unit
) {
// TODO: I don't know enough compose to fix this properly atm so I'm tweaking this
// ItemButton so I can send it an Int or a String and still get the right behavior.
// Sorry. -ACL 2024-08-29
val txtString = if (textId is Int) stringResource(textId) else textId as String
ItemButton(
text = stringResource(textId),
text = txtString,
modifier = modifier,
icon = {
Icon(

View File

@@ -16,7 +16,7 @@
app:showAsAction="always" />
<item
android:title="@string/deleteMessage"
android:title="@plurals/deleteMessage"
android:id="@+id/menu_context_delete_message"
android:icon="?menu_trash_icon"
app:showAsAction="always" />